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

tactic: let s := {k | lowerCentralSeries R L M k = ⊥}
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
inst✝ : IsNilpotent R L M
⊢ nilpotencyLength R L M = 0 ↔ Subsingleton M

tactic: have hs : s.Nonempty := by
  obtain ⟨k, hk⟩ := (by infer_instance : IsNilpotent R L M)
  exact ⟨k, hk⟩
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
inst✝ : IsNilpotent R L M
s : Set ℕ := {k | lowerCentralSeries R L M k = ⊥}
⊢ nilpotencyLength R L M = 0 ↔ Subsingleton M

tactic: change sInf s = 0 ↔ _
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
inst✝ : IsNilpotent R L M
s : Set ℕ := {k | lowerCentralSeries R L M k = ⊥}
hs : Set.Nonempty s
⊢ nilpotencyLength R L M = 0 ↔ Subsingleton M

tactic: rw [← LieSubmodule.subsingleton_iff R L M, ← subsingleton_iff_bot_eq_top, ←
  lowerCentralSeries_zero, @eq_comm (LieSubmodule R L M)]
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
inst✝ : IsNilpotent R L M
s : Set ℕ := {k | lowerCentralSeries R L M k = ⊥}
hs : Set.Nonempty s
⊢ sInf s = 0 ↔ Subsingleton M

tactic: refine' ⟨fun h => h ▸ Nat.sInf_mem hs, fun 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
inst✝ : IsNilpotent R L M
s : Set ℕ := {k | lowerCentralSeries R L M k = ⊥}
hs : Set.Nonempty s
⊢ sInf s = 0 ↔ lowerCentralSeries R L M 0 = ⊥

tactic: rw [Nat.sInf_eq_zero]
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
inst✝ : IsNilpotent R L M
s : Set ℕ := {k | lowerCentralSeries R L M k = ⊥}
hs : Set.Nonempty s
h : lowerCentralSeries R L M 0 = ⊥
⊢ sInf s = 0

tactic: exact Or.inl 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
inst✝ : IsNilpotent R L M
s : Set ℕ := {k | lowerCentralSeries R L M k = ⊥}
hs : Set.Nonempty s
h : lowerCentralSeries R L M 0 = ⊥
⊢ 0 ∈ s ∨ s = ∅

tactic: obtain ⟨k, hk⟩ := (by infer_instance : IsNilpotent R L M)
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
inst✝ : IsNilpotent R L M
s : Set ℕ := {k | lowerCentralSeries R L M k = ⊥}
⊢ Set.Nonempty s

tactic: exact ⟨k, hk⟩
state_before: case mk.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
inst✝ : IsNilpotent R L M
s : Set ℕ := {k | lowerCentralSeries R L M k = ⊥}
k : ℕ
hk : lowerCentralSeries R L M k = ⊥
⊢ Set.Nonempty s

tactic: infer_instance
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
inst✝ : IsNilpotent R L M
s : Set ℕ := {k | lowerCentralSeries R L M k = ⊥}
⊢ IsNilpotent R L M