File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

full_name: Matrix._aux_Mathlib_LinearAlgebra_Matrix_ZPow___unexpand_Matrix_1
code: local notation "M" => Matrix n' n' R
goal: Lean.PrettyPrinter.Unexpander

full_name: Matrix._aux_Mathlib_LinearAlgebra_Matrix_ZPow___macroRules_Matrix_termM_1
code: local notation "M" => Matrix n' n' R
goal: Lean.Macro

full_name: Matrix.instDivInvMonoid
code: noncomputable instance : DivInvMonoid M 
goal: DivInvMonoid (Matrix n' n' R)

full_name: Matrix.inv_pow'
code: @[simp]
theorem inv_pow' (A : M) (n : ℕ) : A⁻¹ ^ n = (A ^ n)⁻¹ 
goal: A⁻¹ ^ n = (A ^ n)⁻¹

full_name: Matrix.pow_sub'
code: theorem pow_sub' (A : M) {m n : ℕ} (ha : IsUnit A.det) (h : n ≤ m) :
    A ^ (m - n) = A ^ m * (A ^ n)⁻¹ 
goal: A ^ (m - n) = A ^ m * (A ^ n)⁻¹

full_name: Matrix.pow_inv_comm'
code: theorem pow_inv_comm' (A : M) (m n : ℕ) : A⁻¹ ^ m * A ^ n = A ^ n * A⁻¹ ^ m 
goal: A⁻¹ ^ m * A ^ n = A ^ n * A⁻¹ ^ m

full_name: Matrix.one_zpow
code: @[simp]
theorem one_zpow : ∀ n : ℤ, (1 : M) ^ n = 1
  
goal: 1 ^ n = 1

full_name: Matrix.zero_zpow
code: theorem zero_zpow : ∀ z : ℤ, z ≠ 0 → (0 : M) ^ z = 0
  
goal: z ≠ 0 → 0 ^ z = 0

full_name: Matrix.zero_zpow_eq
code: theorem zero_zpow_eq (n : ℤ) : (0 : M) ^ n = if n = 0 then 1 else 0 
goal: 0 ^ n = if n = 0 then 1 else 0

full_name: Matrix.inv_zpow
code: theorem inv_zpow (A : M) : ∀ n : ℤ, A⁻¹ ^ n = (A ^ n)⁻¹
  
goal: A⁻¹ ^ n = (A ^ n)⁻¹

full_name: Matrix.zpow_neg_one
code: @[simp]
theorem zpow_neg_one (A : M) : A ^ (-1 : ℤ) = A⁻¹ 
goal: A ^ (-1) = A⁻¹

full_name: Matrix.zpow_neg_natCast
code: @[simp]
theorem zpow_neg_natCast (A : M) (n : ℕ) : A ^ (-n : ℤ) = (A ^ n)⁻¹ 
goal: A ^ (-↑n) = (A ^ n)⁻¹

full_name: IsUnit.det_zpow
code: theorem _root_.IsUnit.det_zpow {A : M} (h : IsUnit A.det) (n : ℤ) : IsUnit (A ^ n).det 
goal: IsUnit (A ^ n).det

full_name: Matrix.isUnit_det_zpow_iff
code: theorem isUnit_det_zpow_iff {A : M} {z : ℤ} : IsUnit (A ^ z).det ↔ IsUnit A.det ∨ z = 0 
goal: IsUnit (A ^ z).det ↔ IsUnit A.det ∨ z = 0

full_name: Matrix.zpow_neg
code: theorem zpow_neg {A : M} (h : IsUnit A.det) : ∀ n : ℤ, A ^ (-n) = (A ^ n)⁻¹
  
goal: A ^ (-n) = (A ^ n)⁻¹

full_name: Matrix.inv_zpow'
code: theorem inv_zpow' {A : M} (h : IsUnit A.det) (n : ℤ) : A⁻¹ ^ n = A ^ (-n) 
goal: A⁻¹ ^ n = A ^ (-n)

full_name: Matrix.zpow_add_one
code: theorem zpow_add_one {A : M} (h : IsUnit A.det) : ∀ n : ℤ, A ^ (n + 1) = A ^ n * A
  
goal: A ^ (n + 1) = A ^ n * A

full_name: Matrix.zpow_sub_one
code: theorem zpow_sub_one {A : M} (h : IsUnit A.det) (n : ℤ) : A ^ (n - 1) = A ^ n * A⁻¹ 
goal: A ^ (n - 1) = A ^ n * A⁻¹

full_name: Matrix.zpow_add
code: theorem zpow_add {A : M} (ha : IsUnit A.det) (m n : ℤ) : A ^ (m + n) = A ^ m * A ^ n 
goal: A ^ (m + n) = A ^ m * A ^ n

full_name: Matrix.zpow_add_of_nonpos
code: theorem zpow_add_of_nonpos {A : M} {m n : ℤ} (hm : m ≤ 0) (hn : n ≤ 0) :
    A ^ (m + n) = A ^ m * A ^ n 
goal: A ^ (m + n) = A ^ m * A ^ n

full_name: Matrix.zpow_add_of_nonneg
code: theorem zpow_add_of_nonneg {A : M} {m n : ℤ} (hm : 0 ≤ m) (hn : 0 ≤ n) :
    A ^ (m + n) = A ^ m * A ^ n 
goal: A ^ (m + n) = A ^ m * A ^ n

