ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- MonotoneOn.Iio
protected theorem MonotoneOn.Iio (hf : MonotoneOn f s) : MonotoneOn (fun x => Iio (f x)) s 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f : α → β} {s : Set α} (hf : MonotoneOn f s)
Goal: MonotoneOn (fun x => Set.Iio (f x)) s
-- Antitone.Iio
protected theorem Antitone.Iio (hf : Antitone f) : Antitone fun x => Iio (f x) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f : α → β} (hf : Antitone f)
Goal: Antitone fun x => Set.Iio (f x)
-- AntitoneOn.Iio
protected theorem AntitoneOn.Iio (hf : AntitoneOn f s) : AntitoneOn (fun x => Iio (f x)) s 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f : α → β} {s : Set α} (hf : AntitoneOn f s)
Goal: AntitoneOn (fun x => Set.Iio (f x)) s
-- Monotone.Icc
protected theorem Monotone.Icc (hf : Monotone f) (hg : Antitone g) :
    Antitone fun x => Icc (f x) (g x) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} (hf : Monotone f) (hg : Antitone g)
Goal: Antitone fun x => Set.Icc (f x) (g x)
-- MonotoneOn.Icc
protected theorem MonotoneOn.Icc (hf : MonotoneOn f s) (hg : AntitoneOn g s) :
    AntitoneOn (fun x => Icc (f x) (g x)) s 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} {s : Set α} (hf : MonotoneOn f s) (hg : AntitoneOn g s)
Goal: AntitoneOn (fun x => Set.Icc (f x) (g x)) s
-- Antitone.Icc
protected theorem Antitone.Icc (hf : Antitone f) (hg : Monotone g) :
    Monotone fun x => Icc (f x) (g x) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} (hf : Antitone f) (hg : Monotone g)
Goal: Monotone fun x => Set.Icc (f x) (g x)
-- AntitoneOn.Icc
protected theorem AntitoneOn.Icc (hf : AntitoneOn f s) (hg : MonotoneOn g s) :
    MonotoneOn (fun x => Icc (f x) (g x)) s 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} {s : Set α} (hf : AntitoneOn f s) (hg : MonotoneOn g s)
Goal: MonotoneOn (fun x => Set.Icc (f x) (g x)) s
-- Monotone.Ico
protected theorem Monotone.Ico (hf : Monotone f) (hg : Antitone g) :
    Antitone fun x => Ico (f x) (g x) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} (hf : Monotone f) (hg : Antitone g)
Goal: Antitone fun x => Set.Ico (f x) (g x)
-- MonotoneOn.Ico
protected theorem MonotoneOn.Ico (hf : MonotoneOn f s) (hg : AntitoneOn g s) :
    AntitoneOn (fun x => Ico (f x) (g x)) s 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} {s : Set α} (hf : MonotoneOn f s) (hg : AntitoneOn g s)
Goal: AntitoneOn (fun x => Set.Ico (f x) (g x)) s
-- Antitone.Ico
protected theorem Antitone.Ico (hf : Antitone f) (hg : Monotone g) :
    Monotone fun x => Ico (f x) (g x) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} (hf : Antitone f) (hg : Monotone g)
Goal: Monotone fun x => Set.Ico (f x) (g x)
-- AntitoneOn.Ico
protected theorem AntitoneOn.Ico (hf : AntitoneOn f s) (hg : MonotoneOn g s) :
    MonotoneOn (fun x => Ico (f x) (g x)) s 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} {s : Set α} (hf : AntitoneOn f s) (hg : MonotoneOn g s)
Goal: MonotoneOn (fun x => Set.Ico (f x) (g x)) s
-- Monotone.Ioc
protected theorem Monotone.Ioc (hf : Monotone f) (hg : Antitone g) :
    Antitone fun x => Ioc (f x) (g x) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} (hf : Monotone f) (hg : Antitone g)
