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
@[implicit_reducible]
noncomputable instance
Matrix.instDivInvMonoid
{n' : Type u_1}
[DecidableEq n']
[Fintype n']
{R : Type u_2}
[CommRing R]
:
DivInvMonoid (Matrix n' n' R)
@[simp]
@[simp]
theorem
Matrix.one_zpow
{n' : Type u_1}
[DecidableEq n']
[Fintype n']
{R : Type u_2}
[CommRing R]
(n : โค)
:
1 ^ n = 1
theorem
Matrix.zero_zpow
{n' : Type u_1}
[DecidableEq n']
[Fintype n']
{R : Type u_2}
[CommRing R]
(z : โค)
:
z โ 0 โ 0 ^ z = 0
theorem
Matrix.zero_zpow_eq
{n' : Type u_1}
[DecidableEq n']
[Fintype n']
{R : Type u_2}
[CommRing R]
(n : โค)
:
0 ^ n = if n = 0 then 1 else 0
@[simp]
@[simp]
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)
@[simp]
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 : โค)
:
A ^ z โ 0
@[simp]
@[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 : โค)
:
(A ^ n).conjTranspose = A.conjTranspose ^ n