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

tactic: suffices ∀ χ (s : Finset (L → R)) (_ : χ ∉ s),
    Disjoint (weightSpace M χ) (s.sup fun (χ : L → R) ↦ weightSpace M χ) by
  simpa only [CompleteLattice.independent_iff_supIndep_of_injOn (injOn_weightSpace R L M),
    Finset.supIndep_iff_disjoint_erase] using fun s χ _ ↦ this _ _ (s.not_mem_erase χ)
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✝ : NoZeroSMulDivisors R M
⊢ CompleteLattice.Independent fun χ => weightSpace M χ
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✝ : NoZeroSMulDivisors R M
⊢ ∀ (χ : L → R) (s : Finset (L → R)), χ ∉ s → Disjoint (weightSpace M χ) (s.sup fun χ => weightSpace M χ)

tactic: intro χ₁ s
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✝ : NoZeroSMulDivisors R M
⊢ ∀ (χ : L → R) (s : Finset (L → R)), χ ∉ s → Disjoint (weightSpace M χ) (s.sup fun χ => weightSpace M χ)
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✝ : NoZeroSMulDivisors R M
χ₁ : L → R
s : Finset (L → R)
⊢ χ₁ ∉ s → Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)

tactic: induction' s using Finset.induction_on with χ₂ s _ ih
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✝ : NoZeroSMulDivisors R M
χ₁ : L → R
s : Finset (L → R)
⊢ χ₁ ∉ s → Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
state_after: case empty
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✝ : NoZeroSMulDivisors R M
χ₁ : L → R
⊢ χ₁ ∉ ∅ → Disjoint (weightSpace M χ₁) (∅.sup fun χ => weightSpace M χ)

case insert
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
ih : χ₁ ∉ s → Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
⊢ χ₁ ∉ insert χ₂ s → Disjoint (weightSpace M χ₁) ((insert χ₂ s).sup fun χ => weightSpace M χ)

tactic: intro hχ₁₂
state_before: case insert
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
ih : χ₁ ∉ s → Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
⊢ χ₁ ∉ insert χ₂ s → Disjoint (weightSpace M χ₁) ((insert χ₂ s).sup fun χ => weightSpace M χ)
state_after: case insert
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
ih : χ₁ ∉ s → Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
hχ₁₂ : χ₁ ∉ insert χ₂ s
⊢ Disjoint (weightSpace M χ₁) ((insert χ₂ s).sup fun χ => weightSpace M χ)

tactic: obtain ⟨hχ₁₂ : χ₁ ≠ χ₂, hχ₁ : χ₁ ∉ s⟩ := by rwa [Finset.mem_insert, not_or] at hχ₁₂
state_before: case insert
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
ih : χ₁ ∉ s → Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
hχ₁₂ : χ₁ ∉ insert χ₂ s
⊢ Disjoint (weightSpace M χ₁) ((insert χ₂ s).sup fun χ => weightSpace M χ)
state_after: case insert.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
ih : χ₁ ∉ s → Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
⊢ Disjoint (weightSpace M χ₁) ((insert χ₂ s).sup fun χ => weightSpace M χ)

tactic: specialize ih hχ₁
state_before: case insert.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
ih : χ₁ ∉ s → Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
⊢ Disjoint (weightSpace M χ₁) ((insert χ₂ s).sup fun χ => weightSpace M χ)
state_after: case insert.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
⊢ Disjoint (weightSpace M χ₁) ((insert χ₂ s).sup fun χ => weightSpace M χ)

tactic: rw [Finset.sup_insert, disjoint_iff, LieSubmodule.eq_bot_iff]
state_before: case insert.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
⊢ Disjoint (weightSpace M χ₁) ((insert χ₂ s).sup fun χ => weightSpace M χ)
state_after: case insert.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
⊢ ∀ m ∈ weightSpace M χ₁ ⊓ (weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ), m = 0

tactic: rintro x ⟨hx, hx'⟩
state_before: case insert.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
⊢ ∀ m ∈ weightSpace M χ₁ ⊓ (weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ), m = 0
state_after: case insert.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
x : M
hx : x ∈ ↑↑(weightSpace M χ₁)
hx' : x ∈ ↑↑(weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ)
⊢ x = 0

