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

Proof steps:
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✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : Module K M
inst✝³ : LieModule K L M
inst✝² : LieAlgebra.IsNilpotent K L
inst✝¹ : FiniteDimensional K M
inst✝ : IsTriangularizable K L M
⊢ ⨆ χ, weightSpace M χ = ⊤
state_after: K : Type u_1
L : Type u_3
M : Type u_4
inst✝⁹ : LieRing L
inst✝⁸ : AddCommGroup M
inst✝⁷ : LieRingModule L M
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : Module K M
inst✝³ : LieModule K L M
inst✝² : LieAlgebra.IsNilpotent K L
inst✝¹ : FiniteDimensional K M
inst✝ : IsTriangularizable K L M
⊢ ⨆ χ, weightSpace M χ = ⊤
tactic: clear! R
state_before: K : Type u_1
L : Type u_3
M : Type u_4
inst✝⁹ : LieRing L
inst✝⁸ : AddCommGroup M
inst✝⁷ : LieRingModule L M
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : Module K M
inst✝³ : LieModule K L M
inst✝² : LieAlgebra.IsNilpotent K L
inst✝¹ : FiniteDimensional K M
inst✝ : IsTriangularizable K L M
⊢ ⨆ χ, weightSpace M χ = ⊤
state_after: case h
K : Type u_1
L : Type u_3
inst✝⁹ : LieRing L
inst✝⁸ : Field K
inst✝⁷ : LieAlgebra K L
inst✝⁶ : LieAlgebra.IsNilpotent K L
n : ℕ
ih :
  ∀ m < n,
    ∀ (M : Type u_4) [inst : AddCommGroup M] [inst_1 : LieRingModule L M] [inst_2 : Module K M]
      [inst_3 : LieModule K L M] [inst_4 : FiniteDimensional K M] [inst_5 : IsTriangularizable K L M],
      finrank K M = m → ⨆ χ, weightSpace M χ = ⊤
M : Type u_4
inst✝⁵ : AddCommGroup M
inst✝⁴ : LieRingModule L M
inst✝³ : Module K M
inst✝² : LieModule K L M
inst✝¹ : FiniteDimensional K M
inst✝ : IsTriangularizable K L M
h_dim : finrank K M = n
⊢ ⨆ χ, weightSpace M χ = ⊤
tactic: induction' h_dim : finrank K M using Nat.strong_induction_on with n ih generalizing M
state_before: case h
K : Type u_1
L : Type u_3
inst✝⁹ : LieRing L
inst✝⁸ : Field K
inst✝⁷ : LieAlgebra K L
inst✝⁶ : LieAlgebra.IsNilpotent K L
n : ℕ
ih :
  ∀ m < n,
    ∀ (M : Type u_4) [inst : AddCommGroup M] [inst_1 : LieRingModule L M] [inst_2 : Module K M]
      [inst_3 : LieModule K L M] [inst_4 : FiniteDimensional K M] [inst_5 : IsTriangularizable K L M],
      finrank K M = m → ⨆ χ, weightSpace M χ = ⊤
M : Type u_4
inst✝⁵ : AddCommGroup M
inst✝⁴ : LieRingModule L M
inst✝³ : Module K M
inst✝² : LieModule K L M
inst✝¹ : FiniteDimensional K M
inst✝ : IsTriangularizable K L M
h_dim : finrank K M = n
⊢ ⨆ χ, weightSpace M χ = ⊤
state_after: case h.inl
K : Type u_1
L : Type u_3
inst✝⁹ : LieRing L
inst✝⁸ : Field K
inst✝⁷ : LieAlgebra K L
inst✝⁶ : LieAlgebra.IsNilpotent K L
n : ℕ
ih :
  ∀ m < n,
    ∀ (M : Type u_4) [inst : AddCommGroup M] [inst_1 : LieRingModule L M] [inst_2 : Module K M]
      [inst_3 : LieModule K L M] [inst_4 : FiniteDimensional K M] [inst_5 : IsTriangularizable K L M],
      finrank K M = m → ⨆ χ, weightSpace M χ = ⊤
M : Type u_4
inst✝⁵ : AddCommGroup M
inst✝⁴ : LieRingModule L M
inst✝³ : Module K M
inst✝² : LieModule K L M
inst✝¹ : FiniteDimensional K M
inst✝ : IsTriangularizable K L M
h_dim : finrank K M = n
h' : ∀ (a : L), ∃ φ, weightSpaceOf M φ a = ⊤
⊢ ⨆ χ, weightSpace M χ = ⊤

case h.inr.intro
K : Type u_1
L : Type u_3
inst✝⁹ : LieRing L
inst✝⁸ : Field K
inst✝⁷ : LieAlgebra K L
inst✝⁶ : LieAlgebra.IsNilpotent K L
n : ℕ
ih :
  ∀ m < n,
    ∀ (M : Type u_4) [inst : AddCommGroup M] [inst_1 : LieRingModule L M] [inst_2 : Module K M]
      [inst_3 : LieModule K L M] [inst_4 : FiniteDimensional K M] [inst_5 : IsTriangularizable K L M],
      finrank K M = m → ⨆ χ, weightSpace M χ = ⊤
M : Type u_4
inst✝⁵ : AddCommGroup M
inst✝⁴ : LieRingModule L M
inst✝³ : Module K M
inst✝² : LieModule K L M
inst✝¹ : FiniteDimensional K M
inst✝ : IsTriangularizable K L M
h_dim : finrank K M = n
y : L
hy : ¬∃ φ, weightSpaceOf M φ y = ⊤
⊢ ⨆ χ, weightSpace M χ = ⊤
tactic: obtain h' | ⟨y : L, hy : ¬ ∃ φ, weightSpaceOf M φ y = ⊤⟩ :=
    forall_or_exists_not (fun (x : L) ↦ ∃ (φ : K), weightSpaceOf M φ x = ⊤)