Theorem: LieModule.exists_forall_lie_eq_smul
File: Mathlib/Algebra/Lie/Weights/Linear.lean

Proof steps:
state_before: R : Type u_1
L : Type u_2
M : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
inst✝⁴ : LieRingModule L M
inst✝³ : LieModule R L M
inst✝² : LieAlgebra.IsNilpotent R L
inst✝¹ : LinearWeights R L M
χ✝ : L → R
inst✝ : IsNoetherian R M
χ : Weight R L M
⊢ ∃ m, m ≠ 0 ∧ ∀ (x : L), ⁅x, m⁆ = χ x • m
state_after: R : Type u_1
L : Type u_2
M : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
inst✝⁴ : LieRingModule L M
inst✝³ : LieModule R L M
inst✝² : LieAlgebra.IsNilpotent R L
inst✝¹ : LinearWeights R L M
χ✝ : L → R
inst✝ : IsNoetherian R M
χ : Weight R L M
hχ : Nontrivial ↥↑(shiftedWeightSpace R L M ⇑χ)
⊢ ∃ m, m ≠ 0 ∧ ∀ (x : L), ⁅x, m⁆ = χ x • m
tactic: replace hχ : Nontrivial (shiftedWeightSpace R L M χ) :=
    (LieSubmodule.nontrivial_iff_ne_bot R L M).mpr χ.weightSpace_ne_bot
state_before: R : Type u_1
L : Type u_2
M : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
inst✝⁴ : LieRingModule L M
inst✝³ : LieModule R L M
inst✝² : LieAlgebra.IsNilpotent R L
inst✝¹ : LinearWeights R L M
χ✝ : L → R
inst✝ : IsNoetherian R M
χ : Weight R L M
hχ : Nontrivial ↥↑(shiftedWeightSpace R L M ⇑χ)
⊢ ∃ m, m ≠ 0 ∧ ∀ (x : L), ⁅x, m⁆ = χ x • m
state_after: case intro.mk.mk
R : Type u_1
L : Type u_2
M : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
inst✝⁴ : LieRingModule L M
inst✝³ : LieModule R L M
inst✝² : LieAlgebra.IsNilpotent R L
inst✝¹ : LinearWeights R L M
χ✝ : L → R
inst✝ : IsNoetherian R M
χ : Weight R L M
hχ : Nontrivial ↥↑(shiftedWeightSpace R L M ⇑χ)
m : M
property✝ : m ∈ ↑(shiftedWeightSpace R L M ⇑χ)
hm₁ : ⟨m, property✝⟩ ∈ ↑(maxTrivSubmodule R L ↥↑(shiftedWeightSpace R L M ⇑χ))
hm₂ : ⟨⟨m, property✝⟩, hm₁⟩ ≠ 0
⊢ ∃ m, m ≠ 0 ∧ ∀ (x : L), ⁅x, m⁆ = χ x • m
tactic: obtain ⟨⟨⟨m, _⟩, hm₁⟩, hm₂⟩ :=
    @exists_ne _ (nontrivial_max_triv_of_isNilpotent R L (shiftedWeightSpace R L M χ)) 0
state_before: case intro.mk.mk
R : Type u_1
L : Type u_2
M : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
inst✝⁴ : LieRingModule L M
inst✝³ : LieModule R L M
inst✝² : LieAlgebra.IsNilpotent R L
inst✝¹ : LinearWeights R L M
χ✝ : L → R
inst✝ : IsNoetherian R M
χ : Weight R L M
hχ : Nontrivial ↥↑(shiftedWeightSpace R L M ⇑χ)
m : M
property✝ : m ∈ ↑(shiftedWeightSpace R L M ⇑χ)
hm₁ : ⟨m, property✝⟩ ∈ ↑(maxTrivSubmodule R L ↥↑(shiftedWeightSpace R L M ⇑χ))
hm₂ : ⟨⟨m, property✝⟩, hm₁⟩ ≠ 0
⊢ ∃ m, m ≠ 0 ∧ ∀ (x : L), ⁅x, m⁆ = χ x • m
state_after: case intro.mk.mk
R : Type u_1
L : Type u_2
M : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
inst✝⁴ : LieRingModule L M
inst✝³ : LieModule R L M
inst✝² : LieAlgebra.IsNilpotent R L
inst✝¹ : LinearWeights R L M
χ✝ : L → R
inst✝ : IsNoetherian R M
χ : Weight R L M
hχ : Nontrivial ↥↑(shiftedWeightSpace R L M ⇑χ)
m : M
property✝ : m ∈ ↑(shiftedWeightSpace R L M ⇑χ)
hm₁✝ : ⟨m, property✝⟩ ∈ ↑(maxTrivSubmodule R L ↥↑(shiftedWeightSpace R L M ⇑χ))
hm₂ : ⟨⟨m, property✝⟩, hm₁✝⟩ ≠ 0
hm₁ : ∀ (x : L), ⁅x, m⁆ = χ x • m
⊢ ∃ m, m ≠ 0 ∧ ∀ (x : L), ⁅x, m⁆ = χ x • m
tactic: simp_rw [LieSubmodule.mem_coeSubmodule, mem_maxTrivSubmodule, Subtype.ext_iff,
    shiftedWeightSpace.coe_lie_shiftedWeightSpace_apply, ZeroMemClass.coe_zero, sub_eq_zero] at hm₁
state_before: case intro.mk.mk
R : Type u_1
L : Type u_2
M : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
inst✝⁴ : LieRingModule L M
inst✝³ : LieModule R L M
inst✝² : LieAlgebra.IsNilpotent R L
inst✝¹ : LinearWeights R L M
χ✝ : L → R
inst✝ : IsNoetherian R M
χ : Weight R L M
hχ : Nontrivial ↥↑(shiftedWeightSpace R L M ⇑χ)
m : M
property✝ : m ∈ ↑(shiftedWeightSpace R L M ⇑χ)
hm₁✝ : ⟨m, property✝⟩ ∈ ↑(maxTrivSubmodule R L ↥↑(shiftedWeightSpace R L M ⇑χ))
hm₂ : ⟨⟨m, property✝⟩, hm₁✝⟩ ≠ 0
hm₁ : ∀ (x : L), ⁅x, m⁆ = χ x • m
⊢ ∃ m, m ≠ 0 ∧ ∀ (x : L), ⁅x, m⁆ = χ x • m
state_after: no goals
tactic: exact ⟨m, by simpa using hm₂, hm₁⟩