tactic: simp only [SetLike.mem_coe, LieSubmodule.mem_coeSubmodule] at hx hx'
state_before: case insert.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
x : M
hx : x ∈ ↑↑(weightSpace M χ₁)
hx' : x ∈ ↑↑(weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ)
⊢ x = 0
state_after: case insert.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
x : M
hx : x ∈ weightSpace M χ₁
hx' : x ∈ weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ
⊢ x = 0

tactic: suffices x ∈ weightSpace M χ₂ by
  rw [← LieSubmodule.mem_bot (R := R) (L := L), ← (disjoint_weightSpace R L M hχ₁₂).eq_bot]
  exact ⟨hx, this⟩
state_before: case insert.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
x : M
hx : x ∈ weightSpace M χ₁
hx' : x ∈ weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ
⊢ x = 0
state_after: case insert.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
x : M
hx : x ∈ weightSpace M χ₁
hx' : x ∈ weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ
⊢ x ∈ weightSpace M χ₂

tactic: obtain ⟨y, hy, z, hz, rfl⟩ := (LieSubmodule.mem_sup _ _ _).mp hx'
state_before: case insert.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
x : M
hx : x ∈ weightSpace M χ₁
hx' : x ∈ weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ
⊢ x ∈ weightSpace M χ₂
state_after: case insert.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
hx' : y + z ∈ weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ
⊢ y + z ∈ weightSpace M χ₂

tactic: clear hx'
state_before: case insert.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
hx' : y + z ∈ weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ
⊢ y + z ∈ weightSpace M χ₂
state_after: case insert.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
⊢ y + z ∈ weightSpace M χ₂

tactic: suffices ∀ l, ∃ (k : ℕ),
    ((toEnd R L M l - algebraMap R (Module.End R M) (χ₂ l)) ^ k) (y + z) ∈
    weightSpace M χ₁ ⊓ Finset.sup s fun χ ↦ weightSpace M χ by
  simpa only [ih.eq_bot, LieSubmodule.mem_bot, mem_weightSpace] using this