Goal: Antitone fun x => Set.Ioc (f x) (g x)
-- MonotoneOn.Ioc
protected theorem MonotoneOn.Ioc (hf : MonotoneOn f s) (hg : AntitoneOn g s) :
    AntitoneOn (fun x => Ioc (f x) (g x)) s 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} {s : Set α} (hf : MonotoneOn f s) (hg : AntitoneOn g s)
Goal: AntitoneOn (fun x => Set.Ioc (f x) (g x)) s
-- Antitone.Ioc
protected theorem Antitone.Ioc (hf : Antitone f) (hg : Monotone g) :
    Monotone fun x => Ioc (f x) (g x) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} (hf : Antitone f) (hg : Monotone g)
Goal: Monotone fun x => Set.Ioc (f x) (g x)
-- AntitoneOn.Ioc
protected theorem AntitoneOn.Ioc (hf : AntitoneOn f s) (hg : MonotoneOn g s) :
    MonotoneOn (fun x => Ioc (f x) (g x)) s 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} {s : Set α} (hf : AntitoneOn f s) (hg : MonotoneOn g s)
Goal: MonotoneOn (fun x => Set.Ioc (f x) (g x)) s
-- Monotone.Ioo
protected theorem Monotone.Ioo (hf : Monotone f) (hg : Antitone g) :
    Antitone fun x => Ioo (f x) (g x) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} (hf : Monotone f) (hg : Antitone g)
Goal: Antitone fun x => Set.Ioo (f x) (g x)
-- MonotoneOn.Ioo
protected theorem MonotoneOn.Ioo (hf : MonotoneOn f s) (hg : AntitoneOn g s) :
    AntitoneOn (fun x => Ioo (f x) (g x)) s 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} {s : Set α} (hf : MonotoneOn f s) (hg : AntitoneOn g s)
Goal: AntitoneOn (fun x => Set.Ioo (f x) (g x)) s
-- Antitone.Ioo
protected theorem Antitone.Ioo (hf : Antitone f) (hg : Monotone g) :
    Monotone fun x => Ioo (f x) (g x) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} (hf : Antitone f) (hg : Monotone g)
Goal: Monotone fun x => Set.Ioo (f x) (g x)
-- AntitoneOn.Ioo
protected theorem AntitoneOn.Ioo (hf : AntitoneOn f s) (hg : MonotoneOn g s) :
    MonotoneOn (fun x => Ioo (f x) (g x)) s 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f g : α → β} {s : Set α} (hf : AntitoneOn f s) (hg : MonotoneOn g s)
Goal: MonotoneOn (fun x => Set.Ioo (f x) (g x)) s
-- iUnion_Ioo_of_mono_of_isGLB_of_isLUB
theorem iUnion_Ioo_of_mono_of_isGLB_of_isLUB (hf : Antitone f) (hg : Monotone g)
    (ha : IsGLB (range f) a) (hb : IsLUB (range g) b) : ⋃ x, Ioo (f x) (g x) = Ioo a b 
