Integer powers of square matrices #
In this file, we define integer power of matrices, relying on the nonsingular inverse definition for negative powers.
Implementation details #
The main definition is a direct recursive call on the integer inductive type,
as provided by the DivInvMonoid.Pow default implementation.
The lemma names are taken from Algebra.GroupWithZero.Power.
Tags #
matrix inverse, matrix powers
@[instance_reducible]
noncomputable instance Matrix.instDivInvMonoid {n' : Type u_1} [DecidableEq n'] [Fintype n'] {R : Type u_2} [CommRing R] :
DivInvMonoid (Matrix n' n' R)
Equations
- Matrix.instDivInvMonoid = { toMonoid := inferInstance, toInv := inferInstance, div := DivInvMonoid.div', zpow := zpowRec, div_eq_mul_inv := ⋯, zpow_zero' := ⋯, zpow_succ' := ⋯, zpow_neg' := ⋯ }
@[simp]
theorem Matrix.one_zpow {n' : Type u_1} [DecidableEq n'] [Fintype n'] {R : Type u_2} [CommRing R] (n : ℤ) :
theorem Matrix.SemiconjBy.zpow_right {n' : Type u_1} [DecidableEq n'] [Fintype n'] {R : Type u_2} [CommRing R] {A X Y : Matrix n' n' R} (hx : IsUnit X.det) (hy : IsUnit Y.det) (h : SemiconjBy A X Y) (m : ℤ) :
SemiconjBy A (X ^ m) (Y ^ m)
theorem Matrix.zpow_ne_zero_of_isUnit_det {n' : Type u_1} [DecidableEq n'] [Fintype n'] {R : Type u_2} [CommRing R] [Nonempty n'] [Nontrivial R] {A : Matrix n' n' R} (ha : IsUnit A.det) (z : ℤ) :
@[simp]
theorem Matrix.conjTranspose_zpow {n' : Type u_1} [DecidableEq n'] [Fintype n'] {R : Type u_2} [CommRing R] [StarRing R] (A : Matrix n' n' R) (n : ℤ) :