state_before: case insert.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
⊢ y + z ∈ weightSpace M χ₂
state_after: case insert.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
⊢ ∀ (l : L),
    ∃ k,
      (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈
        weightSpace M χ₁ ⊓ s.sup fun χ => weightSpace M χ

tactic: intro l
state_before: case insert.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
⊢ ∀ (l : L),
    ∃ k,
      (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈
        weightSpace M χ₁ ⊓ s.sup fun χ => weightSpace M χ
state_after: case insert.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
⊢ ∃ k,
    (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈
      weightSpace M χ₁ ⊓ s.sup fun χ => weightSpace M χ

tactic: let g : Module.End R M := toEnd R L M l - algebraMap R (Module.End R M) (χ₂ l)
state_before: case insert.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
⊢ ∃ k,
    (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈
      weightSpace M χ₁ ⊓ s.sup fun χ => weightSpace M χ
state_after: case insert.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
⊢ ∃ k,
    (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈
      weightSpace M χ₁ ⊓ s.sup fun χ => weightSpace M χ

tactic: obtain ⟨k, hk : (g ^ k) y = 0⟩ := (mem_weightSpace _ _ _).mp hy l
state_before: case insert.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
⊢ ∃ k,
    (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈
      weightSpace M χ₁ ⊓ s.sup fun χ => weightSpace M χ
state_after: case insert.intro.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ ∃ k,
    (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈
      weightSpace M χ₁ ⊓ s.sup fun χ => weightSpace M χ

tactic: refine ⟨k, (LieSubmodule.mem_inf _ _ _).mp ⟨?_, ?_⟩⟩
state_before: case insert.intro.intro.intro.intro.intro.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ ∃ k,
    (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈
      weightSpace M χ₁ ⊓ s.sup fun χ => weightSpace M χ
state_after: case insert.intro.intro.intro.intro.intro.intro.intro.refine_1
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈ ↑↑(weightSpace M χ₁)

case insert.intro.intro.intro.intro.intro.intro.intro.refine_2
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈ ↑↑(s.sup fun χ => weightSpace M χ)

tactic: simpa only [CompleteLattice.independent_iff_supIndep_of_injOn (injOn_weightSpace R L M),
  Finset.supIndep_iff_disjoint_erase] using fun s χ _ ↦ this _ _ (s.not_mem_erase χ)
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✝ : NoZeroSMulDivisors R M
this : ∀ (χ : L → R) (s : Finset (L → R)), χ ∉ s → Disjoint (weightSpace M χ) (s.sup fun χ => weightSpace M χ)
⊢ CompleteLattice.Independent fun χ => weightSpace M χ
state_after: no goals

tactic: simp
state_before: case empty
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✝ : NoZeroSMulDivisors R M
χ₁ : L → R
⊢ χ₁ ∉ ∅ → Disjoint (weightSpace M χ₁) (∅.sup fun χ => weightSpace M χ)
state_after: no goals

tactic: rwa [Finset.mem_insert, not_or] at hχ₁₂
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
ih : χ₁ ∉ s → Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
hχ₁₂ : χ₁ ∉ insert χ₂ s
⊢ ?m.683583
state_after: no goals

tactic: rw [← LieSubmodule.mem_bot (R := R) (L := L), ← (disjoint_weightSpace R L M hχ₁₂).eq_bot]
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
x : M
hx : x ∈ weightSpace M χ₁
hx' : x ∈ weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ
this : x ∈ weightSpace M χ₂
⊢ x = 0
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
x : M
hx : x ∈ weightSpace M χ₁
hx' : x ∈ weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ
this : x ∈ weightSpace M χ₂
⊢ x ∈ weightSpace M χ₁ ⊓ weightSpace M χ₂

tactic: exact ⟨hx, 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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
x : M
hx : x ∈ weightSpace M χ₁
hx' : x ∈ weightSpace M χ₂ ⊔ s.sup fun χ => weightSpace M χ
this : x ∈ weightSpace M χ₂
⊢ x ∈ weightSpace M χ₁ ⊓ weightSpace M χ₂
state_after: no goals

tactic: simpa only [ih.eq_bot, LieSubmodule.mem_bot, mem_weightSpace] using 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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
this :
  ∀ (l : L),
    ∃ k,
      (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈
        weightSpace M χ₁ ⊓ s.sup fun χ => weightSpace M χ
⊢ y + z ∈ weightSpace M χ₂
state_after: no goals

tactic: exact LieSubmodule.mapsTo_pow_toEnd_sub_algebraMap _ hx
state_before: case insert.intro.intro.intro.intro.intro.intro.intro.refine_1
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈ ↑↑(weightSpace M χ₁)
state_after: no goals

tactic: rw [map_add, hk, zero_add]
state_before: case insert.intro.intro.intro.intro.intro.intro.intro.refine_2
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) (y + z) ∈ ↑↑(s.sup fun χ => weightSpace M χ)
state_after: case insert.intro.intro.intro.intro.intro.intro.intro.refine_2
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) z ∈ ↑↑(s.sup fun χ => weightSpace M χ)

tactic: suffices (s.sup fun χ ↦ weightSpace M χ : Submodule R M).map (g ^ k) ≤
    s.sup fun χ ↦ weightSpace M χ by
  refine this (Submodule.mem_map_of_mem ?_)
  simp_rw [← LieSubmodule.mem_coeSubmodule, Finset.sup_eq_iSup,
    LieSubmodule.iSup_coe_toSubmodule, ← Finset.sup_eq_iSup] at hz
  exact hz
state_before: case insert.intro.intro.intro.intro.intro.intro.intro.refine_2
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) z ∈ ↑↑(s.sup fun χ => weightSpace M χ)
state_after: case insert.intro.intro.intro.intro.intro.intro.intro.refine_2
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ Submodule.map (g ^ k) (s.sup fun χ => ↑(weightSpace M χ)) ≤ ↑(s.sup fun χ => weightSpace M χ)

tactic: simp_rw [Finset.sup_eq_iSup, Submodule.map_iSup (ι := L → R), Submodule.map_iSup (ι := _ ∈ s),
  LieSubmodule.iSup_coe_toSubmodule]
state_before: case insert.intro.intro.intro.intro.intro.intro.intro.refine_2
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ Submodule.map (g ^ k) (s.sup fun χ => ↑(weightSpace M χ)) ≤ ↑(s.sup fun χ => weightSpace M χ)
state_after: case insert.intro.intro.intro.intro.intro.intro.intro.refine_2
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ ⨆ i ∈ s, Submodule.map (g ^ k) ↑(weightSpace M i) ≤ ⨆ i ∈ s, ↑(weightSpace M i)

tactic: refine iSup₂_mono fun χ _ ↦ ?_
state_before: case insert.intro.intro.intro.intro.intro.intro.intro.refine_2
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
⊢ ⨆ i ∈ s, Submodule.map (g ^ k) ↑(weightSpace M i) ≤ ⨆ i ∈ s, ↑(weightSpace M i)
state_after: case insert.intro.intro.intro.intro.intro.intro.intro.refine_2
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
χ : L → R
x✝ : χ ∈ s
⊢ Submodule.map (g ^ k) ↑(weightSpace M χ) ≤ ↑(weightSpace M χ)

tactic: rintro - ⟨u, hu, rfl⟩
state_before: case insert.intro.intro.intro.intro.intro.intro.intro.refine_2
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
χ : L → R
x✝ : χ ∈ s
⊢ Submodule.map (g ^ k) ↑(weightSpace M χ) ≤ ↑(weightSpace M χ)
state_after: case insert.intro.intro.intro.intro.intro.intro.intro.refine_2.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
χ : L → R
x✝ : χ ∈ s
u : M
hu : u ∈ ↑↑(weightSpace M χ)
⊢ (g ^ k) u ∈ ↑(weightSpace M χ)

tactic: exact LieSubmodule.mapsTo_pow_toEnd_sub_algebraMap _ hu
state_before: case insert.intro.intro.intro.intro.intro.intro.intro.refine_2.intro.intro
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
χ : L → R
x✝ : χ ∈ s
u : M
hu : u ∈ ↑↑(weightSpace M χ)
⊢ (g ^ k) u ∈ ↑(weightSpace M χ)
state_after: no goals

tactic: refine this (Submodule.mem_map_of_mem ?_)
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
this : Submodule.map (g ^ k) (s.sup fun χ => ↑(weightSpace M χ)) ≤ ↑(s.sup fun χ => weightSpace M χ)
⊢ (((toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)) ^ k) z ∈ ↑↑(s.sup fun χ => weightSpace M χ)
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
this : Submodule.map (g ^ k) (s.sup fun χ => ↑(weightSpace M χ)) ≤ ↑(s.sup fun χ => weightSpace M χ)
⊢ z ∈ s.sup fun χ => ↑(weightSpace M χ)

tactic: simp_rw [← LieSubmodule.mem_coeSubmodule, Finset.sup_eq_iSup,
  LieSubmodule.iSup_coe_toSubmodule, ← Finset.sup_eq_iSup] at hz
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hz : z ∈ s.sup fun χ => weightSpace M χ
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
this : Submodule.map (g ^ k) (s.sup fun χ => ↑(weightSpace M χ)) ≤ ↑(s.sup fun χ => weightSpace M χ)
⊢ z ∈ s.sup fun χ => ↑(weightSpace M χ)
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
this : Submodule.map (g ^ k) (s.sup fun χ => ↑(weightSpace M χ)) ≤ ↑(s.sup fun χ => weightSpace M χ)
hz : z ∈ s.sup fun a => ↑(weightSpace M a)
⊢ z ∈ s.sup fun χ => ↑(weightSpace M χ)

tactic: exact hz
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✝ : NoZeroSMulDivisors R M
χ₁ χ₂ : L → R
s : Finset (L → R)
a✝ : χ₂ ∉ s
hχ₁₂✝ : χ₁ ∉ insert χ₂ s
hχ₁₂ : χ₁ ≠ χ₂
hχ₁ : χ₁ ∉ s
ih : Disjoint (weightSpace M χ₁) (s.sup fun χ => weightSpace M χ)
y : M
hy : y ∈ weightSpace M χ₂
z : M
hx : y + z ∈ weightSpace M χ₁
l : L
g : Module.End R M := (toEnd R L M) l - (algebraMap R (Module.End R M)) (χ₂ l)
k : ℕ
hk : (g ^ k) y = 0
this : Submodule.map (g ^ k) (s.sup fun χ => ↑(weightSpace M χ)) ≤ ↑(s.sup fun χ => weightSpace M χ)
hz : z ∈ s.sup fun a => ↑(weightSpace M a)
⊢ z ∈ s.sup fun χ => ↑(weightSpace M χ)
state_after: no goals