Theorem: LieModule.trivial_iff_lower_central_eq_bot
File: Mathlib/Algebra/Lie/Nilpotent.lean

tactic: constructor <;> intro h
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
⊢ IsTrivial L M ↔ lowerCentralSeries R L M 1 = ⊥

tactic: erw [eq_bot_iff, LieSubmodule.lieSpan_le]
state_before: case 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
h : IsTrivial L M
⊢ lowerCentralSeries R L M 1 = ⊥

tactic: rintro m ⟨x, n, hn⟩
state_before: case 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
h : IsTrivial L M
⊢ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} ⊆ ↑⊥

tactic: rw [← hn, h.trivial]
state_before: case mp.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
h : IsTrivial L M
m : M
x : { x // x ∈ ⊤ }
n : { x // x ∈ ⊤ }
hn : ⁅↑x, ↑n⁆ = m
⊢ m ∈ ↑⊥

tactic: simp
state_before: case mp.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
h : IsTrivial L M
m : M
x : { x // x ∈ ⊤ }
n : { x // x ∈ ⊤ }
hn : ⁅↑x, ↑n⁆ = m
⊢ 0 ∈ ↑⊥

tactic: rw [LieSubmodule.eq_bot_iff] at h
state_before: case 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
h : lowerCentralSeries R L M 1 = ⊥
⊢ IsTrivial L M

tactic: apply IsTrivial.mk
state_before: case 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
h : ∀ (m : M), m ∈ lowerCentralSeries R L M 1 → m = 0
⊢ IsTrivial L M

tactic: intro x m
state_before: case mpr.trivial
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
h : ∀ (m : M), m ∈ lowerCentralSeries R L M 1 → m = 0
⊢ ∀ (x : L) (m : M), ⁅x, m⁆ = 0

tactic: apply h
state_before: case mpr.trivial
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
h : ∀ (m : M), m ∈ lowerCentralSeries R L M 1 → m = 0
x : L
m : M
⊢ ⁅x, m⁆ = 0

tactic: apply LieSubmodule.subset_lieSpan
state_before: case mpr.trivial.a
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
h : ∀ (m : M), m ∈ lowerCentralSeries R L M 1 → m = 0
x : L
m : M
⊢ ⁅x, m⁆ ∈ lowerCentralSeries R L M 1

tactic: simp only [LieSubmodule.top_coe, Subtype.exists, LieSubmodule.mem_top, exists_prop, true_and,
  Set.mem_setOf]
state_before: case mpr.trivial.a.a
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
h : ∀ (m : M), m ∈ lowerCentralSeries R L M 1 → m = 0
x : L
m : M
⊢ ⁅x, m⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: exact ⟨x, m, rfl⟩
state_before: case mpr.trivial.a.a
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
h : ∀ (m : M), m ∈ lowerCentralSeries R L M 1 → m = 0
x : L
m : M
⊢ ∃ a a_1, ⁅a, a_1⁆ = ⁅x, m⁆