Given a square matrix A, Brauer's theorem [Duke Math. J. 19 (1952), [75][76][77][78][79][80][81][82][83][84][85][86][87][88][89][90][91] shows how to modify one single eigenvalue of A via a rank-one perturbation, without changing any of the remaining eigenvalues. We reformulate Brauer's theorem in functional form and provide extensions to matrix polynomials and to matrix Laurent series A(z) together with generalizations to shifting a set of eigenvalues. We provide conditions under which the modified function A(z) has a canonical factorization A(z) = U (z) L(z −1 ) and we provide explicit expressions of the factors U (z) and L(z). Similar conditions and expressions are given for the factorization of A(z −1 ). Some applications are discussed. * Work supported by Gruppo Nazionale di Calcolo Scientifico (GNCS) of INdAM, and by the PRA project "Mathematical models and computational methods for complex networks" funded by the University of Pisa. inverse eigenvalue problem [10], [21], to accelerating the convergence of iterative methods for solving matrix equations in particular quadratic equations [20], equations related to QBD Markov chains [17], [14], to M/G/1-type Markov chains [5], [3], or for algebraic Riccati equations in [15], [16], [19], and [2].In this paper we revisit Brauer's theorem in functional form and generalize it to a non-degenerate n × n matrix function A(z) analytic in the open annulusHere, non-degenerate means that det A(z) is not identically zero. Throughout the paper we assume that all the matrix functions are nondegenerate.Let λ ∈ A r1,r2 be an eigenvalue of A(z), i.e., such that det A(λ) = 0 and u ∈ C n , u = 0, be a corresponding eigenvector, i.e., such that A(λ)u = 0. We prove that for any v ∈ C n such that v * u = 1 and for any µ ∈ C, the functionwhere v * denotes the transpose conjugate of v. Moreover, A(z) has all the eigenvalues of A(z), except for λ which, if µ ∈ A r1,r2 , is replaced by µ, otherwise is removed. We provide explicit expressions which relate the coefficients A i of A(z) = i∈Z z i A i to those of A(z).This transformation, called right shift, is obtained by using a right eigenvector u of A(z). A similar version, called left shift, is given by using a left eigenvector v of A(z). Similarly, a combination of the left and the right shift, leads to a transformation called double shift, which enables one to shift a pair of eigenvalues by operating to the right and to the left of A(z).This result, restricted to a matrix Laurent polynomial A(z) = k −h z i A i , provides a shifted function which is still a matrix Laurent polynomial A(z) = k i=−h z i A i . In the particular case where A(z) = zI − A, we find that A(z) = zI − A is such that A is the matrix given in the classical theorem of Brauer [9]. Therefore, these results provide an extension of Brauer's Theorem 1.1 to matrix Laurent series and to matrix polynomials.A further generalization is obtained by performing the right, left, or double shift simultaneously to a packet of eigenvalues once we are given an invariant (right or le...