Theorem: LinearMap.commute_pow_left_of_commute
File: Mathlib/LinearAlgebra/Basic.lean

tactic: induction' k with k ih
state_before: R : Type u_1
R₁ : Type ?u.149423
R₂ : Type u_2
R₃ : Type ?u.149429
R₄ : Type ?u.149432
S : Type ?u.149435
K : Type ?u.149438
K₂ : Type ?u.149441
M : Type u_3
M' : Type ?u.149447
M₁ : Type ?u.149450
M₂ : Type u_4
M₃ : Type ?u.149456
M₄ : Type ?u.149459
N : Type ?u.149462
N₂ : Type ?u.149465
ι : Type ?u.149468
V : Type ?u.149471
V₂ : Type ?u.149474
inst✝¹⁷ : Semiring R
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
inst✝¹⁴ : Semiring R₄
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid M₁
inst✝¹¹ : AddCommMonoid M₂
inst✝¹⁰ : AddCommMonoid M₃
inst✝⁹ : AddCommMonoid M₄
inst✝⁸ : Module R M
inst✝⁷ : Module R M₁
inst✝⁶ : Module R₂ M₂
inst✝⁵ : Module R₃ M₃
inst✝⁴ : Module R₄ M₄
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₃₄ : R₃ →+* R₄
σ₁₃ : R →+* R₃
σ₂₄ : R₂ →+* R₄
σ₁₄ : R →+* R₄
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝² : RingHomCompTriple σ₂₃ σ₃₄ σ₂₄
inst✝¹ : RingHomCompTriple σ₁₃ σ₃₄ σ₁₄
inst✝ : RingHomCompTriple σ₁₂ σ₂₄ σ₁₄
f✝ : M →ₛₗ[σ₁₂] M₂
g✝ : M₂ →ₛₗ[σ₂₃] M₃
f : M →ₛₗ[σ₁₂] M₂
g : Module.End R M
g₂ : Module.End R₂ M₂
h : comp g₂ f = comp f g
k : ℕ
⊢ comp (g₂ ^ k) f = comp f (g ^ k)

tactic: simp only [pow_zero, Nat.zero_eq]
state_before: case zero
R : Type u_1
R₁ : Type ?u.149423
R₂ : Type u_2
R₃ : Type ?u.149429
R₄ : Type ?u.149432
S : Type ?u.149435
K : Type ?u.149438
K₂ : Type ?u.149441
M : Type u_3
M' : Type ?u.149447
M₁ : Type ?u.149450
M₂ : Type u_4
M₃ : Type ?u.149456
M₄ : Type ?u.149459
N : Type ?u.149462
N₂ : Type ?u.149465
ι : Type ?u.149468
V : Type ?u.149471
V₂ : Type ?u.149474
inst✝¹⁷ : Semiring R
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
inst✝¹⁴ : Semiring R₄
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid M₁
inst✝¹¹ : AddCommMonoid M₂
inst✝¹⁰ : AddCommMonoid M₃
inst✝⁹ : AddCommMonoid M₄
inst✝⁸ : Module R M
inst✝⁷ : Module R M₁
inst✝⁶ : Module R₂ M₂
inst✝⁵ : Module R₃ M₃
inst✝⁴ : Module R₄ M₄
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₃₄ : R₃ →+* R₄
σ₁₃ : R →+* R₃
σ₂₄ : R₂ →+* R₄
σ₁₄ : R →+* R₄
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝² : RingHomCompTriple σ₂₃ σ₃₄ σ₂₄
inst✝¹ : RingHomCompTriple σ₁₃ σ₃₄ σ₁₄
inst✝ : RingHomCompTriple σ₁₂ σ₂₄ σ₁₄
f✝ : M →ₛₗ[σ₁₂] M₂
g✝ : M₂ →ₛₗ[σ₂₃] M₃
f : M →ₛₗ[σ₁₂] M₂
g : Module.End R M
g₂ : Module.End R₂ M₂
h : comp g₂ f = comp f g
⊢ comp (g₂ ^ Nat.zero) f = comp f (g ^ Nat.zero)

