Theorem: LieModule.trace_toEnd_weightSpace
File: Mathlib/Algebra/Lie/Weights/Basic.lean

tactic: suffices _root_.IsNilpotent ((toEnd R L (weightSpace M χ) x) - χ x • LinearMap.id) by
  replace this := (isNilpotent_trace_of_isNilpotent this).eq_zero
  rwa [map_sub, map_smul, trace_id, sub_eq_zero, smul_eq_mul, mul_comm,
    ← nsmul_eq_mul] at this
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝¹¹ : CommRing R
inst✝¹⁰ : LieRing L
inst✝⁹ : LieAlgebra R L
inst✝⁸ : LieAlgebra.IsNilpotent R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : IsDomain R
inst✝² : IsPrincipalIdealRing R
inst✝¹ : Module.Free R M
inst✝ : Module.Finite R M
χ : L → R
x : L
⊢ (trace R ↥↑(weightSpace M χ)) ((toEnd R L ↥↑(weightSpace M χ)) x) = finrank R ↥↑(weightSpace M χ) • χ x
state_after: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝¹¹ : CommRing R
inst✝¹⁰ : LieRing L
inst✝⁹ : LieAlgebra R L
inst✝⁸ : LieAlgebra.IsNilpotent R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : IsDomain R
inst✝² : IsPrincipalIdealRing R
inst✝¹ : Module.Free R M
inst✝ : Module.Finite R M
χ : L → R
x : L
⊢ _root_.IsNilpotent ((toEnd R L ↥↑(weightSpace M χ)) x - χ x • LinearMap.id)

tactic: rw [← Module.algebraMap_end_eq_smul_id]
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝¹¹ : CommRing R
inst✝¹⁰ : LieRing L
inst✝⁹ : LieAlgebra R L
inst✝⁸ : LieAlgebra.IsNilpotent R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : IsDomain R
inst✝² : IsPrincipalIdealRing R
inst✝¹ : Module.Free R M
inst✝ : Module.Finite R M
χ : L → R
x : L
⊢ _root_.IsNilpotent ((toEnd R L ↥↑(weightSpace M χ)) x - χ x • LinearMap.id)
state_after: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝¹¹ : CommRing R
inst✝¹⁰ : LieRing L
inst✝⁹ : LieAlgebra R L
inst✝⁸ : LieAlgebra.IsNilpotent R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : IsDomain R
inst✝² : IsPrincipalIdealRing R
inst✝¹ : Module.Free R M
inst✝ : Module.Finite R M
χ : L → R
x : L
⊢ _root_.IsNilpotent ((toEnd R L ↥↑(weightSpace M χ)) x - (algebraMap R (Module.End R ↥↑(weightSpace M χ))) (χ x))

tactic: exact isNilpotent_toEnd_sub_algebraMap M χ x
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝¹¹ : CommRing R
inst✝¹⁰ : LieRing L
inst✝⁹ : LieAlgebra R L
inst✝⁸ : LieAlgebra.IsNilpotent R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : IsDomain R
inst✝² : IsPrincipalIdealRing R
inst✝¹ : Module.Free R M
inst✝ : Module.Finite R M
χ : L → R
x : L
⊢ _root_.IsNilpotent ((toEnd R L ↥↑(weightSpace M χ)) x - (algebraMap R (Module.End R ↥↑(weightSpace M χ))) (χ x))
state_after: no goals

tactic: replace this := (isNilpotent_trace_of_isNilpotent this).eq_zero
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝¹¹ : CommRing R
inst✝¹⁰ : LieRing L
inst✝⁹ : LieAlgebra R L
inst✝⁸ : LieAlgebra.IsNilpotent R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : IsDomain R
inst✝² : IsPrincipalIdealRing R
inst✝¹ : Module.Free R M
inst✝ : Module.Finite R M
χ : L → R
x : L
this : _root_.IsNilpotent ((toEnd R L ↥↑(weightSpace M χ)) x - χ x • LinearMap.id)
⊢ (trace R ↥↑(weightSpace M χ)) ((toEnd R L ↥↑(weightSpace M χ)) x) = finrank R ↥↑(weightSpace M χ) • χ x
state_after: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝¹¹ : CommRing R
inst✝¹⁰ : LieRing L
inst✝⁹ : LieAlgebra R L
inst✝⁸ : LieAlgebra.IsNilpotent R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : IsDomain R
inst✝² : IsPrincipalIdealRing R
inst✝¹ : Module.Free R M
inst✝ : Module.Finite R M
χ : L → R
x : L
this : (trace R ↥↑(weightSpace M χ)) ((toEnd R L ↥↑(weightSpace M χ)) x - χ x • LinearMap.id) = 0
⊢ (trace R ↥↑(weightSpace M χ)) ((toEnd R L ↥↑(weightSpace M χ)) x) = finrank R ↥↑(weightSpace M χ) • χ x

tactic: rwa [map_sub, map_smul, trace_id, sub_eq_zero, smul_eq_mul, mul_comm,
  ← nsmul_eq_mul] at this
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝¹¹ : CommRing R
inst✝¹⁰ : LieRing L
inst✝⁹ : LieAlgebra R L
inst✝⁸ : LieAlgebra.IsNilpotent R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : IsDomain R
inst✝² : IsPrincipalIdealRing R
inst✝¹ : Module.Free R M
inst✝ : Module.Finite R M
χ : L → R
x : L
this : (trace R ↥↑(weightSpace M χ)) ((toEnd R L ↥↑(weightSpace M χ)) x - χ x • LinearMap.id) = 0
⊢ (trace R ↥↑(weightSpace M χ)) ((toEnd R L ↥↑(weightSpace M χ)) x) = finrank R ↥↑(weightSpace M χ) • χ x
state_after: no goals