Theorem: LieAlgebra.zeroRootSubalgebra_eq_of_is_cartan
File: Mathlib/Algebra/Lie/Weights/Cartan.lean

tactic: refine le_antisymm ?_ (le_zeroRootSubalgebra R L H)
state_before: R : Type u_1
L : Type u_2
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
H✝ : LieSubalgebra R L
inst✝⁶ : IsNilpotent R ↥H✝
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : LieRingModule L M
inst✝² : LieModule R L M
H : LieSubalgebra R L
inst✝¹ : H.IsCartanSubalgebra
inst✝ : IsNoetherian R L
⊢ zeroRootSubalgebra R L H = H
state_after: R : Type u_1
L : Type u_2
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
H✝ : LieSubalgebra R L
inst✝⁶ : IsNilpotent R ↥H✝
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : LieRingModule L M
inst✝² : LieModule R L M
H : LieSubalgebra R L
inst✝¹ : H.IsCartanSubalgebra
inst✝ : IsNoetherian R L
⊢ zeroRootSubalgebra R L H ≤ H

tactic: suffices rootSpace H 0 ≤ H.toLieSubmodule by exact fun x hx => this hx
state_before: R : Type u_1
L : Type u_2
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
H✝ : LieSubalgebra R L
inst✝⁶ : IsNilpotent R ↥H✝
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : LieRingModule L M
inst✝² : LieModule R L M
H : LieSubalgebra R L
inst✝¹ : H.IsCartanSubalgebra
inst✝ : IsNoetherian R L
⊢ zeroRootSubalgebra R L H ≤ H
state_after: R : Type u_1
L : Type u_2
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
H✝ : LieSubalgebra R L
inst✝⁶ : IsNilpotent R ↥H✝
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : LieRingModule L M
inst✝² : LieModule R L M
H : LieSubalgebra R L
inst✝¹ : H.IsCartanSubalgebra
inst✝ : IsNoetherian R L
⊢ rootSpace H 0 ≤ H.toLieSubmodule

tactic: obtain ⟨k, hk⟩ := (rootSpace H 0).isNilpotent_iff_exists_self_le_ucs.mp (by infer_instance)
state_before: R : Type u_1
L : Type u_2
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
H✝ : LieSubalgebra R L
inst✝⁶ : IsNilpotent R ↥H✝
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : LieRingModule L M
inst✝² : LieModule R L M
H : LieSubalgebra R L
inst✝¹ : H.IsCartanSubalgebra
inst✝ : IsNoetherian R L
⊢ rootSpace H 0 ≤ H.toLieSubmodule
state_after: case intro
R : Type u_1
L : Type u_2
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
H✝ : LieSubalgebra R L
inst✝⁶ : IsNilpotent R ↥H✝
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : LieRingModule L M
inst✝² : LieModule R L M
H : LieSubalgebra R L
inst✝¹ : H.IsCartanSubalgebra
inst✝ : IsNoetherian R L
k : ℕ
hk : rootSpace H 0 ≤ LieSubmodule.ucs k ⊥
⊢ rootSpace H 0 ≤ H.toLieSubmodule

tactic: exact hk.trans (LieSubmodule.ucs_le_of_normalizer_eq_self (by simp) k)
state_before: case intro
R : Type u_1
L : Type u_2
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
H✝ : LieSubalgebra R L
inst✝⁶ : IsNilpotent R ↥H✝
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : LieRingModule L M
inst✝² : LieModule R L M
H : LieSubalgebra R L
inst✝¹ : H.IsCartanSubalgebra
inst✝ : IsNoetherian R L
k : ℕ
hk : rootSpace H 0 ≤ LieSubmodule.ucs k ⊥
⊢ rootSpace H 0 ≤ H.toLieSubmodule
state_after: no goals

tactic: exact fun x hx => this hx
state_before: R : Type u_1
L : Type u_2
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
H✝ : LieSubalgebra R L
inst✝⁶ : IsNilpotent R ↥H✝
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : LieRingModule L M
inst✝² : LieModule R L M
H : LieSubalgebra R L
inst✝¹ : H.IsCartanSubalgebra
inst✝ : IsNoetherian R L
this : rootSpace H 0 ≤ H.toLieSubmodule
⊢ zeroRootSubalgebra R L H ≤ H
state_after: no goals

tactic: infer_instance
state_before: R : Type u_1
L : Type u_2
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
H✝ : LieSubalgebra R L
inst✝⁶ : IsNilpotent R ↥H✝
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : LieRingModule L M
inst✝² : LieModule R L M
H : LieSubalgebra R L
inst✝¹ : H.IsCartanSubalgebra
inst✝ : IsNoetherian R L
⊢ LieModule.IsNilpotent R ↥H ↥↑(rootSpace H 0)
state_after: no goals

tactic: simp
state_before: R : Type u_1
L : Type u_2
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
H✝ : LieSubalgebra R L
inst✝⁶ : IsNilpotent R ↥H✝
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : LieRingModule L M
inst✝² : LieModule R L M
H : LieSubalgebra R L
inst✝¹ : H.IsCartanSubalgebra
inst✝ : IsNoetherian R L
k : ℕ
hk : rootSpace H 0 ≤ LieSubmodule.ucs k ⊥
⊢ H.toLieSubmodule.normalizer = H.toLieSubmodule
state_after: no goals