Arguments: {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [LinearOrder β] {f g : α → β} {a b : β} (hf : Antitone f) (hg : Monotone g) (ha : IsGLB (Set.range f) a) (hb : IsLUB (Set.range g) b)
Goal: ⋃ x, Set.Ioo (f x) (g x) = Set.Ioo a b
-- StrictMonoOn.Iic_id_le
theorem StrictMonoOn.Iic_id_le [SuccOrder α] [IsSuccArchimedean α] [OrderBot α] {n : α} {φ : α → α}
    (hφ : StrictMonoOn φ (Set.Iic n)) : ∀ m ≤ n, m ≤ φ m 
Arguments: {α : Type u_1} [PartialOrder α] [SuccOrder α] [IsSuccArchimedean α] [OrderBot α] {n : α} {φ : α → α} (hφ : StrictMonoOn φ (Set.Iic n)) (m : α)
Goal: m ≤ n → m ≤ φ m
-- StrictMonoOn.Ici_le_id
theorem StrictMonoOn.Ici_le_id [PredOrder α] [IsPredArchimedean α] [OrderTop α] {n : α} {φ : α → α}
    (hφ : StrictMonoOn φ (Set.Ici n)) : ∀ m, n ≤ m → φ m ≤ m 
Arguments: {α : Type u_1} [PartialOrder α] [PredOrder α] [IsPredArchimedean α] [OrderTop α] {n : α} {φ : α → α} (hφ : StrictMonoOn φ (Set.Ici n)) (m : α)
Goal: n ≤ m → φ m ≤ m
-- strictMonoOn_Iic_of_lt_succ
theorem strictMonoOn_Iic_of_lt_succ [SuccOrder α] [IsSuccArchimedean α] {n : α}
    (hψ : ∀ m, m < n → ψ m < ψ (succ m)) : StrictMonoOn ψ (Set.Iic n) 
Arguments: {α : Type u_1} {β : Type u_2} [PartialOrder α] [Preorder β] {ψ : α → β} [SuccOrder α] [IsSuccArchimedean α] {n : α} (hψ : ∀ m < n, ψ m < ψ (Order.succ m))
Goal: StrictMonoOn ψ (Set.Iic n)
-- strictAntiOn_Iic_of_succ_lt
theorem strictAntiOn_Iic_of_succ_lt [SuccOrder α] [IsSuccArchimedean α] {n : α}
    (hψ : ∀ m, m < n → ψ (succ m) < ψ m) : StrictAntiOn ψ (Set.Iic n) 
Arguments: {α : Type u_1} {β : Type u_2} [PartialOrder α] [Preorder β] {ψ : α → β} [SuccOrder α] [IsSuccArchimedean α] {n : α} (hψ : ∀ m < n, ψ (Order.succ m) < ψ m)
Goal: StrictAntiOn ψ (Set.Iic n)
-- strictMonoOn_Ici_of_pred_lt
theorem strictMonoOn_Ici_of_pred_lt [PredOrder α] [IsPredArchimedean α] {n : α}
    (hψ : ∀ m, n < m → ψ (pred m) < ψ m) : StrictMonoOn ψ (Set.Ici n) 
Arguments: {α : Type u_1} {β : Type u_2} [PartialOrder α] [Preorder β] {ψ : α → β} [PredOrder α] [IsPredArchimedean α] {n : α} (hψ : ∀ (m : α), n < m → ψ (Order.pred m) < ψ m)
Goal: StrictMonoOn ψ (Set.Ici n)
-- strictAntiOn_Ici_of_lt_pred
theorem strictAntiOn_Ici_of_lt_pred [PredOrder α] [IsPredArchimedean α] {n : α}
    (hψ : ∀ m, n < m → ψ m < ψ (pred m)) : StrictAntiOn ψ (Set.Ici n) 
Arguments: {α : Type u_1} {β : Type u_2} [PartialOrder α] [Preorder β] {ψ : α → β} [PredOrder α] [IsPredArchimedean α] {n : α} (hψ : ∀ (m : α), n < m → ψ m < ψ (Order.pred m))
Goal: StrictAntiOn ψ (Set.Ici n)
-- JordanHolderLattice.isMaximal_inf_left_of_isMaximal_sup
class JordanHolderLattice (X : Type u) [Lattice X] where
  IsMaximal : X → X → Prop
  lt_of_isMaximal : ∀ {x y}, IsMaximal x y → x < y
  sup_eq_of_isMaximal : ∀ {x y z}, IsMaximal x z → IsMaximal y z → x ≠ y → x ⊔ y = z
  isMaximal_inf_left_of_isMaximal_sup :
    ∀ {x y}, IsMaximal x (x ⊔ y) → IsMaximal y (x ⊔ y) → IsMaximal (x ⊓ y) x
  Iso : X × X → X × X → Prop
  iso_symm : ∀ {x y}, Iso x y → Iso y x
  iso_trans : ∀ {x y z}, Iso x y → Iso y z → Iso x z
  second_iso : ∀ {x y}, IsMaximal x (x ⊔ y) → Iso (x, x ⊔ y) (x ⊓ y, y)
Arguments: {X : Type u} [Lattice X] [self : JordanHolderLattice X] {x y : X}
Goal: JordanHolderLattice.IsMaximal x (x ⊔ y) →
  JordanHolderLattice.IsMaximal y (x ⊔ y) → JordanHolderLattice.IsMaximal (x ⊓ y) x
-- JordanHolderLattice.sup_eq_of_isMaximal
class JordanHolderLattice (X : Type u) [Lattice X] where
  IsMaximal : X → X → Prop
  lt_of_isMaximal : ∀ {x y}, IsMaximal x y → x < y
  sup_eq_of_isMaximal : ∀ {x y z}, IsMaximal x z → IsMaximal y z → x ≠ y → x ⊔ y = z
  isMaximal_inf_left_of_isMaximal_sup :
    ∀ {x y}, IsMaximal x (x ⊔ y) → IsMaximal y (x ⊔ y) → IsMaximal (x ⊓ y) x
  Iso : X × X → X × X → Prop
  iso_symm : ∀ {x y}, Iso x y → Iso y x
  iso_trans : ∀ {x y z}, Iso x y → Iso y z → Iso x z
  second_iso : ∀ {x y}, IsMaximal x (x ⊔ y) → Iso (x, x ⊔ y) (x ⊓ y, y)
Arguments: {X : Type u} [Lattice X] [self : JordanHolderLattice X] {x y z : X}
Goal: JordanHolderLattice.IsMaximal x z → JordanHolderLattice.IsMaximal y z → x ≠ y → x ⊔ y = z
-- JordanHolderLattice.second_iso
class JordanHolderLattice (X : Type u) [Lattice X] where
  IsMaximal : X → X → Prop
  lt_of_isMaximal : ∀ {x y}, IsMaximal x y → x < y
  sup_eq_of_isMaximal : ∀ {x y z}, IsMaximal x z → IsMaximal y z → x ≠ y → x ⊔ y = z
  isMaximal_inf_left_of_isMaximal_sup :
    ∀ {x y}, IsMaximal x (x ⊔ y) → IsMaximal y (x ⊔ y) → IsMaximal (x ⊓ y) x
  Iso : X × X → X × X → Prop
  iso_symm : ∀ {x y}, Iso x y → Iso y x
  iso_trans : ∀ {x y z}, Iso x y → Iso y z → Iso x z
  second_iso : ∀ {x y}, IsMaximal x (x ⊔ y) → Iso (x, x ⊔ y) (x ⊓ y, y)
Arguments: {X : Type u} [Lattice X] [self : JordanHolderLattice X] {x y : X}
Goal: JordanHolderLattice.IsMaximal x (x ⊔ y) → JordanHolderLattice.Iso (x, x ⊔ y) (x ⊓ y, y)
-- JordanHolderLattice.lt_of_isMaximal
class JordanHolderLattice (X : Type u) [Lattice X] where
  IsMaximal : X → X → Prop
  lt_of_isMaximal : ∀ {x y}, IsMaximal x y → x < y
  sup_eq_of_isMaximal : ∀ {x y z}, IsMaximal x z → IsMaximal y z → x ≠ y → x ⊔ y = z
  isMaximal_inf_left_of_isMaximal_sup :
    ∀ {x y}, IsMaximal x (x ⊔ y) → IsMaximal y (x ⊔ y) → IsMaximal (x ⊓ y) x
  Iso : X × X → X × X → Prop
  iso_symm : ∀ {x y}, Iso x y → Iso y x
  iso_trans : ∀ {x y z}, Iso x y → Iso y z → Iso x z
  second_iso : ∀ {x y}, IsMaximal x (x ⊔ y) → Iso (x, x ⊔ y) (x ⊓ y, y)
Arguments: {X : Type u} [Lattice X] [self : JordanHolderLattice X] {x y : X}
Goal: JordanHolderLattice.IsMaximal x y → x < y
-- JordanHolderLattice.iso_symm
class JordanHolderLattice (X : Type u) [Lattice X] where
  IsMaximal : X → X → Prop
  lt_of_isMaximal : ∀ {x y}, IsMaximal x y → x < y
  sup_eq_of_isMaximal : ∀ {x y z}, IsMaximal x z → IsMaximal y z → x ≠ y → x ⊔ y = z
  isMaximal_inf_left_of_isMaximal_sup :
    ∀ {x y}, IsMaximal x (x ⊔ y) → IsMaximal y (x ⊔ y) → IsMaximal (x ⊓ y) x
  Iso : X × X → X × X → Prop
  iso_symm : ∀ {x y}, Iso x y → Iso y x
  iso_trans : ∀ {x y z}, Iso x y → Iso y z → Iso x z
  second_iso : ∀ {x y}, IsMaximal x (x ⊔ y) → Iso (x, x ⊔ y) (x ⊓ y, y)
Arguments: {X : Type u} [Lattice X] [self : JordanHolderLattice X] {x y : X × X}
Goal: JordanHolderLattice.Iso x y → JordanHolderLattice.Iso y x
-- JordanHolderLattice.iso_trans
class JordanHolderLattice (X : Type u) [Lattice X] where
  IsMaximal : X → X → Prop
  lt_of_isMaximal : ∀ {x y}, IsMaximal x y → x < y
  sup_eq_of_isMaximal : ∀ {x y z}, IsMaximal x z → IsMaximal y z → x ≠ y → x ⊔ y = z
  isMaximal_inf_left_of_isMaximal_sup :
    ∀ {x y}, IsMaximal x (x ⊔ y) → IsMaximal y (x ⊔ y) → IsMaximal (x ⊓ y) x
  Iso : X × X → X × X → Prop
  iso_symm : ∀ {x y}, Iso x y → Iso y x
  iso_trans : ∀ {x y z}, Iso x y → Iso y z → Iso x z
  second_iso : ∀ {x y}, IsMaximal x (x ⊔ y) → Iso (x, x ⊔ y) (x ⊓ y, y)
Arguments: {X : Type u} [Lattice X] [self : JordanHolderLattice X] {x y z : X × X}
Goal: JordanHolderLattice.Iso x y → JordanHolderLattice.Iso y z → JordanHolderLattice.Iso x z
-- JordanHolderLattice.isMaximal_inf_right_of_isMaximal_sup
theorem isMaximal_inf_right_of_isMaximal_sup {x y : X} (hxz : IsMaximal x (x ⊔ y))
    (hyz : IsMaximal y (x ⊔ y)) : IsMaximal (x ⊓ y) y 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {x y : X} (hxz : JordanHolderLattice.IsMaximal x (x ⊔ y)) (hyz : JordanHolderLattice.IsMaximal y (x ⊔ y))
Goal: JordanHolderLattice.IsMaximal (x ⊓ y) y
-- JordanHolderLattice.isMaximal_of_eq_inf
theorem isMaximal_of_eq_inf (x b : X) {a y : X} (ha : x ⊓ y = a) (hxy : x ≠ y) (hxb : IsMaximal x b)
    (hyb : IsMaximal y b) : IsMaximal a y 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] (x b : X) {a y : X} (ha : x ⊓ y = a) (hxy : x ≠ y) (hxb : JordanHolderLattice.IsMaximal x b) (hyb : JordanHolderLattice.IsMaximal y b)
