Theorem: LieSubmodule.lowerCentralSeries_eq_lcs_comap
File: Mathlib/Algebra/Lie/Nilpotent.lean

tactic: induction' k with k ih
state_before: R : Type u
L : Type v
M : Type w
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
k : ℕ
N : LieSubmodule R L M
⊢ lowerCentralSeries R L (↥↑N) k = comap N.incl (lcs k N)
state_after: case zero
R : Type u
L : Type v
M : Type w
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
k : ℕ
N : LieSubmodule R L M
⊢ lowerCentralSeries R L (↥↑N) 0 = comap N.incl (lcs 0 N)

case succ
R : Type u
L : Type v
M : Type w
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
k✝ : ℕ
N : LieSubmodule R L M
k : ℕ
ih : lowerCentralSeries R L (↥↑N) k = comap N.incl (lcs k N)
⊢ lowerCentralSeries R L (↥↑N) (k + 1) = comap N.incl (lcs (k + 1) N)

tactic: simp
state_before: case zero
R : Type u
L : Type v
M : Type w
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
k : ℕ
N : LieSubmodule R L M
⊢ lowerCentralSeries R L (↥↑N) 0 = comap N.incl (lcs 0 N)
state_after: no goals

tactic: simp only [lcs_succ, lowerCentralSeries_succ] at ih ⊢
state_before: case succ
R : Type u
L : Type v
M : Type w
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
k✝ : ℕ
N : LieSubmodule R L M
k : ℕ
ih : lowerCentralSeries R L (↥↑N) k = comap N.incl (lcs k N)
⊢ lowerCentralSeries R L (↥↑N) (k + 1) = comap N.incl (lcs (k + 1) N)
state_after: case succ
R : Type u
L : Type v
M : Type w
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
k✝ : ℕ
N : LieSubmodule R L M
k : ℕ
ih : lowerCentralSeries R L (↥↑N) k = comap N.incl (lcs k N)
⊢ ⁅⊤, lowerCentralSeries R L (↥↑N) k⁆ = comap N.incl ⁅⊤, lcs k N⁆

tactic: have : N.lcs k ≤ N.incl.range := by
  rw [N.range_incl]
  apply lcs_le_self
state_before: case succ
R : Type u
L : Type v
M : Type w
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
k✝ : ℕ
N : LieSubmodule R L M
k : ℕ
ih : lowerCentralSeries R L (↥↑N) k = comap N.incl (lcs k N)
⊢ ⁅⊤, lowerCentralSeries R L (↥↑N) k⁆ = comap N.incl ⁅⊤, lcs k N⁆
state_after: case succ
R : Type u
L : Type v
M : Type w
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
k✝ : ℕ
N : LieSubmodule R L M
k : ℕ
ih : lowerCentralSeries R L (↥↑N) k = comap N.incl (lcs k N)
this : lcs k N ≤ N.incl.range
⊢ ⁅⊤, lowerCentralSeries R L (↥↑N) k⁆ = comap N.incl ⁅⊤, lcs k N⁆

tactic: rw [ih, LieSubmodule.comap_bracket_eq _ _ N.incl N.ker_incl this]
state_before: case succ
R : Type u
L : Type v
M : Type w
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
k✝ : ℕ
N : LieSubmodule R L M
k : ℕ
ih : lowerCentralSeries R L (↥↑N) k = comap N.incl (lcs k N)
this : lcs k N ≤ N.incl.range
⊢ ⁅⊤, lowerCentralSeries R L (↥↑N) k⁆ = comap N.incl ⁅⊤, lcs k N⁆
state_after: no goals

tactic: rw [N.range_incl]
state_before: R : Type u
L : Type v
M : Type w
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
k✝ : ℕ
N : LieSubmodule R L M
k : ℕ
ih : lowerCentralSeries R L (↥↑N) k = comap N.incl (lcs k N)
⊢ lcs k N ≤ N.incl.range
state_after: R : Type u
L : Type v
M : Type w
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
k✝ : ℕ
N : LieSubmodule R L M
k : ℕ
ih : lowerCentralSeries R L (↥↑N) k = comap N.incl (lcs k N)
⊢ lcs k N ≤ N

tactic: apply lcs_le_self
state_before: R : Type u
L : Type v
M : Type w
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
k✝ : ℕ
N : LieSubmodule R L M
k : ℕ
ih : lowerCentralSeries R L (↥↑N) k = comap N.incl (lcs k N)
⊢ lcs k N ≤ N
state_after: no goals