Theorem: LieModule.eq_zero_of_mem_weightSpace_mem_posFitting
File: Mathlib/Algebra/Lie/TraceForm.lean

Proof steps:
state_before: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
hB : ∀ (x : L) (m n : M), (B ⁅x, m⁆) n = -(B m) ⁅x, n⁆
m₀ m₁ : M
hm₀ : m₀ ∈ weightSpace M 0
hm₁ : m₁ ∈ posFittingComp R L M
⊢ (B m₀) m₁ = 0
state_after: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ m₁ : M
hm₀ : m₀ ∈ weightSpace M 0
hm₁ : m₁ ∈ posFittingComp R L M
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
⊢ (B m₀) m₁ = 0
tactic: replace hB : ∀ x (k : ℕ) m n, B m ((φ x ^ k) n) = (- 1 : R) ^ k • B ((φ x ^ k) m) n := by
    intro x k
    induction k with
    | zero => simp
    | succ k ih =>
    intro m n
    replace hB : ∀ m, B m (φ x n) = (- 1 : R) • B (φ x m) n := by simp [hB]
    have : (-1 : R) ^ k • (-1 : R) = (-1 : R) ^ (k + 1) := by rw [pow_succ (-1 : R), smul_eq_mul]
    conv_lhs => rw [pow_succ, LinearMap.mul_eq_comp, LinearMap.comp_apply, ih, hB,
      ← (φ x).comp_apply, ← LinearMap.mul_eq_comp, ← pow_succ', ← smul_assoc, this]
state_before: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ m₁ : M
hm₀ : m₀ ∈ weightSpace M 0
hm₁ : m₁ ∈ posFittingComp R L M
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
⊢ (B m₀) m₁ = 0
state_after: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ m₁ : M
hm₀ : m₀ ∈ weightSpace M 0
hm₁ : m₁ ∈ posFittingComp R L M
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
⊢ ∀ (x : L), ∀ m ∈ posFittingCompOf R M x, (B m₀) m = 0
tactic: suffices ∀ (x : L) m, m ∈ posFittingCompOf R M x → B m₀ m = 0 by
    apply LieSubmodule.iSup_induction _ hm₁ this (map_zero _)
    aesop
state_before: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ m₁ : M
hm₀ : m₀ ∈ weightSpace M 0
hm₁ : m₁ ∈ posFittingComp R L M
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
⊢ ∀ (x : L), ∀ m ∈ posFittingCompOf R M x, (B m₀) m = 0
state_after: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ : M
hm₀ : m₀ ∈ weightSpace M 0
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
⊢ ∀ (x : L), ∀ m ∈ posFittingCompOf R M x, (B m₀) m = 0
tactic: clear hm₁ m₁
state_before: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ : M
hm₀ : m₀ ∈ weightSpace M 0
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
⊢ ∀ (x : L), ∀ m ∈ posFittingCompOf R M x, (B m₀) m = 0
state_after: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ : M
hm₀ : m₀ ∈ weightSpace M 0
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
x : L
m₁ : M
hm₁ : m₁ ∈ posFittingCompOf R M x
⊢ (B m₀) m₁ = 0
tactic: intro x m₁ hm₁
state_before: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ : M
hm₀ : m₀ ∈ weightSpace M 0
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
x : L
m₁ : M
hm₁ : m₁ ∈ posFittingCompOf R M x
⊢ (B m₀) m₁ = 0
state_after: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ : M
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
x : L
m₁ : M
hm₁ : m₁ ∈ posFittingCompOf R M x
hm₀ : ∀ (x : L), ∃ k, (φ x ^ k) m₀ = 0
⊢ (B m₀) m₁ = 0
tactic: simp only [mem_weightSpace, Pi.zero_apply, zero_smul, sub_zero] at hm₀
state_before: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ : M
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
x : L
m₁ : M
hm₁ : m₁ ∈ posFittingCompOf R M x
hm₀ : ∀ (x : L), ∃ k, (φ x ^ k) m₀ = 0
⊢ (B m₀) m₁ = 0
state_after: case intro
R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ : M
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
x : L
m₁ : M
hm₁ : m₁ ∈ posFittingCompOf R M x
hm₀ : ∀ (x : L), ∃ k, (φ x ^ k) m₀ = 0
k : ℕ
hk : (φ x ^ k) m₀ = 0
⊢ (B m₀) m₁ = 0
tactic: obtain ⟨k, hk⟩ := hm₀ x
state_before: case intro
R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ : M
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
x : L
m₁ : M
hm₁ : m₁ ∈ posFittingCompOf R M x
hm₀ : ∀ (x : L), ∃ k, (φ x ^ k) m₀ = 0
k : ℕ
hk : (φ x ^ k) m₀ = 0
⊢ (B m₀) m₁ = 0
state_after: case intro.intro
R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ : M
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
x : L
hm₀ : ∀ (x : L), ∃ k, (φ x ^ k) m₀ = 0
k : ℕ
hk : (φ x ^ k) m₀ = 0
m : M
hm₁ : (φ x ^ k) m ∈ posFittingCompOf R M x
⊢ (B m₀) ((φ x ^ k) m) = 0
tactic: obtain ⟨m, rfl⟩ := (mem_posFittingCompOf R x m₁).mp hm₁ k
state_before: case intro.intro
R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
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✝² : Module.Free R M
inst✝¹ : Module.Finite R M
inst✝ : LieAlgebra.IsNilpotent R L
B : LinearMap.BilinForm R M
m₀ : M
hB : ∀ (x : L) (k : ℕ) (m n : M), (B m) ((φ x ^ k) n) = (-1) ^ k • (B ((φ x ^ k) m)) n
x : L
hm₀ : ∀ (x : L), ∃ k, (φ x ^ k) m₀ = 0
k : ℕ
hk : (φ x ^ k) m₀ = 0
m : M
hm₁ : (φ x ^ k) m ∈ posFittingCompOf R M x
⊢ (B m₀) ((φ x ^ k) m) = 0
state_after: no goals
tactic: simp [hB, hk]