Goal: JordanHolderLattice.IsMaximal a y
-- JordanHolderLattice.second_iso_of_eq
theorem second_iso_of_eq {x y a b : X} (hm : IsMaximal x a) (ha : x ⊔ y = a) (hb : x ⊓ y = b) :
    Iso (x, a) (b, y) 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {x y a b : X} (hm : JordanHolderLattice.IsMaximal x a) (ha : x ⊔ y = a) (hb : x ⊓ y = b)
Goal: JordanHolderLattice.Iso (x, a) (b, y)
-- JordanHolderLattice.IsMaximal.iso_refl
theorem IsMaximal.iso_refl {x y : X} (h : IsMaximal x y) : Iso (x, y) (x, y) 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {x y : X} (h : JordanHolderLattice.IsMaximal x y)
Goal: JordanHolderLattice.Iso (x, y) (x, y)
-- CompositionSeries.lt_succ
theorem lt_succ (s : CompositionSeries X) (i : Fin s.length) :
    s (Fin.castSucc i) < s (Fin.succ i) 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] (s : CompositionSeries X) (i : Fin s.length)
Goal: s.toFun i.castSucc < s.toFun i.succ
-- CompositionSeries.strictMono
protected theorem strictMono (s : CompositionSeries X) : StrictMono s 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] (s : CompositionSeries X)
Goal: StrictMono s.toFun
-- CompositionSeries.injective
protected theorem injective (s : CompositionSeries X) : Function.Injective s 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] (s : CompositionSeries X)
Goal: Function.Injective s.toFun
-- CompositionSeries.inj
@[simp]
protected theorem inj (s : CompositionSeries X) {i j : Fin s.length.succ} : s i = s j ↔ i = j 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] (s : CompositionSeries X) {i j : Fin s.length.succ}
Goal: s.toFun i = s.toFun j ↔ i = j
-- CompositionSeries.total
theorem total {s : CompositionSeries X} {x y : X} (hx : x ∈ s) (hy : y ∈ s) : x ≤ y ∨ y ≤ x 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} {x y : X} (hx : x ∈ s) (hy : y ∈ s)
Goal: x ≤ y ∨ y ≤ x
-- CompositionSeries.toList_sorted
theorem toList_sorted (s : CompositionSeries X) : s.toList.Sorted (· < ·) 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] (s : CompositionSeries X)
Goal: List.Sorted (fun x x_1 => x < x_1) (RelSeries.toList s)
-- CompositionSeries.toList_nodup
theorem toList_nodup (s : CompositionSeries X) : s.toList.Nodup 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] (s : CompositionSeries X)
Goal: (RelSeries.toList s).Nodup
-- CompositionSeries.ext
@[ext]
theorem ext {s₁ s₂ : CompositionSeries X} (h : ∀ x, x ∈ s₁ ↔ x ∈ s₂) : s₁ = s₂ 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ : CompositionSeries X} (h : ∀ (x : X), x ∈ s₁ ↔ x ∈ s₂)
Goal: s₁ = s₂
-- CompositionSeries.le_last
@[simp]
theorem le_last {s : CompositionSeries X} (i : Fin (s.length + 1)) : s i ≤ s.last 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} (i : Fin (s.length + 1))
Goal: s.toFun i ≤ RelSeries.last s
-- CompositionSeries.le_last_of_mem
theorem le_last_of_mem {s : CompositionSeries X} {x : X} (hx : x ∈ s) : x ≤ s.last 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} {x : X} (hx : x ∈ s)
Goal: x ≤ RelSeries.last s
-- CompositionSeries.head_le
@[simp]
theorem head_le {s : CompositionSeries X} (i : Fin (s.length + 1)) : s.head ≤ s i 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} (i : Fin (s.length + 1))
Goal: RelSeries.head s ≤ s.toFun i
-- CompositionSeries.head_le_of_mem
theorem head_le_of_mem {s : CompositionSeries X} {x : X} (hx : x ∈ s) : s.head ≤ x 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} {x : X} (hx : x ∈ s)
Goal: RelSeries.head s ≤ x
-- CompositionSeries.last_eraseLast_le
theorem last_eraseLast_le (s : CompositionSeries X) : s.eraseLast.last ≤ s.last 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] (s : CompositionSeries X)
Goal: (RelSeries.eraseLast s).last ≤ RelSeries.last s
-- CompositionSeries.mem_eraseLast_of_ne_of_mem
theorem mem_eraseLast_of_ne_of_mem {s : CompositionSeries X} {x : X}
    (hx : x ≠ s.last) (hxs : x ∈ s) : x ∈ s.eraseLast 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} {x : X} (hx : x ≠ RelSeries.last s) (hxs : x ∈ s)
