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
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 = let __src := let_fun this := inferInstance; this; let __src_1 := let_fun this := inferInstance; this; DivInvMonoid.mk ⋯ zpowRec ⋯ ⋯ ⋯
@[simp]
theorem
Matrix.one_zpow
{n' : Type u_1}
[DecidableEq n']
[Fintype n']
{R : Type u_2}
[CommRing R]
(n : ℤ)
:
@[deprecated Matrix.zpow_neg_natCast]
theorem
Matrix.zpow_neg_coe_nat
{n' : Type u_1}
[DecidableEq n']
[Fintype n']
{R : Type u_2}
[CommRing R]
(A : Matrix n' n' R)
(n : ℕ)
:
Alias of Matrix.zpow_neg_natCast
.
theorem
Matrix.SemiconjBy.zpow_right
{n' : Type u_1}
[DecidableEq n']
[Fintype n']
{R : Type u_2}
[CommRing R]
{A : Matrix n' n' R}
{X : Matrix n' n' R}
{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 : ℤ)
:
theorem
Matrix.IsSymm.zpow
{n' : Type u_1}
[DecidableEq n']
[Fintype n']
{R : Type u_2}
[CommRing R]
{A : Matrix n' n' R}
(h : A.IsSymm)
(k : ℤ)
:
(A ^ k).IsSymm