Theorem: LieModule.coe_lcs_range_toEnd_eq
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
⊢ ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
⊢ ↑(lowerCentralSeries R (↥(toEnd R L M).range) M 0) = ↑(lowerCentralSeries R L M 0)

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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
⊢ ↑(lowerCentralSeries R (↥(toEnd R L M).range) M (k + 1)) = ↑(lowerCentralSeries R L M (k + 1))

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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
⊢ ↑(lowerCentralSeries R (↥(toEnd R L M).range) M 0) = ↑(lowerCentralSeries R L M 0)
state_after: no goals

tactic: simp only [lowerCentralSeries_succ, LieSubmodule.lieIdeal_oper_eq_linear_span', ←
  (lowerCentralSeries R (toEnd R L M).range M k).mem_coeSubmodule, 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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
⊢ ↑(lowerCentralSeries R (↥(toEnd R L M).range) M (k + 1)) = ↑(lowerCentralSeries R L M (k + 1))
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
⊢ Submodule.span R {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m} =
    Submodule.span R {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m}

tactic: congr
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
⊢ Submodule.span R {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m} =
    Submodule.span R {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m}
state_after: case succ.e_s
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
⊢ {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m} =
    {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m}

tactic: ext m
state_before: case succ.e_s
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
⊢ {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m} =
    {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m}
state_after: case succ.e_s.h
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
m : M
⊢ m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m} ↔
    m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m}

tactic: constructor
state_before: case succ.e_s.h
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
m : M
⊢ m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m} ↔
    m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m}
state_after: case succ.e_s.h.mp
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
m : M
⊢ m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m} →
    m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m}

case succ.e_s.h.mpr
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
m : M
⊢ m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m} →
    m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m}

tactic: rintro ⟨⟨-, ⟨y, rfl⟩⟩, -, n, hn, rfl⟩
state_before: case succ.e_s.h.mp
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
m : M
⊢ m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m} →
    m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m}
state_after: case succ.e_s.h.mp.intro.mk.intro.intro.intro.intro
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
y : L
n : M
hn : n ∈ ↑(lowerCentralSeries R L M k)
⊢ ⁅⟨↑(toEnd R L M) y, ⋯⟩, n⁆ ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m}

tactic: exact ⟨y, LieSubmodule.mem_top _, n, hn, rfl⟩
state_before: case succ.e_s.h.mp.intro.mk.intro.intro.intro.intro
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
y : L
n : M
hn : n ∈ ↑(lowerCentralSeries R L M k)
⊢ ⁅⟨↑(toEnd R L M) y, ⋯⟩, n⁆ ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m}
state_after: no goals

tactic: rintro ⟨x, -, n, hn, rfl⟩
state_before: case succ.e_s.h.mpr
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
m : M
⊢ m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ lowerCentralSeries R L M k, ⁅x, n⁆ = m} →
    m ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m}
state_after: case succ.e_s.h.mpr.intro.intro.intro.intro
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
x : L
n : M
hn : n ∈ lowerCentralSeries R L M k
⊢ ⁅x, n⁆ ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m}

tactic: exact
  ⟨⟨toEnd R L M x, LieHom.mem_range_self _ x⟩, LieSubmodule.mem_top _, n, hn, rfl⟩
state_before: case succ.e_s.h.mpr.intro.intro.intro.intro
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
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
ih : ↑(lowerCentralSeries R (↥(toEnd R L M).range) M k) = ↑(lowerCentralSeries R L M k)
x : L
n : M
hn : n ∈ lowerCentralSeries R L M k
⊢ ⁅x, n⁆ ∈ {m | ∃ x ∈ ⊤, ∃ n ∈ ↑(lowerCentralSeries R L M k), ⁅x, n⁆ = m}
state_after: no goals