Goal: x ∈ RelSeries.eraseLast s
-- CompositionSeries.mem_eraseLast
theorem mem_eraseLast {s : CompositionSeries X} {x : X} (h : 0 < s.length) :
    x ∈ s.eraseLast ↔ x ≠ s.last ∧ x ∈ s 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} {x : X} (h : 0 < s.length)
Goal: x ∈ RelSeries.eraseLast s ↔ x ≠ RelSeries.last s ∧ x ∈ s
-- CompositionSeries.lt_last_of_mem_eraseLast
theorem lt_last_of_mem_eraseLast {s : CompositionSeries X} {x : X} (h : 0 < s.length)
    (hx : x ∈ s.eraseLast) : x < s.last 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} {x : X} (h : 0 < s.length) (hx : x ∈ RelSeries.eraseLast s)
Goal: x < RelSeries.last s
-- CompositionSeries.isMaximal_eraseLast_last
theorem isMaximal_eraseLast_last {s : CompositionSeries X} (h : 0 < s.length) :
    IsMaximal s.eraseLast.last s.last 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} (h : 0 < s.length)
Goal: JordanHolderLattice.IsMaximal (RelSeries.eraseLast s).last (RelSeries.last s)
-- CompositionSeries.eq_snoc_eraseLast
theorem eq_snoc_eraseLast {s : CompositionSeries X} (h : 0 < s.length) :
    s = snoc (eraseLast s) s.last (isMaximal_eraseLast_last h) 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} (h : 0 < s.length)
