algebra.lie.solvableMathlib.Algebra.Lie.Solvable

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -108,8 +108,8 @@ theorem derivedSeriesOfIdeal_add (k l : ℕ) : D (k + l) I = D k (D l I) :=
 theorem derivedSeriesOfIdeal_le {I J : LieIdeal R L} {k l : ℕ} (h₁ : I ≤ J) (h₂ : l ≤ k) :
     D k I ≤ D l J := by
   revert l; induction' k with k ih <;> intro l h₂
-  · rw [le_zero_iff] at h₂ ; rw [h₂, derived_series_of_ideal_zero]; exact h₁
-  · have h : l = k.succ ∨ l ≤ k := by rwa [le_iff_eq_or_lt, Nat.lt_succ_iff] at h₂ 
+  · rw [le_zero_iff] at h₂; rw [h₂, derived_series_of_ideal_zero]; exact h₁
+  · have h : l = k.succ ∨ l ≤ k := by rwa [le_iff_eq_or_lt, Nat.lt_succ_iff] at h₂
     cases h
     · rw [h, derived_series_of_ideal_succ, derived_series_of_ideal_succ]
       exact LieSubmodule.mono_lie _ _ _ _ (ih (le_refl k)) (ih (le_refl k))
@@ -150,7 +150,7 @@ theorem derivedSeriesOfIdeal_add_le_add (J : LieIdeal R L) (k l : ℕ) :
       monotone' := fun I J h => LieSubmodule.mono_lie I J I J h h }
   have h₁ : ∀ I J : LieIdeal R L, D₁ (I ⊔ J) ≤ D₁ I ⊔ J := by
     simp [LieSubmodule.lie_le_right, LieSubmodule.lie_le_left, le_sup_of_le_right]
-  rw [← D₁.iterate_sup_le_sup_iff] at h₁ 
+  rw [← D₁.iterate_sup_le_sup_iff] at h₁
   exact h₁ k l I J
 #align lie_algebra.derived_series_of_ideal_add_le_add LieAlgebra.derivedSeriesOfIdeal_add_le_add
 -/