tactic: rfl
state_before: case zero
R : Type u_1
R₁ : Type ?u.149423
R₂ : Type u_2
R₃ : Type ?u.149429
R₄ : Type ?u.149432
S : Type ?u.149435
K : Type ?u.149438
K₂ : Type ?u.149441
M : Type u_3
M' : Type ?u.149447
M₁ : Type ?u.149450
M₂ : Type u_4
M₃ : Type ?u.149456
M₄ : Type ?u.149459
N : Type ?u.149462
N₂ : Type ?u.149465
ι : Type ?u.149468
V : Type ?u.149471
V₂ : Type ?u.149474
inst✝¹⁷ : Semiring R
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
inst✝¹⁴ : Semiring R₄
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid M₁
inst✝¹¹ : AddCommMonoid M₂
inst✝¹⁰ : AddCommMonoid M₃
inst✝⁹ : AddCommMonoid M₄
inst✝⁸ : Module R M
inst✝⁷ : Module R M₁
inst✝⁶ : Module R₂ M₂
inst✝⁵ : Module R₃ M₃
inst✝⁴ : Module R₄ M₄
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₃₄ : R₃ →+* R₄
σ₁₃ : R →+* R₃
σ₂₄ : R₂ →+* R₄
σ₁₄ : R →+* R₄
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝² : RingHomCompTriple σ₂₃ σ₃₄ σ₂₄
inst✝¹ : RingHomCompTriple σ₁₃ σ₃₄ σ₁₄
inst✝ : RingHomCompTriple σ₁₂ σ₂₄ σ₁₄
f✝ : M →ₛₗ[σ₁₂] M₂
g✝ : M₂ →ₛₗ[σ₂₃] M₃
f : M →ₛₗ[σ₁₂] M₂
g : Module.End R M
g₂ : Module.End R₂ M₂
h : comp g₂ f = comp f g
⊢ comp 1 f = comp f 1

tactic: rw [pow_succ, pow_succ, LinearMap.mul_eq_comp, LinearMap.comp_assoc, ih, ← LinearMap.comp_assoc,
  h, LinearMap.comp_assoc, LinearMap.mul_eq_comp]
state_before: case succ
R : Type u_1
R₁ : Type ?u.149423
R₂ : Type u_2
R₃ : Type ?u.149429
R₄ : Type ?u.149432
S : Type ?u.149435
K : Type ?u.149438
K₂ : Type ?u.149441
M : Type u_3
M' : Type ?u.149447
M₁ : Type ?u.149450
M₂ : Type u_4
M₃ : Type ?u.149456
M₄ : Type ?u.149459
N : Type ?u.149462
N₂ : Type ?u.149465
ι : Type ?u.149468
V : Type ?u.149471
V₂ : Type ?u.149474
inst✝¹⁷ : Semiring R
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
inst✝¹⁴ : Semiring R₄
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid M₁
inst✝¹¹ : AddCommMonoid M₂
inst✝¹⁰ : AddCommMonoid M₃
inst✝⁹ : AddCommMonoid M₄
inst✝⁸ : Module R M
inst✝⁷ : Module R M₁
inst✝⁶ : Module R₂ M₂
inst✝⁵ : Module R₃ M₃
inst✝⁴ : Module R₄ M₄
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₃₄ : R₃ →+* R₄
σ₁₃ : R →+* R₃
σ₂₄ : R₂ →+* R₄
σ₁₄ : R →+* R₄
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝² : RingHomCompTriple σ₂₃ σ₃₄ σ₂₄
inst✝¹ : RingHomCompTriple σ₁₃ σ₃₄ σ₁₄
inst✝ : RingHomCompTriple σ₁₂ σ₂₄ σ₁₄
f✝ : M →ₛₗ[σ₁₂] M₂
g✝ : M₂ →ₛₗ[σ₂₃] M₃
f : M →ₛₗ[σ₁₂] M₂
g : Module.End R M
g₂ : Module.End R₂ M₂
h : comp g₂ f = comp f g
k : ℕ
ih : comp (g₂ ^ k) f = comp f (g ^ k)
⊢ comp (g₂ ^ Nat.succ k) f = comp f (g ^ Nat.succ k)