Goal: s = (RelSeries.eraseLast s).snoc (RelSeries.last s) ⋯
-- CompositionSeries.snoc_eraseLast_last
@[simp]
theorem snoc_eraseLast_last {s : CompositionSeries X} (h : IsMaximal s.eraseLast.last s.last) :
    s.eraseLast.snoc s.last h = s 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} (h : JordanHolderLattice.IsMaximal (RelSeries.eraseLast s).last (RelSeries.last s))
Goal: (RelSeries.eraseLast s).snoc (RelSeries.last s) h = s
-- CompositionSeries.Equivalent.refl
@[refl]
theorem refl (s : CompositionSeries X) : Equivalent s s 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] (s : CompositionSeries X)
Goal: s.Equivalent s
-- CompositionSeries.Equivalent.symm
@[symm]
theorem symm {s₁ s₂ : CompositionSeries X} (h : Equivalent s₁ s₂) : Equivalent s₂ s₁ 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ : CompositionSeries X} (h : s₁.Equivalent s₂)
Goal: s₂.Equivalent s₁
-- CompositionSeries.Equivalent.trans
@[trans]
theorem trans {s₁ s₂ s₃ : CompositionSeries X} (h₁ : Equivalent s₁ s₂) (h₂ : Equivalent s₂ s₃) :
    Equivalent s₁ s₃ 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ s₃ : CompositionSeries X} (h₁ : s₁.Equivalent s₂) (h₂ : s₂.Equivalent s₃)