full_name: Matrix.zpow_one_add
code: theorem zpow_one_add {A : M} (h : IsUnit A.det) (i : ℤ) : A ^ (1 + i) = A * A ^ i 
goal: A ^ (1 + i) = A * A ^ i

full_name: Matrix.SemiconjBy.zpow_right
code: theorem SemiconjBy.zpow_right {A X Y : M} (hx : IsUnit X.det) (hy : IsUnit Y.det)
    (h : SemiconjBy A X Y) : ∀ m : ℤ, SemiconjBy A (X ^ m) (Y ^ m)
  
goal: SemiconjBy A (X ^ m) (Y ^ m)

full_name: Matrix.Commute.zpow_right
code: theorem Commute.zpow_right {A B : M} (h : Commute A B) (m : ℤ) : Commute A (B ^ m) 
goal: Commute A (B ^ m)

full_name: Matrix.Commute.zpow_left
code: theorem Commute.zpow_left {A B : M} (h : Commute A B) (m : ℤ) : Commute (A ^ m) B 
goal: Commute (A ^ m) B

full_name: Matrix.Commute.zpow_zpow
code: theorem Commute.zpow_zpow {A B : M} (h : Commute A B) (m n : ℤ) : Commute (A ^ m) (B ^ n) 
goal: Commute (A ^ m) (B ^ n)

full_name: Matrix.Commute.zpow_self
code: theorem Commute.zpow_self (A : M) (n : ℤ) : Commute (A ^ n) A 
goal: Commute (A ^ n) A

full_name: Matrix.Commute.self_zpow
code: theorem Commute.self_zpow (A : M) (n : ℤ) : Commute A (A ^ n) 
goal: Commute A (A ^ n)

full_name: Matrix.Commute.zpow_zpow_self
code: theorem Commute.zpow_zpow_self (A : M) (m n : ℤ) : Commute (A ^ m) (A ^ n) 
goal: Commute (A ^ m) (A ^ n)

full_name: Matrix.zpow_add_one_of_ne_neg_one
code: theorem zpow_add_one_of_ne_neg_one {A : M} : ∀ n : ℤ, n ≠ -1 → A ^ (n + 1) = A ^ n * A
  
goal: n ≠ -1 → A ^ (n + 1) = A ^ n * A

full_name: Matrix.zpow_mul
code: theorem zpow_mul (A : M) (h : IsUnit A.det) : ∀ m n : ℤ, A ^ (m * n) = (A ^ m) ^ n
  
goal: A ^ (m * n) = (A ^ m) ^ n

full_name: Matrix.zpow_mul'
code: theorem zpow_mul' (A : M) (h : IsUnit A.det) (m n : ℤ) : A ^ (m * n) = (A ^ n) ^ m 
goal: A ^ (m * n) = (A ^ n) ^ m

full_name: Matrix.coe_units_zpow
code: @[simp, norm_cast]
theorem coe_units_zpow (u : Mˣ) : ∀ n : ℤ, ((u ^ n : Mˣ) : M) = (u : M) ^ n
  
goal: ↑(u ^ n) = ↑u ^ n

full_name: Matrix.zpow_ne_zero_of_isUnit_det
code: theorem zpow_ne_zero_of_isUnit_det [Nonempty n'] [Nontrivial R] {A : M} (ha : IsUnit A.det)
    (z : ℤ) : A ^ z ≠ 0 
goal: A ^ z ≠ 0

full_name: Matrix.zpow_sub
code: theorem zpow_sub {A : M} (ha : IsUnit A.det) (z1 z2 : ℤ) : A ^ (z1 - z2) = A ^ z1 / A ^ z2 
goal: A ^ (z1 - z2) = A ^ z1 / A ^ z2

full_name: Matrix.Commute.mul_zpow
code: theorem Commute.mul_zpow {A B : M} (h : Commute A B) : ∀ i : ℤ, (A * B) ^ i = A ^ i * B ^ i
  
goal: (A * B) ^ i = A ^ i * B ^ i

full_name: Matrix.zpow_neg_mul_zpow_self
code: theorem zpow_neg_mul_zpow_self (n : ℤ) {A : M} (h : IsUnit A.det) : A ^ (-n) * A ^ n = 1 
goal: A ^ (-n) * A ^ n = 1

full_name: Matrix.one_div_pow
code: theorem one_div_pow {A : M} (n : ℕ) : (1 / A) ^ n = 1 / A ^ n 
goal: (1 / A) ^ n = 1 / A ^ n

full_name: Matrix.one_div_zpow
code: theorem one_div_zpow {A : M} (n : ℤ) : (1 / A) ^ n = 1 / A ^ n 
goal: (1 / A) ^ n = 1 / A ^ n

full_name: Matrix.transpose_zpow
code: @[simp]
theorem transpose_zpow (A : M) : ∀ n : ℤ, (A ^ n)ᵀ = Aᵀ ^ n
  
goal: (A ^ n)ᵀ = Aᵀ ^ n

full_name: Matrix.conjTranspose_zpow
code: @[simp]
theorem conjTranspose_zpow [StarRing R] (A : M) : ∀ n : ℤ, (A ^ n)ᴴ = Aᴴ ^ n
  
goal: (A ^ n)ᴴ = Aᴴ ^ n

full_name: Matrix.IsSymm.zpow
code: theorem IsSymm.zpow {A : M} (h : A.IsSymm) (k : ℤ) :
    (A ^ k).IsSymm 
goal: (A ^ k).IsSymm