@@ -218,7 +218,7 @@ theorem derivedSeries_add_eq_bot {k l : ℕ} {I J : LieIdeal R L} (hI : derivedS
   by
   rw [LieIdeal.derivedSeries_eq_bot_iff] at hI hJ ⊢
   rw [← le_bot_iff]
-  let D := derived_series_of_ideal R L; change D k I = ⊥ at hI ; change D l J = ⊥ at hJ 
+  let D := derived_series_of_ideal R L; change D k I = ⊥ at hI; change D l J = ⊥ at hJ
   calc
     D (k + l) (I + J) ≤ D k I + D l J := derived_series_of_ideal_add_le_add I J k l
     _ ≤ ⊥ := by rw [hI, hJ]; simp
@@ -350,7 +350,7 @@ def radical :=
 instance radicalIsSolvable [IsNoetherian R L] : IsSolvable R (radical R L) :=
   by
   have hwf := LieSubmodule.wellFounded_of_noetherian R L L
-  rw [← CompleteLattice.isSupClosedCompact_iff_wellFounded] at hwf 
+  rw [← CompleteLattice.isSupClosedCompact_iff_wellFounded] at hwf
   refine' hwf {I : LieIdeal R L | IsSolvable R I} ⟨⊥, _⟩ fun I hI J hJ => _
   · exact LieAlgebra.isSolvableBot R L
   · apply LieAlgebra.isSolvableAdd R L; exacts [hI, hJ]
@@ -402,7 +402,7 @@ theorem derivedSeries_of_derivedLength_succ (I : LieIdeal R L) (k : ℕ) :
     by
     intro k₁ k₂ h₁₂ h₁
     suffices derived_series_of_ideal R L k₂ I ≤ ⊥ by exact eq_bot_iff.mpr this
-    change derived_series_of_ideal R L k₁ I = ⊥ at h₁ ; rw [← h₁]
+    change derived_series_of_ideal R L k₁ I = ⊥ at h₁; rw [← h₁]
     exact derived_series_of_ideal_antitone I h₁₂
   exact Nat.sInf_upward_closed_eq_succ_iff hs k
 #align lie_algebra.derived_series_of_derived_length_succ LieAlgebra.derivedSeries_of_derivedLength_succ
@@ -439,7 +439,7 @@ theorem abelian_derivedAbelianOfIdeal (I : LieIdeal R L) : IsLieAbelian (derived
   dsimp only [derived_abelian_of_ideal]
   cases' h : derived_length_of_ideal R L I with k
   · exact is_lie_abelian_bot R L
-  · rw [derived_series_of_derived_length_succ] at h ; exact h.1
+  · rw [derived_series_of_derived_length_succ] at h; exact h.1
 #align lie_algebra.abelian_derived_abelian_of_ideal LieAlgebra.abelian_derivedAbelianOfIdeal
 -/
 
@@ -451,7 +451,7 @@ theorem derivedLength_zero (I : LieIdeal R L) [hI : IsSolvable R I] :
   have hne : s ≠ ∅ := by
     obtain ⟨k, hk⟩ := id hI
     refine' Set.Nonempty.ne_empty ⟨k, _⟩
-    rw [derived_series_def, LieIdeal.derivedSeries_eq_bot_iff] at hk ; exact hk
+    rw [derived_series_def, LieIdeal.derivedSeries_eq_bot_iff] at hk; exact hk
   simp [hne]
 #align lie_algebra.derived_length_zero LieAlgebra.derivedLength_zero
 -/
@@ -462,7 +462,7 @@ theorem abelian_of_solvable_ideal_eq_bot_iff (I : LieIdeal R L) [h : IsSolvable
   by
   dsimp only [derived_abelian_of_ideal]
   cases' h : derived_length_of_ideal R L I with k
-  · rw [derived_length_zero] at h ; rw [h]; rfl
+  · rw [derived_length_zero] at h; rw [h]; rfl
   · obtain ⟨h₁, h₂⟩ := (derived_series_of_derived_length_succ R L I k).mp h
     have h₃ : I ≠ ⊥ := by intro contra; apply h₂; rw [contra]; apply derived_series_of_bot_eq_bot
     change derived_series_of_ideal R L k I = ⊥ ↔ I = ⊥
Diff
@@ -323,7 +323,7 @@ theorem solvable_iff_equiv_solvable (e : L' ≃ₗ⁅R⁆ L) : IsSolvable R L' 
 #print LieAlgebra.le_solvable_ideal_solvable /-
 theorem le_solvable_ideal_solvable {I J : LieIdeal R L} (h₁ : I ≤ J) (h₂ : IsSolvable R J) :
     IsSolvable R I :=
-  (LieIdeal.homOfLe_injective h₁).lieAlgebra_isSolvable
+  (LieIdeal.inclusion_injective h₁).lieAlgebra_isSolvable
 #align lie_algebra.le_solvable_ideal_solvable LieAlgebra.le_solvable_ideal_solvable
 -/
 
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2021 Oliver Nash. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Oliver Nash
 -/
-import Mathbin.Algebra.Lie.Abelian
-import Mathbin.Algebra.Lie.IdealOperations
-import Mathbin.Order.Hom.Basic
+import Algebra.Lie.Abelian
+import Algebra.Lie.IdealOperations
+import Order.Hom.Basic
 
 #align_import algebra.lie.solvable from "leanprover-community/mathlib"@"36938f775671ff28bea1c0310f1608e4afbb22e0"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2021 Oliver Nash. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Oliver Nash
-
-! This file was ported from Lean 3 source module algebra.lie.solvable
-! leanprover-community/mathlib commit 36938f775671ff28bea1c0310f1608e4afbb22e0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Lie.Abelian
 import Mathbin.Algebra.Lie.IdealOperations
 import Mathbin.Order.Hom.Basic
 
+#align_import algebra.lie.solvable from "leanprover-community/mathlib"@"36938f775671ff28bea1c0310f1608e4afbb22e0"
+
 /-!
 # Solvable Lie algebras
 
Diff
@@ -95,7 +95,6 @@ theorem derivedSeries_def (k : ℕ) : derivedSeries R L k = derivedSeriesOfIdeal
 
 variable {R L}
 
--- mathport name: exprD
 local notation "D" => derivedSeriesOfIdeal R L
 
 #print LieAlgebra.derivedSeriesOfIdeal_add /-
@@ -107,6 +106,7 @@ theorem derivedSeriesOfIdeal_add (k l : ℕ) : D (k + l) I = D k (D l I) :=
 #align lie_algebra.derived_series_of_ideal_add LieAlgebra.derivedSeriesOfIdeal_add
 -/
 
+#print LieAlgebra.derivedSeriesOfIdeal_le /-
 @[mono]
 theorem derivedSeriesOfIdeal_le {I J : LieIdeal R L} {k l : ℕ} (h₁ : I ≤ J) (h₂ : l ≤ k) :
     D k I ≤ D l J := by
@@ -118,23 +118,33 @@ theorem derivedSeriesOfIdeal_le {I J : LieIdeal R L} {k l : ℕ} (h₁ : I ≤ J
       exact LieSubmodule.mono_lie _ _ _ _ (ih (le_refl k)) (ih (le_refl k))
     · rw [derived_series_of_ideal_succ]; exact le_trans (LieSubmodule.lie_le_left _ _) (ih h)
 #align lie_algebra.derived_series_of_ideal_le LieAlgebra.derivedSeriesOfIdeal_le
+-/
 
+#print LieAlgebra.derivedSeriesOfIdeal_succ_le /-
 theorem derivedSeriesOfIdeal_succ_le (k : ℕ) : D (k + 1) I ≤ D k I :=
   derivedSeriesOfIdeal_le (le_refl I) k.le_succ
 #align lie_algebra.derived_series_of_ideal_succ_le LieAlgebra.derivedSeriesOfIdeal_succ_le
+-/
 
+#print LieAlgebra.derivedSeriesOfIdeal_le_self /-
 theorem derivedSeriesOfIdeal_le_self (k : ℕ) : D k I ≤ I :=
   derivedSeriesOfIdeal_le (le_refl I) (zero_le k)
 #align lie_algebra.derived_series_of_ideal_le_self LieAlgebra.derivedSeriesOfIdeal_le_self
+-/
 
+#print LieAlgebra.derivedSeriesOfIdeal_mono /-
 theorem derivedSeriesOfIdeal_mono {I J : LieIdeal R L} (h : I ≤ J) (k : ℕ) : D k I ≤ D k J :=
   derivedSeriesOfIdeal_le h (le_refl k)
 #align lie_algebra.derived_series_of_ideal_mono LieAlgebra.derivedSeriesOfIdeal_mono
+-/
 
+#print LieAlgebra.derivedSeriesOfIdeal_antitone /-
 theorem derivedSeriesOfIdeal_antitone {k l : ℕ} (h : l ≤ k) : D k I ≤ D l I :=
   derivedSeriesOfIdeal_le (le_refl I) h
 #align lie_algebra.derived_series_of_ideal_antitone LieAlgebra.derivedSeriesOfIdeal_antitone
+-/
 
+#print LieAlgebra.derivedSeriesOfIdeal_add_le_add /-
 theorem derivedSeriesOfIdeal_add_le_add (J : LieIdeal R L) (k l : ℕ) :
     D (k + l) (I + J) ≤ D k I + D l J :=
   by
@@ -146,6 +156,7 @@ theorem derivedSeriesOfIdeal_add_le_add (J : LieIdeal R L) (k l : ℕ) :
   rw [← D₁.iterate_sup_le_sup_iff] at h₁ 
   exact h₁ k l I J
 #align lie_algebra.derived_series_of_ideal_add_le_add LieAlgebra.derivedSeriesOfIdeal_add_le_add
+-/
 
 #print LieAlgebra.derivedSeries_of_bot_eq_bot /-
 theorem derivedSeries_of_bot_eq_bot (k : ℕ) : derivedSeriesOfIdeal R L k ⊥ = ⊥ := by
@@ -217,6 +228,7 @@ theorem derivedSeries_add_eq_bot {k l : ℕ} {I J : LieIdeal R L} (hI : derivedS
 #align lie_ideal.derived_series_add_eq_bot LieIdeal.derivedSeries_add_eq_bot
 -/
 
+#print LieIdeal.derivedSeries_map_le /-
 theorem derivedSeries_map_le (k : ℕ) : (derivedSeries R L' k).map f ≤ derivedSeries R L k :=
   by
   induction' k with k ih
@@ -224,7 +236,9 @@ theorem derivedSeries_map_le (k : ℕ) : (derivedSeries R L' k).map f ≤ derive
   · simp only [derived_series_def, derived_series_of_ideal_succ] at ih ⊢
     exact le_trans (map_bracket_le f) (LieSubmodule.mono_lie _ _ _ _ ih ih)
 #align lie_ideal.derived_series_map_le LieIdeal.derivedSeries_map_le
+-/
 
+#print LieIdeal.derivedSeries_map_eq /-
 theorem derivedSeries_map_eq (k : ℕ) (h : Function.Surjective f) :
     (derivedSeries R L' k).map f = derivedSeries R L k :=
   by
@@ -234,6 +248,7 @@ theorem derivedSeries_map_eq (k : ℕ) (h : Function.Surjective f) :
     exact f.ideal_range_eq_top_of_surjective h
   · simp only [derived_series_def, map_bracket_eq f h, ih, derived_series_of_ideal_succ]
 #align lie_ideal.derived_series_map_eq LieIdeal.derivedSeries_map_eq
+-/
 
 end LieIdeal
 
@@ -268,6 +283,7 @@ namespace Function
 
 open LieAlgebra
 
+#print Function.Injective.lieAlgebra_isSolvable /-
 theorem Injective.lieAlgebra_isSolvable [h₁ : IsSolvable R L] (h₂ : Injective f) :
     IsSolvable R L' := by
   obtain ⟨k, hk⟩ := id h₁
@@ -275,7 +291,9 @@ theorem Injective.lieAlgebra_isSolvable [h₁ : IsSolvable R L] (h₂ : Injectiv
   apply LieIdeal.bot_of_map_eq_bot h₂; rw [eq_bot_iff, ← hk]
   apply LieIdeal.derivedSeries_map_le
 #align function.injective.lie_algebra_is_solvable Function.Injective.lieAlgebra_isSolvable
+-/
 
+#print Function.Surjective.lieAlgebra_isSolvable /-
 theorem Surjective.lieAlgebra_isSolvable [h₁ : IsSolvable R L'] (h₂ : Surjective f) :
     IsSolvable R L := by
   obtain ⟨k, hk⟩ := id h₁
@@ -283,6 +301,7 @@ theorem Surjective.lieAlgebra_isSolvable [h₁ : IsSolvable R L'] (h₂ : Surjec
   rw [← LieIdeal.derivedSeries_map_eq k h₂, hk]
   simp only [LieIdeal.map_eq_bot_iff, bot_le]
 #align function.surjective.lie_algebra_is_solvable Function.Surjective.lieAlgebra_isSolvable
+-/
 
 end Function
 
@@ -304,19 +323,23 @@ theorem solvable_iff_equiv_solvable (e : L' ≃ₗ⁅R⁆ L) : IsSolvable R L' 
 #align lie_algebra.solvable_iff_equiv_solvable LieAlgebra.solvable_iff_equiv_solvable
 -/
 
+#print LieAlgebra.le_solvable_ideal_solvable /-
 theorem le_solvable_ideal_solvable {I J : LieIdeal R L} (h₁ : I ≤ J) (h₂ : IsSolvable R J) :
     IsSolvable R I :=
   (LieIdeal.homOfLe_injective h₁).lieAlgebra_isSolvable
 #align lie_algebra.le_solvable_ideal_solvable LieAlgebra.le_solvable_ideal_solvable
+-/
 
 variable (R L)
 
+#print LieAlgebra.ofAbelianIsSolvable /-
 instance (priority := 100) ofAbelianIsSolvable [IsLieAbelian L] : IsSolvable R L :=
   by
   use 1
   rw [← abelian_iff_derived_one_eq_bot, lie_abelian_iff_equiv_lie_abelian LieIdeal.topEquiv]
   infer_instance
 #align lie_algebra.of_abelian_is_solvable LieAlgebra.ofAbelianIsSolvable
+-/
 
 #print LieAlgebra.radical /-
 /-- The (solvable) radical of Lie algebra is the `Sup` of all solvable ideals. -/
@@ -345,10 +368,12 @@ theorem LieIdeal.solvable_iff_le_radical [IsNoetherian R L] (I : LieIdeal R L) :
 #align lie_algebra.lie_ideal.solvable_iff_le_radical LieAlgebra.LieIdeal.solvable_iff_le_radical
 -/
 
+#print LieAlgebra.center_le_radical /-
 theorem center_le_radical : center R L ≤ radical R L :=
   have h : IsSolvable R (center R L) := by infer_instance
   le_sSup h
 #align lie_algebra.center_le_radical LieAlgebra.center_le_radical
+-/
 
 #print LieAlgebra.derivedLengthOfIdeal /-
 /-- Given a solvable Lie ideal `I` with derived series `I = D₀ ≥ D₁ ≥ ⋯ ≥ Dₖ = ⊥`, this is the
Diff
@@ -214,7 +214,6 @@ theorem derivedSeries_add_eq_bot {k l : ℕ} {I J : LieIdeal R L} (hI : derivedS
   calc
     D (k + l) (I + J) ≤ D k I + D l J := derived_series_of_ideal_add_le_add I J k l
     _ ≤ ⊥ := by rw [hI, hJ]; simp
-    
 #align lie_ideal.derived_series_add_eq_bot LieIdeal.derivedSeries_add_eq_bot
 -/
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Oliver Nash
 
 ! This file was ported from Lean 3 source module algebra.lie.solvable
-! leanprover-community/mathlib commit a50170a88a47570ed186b809ca754110590f9476
+! leanprover-community/mathlib commit 36938f775671ff28bea1c0310f1608e4afbb22e0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.Order.Hom.Basic
 /-!
 # Solvable Lie algebras
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Like groups, Lie algebras admit a natural concept of solvability. We define this here via the
 derived series and prove some related results. We also define the radical of a Lie algebra and
 prove that it is solvable when the Lie algebra is Noetherian.
Diff
@@ -47,6 +47,7 @@ variable (I J : LieIdeal R L) {f : L' →ₗ⁅R⁆ L}
 
 namespace LieAlgebra
 
+#print LieAlgebra.derivedSeriesOfIdeal /-
 /-- A generalisation of the derived series of a Lie algebra, whose zeroth term is a specified ideal.
 
 It can be more convenient to work with this generalisation when considering the derived series of
@@ -58,39 +59,50 @@ See also `lie_ideal.derived_series_eq_derived_series_of_ideal_comap` and
 def derivedSeriesOfIdeal (k : ℕ) : LieIdeal R L → LieIdeal R L :=
   (fun I => ⁅I, I⁆)^[k]
 #align lie_algebra.derived_series_of_ideal LieAlgebra.derivedSeriesOfIdeal
+-/
 
+#print LieAlgebra.derivedSeriesOfIdeal_zero /-
 @[simp]
 theorem derivedSeriesOfIdeal_zero : derivedSeriesOfIdeal R L 0 I = I :=
   rfl
 #align lie_algebra.derived_series_of_ideal_zero LieAlgebra.derivedSeriesOfIdeal_zero
+-/
 
+#print LieAlgebra.derivedSeriesOfIdeal_succ /-
 @[simp]
 theorem derivedSeriesOfIdeal_succ (k : ℕ) :
     derivedSeriesOfIdeal R L (k + 1) I =
       ⁅derivedSeriesOfIdeal R L k I, derivedSeriesOfIdeal R L k I⁆ :=
   Function.iterate_succ_apply' (fun I => ⁅I, I⁆) k I
 #align lie_algebra.derived_series_of_ideal_succ LieAlgebra.derivedSeriesOfIdeal_succ
+-/
 
+#print LieAlgebra.derivedSeries /-
 /-- The derived series of Lie ideals of a Lie algebra. -/
 abbrev derivedSeries (k : ℕ) : LieIdeal R L :=
   derivedSeriesOfIdeal R L k ⊤
 #align lie_algebra.derived_series LieAlgebra.derivedSeries
+-/
 
+#print LieAlgebra.derivedSeries_def /-
 theorem derivedSeries_def (k : ℕ) : derivedSeries R L k = derivedSeriesOfIdeal R L k ⊤ :=
   rfl
 #align lie_algebra.derived_series_def LieAlgebra.derivedSeries_def
+-/
 
 variable {R L}
 
 -- mathport name: exprD
 local notation "D" => derivedSeriesOfIdeal R L
 
+#print LieAlgebra.derivedSeriesOfIdeal_add /-
 theorem derivedSeriesOfIdeal_add (k l : ℕ) : D (k + l) I = D k (D l I) :=
   by
   induction' k with k ih
   · rw [zero_add, derived_series_of_ideal_zero]
   · rw [Nat.succ_add k l, derived_series_of_ideal_succ, derived_series_of_ideal_succ, ih]
 #align lie_algebra.derived_series_of_ideal_add LieAlgebra.derivedSeriesOfIdeal_add
+-/
 
 @[mono]
 theorem derivedSeriesOfIdeal_le {I J : LieIdeal R L} {k l : ℕ} (h₁ : I ≤ J) (h₂ : l ≤ k) :
@@ -132,19 +144,25 @@ theorem derivedSeriesOfIdeal_add_le_add (J : LieIdeal R L) (k l : ℕ) :
   exact h₁ k l I J
 #align lie_algebra.derived_series_of_ideal_add_le_add LieAlgebra.derivedSeriesOfIdeal_add_le_add
 
-theorem derived_series_of_bot_eq_bot (k : ℕ) : derivedSeriesOfIdeal R L k ⊥ = ⊥ := by
+#print LieAlgebra.derivedSeries_of_bot_eq_bot /-
+theorem derivedSeries_of_bot_eq_bot (k : ℕ) : derivedSeriesOfIdeal R L k ⊥ = ⊥ := by
   rw [eq_bot_iff]; exact derived_series_of_ideal_le_self ⊥ k
-#align lie_algebra.derived_series_of_bot_eq_bot LieAlgebra.derived_series_of_bot_eq_bot
+#align lie_algebra.derived_series_of_bot_eq_bot LieAlgebra.derivedSeries_of_bot_eq_bot
+-/
 
+#print LieAlgebra.abelian_iff_derived_one_eq_bot /-
 theorem abelian_iff_derived_one_eq_bot : IsLieAbelian I ↔ derivedSeriesOfIdeal R L 1 I = ⊥ := by
   rw [derived_series_of_ideal_succ, derived_series_of_ideal_zero,
     LieSubmodule.lie_abelian_iff_lie_self_eq_bot]
 #align lie_algebra.abelian_iff_derived_one_eq_bot LieAlgebra.abelian_iff_derived_one_eq_bot
+-/
 
+#print LieAlgebra.abelian_iff_derived_succ_eq_bot /-
 theorem abelian_iff_derived_succ_eq_bot (I : LieIdeal R L) (k : ℕ) :
     IsLieAbelian (derivedSeriesOfIdeal R L k I) ↔ derivedSeriesOfIdeal R L (k + 1) I = ⊥ := by
   rw [add_comm, derived_series_of_ideal_add I 1 k, abelian_iff_derived_one_eq_bot]
 #align lie_algebra.abelian_iff_derived_succ_eq_bot LieAlgebra.abelian_iff_derived_succ_eq_bot
+-/
 
 end LieAlgebra
 
@@ -154,6 +172,7 @@ open LieAlgebra
 
 variable {R L}
 
+#print LieIdeal.derivedSeries_eq_derivedSeriesOfIdeal_comap /-
 theorem derivedSeries_eq_derivedSeriesOfIdeal_comap (k : ℕ) :
     derivedSeries R I k = (derivedSeriesOfIdeal R L k I).comap I.incl :=
   by
@@ -164,19 +183,25 @@ theorem derivedSeries_eq_derivedSeriesOfIdeal_comap (k : ℕ) :
       comap_bracket_incl_of_le I (derived_series_of_ideal_le_self I k)
         (derived_series_of_ideal_le_self I k)
 #align lie_ideal.derived_series_eq_derived_series_of_ideal_comap LieIdeal.derivedSeries_eq_derivedSeriesOfIdeal_comap
+-/
 
+#print LieIdeal.derivedSeries_eq_derivedSeriesOfIdeal_map /-
 theorem derivedSeries_eq_derivedSeriesOfIdeal_map (k : ℕ) :
     (derivedSeries R I k).map I.incl = derivedSeriesOfIdeal R L k I :=
   by
   rw [derived_series_eq_derived_series_of_ideal_comap, map_comap_incl, inf_eq_right]
   apply derived_series_of_ideal_le_self
 #align lie_ideal.derived_series_eq_derived_series_of_ideal_map LieIdeal.derivedSeries_eq_derivedSeriesOfIdeal_map
+-/
 
+#print LieIdeal.derivedSeries_eq_bot_iff /-
 theorem derivedSeries_eq_bot_iff (k : ℕ) :
     derivedSeries R I k = ⊥ ↔ derivedSeriesOfIdeal R L k I = ⊥ := by
   rw [← derived_series_eq_derived_series_of_ideal_map, map_eq_bot_iff, ker_incl, eq_bot_iff]
 #align lie_ideal.derived_series_eq_bot_iff LieIdeal.derivedSeries_eq_bot_iff
+-/
 
+#print LieIdeal.derivedSeries_add_eq_bot /-
 theorem derivedSeries_add_eq_bot {k l : ℕ} {I J : LieIdeal R L} (hI : derivedSeries R I k = ⊥)
     (hJ : derivedSeries R J l = ⊥) : derivedSeries R (↥(I + J)) (k + l) = ⊥ :=
   by
@@ -188,6 +213,7 @@ theorem derivedSeries_add_eq_bot {k l : ℕ} {I J : LieIdeal R L} (hI : derivedS
     _ ≤ ⊥ := by rw [hI, hJ]; simp
     
 #align lie_ideal.derived_series_add_eq_bot LieIdeal.derivedSeries_add_eq_bot
+-/
 
 theorem derivedSeries_map_le (k : ℕ) : (derivedSeries R L' k).map f ≤ derivedSeries R L k :=
   by
@@ -211,20 +237,26 @@ end LieIdeal
 
 namespace LieAlgebra
 
+#print LieAlgebra.IsSolvable /-
 /-- A Lie algebra is solvable if its derived series reaches 0 (in a finite number of steps). -/
 class IsSolvable : Prop where
   solvable : ∃ k, derivedSeries R L k = ⊥
 #align lie_algebra.is_solvable LieAlgebra.IsSolvable
+-/
 
+#print LieAlgebra.isSolvableBot /-
 instance isSolvableBot : IsSolvable R ↥(⊥ : LieIdeal R L) :=
   ⟨⟨0, Subsingleton.elim _ ⊥⟩⟩
 #align lie_algebra.is_solvable_bot LieAlgebra.isSolvableBot
+-/
 
+#print LieAlgebra.isSolvableAdd /-
 instance isSolvableAdd {I J : LieIdeal R L} [hI : IsSolvable R I] [hJ : IsSolvable R J] :
     IsSolvable R ↥(I + J) := by
   obtain ⟨k, hk⟩ := id hI; obtain ⟨l, hl⟩ := id hJ
   exact ⟨⟨k + l, LieIdeal.derivedSeries_add_eq_bot hk hl⟩⟩
 #align lie_algebra.is_solvable_add LieAlgebra.isSolvableAdd
+-/
 
 end LieAlgebra
 
@@ -234,42 +266,46 @@ namespace Function
 
 open LieAlgebra
 
-theorem Injective.lieAlgebraIsSolvable [h₁ : IsSolvable R L] (h₂ : Injective f) : IsSolvable R L' :=
-  by
+theorem Injective.lieAlgebra_isSolvable [h₁ : IsSolvable R L] (h₂ : Injective f) :
+    IsSolvable R L' := by
   obtain ⟨k, hk⟩ := id h₁
   use k
   apply LieIdeal.bot_of_map_eq_bot h₂; rw [eq_bot_iff, ← hk]
   apply LieIdeal.derivedSeries_map_le
-#align function.injective.lie_algebra_is_solvable Function.Injective.lieAlgebraIsSolvable
+#align function.injective.lie_algebra_is_solvable Function.Injective.lieAlgebra_isSolvable
 
-theorem Surjective.lieAlgebraIsSolvable [h₁ : IsSolvable R L'] (h₂ : Surjective f) :
+theorem Surjective.lieAlgebra_isSolvable [h₁ : IsSolvable R L'] (h₂ : Surjective f) :
     IsSolvable R L := by
   obtain ⟨k, hk⟩ := id h₁
   use k
   rw [← LieIdeal.derivedSeries_map_eq k h₂, hk]
   simp only [LieIdeal.map_eq_bot_iff, bot_le]
-#align function.surjective.lie_algebra_is_solvable Function.Surjective.lieAlgebraIsSolvable
+#align function.surjective.lie_algebra_is_solvable Function.Surjective.lieAlgebra_isSolvable
 
 end Function
 
-theorem LieHom.isSolvableRange (f : L' →ₗ⁅R⁆ L) [h : LieAlgebra.IsSolvable R L'] :
+#print LieHom.isSolvable_range /-
+theorem LieHom.isSolvable_range (f : L' →ₗ⁅R⁆ L) [h : LieAlgebra.IsSolvable R L'] :
     LieAlgebra.IsSolvable R f.range :=
-  f.surjective_rangeRestrict.lieAlgebraIsSolvable
-#align lie_hom.is_solvable_range LieHom.isSolvableRange
+  f.surjective_rangeRestrict.lieAlgebra_isSolvable
+#align lie_hom.is_solvable_range LieHom.isSolvable_range
+-/
 
 namespace LieAlgebra
 
+#print LieAlgebra.solvable_iff_equiv_solvable /-
 theorem solvable_iff_equiv_solvable (e : L' ≃ₗ⁅R⁆ L) : IsSolvable R L' ↔ IsSolvable R L :=
   by
   constructor <;> intro h
   · exact e.symm.injective.lie_algebra_is_solvable
   · exact e.injective.lie_algebra_is_solvable
 #align lie_algebra.solvable_iff_equiv_solvable LieAlgebra.solvable_iff_equiv_solvable
+-/
 
-theorem leSolvableIdealSolvable {I J : LieIdeal R L} (h₁ : I ≤ J) (h₂ : IsSolvable R J) :
+theorem le_solvable_ideal_solvable {I J : LieIdeal R L} (h₁ : I ≤ J) (h₂ : IsSolvable R J) :
     IsSolvable R I :=
-  (LieIdeal.homOfLe_injective h₁).lieAlgebraIsSolvable
-#align lie_algebra.le_solvable_ideal_solvable LieAlgebra.leSolvableIdealSolvable
+  (LieIdeal.homOfLe_injective h₁).lieAlgebra_isSolvable
+#align lie_algebra.le_solvable_ideal_solvable LieAlgebra.le_solvable_ideal_solvable
 
 variable (R L)
 
@@ -280,11 +316,14 @@ instance (priority := 100) ofAbelianIsSolvable [IsLieAbelian L] : IsSolvable R L
   infer_instance
 #align lie_algebra.of_abelian_is_solvable LieAlgebra.ofAbelianIsSolvable
 
+#print LieAlgebra.radical /-
 /-- The (solvable) radical of Lie algebra is the `Sup` of all solvable ideals. -/
 def radical :=
   sSup {I : LieIdeal R L | IsSolvable R I}
 #align lie_algebra.radical LieAlgebra.radical
+-/
 
+#print LieAlgebra.radicalIsSolvable /-
 /-- The radical of a Noetherian Lie algebra is solvable. -/
 instance radicalIsSolvable [IsNoetherian R L] : IsSolvable R (radical R L) :=
   by
@@ -294,18 +333,22 @@ instance radicalIsSolvable [IsNoetherian R L] : IsSolvable R (radical R L) :=
   · exact LieAlgebra.isSolvableBot R L
   · apply LieAlgebra.isSolvableAdd R L; exacts [hI, hJ]
 #align lie_algebra.radical_is_solvable LieAlgebra.radicalIsSolvable
+-/
 
+#print LieAlgebra.LieIdeal.solvable_iff_le_radical /-
 /-- The `→` direction of this lemma is actually true without the `is_noetherian` assumption. -/
 theorem LieIdeal.solvable_iff_le_radical [IsNoetherian R L] (I : LieIdeal R L) :
     IsSolvable R I ↔ I ≤ radical R L :=
-  ⟨fun h => le_sSup h, fun h => leSolvableIdealSolvable h inferInstance⟩
+  ⟨fun h => le_sSup h, fun h => le_solvable_ideal_solvable h inferInstance⟩
 #align lie_algebra.lie_ideal.solvable_iff_le_radical LieAlgebra.LieIdeal.solvable_iff_le_radical
+-/
 
 theorem center_le_radical : center R L ≤ radical R L :=
   have h : IsSolvable R (center R L) := by infer_instance
   le_sSup h
 #align lie_algebra.center_le_radical LieAlgebra.center_le_radical
 
+#print LieAlgebra.derivedLengthOfIdeal /-
 /-- Given a solvable Lie ideal `I` with derived series `I = D₀ ≥ D₁ ≥ ⋯ ≥ Dₖ = ⊥`, this is the
 natural number `k` (the number of inclusions).
 
@@ -313,15 +356,19 @@ For a non-solvable ideal, the value is 0. -/
 noncomputable def derivedLengthOfIdeal (I : LieIdeal R L) : ℕ :=
   sInf {k | derivedSeriesOfIdeal R L k I = ⊥}
 #align lie_algebra.derived_length_of_ideal LieAlgebra.derivedLengthOfIdeal
+-/
 
+#print LieAlgebra.derivedLength /-
 /-- The derived length of a Lie algebra is the derived length of its 'top' Lie ideal.
 
 See also `lie_algebra.derived_length_eq_derived_length_of_ideal`. -/
 noncomputable abbrev derivedLength : ℕ :=
   derivedLengthOfIdeal R L ⊤
 #align lie_algebra.derived_length LieAlgebra.derivedLength
+-/
 
-theorem derived_series_of_derived_length_succ (I : LieIdeal R L) (k : ℕ) :
+#print LieAlgebra.derivedSeries_of_derivedLength_succ /-
+theorem derivedSeries_of_derivedLength_succ (I : LieIdeal R L) (k : ℕ) :
     derivedLengthOfIdeal R L I = k + 1 ↔
       IsLieAbelian (derivedSeriesOfIdeal R L k I) ∧ derivedSeriesOfIdeal R L k I ≠ ⊥ :=
   by
@@ -334,8 +381,10 @@ theorem derived_series_of_derived_length_succ (I : LieIdeal R L) (k : ℕ) :
     change derived_series_of_ideal R L k₁ I = ⊥ at h₁ ; rw [← h₁]
     exact derived_series_of_ideal_antitone I h₁₂
   exact Nat.sInf_upward_closed_eq_succ_iff hs k
-#align lie_algebra.derived_series_of_derived_length_succ LieAlgebra.derived_series_of_derived_length_succ
+#align lie_algebra.derived_series_of_derived_length_succ LieAlgebra.derivedSeries_of_derivedLength_succ
+-/
 
+#print LieAlgebra.derivedLength_eq_derivedLengthOfIdeal /-
 theorem derivedLength_eq_derivedLengthOfIdeal (I : LieIdeal R L) :
     derivedLength R I = derivedLengthOfIdeal R L I :=
   by
@@ -344,9 +393,11 @@ theorem derivedLength_eq_derivedLengthOfIdeal (I : LieIdeal R L) :
   change Inf s₁ = Inf s₂
   congr; ext k; exact I.derived_series_eq_bot_iff k
 #align lie_algebra.derived_length_eq_derived_length_of_ideal LieAlgebra.derivedLength_eq_derivedLengthOfIdeal
+-/
 
 variable {R L}
 
+#print LieAlgebra.derivedAbelianOfIdeal /-
 /-- Given a solvable Lie ideal `I` with derived series `I = D₀ ≥ D₁ ≥ ⋯ ≥ Dₖ = ⊥`, this is the
 `k-1`th term in the derived series (and is therefore an Abelian ideal contained in `I`).
 
@@ -356,7 +407,9 @@ noncomputable def derivedAbelianOfIdeal (I : LieIdeal R L) : LieIdeal R L :=
   | 0 => ⊥
   | k + 1 => derivedSeriesOfIdeal R L k I
 #align lie_algebra.derived_abelian_of_ideal LieAlgebra.derivedAbelianOfIdeal
+-/
 
+#print LieAlgebra.abelian_derivedAbelianOfIdeal /-
 theorem abelian_derivedAbelianOfIdeal (I : LieIdeal R L) : IsLieAbelian (derivedAbelianOfIdeal I) :=
   by
   dsimp only [derived_abelian_of_ideal]
@@ -364,8 +417,10 @@ theorem abelian_derivedAbelianOfIdeal (I : LieIdeal R L) : IsLieAbelian (derived
   · exact is_lie_abelian_bot R L
   · rw [derived_series_of_derived_length_succ] at h ; exact h.1
 #align lie_algebra.abelian_derived_abelian_of_ideal LieAlgebra.abelian_derivedAbelianOfIdeal
+-/
 
-theorem derived_length_zero (I : LieIdeal R L) [hI : IsSolvable R I] :
+#print LieAlgebra.derivedLength_zero /-
+theorem derivedLength_zero (I : LieIdeal R L) [hI : IsSolvable R I] :
     derivedLengthOfIdeal R L I = 0 ↔ I = ⊥ :=
   by
   let s := {k | derived_series_of_ideal R L k I = ⊥}; change Inf s = 0 ↔ _
@@ -374,8 +429,10 @@ theorem derived_length_zero (I : LieIdeal R L) [hI : IsSolvable R I] :
     refine' Set.Nonempty.ne_empty ⟨k, _⟩
     rw [derived_series_def, LieIdeal.derivedSeries_eq_bot_iff] at hk ; exact hk
   simp [hne]
-#align lie_algebra.derived_length_zero LieAlgebra.derived_length_zero
+#align lie_algebra.derived_length_zero LieAlgebra.derivedLength_zero
+-/
 
+#print LieAlgebra.abelian_of_solvable_ideal_eq_bot_iff /-
 theorem abelian_of_solvable_ideal_eq_bot_iff (I : LieIdeal R L) [h : IsSolvable R I] :
     derivedAbelianOfIdeal I = ⊥ ↔ I = ⊥ :=
   by
@@ -387,6 +444,7 @@ theorem abelian_of_solvable_ideal_eq_bot_iff (I : LieIdeal R L) [h : IsSolvable
     change derived_series_of_ideal R L k I = ⊥ ↔ I = ⊥
     constructor <;> contradiction
 #align lie_algebra.abelian_of_solvable_ideal_eq_bot_iff LieAlgebra.abelian_of_solvable_ideal_eq_bot_iff
+-/
 
 end LieAlgebra
 
Diff
@@ -282,7 +282,7 @@ instance (priority := 100) ofAbelianIsSolvable [IsLieAbelian L] : IsSolvable R L
 
 /-- The (solvable) radical of Lie algebra is the `Sup` of all solvable ideals. -/
 def radical :=
-  sSup { I : LieIdeal R L | IsSolvable R I }
+  sSup {I : LieIdeal R L | IsSolvable R I}
 #align lie_algebra.radical LieAlgebra.radical
 
 /-- The radical of a Noetherian Lie algebra is solvable. -/
@@ -290,7 +290,7 @@ instance radicalIsSolvable [IsNoetherian R L] : IsSolvable R (radical R L) :=
   by
   have hwf := LieSubmodule.wellFounded_of_noetherian R L L
   rw [← CompleteLattice.isSupClosedCompact_iff_wellFounded] at hwf 
-  refine' hwf { I : LieIdeal R L | IsSolvable R I } ⟨⊥, _⟩ fun I hI J hJ => _
+  refine' hwf {I : LieIdeal R L | IsSolvable R I} ⟨⊥, _⟩ fun I hI J hJ => _
   · exact LieAlgebra.isSolvableBot R L
   · apply LieAlgebra.isSolvableAdd R L; exacts [hI, hJ]
 #align lie_algebra.radical_is_solvable LieAlgebra.radicalIsSolvable
@@ -311,7 +311,7 @@ natural number `k` (the number of inclusions).
 
 For a non-solvable ideal, the value is 0. -/
 noncomputable def derivedLengthOfIdeal (I : LieIdeal R L) : ℕ :=
-  sInf { k | derivedSeriesOfIdeal R L k I = ⊥ }
+  sInf {k | derivedSeriesOfIdeal R L k I = ⊥}
 #align lie_algebra.derived_length_of_ideal LieAlgebra.derivedLengthOfIdeal
 
 /-- The derived length of a Lie algebra is the derived length of its 'top' Lie ideal.
@@ -326,7 +326,7 @@ theorem derived_series_of_derived_length_succ (I : LieIdeal R L) (k : ℕ) :
       IsLieAbelian (derivedSeriesOfIdeal R L k I) ∧ derivedSeriesOfIdeal R L k I ≠ ⊥ :=
   by
   rw [abelian_iff_derived_succ_eq_bot]
-  let s := { k | derived_series_of_ideal R L k I = ⊥ }; change Inf s = k + 1 ↔ k + 1 ∈ s ∧ k ∉ s
+  let s := {k | derived_series_of_ideal R L k I = ⊥}; change Inf s = k + 1 ↔ k + 1 ∈ s ∧ k ∉ s
   have hs : ∀ k₁ k₂ : ℕ, k₁ ≤ k₂ → k₁ ∈ s → k₂ ∈ s :=
     by
     intro k₁ k₂ h₁₂ h₁
@@ -339,8 +339,8 @@ theorem derived_series_of_derived_length_succ (I : LieIdeal R L) (k : ℕ) :
 theorem derivedLength_eq_derivedLengthOfIdeal (I : LieIdeal R L) :
     derivedLength R I = derivedLengthOfIdeal R L I :=
   by
-  let s₁ := { k | derivedSeries R I k = ⊥ }
-  let s₂ := { k | derived_series_of_ideal R L k I = ⊥ }
+  let s₁ := {k | derivedSeries R I k = ⊥}
+  let s₂ := {k | derived_series_of_ideal R L k I = ⊥}
   change Inf s₁ = Inf s₂
   congr; ext k; exact I.derived_series_eq_bot_iff k
 #align lie_algebra.derived_length_eq_derived_length_of_ideal LieAlgebra.derivedLength_eq_derivedLengthOfIdeal
@@ -368,7 +368,7 @@ theorem abelian_derivedAbelianOfIdeal (I : LieIdeal R L) : IsLieAbelian (derived
 theorem derived_length_zero (I : LieIdeal R L) [hI : IsSolvable R I] :
     derivedLengthOfIdeal R L I = 0 ↔ I = ⊥ :=
   by
-  let s := { k | derived_series_of_ideal R L k I = ⊥ }; change Inf s = 0 ↔ _
+  let s := {k | derived_series_of_ideal R L k I = ⊥}; change Inf s = 0 ↔ _
   have hne : s ≠ ∅ := by
     obtain ⟨k, hk⟩ := id hI
     refine' Set.Nonempty.ne_empty ⟨k, _⟩
Diff
@@ -96,8 +96,8 @@ theorem derivedSeriesOfIdeal_add (k l : ℕ) : D (k + l) I = D k (D l I) :=
 theorem derivedSeriesOfIdeal_le {I J : LieIdeal R L} {k l : ℕ} (h₁ : I ≤ J) (h₂ : l ≤ k) :
     D k I ≤ D l J := by
   revert l; induction' k with k ih <;> intro l h₂
-  · rw [le_zero_iff] at h₂; rw [h₂, derived_series_of_ideal_zero]; exact h₁
-  · have h : l = k.succ ∨ l ≤ k := by rwa [le_iff_eq_or_lt, Nat.lt_succ_iff] at h₂
+  · rw [le_zero_iff] at h₂ ; rw [h₂, derived_series_of_ideal_zero]; exact h₁
+  · have h : l = k.succ ∨ l ≤ k := by rwa [le_iff_eq_or_lt, Nat.lt_succ_iff] at h₂ 
     cases h
     · rw [h, derived_series_of_ideal_succ, derived_series_of_ideal_succ]
       exact LieSubmodule.mono_lie _ _ _ _ (ih (le_refl k)) (ih (le_refl k))
@@ -128,7 +128,7 @@ theorem derivedSeriesOfIdeal_add_le_add (J : LieIdeal R L) (k l : ℕ) :
       monotone' := fun I J h => LieSubmodule.mono_lie I J I J h h }
   have h₁ : ∀ I J : LieIdeal R L, D₁ (I ⊔ J) ≤ D₁ I ⊔ J := by
     simp [LieSubmodule.lie_le_right, LieSubmodule.lie_le_left, le_sup_of_le_right]
-  rw [← D₁.iterate_sup_le_sup_iff] at h₁
+  rw [← D₁.iterate_sup_le_sup_iff] at h₁ 
   exact h₁ k l I J
 #align lie_algebra.derived_series_of_ideal_add_le_add LieAlgebra.derivedSeriesOfIdeal_add_le_add
 
@@ -159,7 +159,7 @@ theorem derivedSeries_eq_derivedSeriesOfIdeal_comap (k : ℕ) :
   by
   induction' k with k ih
   · simp only [derived_series_def, comap_incl_self, derived_series_of_ideal_zero]
-  · simp only [derived_series_def, derived_series_of_ideal_succ] at ih⊢; rw [ih]
+  · simp only [derived_series_def, derived_series_of_ideal_succ] at ih ⊢; rw [ih]
     exact
       comap_bracket_incl_of_le I (derived_series_of_ideal_le_self I k)
         (derived_series_of_ideal_le_self I k)
@@ -180,9 +180,9 @@ theorem derivedSeries_eq_bot_iff (k : ℕ) :
 theorem derivedSeries_add_eq_bot {k l : ℕ} {I J : LieIdeal R L} (hI : derivedSeries R I k = ⊥)
     (hJ : derivedSeries R J l = ⊥) : derivedSeries R (↥(I + J)) (k + l) = ⊥ :=
   by
-  rw [LieIdeal.derivedSeries_eq_bot_iff] at hI hJ⊢
+  rw [LieIdeal.derivedSeries_eq_bot_iff] at hI hJ ⊢
   rw [← le_bot_iff]
-  let D := derived_series_of_ideal R L; change D k I = ⊥ at hI; change D l J = ⊥ at hJ
+  let D := derived_series_of_ideal R L; change D k I = ⊥ at hI ; change D l J = ⊥ at hJ 
   calc
     D (k + l) (I + J) ≤ D k I + D l J := derived_series_of_ideal_add_le_add I J k l
     _ ≤ ⊥ := by rw [hI, hJ]; simp
@@ -193,7 +193,7 @@ theorem derivedSeries_map_le (k : ℕ) : (derivedSeries R L' k).map f ≤ derive
   by
   induction' k with k ih
   · simp only [derived_series_def, derived_series_of_ideal_zero, le_top]
-  · simp only [derived_series_def, derived_series_of_ideal_succ] at ih⊢
+  · simp only [derived_series_def, derived_series_of_ideal_succ] at ih ⊢
     exact le_trans (map_bracket_le f) (LieSubmodule.mono_lie _ _ _ _ ih ih)
 #align lie_ideal.derived_series_map_le LieIdeal.derivedSeries_map_le
 
@@ -289,10 +289,10 @@ def radical :=
 instance radicalIsSolvable [IsNoetherian R L] : IsSolvable R (radical R L) :=
   by
   have hwf := LieSubmodule.wellFounded_of_noetherian R L L
-  rw [← CompleteLattice.isSupClosedCompact_iff_wellFounded] at hwf
+  rw [← CompleteLattice.isSupClosedCompact_iff_wellFounded] at hwf 
   refine' hwf { I : LieIdeal R L | IsSolvable R I } ⟨⊥, _⟩ fun I hI J hJ => _
   · exact LieAlgebra.isSolvableBot R L
-  · apply LieAlgebra.isSolvableAdd R L; exacts[hI, hJ]
+  · apply LieAlgebra.isSolvableAdd R L; exacts [hI, hJ]
 #align lie_algebra.radical_is_solvable LieAlgebra.radicalIsSolvable
 
 /-- The `→` direction of this lemma is actually true without the `is_noetherian` assumption. -/
@@ -331,7 +331,7 @@ theorem derived_series_of_derived_length_succ (I : LieIdeal R L) (k : ℕ) :
     by
     intro k₁ k₂ h₁₂ h₁
     suffices derived_series_of_ideal R L k₂ I ≤ ⊥ by exact eq_bot_iff.mpr this
-    change derived_series_of_ideal R L k₁ I = ⊥ at h₁; rw [← h₁]
+    change derived_series_of_ideal R L k₁ I = ⊥ at h₁ ; rw [← h₁]
     exact derived_series_of_ideal_antitone I h₁₂
   exact Nat.sInf_upward_closed_eq_succ_iff hs k
 #align lie_algebra.derived_series_of_derived_length_succ LieAlgebra.derived_series_of_derived_length_succ
@@ -342,7 +342,7 @@ theorem derivedLength_eq_derivedLengthOfIdeal (I : LieIdeal R L) :
   let s₁ := { k | derivedSeries R I k = ⊥ }
   let s₂ := { k | derived_series_of_ideal R L k I = ⊥ }
   change Inf s₁ = Inf s₂
-  congr ; ext k; exact I.derived_series_eq_bot_iff k
+  congr; ext k; exact I.derived_series_eq_bot_iff k
 #align lie_algebra.derived_length_eq_derived_length_of_ideal LieAlgebra.derivedLength_eq_derivedLengthOfIdeal
 
 variable {R L}
@@ -362,7 +362,7 @@ theorem abelian_derivedAbelianOfIdeal (I : LieIdeal R L) : IsLieAbelian (derived
   dsimp only [derived_abelian_of_ideal]
   cases' h : derived_length_of_ideal R L I with k
   · exact is_lie_abelian_bot R L
-  · rw [derived_series_of_derived_length_succ] at h; exact h.1
+  · rw [derived_series_of_derived_length_succ] at h ; exact h.1
 #align lie_algebra.abelian_derived_abelian_of_ideal LieAlgebra.abelian_derivedAbelianOfIdeal
 
 theorem derived_length_zero (I : LieIdeal R L) [hI : IsSolvable R I] :
@@ -372,7 +372,7 @@ theorem derived_length_zero (I : LieIdeal R L) [hI : IsSolvable R I] :
   have hne : s ≠ ∅ := by
     obtain ⟨k, hk⟩ := id hI
     refine' Set.Nonempty.ne_empty ⟨k, _⟩
-    rw [derived_series_def, LieIdeal.derivedSeries_eq_bot_iff] at hk; exact hk
+    rw [derived_series_def, LieIdeal.derivedSeries_eq_bot_iff] at hk ; exact hk
   simp [hne]
 #align lie_algebra.derived_length_zero LieAlgebra.derived_length_zero
 
@@ -381,7 +381,7 @@ theorem abelian_of_solvable_ideal_eq_bot_iff (I : LieIdeal R L) [h : IsSolvable
   by
   dsimp only [derived_abelian_of_ideal]
   cases' h : derived_length_of_ideal R L I with k
-  · rw [derived_length_zero] at h; rw [h]; rfl
+  · rw [derived_length_zero] at h ; rw [h]; rfl
   · obtain ⟨h₁, h₂⟩ := (derived_series_of_derived_length_succ R L I k).mp h
     have h₃ : I ≠ ⊥ := by intro contra; apply h₂; rw [contra]; apply derived_series_of_bot_eq_bot
     change derived_series_of_ideal R L k I = ⊥ ↔ I = ⊥
Diff
@@ -96,15 +96,12 @@ theorem derivedSeriesOfIdeal_add (k l : ℕ) : D (k + l) I = D k (D l I) :=
 theorem derivedSeriesOfIdeal_le {I J : LieIdeal R L} {k l : ℕ} (h₁ : I ≤ J) (h₂ : l ≤ k) :
     D k I ≤ D l J := by
   revert l; induction' k with k ih <;> intro l h₂
-  · rw [le_zero_iff] at h₂
-    rw [h₂, derived_series_of_ideal_zero]
-    exact h₁
+  · rw [le_zero_iff] at h₂; rw [h₂, derived_series_of_ideal_zero]; exact h₁
   · have h : l = k.succ ∨ l ≤ k := by rwa [le_iff_eq_or_lt, Nat.lt_succ_iff] at h₂
     cases h
     · rw [h, derived_series_of_ideal_succ, derived_series_of_ideal_succ]
       exact LieSubmodule.mono_lie _ _ _ _ (ih (le_refl k)) (ih (le_refl k))
-    · rw [derived_series_of_ideal_succ]
-      exact le_trans (LieSubmodule.lie_le_left _ _) (ih h)
+    · rw [derived_series_of_ideal_succ]; exact le_trans (LieSubmodule.lie_le_left _ _) (ih h)
 #align lie_algebra.derived_series_of_ideal_le LieAlgebra.derivedSeriesOfIdeal_le
 
 theorem derivedSeriesOfIdeal_succ_le (k : ℕ) : D (k + 1) I ≤ D k I :=
@@ -135,10 +132,8 @@ theorem derivedSeriesOfIdeal_add_le_add (J : LieIdeal R L) (k l : ℕ) :
   exact h₁ k l I J
 #align lie_algebra.derived_series_of_ideal_add_le_add LieAlgebra.derivedSeriesOfIdeal_add_le_add
 
-theorem derived_series_of_bot_eq_bot (k : ℕ) : derivedSeriesOfIdeal R L k ⊥ = ⊥ :=
-  by
-  rw [eq_bot_iff]
-  exact derived_series_of_ideal_le_self ⊥ k
+theorem derived_series_of_bot_eq_bot (k : ℕ) : derivedSeriesOfIdeal R L k ⊥ = ⊥ := by
+  rw [eq_bot_iff]; exact derived_series_of_ideal_le_self ⊥ k
 #align lie_algebra.derived_series_of_bot_eq_bot LieAlgebra.derived_series_of_bot_eq_bot
 
 theorem abelian_iff_derived_one_eq_bot : IsLieAbelian I ↔ derivedSeriesOfIdeal R L 1 I = ⊥ := by
@@ -164,8 +159,7 @@ theorem derivedSeries_eq_derivedSeriesOfIdeal_comap (k : ℕ) :
   by
   induction' k with k ih
   · simp only [derived_series_def, comap_incl_self, derived_series_of_ideal_zero]
-  · simp only [derived_series_def, derived_series_of_ideal_succ] at ih⊢
-    rw [ih]
+  · simp only [derived_series_def, derived_series_of_ideal_succ] at ih⊢; rw [ih]
     exact
       comap_bracket_incl_of_le I (derived_series_of_ideal_le_self I k)
         (derived_series_of_ideal_le_self I k)
@@ -191,9 +185,7 @@ theorem derivedSeries_add_eq_bot {k l : ℕ} {I J : LieIdeal R L} (hI : derivedS
   let D := derived_series_of_ideal R L; change D k I = ⊥ at hI; change D l J = ⊥ at hJ
   calc
     D (k + l) (I + J) ≤ D k I + D l J := derived_series_of_ideal_add_le_add I J k l
-    _ ≤ ⊥ := by
-      rw [hI, hJ]
-      simp
+    _ ≤ ⊥ := by rw [hI, hJ]; simp
     
 #align lie_ideal.derived_series_add_eq_bot LieIdeal.derivedSeries_add_eq_bot
 
@@ -300,8 +292,7 @@ instance radicalIsSolvable [IsNoetherian R L] : IsSolvable R (radical R L) :=
   rw [← CompleteLattice.isSupClosedCompact_iff_wellFounded] at hwf
   refine' hwf { I : LieIdeal R L | IsSolvable R I } ⟨⊥, _⟩ fun I hI J hJ => _
   · exact LieAlgebra.isSolvableBot R L
-  · apply LieAlgebra.isSolvableAdd R L
-    exacts[hI, hJ]
+  · apply LieAlgebra.isSolvableAdd R L; exacts[hI, hJ]
 #align lie_algebra.radical_is_solvable LieAlgebra.radicalIsSolvable
 
 /-- The `→` direction of this lemma is actually true without the `is_noetherian` assumption. -/
@@ -335,14 +326,12 @@ theorem derived_series_of_derived_length_succ (I : LieIdeal R L) (k : ℕ) :
       IsLieAbelian (derivedSeriesOfIdeal R L k I) ∧ derivedSeriesOfIdeal R L k I ≠ ⊥ :=
   by
   rw [abelian_iff_derived_succ_eq_bot]
-  let s := { k | derived_series_of_ideal R L k I = ⊥ }
-  change Inf s = k + 1 ↔ k + 1 ∈ s ∧ k ∉ s
+  let s := { k | derived_series_of_ideal R L k I = ⊥ }; change Inf s = k + 1 ↔ k + 1 ∈ s ∧ k ∉ s
   have hs : ∀ k₁ k₂ : ℕ, k₁ ≤ k₂ → k₁ ∈ s → k₂ ∈ s :=
     by
     intro k₁ k₂ h₁₂ h₁
     suffices derived_series_of_ideal R L k₂ I ≤ ⊥ by exact eq_bot_iff.mpr this
-    change derived_series_of_ideal R L k₁ I = ⊥ at h₁
-    rw [← h₁]
+    change derived_series_of_ideal R L k₁ I = ⊥ at h₁; rw [← h₁]
     exact derived_series_of_ideal_antitone I h₁₂
   exact Nat.sInf_upward_closed_eq_succ_iff hs k
 #align lie_algebra.derived_series_of_derived_length_succ LieAlgebra.derived_series_of_derived_length_succ
@@ -373,20 +362,17 @@ theorem abelian_derivedAbelianOfIdeal (I : LieIdeal R L) : IsLieAbelian (derived
   dsimp only [derived_abelian_of_ideal]
   cases' h : derived_length_of_ideal R L I with k
   · exact is_lie_abelian_bot R L
-  · rw [derived_series_of_derived_length_succ] at h
-    exact h.1
+  · rw [derived_series_of_derived_length_succ] at h; exact h.1
 #align lie_algebra.abelian_derived_abelian_of_ideal LieAlgebra.abelian_derivedAbelianOfIdeal
 
 theorem derived_length_zero (I : LieIdeal R L) [hI : IsSolvable R I] :
     derivedLengthOfIdeal R L I = 0 ↔ I = ⊥ :=
   by
-  let s := { k | derived_series_of_ideal R L k I = ⊥ }
-  change Inf s = 0 ↔ _
+  let s := { k | derived_series_of_ideal R L k I = ⊥ }; change Inf s = 0 ↔ _
   have hne : s ≠ ∅ := by
     obtain ⟨k, hk⟩ := id hI
     refine' Set.Nonempty.ne_empty ⟨k, _⟩
-    rw [derived_series_def, LieIdeal.derivedSeries_eq_bot_iff] at hk
-    exact hk
+    rw [derived_series_def, LieIdeal.derivedSeries_eq_bot_iff] at hk; exact hk
   simp [hne]
 #align lie_algebra.derived_length_zero LieAlgebra.derived_length_zero
 
@@ -395,15 +381,9 @@ theorem abelian_of_solvable_ideal_eq_bot_iff (I : LieIdeal R L) [h : IsSolvable
   by
   dsimp only [derived_abelian_of_ideal]
   cases' h : derived_length_of_ideal R L I with k
-  · rw [derived_length_zero] at h
-    rw [h]
-    rfl
+  · rw [derived_length_zero] at h; rw [h]; rfl
   · obtain ⟨h₁, h₂⟩ := (derived_series_of_derived_length_succ R L I k).mp h
-    have h₃ : I ≠ ⊥ := by
-      intro contra
-      apply h₂
-      rw [contra]
-      apply derived_series_of_bot_eq_bot
+    have h₃ : I ≠ ⊥ := by intro contra; apply h₂; rw [contra]; apply derived_series_of_bot_eq_bot
     change derived_series_of_ideal R L k I = ⊥ ↔ I = ⊥
     constructor <;> contradiction
 #align lie_algebra.abelian_of_solvable_ideal_eq_bot_iff LieAlgebra.abelian_of_solvable_ideal_eq_bot_iff
Diff
@@ -290,7 +290,7 @@ instance (priority := 100) ofAbelianIsSolvable [IsLieAbelian L] : IsSolvable R L
 
 /-- The (solvable) radical of Lie algebra is the `Sup` of all solvable ideals. -/
 def radical :=
-  supₛ { I : LieIdeal R L | IsSolvable R I }
+  sSup { I : LieIdeal R L | IsSolvable R I }
 #align lie_algebra.radical LieAlgebra.radical
 
 /-- The radical of a Noetherian Lie algebra is solvable. -/
@@ -307,12 +307,12 @@ instance radicalIsSolvable [IsNoetherian R L] : IsSolvable R (radical R L) :=
 /-- The `→` direction of this lemma is actually true without the `is_noetherian` assumption. -/
 theorem LieIdeal.solvable_iff_le_radical [IsNoetherian R L] (I : LieIdeal R L) :
     IsSolvable R I ↔ I ≤ radical R L :=
-  ⟨fun h => le_supₛ h, fun h => leSolvableIdealSolvable h inferInstance⟩
+  ⟨fun h => le_sSup h, fun h => leSolvableIdealSolvable h inferInstance⟩
 #align lie_algebra.lie_ideal.solvable_iff_le_radical LieAlgebra.LieIdeal.solvable_iff_le_radical
 
 theorem center_le_radical : center R L ≤ radical R L :=
   have h : IsSolvable R (center R L) := by infer_instance
-  le_supₛ h
+  le_sSup h
 #align lie_algebra.center_le_radical LieAlgebra.center_le_radical
 
 /-- Given a solvable Lie ideal `I` with derived series `I = D₀ ≥ D₁ ≥ ⋯ ≥ Dₖ = ⊥`, this is the
@@ -320,7 +320,7 @@ natural number `k` (the number of inclusions).
 
 For a non-solvable ideal, the value is 0. -/
 noncomputable def derivedLengthOfIdeal (I : LieIdeal R L) : ℕ :=
-  infₛ { k | derivedSeriesOfIdeal R L k I = ⊥ }
+  sInf { k | derivedSeriesOfIdeal R L k I = ⊥ }
 #align lie_algebra.derived_length_of_ideal LieAlgebra.derivedLengthOfIdeal
 
 /-- The derived length of a Lie algebra is the derived length of its 'top' Lie ideal.
@@ -344,7 +344,7 @@ theorem derived_series_of_derived_length_succ (I : LieIdeal R L) (k : ℕ) :
     change derived_series_of_ideal R L k₁ I = ⊥ at h₁
     rw [← h₁]
     exact derived_series_of_ideal_antitone I h₁₂
-  exact Nat.infₛ_upward_closed_eq_succ_iff hs k
+  exact Nat.sInf_upward_closed_eq_succ_iff hs k
 #align lie_algebra.derived_series_of_derived_length_succ LieAlgebra.derived_series_of_derived_length_succ
 
 theorem derivedLength_eq_derivedLengthOfIdeal (I : LieIdeal R L) :
Diff
@@ -298,7 +298,7 @@ instance radicalIsSolvable [IsNoetherian R L] : IsSolvable R (radical R L) :=
   by
   have hwf := LieSubmodule.wellFounded_of_noetherian R L L
   rw [← CompleteLattice.isSupClosedCompact_iff_wellFounded] at hwf
-  refine' hwf { I : LieIdeal R L | is_solvable R I } ⟨⊥, _⟩ fun I hI J hJ => _
+  refine' hwf { I : LieIdeal R L | IsSolvable R I } ⟨⊥, _⟩ fun I hI J hJ => _
   · exact LieAlgebra.isSolvableBot R L
   · apply LieAlgebra.isSolvableAdd R L
     exacts[hI, hJ]
@@ -350,7 +350,7 @@ theorem derived_series_of_derived_length_succ (I : LieIdeal R L) (k : ℕ) :
 theorem derivedLength_eq_derivedLengthOfIdeal (I : LieIdeal R L) :
     derivedLength R I = derivedLengthOfIdeal R L I :=
   by
-  let s₁ := { k | derived_series R I k = ⊥ }
+  let s₁ := { k | derivedSeries R I k = ⊥ }
   let s₂ := { k | derived_series_of_ideal R L k I = ⊥ }
   change Inf s₁ = Inf s₂
   congr ; ext k; exact I.derived_series_eq_bot_iff k

Changes in mathlib4

mathlib3
mathlib4
chore: Reduce scope of LinearOrderedCommGroupWithZero (#11716)

Reconstitute the file Algebra.Order.Monoid.WithZero from three files:

  • Algebra.Order.Monoid.WithZero.Defs
  • Algebra.Order.Monoid.WithZero.Basic
  • Algebra.Order.WithZero

Avoid importing it in many files. Most uses were just to get le_zero_iff to work on Nat.

Before pre_11716

After post_11716

Diff
@@ -89,7 +89,7 @@ theorem derivedSeriesOfIdeal_add (k l : ℕ) : D (k + l) I = D k (D l I) := by
 theorem derivedSeriesOfIdeal_le {I J : LieIdeal R L} {k l : ℕ} (h₁ : I ≤ J) (h₂ : l ≤ k) :
     D k I ≤ D l J := by
   revert l; induction' k with k ih <;> intro l h₂
-  · rw [Nat.zero_eq, le_zero_iff] at h₂; rw [h₂, derivedSeriesOfIdeal_zero]; exact h₁
+  · rw [Nat.zero_eq, Nat.le_zero] at h₂; rw [h₂, derivedSeriesOfIdeal_zero]; exact h₁
   · have h : l = k.succ ∨ l ≤ k := by rwa [le_iff_eq_or_lt, Nat.lt_succ_iff] at h₂
     cases' h with h h
     · rw [h, derivedSeriesOfIdeal_succ, derivedSeriesOfIdeal_succ]
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -37,9 +37,7 @@ lie algebra, derived series, derived length, solvable, radical
 universe u v w w₁ w₂
 
 variable (R : Type u) (L : Type v) (M : Type w) {L' : Type w₁}
-
 variable [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing L'] [LieAlgebra R L']
-
 variable (I J : LieIdeal R L) {f : L' →ₗ⁅R⁆ L}
 
 namespace LieAlgebra
chore: prepare Lean version bump with explicit simp (#10999)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -121,7 +121,7 @@ theorem derivedSeriesOfIdeal_add_le_add (J : LieIdeal R L) (k l : ℕ) :
     { toFun := fun I => ⁅I, I⁆
       monotone' := fun I J h => LieSubmodule.mono_lie I J I J h h }
   have h₁ : ∀ I J : LieIdeal R L, D₁ (I ⊔ J) ≤ D₁ I ⊔ J := by
-    simp [LieSubmodule.lie_le_right, LieSubmodule.lie_le_left, le_sup_of_le_right]
+    simp [D₁, LieSubmodule.lie_le_right, LieSubmodule.lie_le_left, le_sup_of_le_right]
   rw [← D₁.iterate_sup_le_sup_iff] at h₁
   exact h₁ k l I J
 #align lie_algebra.derived_series_of_ideal_add_le_add LieAlgebra.derivedSeriesOfIdeal_add_le_add
@@ -363,7 +363,7 @@ theorem derivedLength_zero (I : LieIdeal R L) [hI : IsSolvable R I] :
     obtain ⟨k, hk⟩ := id hI
     refine' Set.Nonempty.ne_empty ⟨k, _⟩
     rw [derivedSeries_def, LieIdeal.derivedSeries_eq_bot_iff] at hk; exact hk
-  simp [hne]
+  simp [s, hne]
 #align lie_algebra.derived_length_zero LieAlgebra.derivedLength_zero
 
 theorem abelian_of_solvable_ideal_eq_bot_iff (I : LieIdeal R L) [h : IsSolvable R I] :
feat: if a Lie algebra has non-degenerate Killing form then its Cartan subalgebras are Abelian (#8430)

Note: the proof (due to Zassenhaus) makes no assumption about the characteristic of the coefficients.

Diff
@@ -351,7 +351,7 @@ theorem abelian_derivedAbelianOfIdeal (I : LieIdeal R L) :
     IsLieAbelian (derivedAbelianOfIdeal I) := by
   dsimp only [derivedAbelianOfIdeal]
   cases' h : derivedLengthOfIdeal R L I with k
-  · exact isLieAbelian_bot R L
+  · infer_instance
   · rw [derivedSeries_of_derivedLength_succ] at h; exact h.1
 #align lie_algebra.abelian_derived_abelian_of_ideal LieAlgebra.abelian_derivedAbelianOfIdeal
 
refactor: rename Submodule.ofLe to Submodule.inclusion (#8470)

This matches Set.inclusion, Subring.inclusion, Subalgebra.inclusion, etc.

Also renames the homOfLe spellings in Algebra/Lie to match.

Note that we leave LieSubalgebra.ofLe, as this is a completely different statement!

As requested by @alreadydone.

Diff
@@ -254,7 +254,7 @@ theorem solvable_iff_equiv_solvable (e : L' ≃ₗ⁅R⁆ L) : IsSolvable R L' 
 
 theorem le_solvable_ideal_solvable {I J : LieIdeal R L} (h₁ : I ≤ J) (_ : IsSolvable R J) :
     IsSolvable R I :=
-  (LieIdeal.homOfLe_injective h₁).lieAlgebra_isSolvable
+  (LieIdeal.inclusion_injective h₁).lieAlgebra_isSolvable
 #align lie_algebra.le_solvable_ideal_solvable LieAlgebra.le_solvable_ideal_solvable
 
 variable (R L)
feat: miscellaneous Lie algebra lemmas (#7782)
Diff
@@ -291,6 +291,13 @@ theorem center_le_radical : center R L ≤ radical R L :=
   le_sSup h
 #align lie_algebra.center_le_radical LieAlgebra.center_le_radical
 
+instance [IsSolvable R L] : IsSolvable R (⊤ : LieSubalgebra R L) := by
+  rwa [solvable_iff_equiv_solvable LieSubalgebra.topEquiv]
+
+@[simp] lemma radical_eq_top_of_isSolvable [IsSolvable R L] :
+    radical R L = ⊤ := by
+  rw [eq_top_iff]; exact le_sSup <| inferInstanceAs (IsSolvable R (⊤ : LieIdeal R L))
+
 /-- Given a solvable Lie ideal `I` with derived series `I = D₀ ≥ D₁ ≥ ⋯ ≥ Dₖ = ⊥`, this is the
 natural number `k` (the number of inclusions).
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2021 Oliver Nash. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Oliver Nash
-
-! This file was ported from Lean 3 source module algebra.lie.solvable
-! leanprover-community/mathlib commit a50170a88a47570ed186b809ca754110590f9476
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Lie.Abelian
 import Mathlib.Algebra.Lie.IdealOperations
 import Mathlib.Order.Hom.Basic
 
+#align_import algebra.lie.solvable from "leanprover-community/mathlib"@"a50170a88a47570ed186b809ca754110590f9476"
+
 /-!
 # Solvable Lie algebras
 
chore: remove occurrences of semicolon after space (#5713)

This is the second half of the changes originally in #5699, removing all occurrences of ; after a space and implementing a linter rule to enforce it.

In most cases this 2-character substring has a space after it, so the following command was run first:

find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;

The remaining cases were few enough in number that they were done manually.

Diff
@@ -94,7 +94,7 @@ theorem derivedSeriesOfIdeal_add (k l : ℕ) : D (k + l) I = D k (D l I) := by
 theorem derivedSeriesOfIdeal_le {I J : LieIdeal R L} {k l : ℕ} (h₁ : I ≤ J) (h₂ : l ≤ k) :
     D k I ≤ D l J := by
   revert l; induction' k with k ih <;> intro l h₂
-  · rw [Nat.zero_eq, le_zero_iff] at h₂ ; rw [h₂, derivedSeriesOfIdeal_zero]; exact h₁
+  · rw [Nat.zero_eq, le_zero_iff] at h₂; rw [h₂, derivedSeriesOfIdeal_zero]; exact h₁
   · have h : l = k.succ ∨ l ≤ k := by rwa [le_iff_eq_or_lt, Nat.lt_succ_iff] at h₂
     cases' h with h h
     · rw [h, derivedSeriesOfIdeal_succ, derivedSeriesOfIdeal_succ]
@@ -175,7 +175,7 @@ theorem derivedSeries_add_eq_bot {k l : ℕ} {I J : LieIdeal R L} (hI : derivedS
     (hJ : derivedSeries R J l = ⊥) : derivedSeries R (I + J) (k + l) = ⊥ := by
   rw [LieIdeal.derivedSeries_eq_bot_iff] at hI hJ ⊢
   rw [← le_bot_iff]
-  let D := derivedSeriesOfIdeal R L; change D k I = ⊥ at hI ; change D l J = ⊥ at hJ
+  let D := derivedSeriesOfIdeal R L; change D k I = ⊥ at hI; change D l J = ⊥ at hJ
   calc
     D (k + l) (I + J) ≤ D k I + D l J := derivedSeriesOfIdeal_add_le_add I J k l
     _ ≤ ⊥ := by rw [hI, hJ]; simp
@@ -318,7 +318,7 @@ theorem derivedSeries_of_derivedLength_succ (I : LieIdeal R L) (k : ℕ) :
   have hs : ∀ k₁ k₂ : ℕ, k₁ ≤ k₂ → k₁ ∈ s → k₂ ∈ s := by
     intro k₁ k₂ h₁₂ h₁
     suffices derivedSeriesOfIdeal R L k₂ I ≤ ⊥ by exact eq_bot_iff.mpr this
-    change derivedSeriesOfIdeal R L k₁ I = ⊥ at h₁ ; rw [← h₁]
+    change derivedSeriesOfIdeal R L k₁ I = ⊥ at h₁; rw [← h₁]
     exact derivedSeriesOfIdeal_antitone I h₁₂
   exact Nat.sInf_upward_closed_eq_succ_iff hs k
 #align lie_algebra.derived_series_of_derived_length_succ LieAlgebra.derivedSeries_of_derivedLength_succ
@@ -348,7 +348,7 @@ theorem abelian_derivedAbelianOfIdeal (I : LieIdeal R L) :
   dsimp only [derivedAbelianOfIdeal]
   cases' h : derivedLengthOfIdeal R L I with k
   · exact isLieAbelian_bot R L
-  · rw [derivedSeries_of_derivedLength_succ] at h ; exact h.1
+  · rw [derivedSeries_of_derivedLength_succ] at h; exact h.1
 #align lie_algebra.abelian_derived_abelian_of_ideal LieAlgebra.abelian_derivedAbelianOfIdeal
 
 theorem derivedLength_zero (I : LieIdeal R L) [hI : IsSolvable R I] :
@@ -358,7 +358,7 @@ theorem derivedLength_zero (I : LieIdeal R L) [hI : IsSolvable R I] :
   have hne : s ≠ ∅ := by
     obtain ⟨k, hk⟩ := id hI
     refine' Set.Nonempty.ne_empty ⟨k, _⟩
-    rw [derivedSeries_def, LieIdeal.derivedSeries_eq_bot_iff] at hk ; exact hk
+    rw [derivedSeries_def, LieIdeal.derivedSeries_eq_bot_iff] at hk; exact hk
   simp [hne]
 #align lie_algebra.derived_length_zero LieAlgebra.derivedLength_zero
 
feat: port Algebra.Lie.Solvable (#4634)

Dependencies 8 + 470

471 files ported (98.3%)
194357 lines ported (98.4%)
Show graph

The unported dependencies are