Goal: s₁.Equivalent s₃
-- CompositionSeries.Equivalent.smash
protected theorem smash {s₁ s₂ t₁ t₂ : CompositionSeries X}
    (hs : s₁.last = s₂.head) (ht : t₁.last = t₂.head)
    (h₁ : Equivalent s₁ t₁) (h₂ : Equivalent s₂ t₂) :
    Equivalent (smash s₁ s₂ hs) (smash t₁ t₂ ht) 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ t₁ t₂ : CompositionSeries X} (hs : RelSeries.last s₁ = RelSeries.head s₂) (ht : RelSeries.last t₁ = RelSeries.head t₂) (h₁ : s₁.Equivalent t₁) (h₂ : s₂.Equivalent t₂)
Goal: CompositionSeries.Equivalent (RelSeries.smash s₁ s₂ hs) (RelSeries.smash t₁ t₂ ht)
-- CompositionSeries.Equivalent.snoc
protected theorem snoc {s₁ s₂ : CompositionSeries X} {x₁ x₂ : X} {hsat₁ : IsMaximal s₁.last x₁}
    {hsat₂ : IsMaximal s₂.last x₂} (hequiv : Equivalent s₁ s₂)
    (hlast : Iso (s₁.last, x₁) (s₂.last, x₂)) : Equivalent (s₁.snoc x₁ hsat₁) (s₂.snoc x₂ hsat₂) 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ : CompositionSeries X} {x₁ x₂ : X} {hsat₁ : JordanHolderLattice.IsMaximal (RelSeries.last s₁) x₁} {hsat₂ : JordanHolderLattice.IsMaximal (RelSeries.last s₂) x₂} (hequiv : s₁.Equivalent s₂) (hlast : JordanHolderLattice.Iso (RelSeries.last s₁, x₁) (RelSeries.last s₂, x₂))
Goal: CompositionSeries.Equivalent (RelSeries.snoc s₁ x₁ hsat₁) (RelSeries.snoc s₂ x₂ hsat₂)
-- CompositionSeries.Equivalent.length_eq
theorem length_eq {s₁ s₂ : CompositionSeries X} (h : Equivalent s₁ s₂) : s₁.length = s₂.length 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ : CompositionSeries X} (h : s₁.Equivalent s₂)
Goal: s₁.length = s₂.length
-- CompositionSeries.Equivalent.snoc_snoc_swap
theorem snoc_snoc_swap {s : CompositionSeries X} {x₁ x₂ y₁ y₂ : X} {hsat₁ : IsMaximal s.last x₁}
    {hsat₂ : IsMaximal s.last x₂} {hsaty₁ : IsMaximal (snoc s x₁ hsat₁).last y₁}
    {hsaty₂ : IsMaximal (snoc s x₂ hsat₂).last y₂} (hr₁ : Iso (s.last, x₁) (x₂, y₂))
    (hr₂ : Iso (x₁, y₁) (s.last, x₂)) :
    Equivalent (snoc (snoc s x₁ hsat₁) y₁ hsaty₁) (snoc (snoc s x₂ hsat₂) y₂ hsaty₂) 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} {x₁ x₂ y₁ y₂ : X} {hsat₁ : JordanHolderLattice.IsMaximal (RelSeries.last s) x₁} {hsat₂ : JordanHolderLattice.IsMaximal (RelSeries.last s) x₂} {hsaty₁ : JordanHolderLattice.IsMaximal (RelSeries.snoc s x₁ hsat₁).last y₁} {hsaty₂ : JordanHolderLattice.IsMaximal (RelSeries.snoc s x₂ hsat₂).last y₂} (hr₁ : JordanHolderLattice.Iso (RelSeries.last s, x₁) (x₂, y₂)) (hr₂ : JordanHolderLattice.Iso (x₁, y₁) (RelSeries.last s, x₂))
Goal: CompositionSeries.Equivalent ((RelSeries.snoc s x₁ hsat₁).snoc y₁ hsaty₁) ((RelSeries.snoc s x₂ hsat₂).snoc y₂ hsaty₂)
-- CompositionSeries.length_eq_zero_of_head_eq_head_of_last_eq_last_of_length_eq_zero
theorem length_eq_zero_of_head_eq_head_of_last_eq_last_of_length_eq_zero
    {s₁ s₂ : CompositionSeries X} (hb : s₁.head = s₂.head)
    (ht : s₁.last = s₂.last) (hs₁ : s₁.length = 0) : s₂.length = 0 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ : CompositionSeries X} (hb : RelSeries.head s₁ = RelSeries.head s₂) (ht : RelSeries.last s₁ = RelSeries.last s₂) (hs₁ : s₁.length = 0)
Goal: s₂.length = 0
-- CompositionSeries.length_pos_of_head_eq_head_of_last_eq_last_of_length_pos
theorem length_pos_of_head_eq_head_of_last_eq_last_of_length_pos {s₁ s₂ : CompositionSeries X}
    (hb : s₁.head = s₂.head) (ht : s₁.last = s₂.last) : 0 < s₁.length → 0 < s₂.length 
Arguments: {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ : CompositionSeries X} (hb : RelSeries.head s₁ = RelSeries.head s₂) (ht : RelSeries.last s₁ = RelSeries.last s₂)
Goal: 0 < s₁.length → 0 < s₂.length