ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Ordinal.IsNormal.bsup
theorem IsNormal.bsup {f : Ordinal.{max u v} → Ordinal.{max u w}} (H : IsNormal f)
    {o : Ordinal.{u}} :
    ∀ (g : ∀ a < o, Ordinal), o ≠ 0 → f (bsup.{_, v} o g) = bsup.{_, w} o fun a h => f (g a h) 
Arguments: {f : Ordinal.{max u v} → Ordinal.{max u w}} (H : Ordinal.IsNormal f) {o : Ordinal.{u}} (g : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: o ≠ 0 → f (o.bsup g) = o.bsup fun a h => f (g a h)
-- Ordinal.lt_bsup_of_ne_bsup
theorem lt_bsup_of_ne_bsup {o : Ordinal.{u}} {f : ∀ a < o, Ordinal.{max u v}} :
    (∀ i h, f i h ≠ bsup.{_, v} o f) ↔ ∀ i h, f i h < bsup.{_, v} o f 
Arguments: {o : Ordinal.{u}} {f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}}
Goal: (∀ (i : Ordinal.{u}) (h : i < o), f i h ≠ o.bsup f) ↔ ∀ (i : Ordinal.{u}) (h : i < o), f i h < o.bsup f
-- Ordinal.bsup_not_succ_of_ne_bsup
theorem bsup_not_succ_of_ne_bsup {o : Ordinal.{u}} {f : ∀ a < o, Ordinal.{max u v}}
    (hf : ∀ {i : Ordinal} (h : i < o), f i h ≠ bsup.{_, v} o f) (a) :
    a < bsup.{_, v} o f → succ a < bsup.{_, v} o f 
Arguments: {o : Ordinal.{u}} {f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}} (hf : ∀ {i : Ordinal.{u}} (h : i < o), f i h ≠ o.bsup f) (a : Ordinal.{max u v})
Goal: a < o.bsup f → Order.succ a < o.bsup f
-- Ordinal.bsup_eq_zero_iff
@[simp]
theorem bsup_eq_zero_iff {o} {f : ∀ a < o, Ordinal} : bsup o f = 0 ↔ ∀ i hi, f i hi = 0 
Arguments: {o : Ordinal.{u_4}} {f : (a : Ordinal.{u_4}) → a < o → Ordinal.{max u_5 u_4}}
Goal: o.bsup f = 0 ↔ ∀ (i : Ordinal.{u_4}) (hi : i < o), f i hi = 0
-- Ordinal.lt_bsup_of_limit
theorem lt_bsup_of_limit {o : Ordinal} {f : ∀ a < o, Ordinal}
    (hf : ∀ {a a'} (ha : a < o) (ha' : a' < o), a < a' → f a ha < f a' ha')
    (ho : ∀ a < o, succ a < o) (i h) : f i h < bsup o f 
Arguments: {o : Ordinal.{u_4}} {f : (a : Ordinal.{u_4}) → a < o → Ordinal.{max u_4 u_5}} (hf : ∀ {a a' : Ordinal.{u_4}} (ha : a < o) (ha' : a' < o), a < a' → f a ha < f a' ha') (ho : ∀ a < o, Order.succ a < o) (i : Ordinal.{u_4}) (h : i < o)
Goal: f i h < o.bsup f
-- Ordinal.bsup_succ_of_mono
theorem bsup_succ_of_mono {o : Ordinal} {f : ∀ a < succ o, Ordinal}
    (hf : ∀ {i j} (hi hj), i ≤ j → f i hi ≤ f j hj) : bsup _ f = f o (lt_succ o) 
Arguments: {o : Ordinal.{u_4}} {f : (a : Ordinal.{u_4}) → a < Order.succ o → Ordinal.{max u_4 u_5}} (hf : ∀ {i j : Ordinal.{u_4}} (hi : i < Order.succ o) (hj : j < Order.succ o), i ≤ j → f i hi ≤ f j hj)
Goal: (Order.succ o).bsup f = f o ⋯
-- Ordinal.bsup_zero
@[simp]
theorem bsup_zero (f : ∀ a < (0 : Ordinal), Ordinal) : bsup 0 f = 0 
Arguments: (f : (a : Ordinal.{u_4}) → a < 0 → Ordinal.{max u_4 u_5})
Goal: Ordinal.bsup 0 f = 0
-- Ordinal.bsup_const
theorem bsup_const {o : Ordinal.{u}} (ho : o ≠ 0) (a : Ordinal.{max u v}) :
    (bsup.{_, v} o fun _ _ => a) = a 
Arguments: {o : Ordinal.{u}} (ho : o ≠ 0) (a : Ordinal.{max u v})
Goal: (o.bsup fun x x => a) = a
-- Ordinal.bsup_one
@[simp]
theorem bsup_one (f : ∀ a < (1 : Ordinal), Ordinal) : bsup 1 f = f 0 zero_lt_one 
Arguments: (f : (a : Ordinal.{u_4}) → a < 1 → Ordinal.{max u_4 u_5})
Goal: Ordinal.bsup 1 f = f 0 ⋯
-- Ordinal.bsup_le_of_brange_subset
theorem bsup_le_of_brange_subset {o o'} {f : ∀ a < o, Ordinal} {g : ∀ a < o', Ordinal}
    (h : brange o f ⊆ brange o' g) : bsup.{u, max v w} o f ≤ bsup.{v, max u w} o' g 
Arguments: {o : Ordinal.{u}} {o' : Ordinal.{v}} {f : (a : Ordinal.{u}) → a < o → Ordinal.{max (max u v) w}} {g : (a : Ordinal.{v}) → a < o' → Ordinal.{max (max u v) w}} (h : o.brange f ⊆ o'.brange g)
Goal: o.bsup f ≤ o'.bsup g
-- Ordinal.bsup_eq_of_brange_eq
theorem bsup_eq_of_brange_eq {o o'} {f : ∀ a < o, Ordinal} {g : ∀ a < o', Ordinal}
    (h : brange o f = brange o' g) : bsup.{u, max v w} o f = bsup.{v, max u w} o' g 
Arguments: {o : Ordinal.{u}} {o' : Ordinal.{v}} {f : (a : Ordinal.{u}) → a < o → Ordinal.{max (max u v) w}} {g : (a : Ordinal.{v}) → a < o' → Ordinal.{max (max u v) w}} (h : o.brange f = o'.brange g)
Goal: o.bsup f = o'.bsup g
-- Ordinal.sup_eq_lsub
@[simp]
theorem sup_eq_lsub {ι : Type u} (f : ι → Ordinal.{max u v}) :
    sup.{_, v} (succ ∘ f) = lsub.{_, v} f 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: Ordinal.sup (Order.succ ∘ f) = Ordinal.lsub f
-- Ordinal.lsub_le_iff
theorem lsub_le_iff {ι : Type u} {f : ι → Ordinal.{max u v}} {a} :
    lsub.{_, v} f ≤ a ↔ ∀ i, f i < a 
Arguments: {ι : Type u} {f : ι → Ordinal.{max u v}} {a : Ordinal.{max v u}}
Goal: Ordinal.lsub f ≤ a ↔ ∀ (i : ι), f i < a
-- Ordinal.lsub_le
theorem lsub_le {ι} {f : ι → Ordinal} {a} : (∀ i, f i < a) → lsub f ≤ a 
Arguments: {ι : Type u_4} {f : ι → Ordinal.{max u_5 u_4}} {a : Ordinal.{max u_5 u_4}}
Goal: (∀ (i : ι), f i < a) → Ordinal.lsub f ≤ a
-- Ordinal.lt_lsub
theorem lt_lsub {ι} (f : ι → Ordinal) (i) : f i < lsub f 
Arguments: {ι : Type u_4} (f : ι → Ordinal.{max u_5 u_4}) (i : ι)
Goal: f i < Ordinal.lsub f
-- Ordinal.lt_lsub_iff
theorem lt_lsub_iff {ι : Type u} {f : ι → Ordinal.{max u v}} {a} :
    a < lsub.{_, v} f ↔ ∃ i, a ≤ f i 
Arguments: {ι : Type u} {f : ι → Ordinal.{max u v}} {a : Ordinal.{max v u}}
Goal: a < Ordinal.lsub f ↔ ∃ i, a ≤ f i
-- Ordinal.sup_le_lsub
theorem sup_le_lsub {ι : Type u} (f : ι → Ordinal.{max u v}) : sup.{_, v} f ≤ lsub.{_, v} f 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: Ordinal.sup f ≤ Ordinal.lsub f
-- Ordinal.lsub_le_sup_succ
theorem lsub_le_sup_succ {ι : Type u} (f : ι → Ordinal.{max u v}) :
    lsub.{_, v} f ≤ succ (sup.{_, v} f) 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: Ordinal.lsub f ≤ Order.succ (Ordinal.sup f)
-- Ordinal.sup_eq_lsub_or_sup_succ_eq_lsub
theorem sup_eq_lsub_or_sup_succ_eq_lsub {ι : Type u} (f : ι → Ordinal.{max u v}) :
    sup.{_, v} f = lsub.{_, v} f ∨ succ (sup.{_, v} f) = lsub.{_, v} f 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: Ordinal.sup f = Ordinal.lsub f ∨ Order.succ (Ordinal.sup f) = Ordinal.lsub f
-- Ordinal.sup_succ_le_lsub
theorem sup_succ_le_lsub {ι : Type u} (f : ι → Ordinal.{max u v}) :
    succ (sup.{_, v} f) ≤ lsub.{_, v} f ↔ ∃ i, f i = sup.{_, v} f 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: Order.succ (Ordinal.sup f) ≤ Ordinal.lsub f ↔ ∃ i, f i = Ordinal.sup f
-- Ordinal.sup_succ_eq_lsub
theorem sup_succ_eq_lsub {ι : Type u} (f : ι → Ordinal.{max u v}) :
    succ (sup.{_, v} f) = lsub.{_, v} f ↔ ∃ i, f i = sup.{_, v} f 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: Order.succ (Ordinal.sup f) = Ordinal.lsub f ↔ ∃ i, f i = Ordinal.sup f
-- Ordinal.sup_eq_lsub_iff_succ
theorem sup_eq_lsub_iff_succ {ι : Type u} (f : ι → Ordinal.{max u v}) :
    sup.{_, v} f = lsub.{_, v} f ↔ ∀ a < lsub.{_, v} f, succ a < lsub.{_, v} f 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: Ordinal.sup f = Ordinal.lsub f ↔ ∀ a < Ordinal.lsub f, Order.succ a < Ordinal.lsub f
-- Ordinal.sup_eq_lsub_iff_lt_sup
theorem sup_eq_lsub_iff_lt_sup {ι : Type u} (f : ι → Ordinal.{max u v}) :
    sup.{_, v} f = lsub.{_, v} f ↔ ∀ i, f i < sup.{_, v} f 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: Ordinal.sup f = Ordinal.lsub f ↔ ∀ (i : ι), f i < Ordinal.sup f
-- Ordinal.lsub_empty
@[simp]
theorem lsub_empty {ι} [h : IsEmpty ι] (f : ι → Ordinal) : lsub f = 0 
Arguments: {ι : Type u_4} [h : IsEmpty ι] (f : ι → Ordinal.{max u_5 u_4})
Goal: Ordinal.lsub f = 0
-- Ordinal.lsub_pos
theorem lsub_pos {ι : Type u} [h : Nonempty ι] (f : ι → Ordinal.{max u v}) : 0 < lsub.{_, v} f 
Arguments: {ι : Type u} [h : Nonempty ι] (f : ι → Ordinal.{max u v})
Goal: 0 < Ordinal.lsub f
-- Ordinal.lsub_eq_zero_iff
@[simp]
theorem lsub_eq_zero_iff {ι : Type u} (f : ι → Ordinal.{max u v}) :
    lsub.{_, v} f = 0 ↔ IsEmpty ι 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: Ordinal.lsub f = 0 ↔ IsEmpty ι
-- Ordinal.lsub_const
@[simp]
theorem lsub_const {ι} [Nonempty ι] (o : Ordinal) : (lsub fun _ : ι => o) = succ o 
Arguments: {ι : Type u_4} [Nonempty ι] (o : Ordinal.{max u_5 u_4})
Goal: (Ordinal.lsub fun x => o) = Order.succ o
-- Ordinal.lsub_unique
@[simp]
theorem lsub_unique {ι} [Unique ι] (f : ι → Ordinal) : lsub f = succ (f default) 
Arguments: {ι : Type u_4} [Unique ι] (f : ι → Ordinal.{max u_5 u_4})
Goal: Ordinal.lsub f = Order.succ (f default)
-- Ordinal.lsub_le_of_range_subset
theorem lsub_le_of_range_subset {ι ι'} {f : ι → Ordinal} {g : ι' → Ordinal}
    (h : Set.range f ⊆ Set.range g) : lsub.{u, max v w} f ≤ lsub.{v, max u w} g 
Arguments: {ι : Type u} {ι' : Type v} {f : ι → Ordinal.{max (max u v) w}} {g : ι' → Ordinal.{max (max u v) w}} (h : Set.range f ⊆ Set.range g)
Goal: Ordinal.lsub f ≤ Ordinal.lsub g
-- Ordinal.lsub_eq_of_range_eq
theorem lsub_eq_of_range_eq {ι ι'} {f : ι → Ordinal} {g : ι' → Ordinal}
    (h : Set.range f = Set.range g) : lsub.{u, max v w} f = lsub.{v, max u w} g 
Arguments: {ι : Type u} {ι' : Type v} {f : ι → Ordinal.{max (max u v) w}} {g : ι' → Ordinal.{max (max u v) w}} (h : Set.range f = Set.range g)
Goal: Ordinal.lsub f = Ordinal.lsub g
-- Ordinal.lsub_sum
@[simp]
theorem lsub_sum {α : Type u} {β : Type v} (f : α ⊕ β → Ordinal) :
    lsub.{max u v, w} f =
      max (lsub.{u, max v w} fun a => f (Sum.inl a)) (lsub.{v, max u w} fun b => f (Sum.inr b)) 
Arguments: {α : Type u} {β : Type v} (f : α ⊕ β → Ordinal.{max (max u v) w})
Goal: Ordinal.lsub f = max (Ordinal.lsub fun a => f (Sum.inl a)) (Ordinal.lsub fun b => f (Sum.inr b))
-- Ordinal.lsub_not_mem_range
theorem lsub_not_mem_range {ι : Type u} (f : ι → Ordinal.{max u v}) :
    lsub.{_, v} f ∉ Set.range f 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: Ordinal.lsub f ∉ Set.range f
-- Ordinal.nonempty_compl_range
theorem nonempty_compl_range {ι : Type u} (f : ι → Ordinal.{max u v}) : (Set.range f)ᶜ.Nonempty 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: (Set.range f)ᶜ.Nonempty
-- Ordinal.lsub_typein
@[simp]
theorem lsub_typein (o : Ordinal) : lsub.{u, u} (typein ((· < ·) : o.out.α → o.out.α → Prop)) = o 
Arguments: (o : Ordinal.{u})
Goal: Ordinal.lsub (Ordinal.typein fun x x_1 => x < x_1) = o
-- Ordinal.sup_typein_limit
theorem sup_typein_limit {o : Ordinal} (ho : ∀ a, a < o → succ a < o) :
    sup.{u, u} (typein ((· < ·) : o.out.α → o.out.α → Prop)) = o 
Arguments: {o : Ordinal.{u}} (ho : ∀ a < o, Order.succ a < o)
Goal: Ordinal.sup (Ordinal.typein fun x x_1 => x < x_1) = o
-- Ordinal.sup_typein_succ
@[simp]
theorem sup_typein_succ {o : Ordinal} :
    sup.{u, u} (typein ((· < ·) : (succ o).out.α → (succ o).out.α → Prop)) = o 
Arguments: {o : Ordinal.{u}}
Goal: Ordinal.sup (Ordinal.typein fun x x_1 => x < x_1) = o
-- Ordinal.bsup_eq_blsub
@[simp]
theorem bsup_eq_blsub (o : Ordinal.{u}) (f : ∀ a < o, Ordinal.{max u v}) :
    (bsup.{_, v} o fun a ha => succ (f a ha)) = blsub.{_, v} o f 
Arguments: (o : Ordinal.{u}) (f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: (o.bsup fun a ha => Order.succ (f a ha)) = o.blsub f
-- Ordinal.lsub_eq_blsub'
theorem lsub_eq_blsub' {ι : Type u} (r : ι → ι → Prop) [IsWellOrder ι r] {o} (ho : type r = o)
    (f : ∀ a < o, Ordinal.{max u v}) : lsub.{_, v} (familyOfBFamily' r ho f) = blsub.{_, v} o f 
Arguments: {ι : Type u} (r : ι → ι → Prop) [IsWellOrder ι r] {o : Ordinal.{u}} (ho : Ordinal.type r = o) (f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: Ordinal.lsub (Ordinal.familyOfBFamily' r ho f) = o.blsub f
-- Ordinal.lsub_eq_lsub
theorem lsub_eq_lsub {ι ι' : Type u} (r : ι → ι → Prop) (r' : ι' → ι' → Prop) [IsWellOrder ι r]
    [IsWellOrder ι' r'] {o} (ho : type r = o) (ho' : type r' = o)
    (f : ∀ a < o, Ordinal.{max u v}) :
    lsub.{_, v} (familyOfBFamily' r ho f) = lsub.{_, v} (familyOfBFamily' r' ho' f) 
Arguments: {ι ι' : Type u} (r : ι → ι → Prop) (r' : ι' → ι' → Prop) [IsWellOrder ι r] [IsWellOrder ι' r'] {o : Ordinal.{u}} (ho : Ordinal.type r = o) (ho' : Ordinal.type r' = o) (f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: Ordinal.lsub (Ordinal.familyOfBFamily' r ho f) = Ordinal.lsub (Ordinal.familyOfBFamily' r' ho' f)
-- Ordinal.lsub_eq_blsub
@[simp]
theorem lsub_eq_blsub {o : Ordinal.{u}} (f : ∀ a < o, Ordinal.{max u v}) :
    lsub.{_, v} (familyOfBFamily o f) = blsub.{_, v} o f 
Arguments: {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: Ordinal.lsub (o.familyOfBFamily f) = o.blsub f
-- Ordinal.blsub_eq_lsub'
@[simp]
theorem blsub_eq_lsub' {ι : Type u} (r : ι → ι → Prop) [IsWellOrder ι r]
    (f : ι → Ordinal.{max u v}) : blsub.{_, v} _ (bfamilyOfFamily' r f) = lsub.{_, v} f 
Arguments: {ι : Type u} (r : ι → ι → Prop) [IsWellOrder ι r] (f : ι → Ordinal.{max u v})
Goal: (Ordinal.type r).blsub (Ordinal.bfamilyOfFamily' r f) = Ordinal.lsub f
-- Ordinal.blsub_eq_blsub
theorem blsub_eq_blsub {ι : Type u} (r r' : ι → ι → Prop) [IsWellOrder ι r] [IsWellOrder ι r']
    (f : ι → Ordinal.{max u v}) :
    blsub.{_, v} _ (bfamilyOfFamily' r f) = blsub.{_, v} _ (bfamilyOfFamily' r' f) 
Arguments: {ι : Type u} (r r' : ι → ι → Prop) [IsWellOrder ι r] [IsWellOrder ι r'] (f : ι → Ordinal.{max u v})
Goal: (Ordinal.type r).blsub (Ordinal.bfamilyOfFamily' r f) = (Ordinal.type r').blsub (Ordinal.bfamilyOfFamily' r' f)
-- Ordinal.blsub_eq_lsub
@[simp]
theorem blsub_eq_lsub {ι : Type u} (f : ι → Ordinal.{max u v}) :
    blsub.{_, v} _ (bfamilyOfFamily f) = lsub.{_, v} f 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: (Ordinal.type WellOrderingRel).blsub (Ordinal.bfamilyOfFamily f) = Ordinal.lsub f
-- Ordinal.blsub_congr
@[congr]
theorem blsub_congr {o₁ o₂ : Ordinal.{u}} (f : ∀ a < o₁, Ordinal.{max u v}) (ho : o₁ = o₂) :
    blsub.{_, v} o₁ f = blsub.{_, v} o₂ fun a h => f a (h.trans_eq ho.symm) 
Arguments: {o₁ o₂ : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o₁ → Ordinal.{max u v}) (ho : o₁ = o₂)
Goal: o₁.blsub f = o₂.blsub fun a h => f a ⋯
-- Ordinal.blsub_le_iff
theorem blsub_le_iff {o : Ordinal.{u}} {f : ∀ a < o, Ordinal.{max u v}} {a} :
    blsub.{_, v} o f ≤ a ↔ ∀ i h, f i h < a 
Arguments: {o : Ordinal.{u}} {f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}} {a : Ordinal.{max u v}}
Goal: o.blsub f ≤ a ↔ ∀ (i : Ordinal.{u}) (h : i < o), f i h < a
-- Ordinal.blsub_le
theorem blsub_le {o : Ordinal} {f : ∀ b < o, Ordinal} {a} : (∀ i h, f i h < a) → blsub o f ≤ a 
Arguments: {o : Ordinal.{u_4}} {f : (b : Ordinal.{u_4}) → b < o → Ordinal.{max u_4 u_5}} {a : Ordinal.{max u_4 u_5}}
Goal: (∀ (i : Ordinal.{u_4}) (h : i < o), f i h < a) → o.blsub f ≤ a
-- Ordinal.lt_blsub
theorem lt_blsub {o} (f : ∀ a < o, Ordinal) (i h) : f i h < blsub o f 
Arguments: {o : Ordinal.{u_4}} (f : (a : Ordinal.{u_4}) → a < o → Ordinal.{max u_5 u_4}) (i : Ordinal.{u_4}) (h : i < o)
Goal: f i h < o.blsub f
-- Ordinal.lt_blsub_iff
theorem lt_blsub_iff {o : Ordinal.{u}} {f : ∀ b < o, Ordinal.{max u v}} {a} :
    a < blsub.{_, v} o f ↔ ∃ i hi, a ≤ f i hi 
Arguments: {o : Ordinal.{u}} {f : (b : Ordinal.{u}) → b < o → Ordinal.{max u v}} {a : Ordinal.{max u v}}
Goal: a < o.blsub f ↔ ∃ i, ∃ (hi : i < o), a ≤ f i hi
-- Ordinal.bsup_le_blsub
theorem bsup_le_blsub {o : Ordinal.{u}} (f : ∀ a < o, Ordinal.{max u v}) :
    bsup.{_, v} o f ≤ blsub.{_, v} o f 
Arguments: {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: o.bsup f ≤ o.blsub f
-- Ordinal.blsub_le_bsup_succ
theorem blsub_le_bsup_succ {o : Ordinal.{u}} (f : ∀ a < o, Ordinal.{max u v}) :
    blsub.{_, v} o f ≤ succ (bsup.{_, v} o f) 
Arguments: {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: o.blsub f ≤ Order.succ (o.bsup f)
-- Ordinal.bsup_eq_blsub_or_succ_bsup_eq_blsub
theorem bsup_eq_blsub_or_succ_bsup_eq_blsub {o : Ordinal.{u}} (f : ∀ a < o, Ordinal.{max u v}) :
    bsup.{_, v} o f = blsub.{_, v} o f ∨ succ (bsup.{_, v} o f) = blsub.{_, v} o f 
Arguments: {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: o.bsup f = o.blsub f ∨ Order.succ (o.bsup f) = o.blsub f
-- Ordinal.bsup_succ_le_blsub
theorem bsup_succ_le_blsub {o : Ordinal.{u}} (f : ∀ a < o, Ordinal.{max u v}) :
    succ (bsup.{_, v} o f) ≤ blsub.{_, v} o f ↔ ∃ i hi, f i hi = bsup.{_, v} o f 
Arguments: {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: Order.succ (o.bsup f) ≤ o.blsub f ↔ ∃ i, ∃ (hi : i < o), f i hi = o.bsup f
-- Ordinal.bsup_succ_eq_blsub
theorem bsup_succ_eq_blsub {o : Ordinal.{u}} (f : ∀ a < o, Ordinal.{max u v}) :
    succ (bsup.{_, v} o f) = blsub.{_, v} o f ↔ ∃ i hi, f i hi = bsup.{_, v} o f 
Arguments: {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: Order.succ (o.bsup f) = o.blsub f ↔ ∃ i, ∃ (hi : i < o), f i hi = o.bsup f
-- Ordinal.bsup_eq_blsub_iff_succ
theorem bsup_eq_blsub_iff_succ {o : Ordinal.{u}} (f : ∀ a < o, Ordinal.{max u v}) :
    bsup.{_, v} o f = blsub.{_, v} o f ↔ ∀ a < blsub.{_, v} o f, succ a < blsub.{_, v} o f 
Arguments: {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: o.bsup f = o.blsub f ↔ ∀ a < o.blsub f, Order.succ a < o.blsub f
-- Ordinal.bsup_eq_blsub_iff_lt_bsup
theorem bsup_eq_blsub_iff_lt_bsup {o : Ordinal.{u}} (f : ∀ a < o, Ordinal.{max u v}) :
    bsup.{_, v} o f = blsub.{_, v} o f ↔ ∀ i hi, f i hi < bsup.{_, v} o f 
Arguments: {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
Goal: o.bsup f = o.blsub f ↔ ∀ (i : Ordinal.{u}) (hi : i < o), f i hi < o.bsup f
-- Ordinal.bsup_eq_blsub_of_lt_succ_limit
theorem bsup_eq_blsub_of_lt_succ_limit {o : Ordinal.{u}} (ho : IsLimit o)
    {f : ∀ a < o, Ordinal.{max u v}} (hf : ∀ a ha, f a ha < f (succ a) (ho.2 a ha)) :
    bsup.{_, v} o f = blsub.{_, v} o f 
Arguments: {o : Ordinal.{u}} (ho : o.IsLimit) {f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}} (hf : ∀ (a : Ordinal.{u}) (ha : a < o), f a ha < f (Order.succ a) ⋯)
Goal: o.bsup f = o.blsub f
-- Ordinal.blsub_succ_of_mono
theorem blsub_succ_of_mono {o : Ordinal.{u}} {f : ∀ a < succ o, Ordinal.{max u v}}
    (hf : ∀ {i j} (hi hj), i ≤ j → f i hi ≤ f j hj) : blsub.{_, v} _ f = succ (f o (lt_succ o)) 
Arguments: {o : Ordinal.{u}} {f : (a : Ordinal.{u}) → a < Order.succ o → Ordinal.{max u v}} (hf : ∀ {i j : Ordinal.{u}} (hi : i < Order.succ o) (hj : j < Order.succ o), i ≤ j → f i hi ≤ f j hj)
Goal: (Order.succ o).blsub f = Order.succ (f o ⋯)
-- Ordinal.blsub_eq_zero_iff
@[simp]
theorem blsub_eq_zero_iff {o} {f : ∀ a < o, Ordinal} : blsub o f = 0 ↔ o = 0 
Arguments: {o : Ordinal.{u_4}} {f : (a : Ordinal.{u_4}) → a < o → Ordinal.{max u_5 u_4}}
Goal: o.blsub f = 0 ↔ o = 0
-- Ordinal.blsub_zero
@[simp]
theorem blsub_zero (f : ∀ a < (0 : Ordinal), Ordinal) : blsub 0 f = 0 
Arguments: (f : (a : Ordinal.{u_4}) → a < 0 → Ordinal.{max u_4 u_5})
Goal: Ordinal.blsub 0 f = 0
-- Ordinal.blsub_pos
theorem blsub_pos {o : Ordinal} (ho : 0 < o) (f : ∀ a < o, Ordinal) : 0 < blsub o f 
Arguments: {o : Ordinal.{u_4}} (ho : 0 < o) (f : (a : Ordinal.{u_4}) → a < o → Ordinal.{max u_4 u_5})
Goal: 0 < o.blsub f
-- Ordinal.blsub_type
theorem blsub_type {α : Type u} (r : α → α → Prop) [IsWellOrder α r]
    (f : ∀ a < type r, Ordinal.{max u v}) :
    blsub.{_, v} (type r) f = lsub.{_, v} fun a => f (typein r a) (typein_lt_type _ _) 
Arguments: {α : Type u} (r : α → α → Prop) [IsWellOrder α r] (f : (a : Ordinal.{u}) → a < Ordinal.type r → Ordinal.{max u v})
Goal: (Ordinal.type r).blsub f = Ordinal.lsub fun a => f (Ordinal.typein r a) ⋯
-- Ordinal.blsub_const
theorem blsub_const {o : Ordinal} (ho : o ≠ 0) (a : Ordinal) :
    (blsub.{u, v} o fun _ _ => a) = succ a 
Arguments: {o : Ordinal.{u}} (ho : o ≠ 0) (a : Ordinal.{max u v})
Goal: (o.blsub fun x x => a) = Order.succ a
-- Ordinal.blsub_one
@[simp]
theorem blsub_one (f : ∀ a < (1 : Ordinal), Ordinal) : blsub 1 f = succ (f 0 zero_lt_one) 
Arguments: (f : (a : Ordinal.{u_4}) → a < 1 → Ordinal.{max u_4 u_5})
Goal: Ordinal.blsub 1 f = Order.succ (f 0 ⋯)
-- Ordinal.blsub_id
@[simp]
theorem blsub_id : ∀ o, (blsub.{u, u} o fun x _ => x) = o 
Arguments: (o : Ordinal.{u})
Goal: (o.blsub fun x x_1 => x) = o
-- Ordinal.bsup_id_limit
theorem bsup_id_limit {o : Ordinal} : (∀ a < o, succ a < o) → (bsup.{u, u} o fun x _ => x) = o 
Arguments: {o : Ordinal.{u}}
Goal: (∀ a < o, Order.succ a < o) → (o.bsup fun x x_1 => x) = o
-- Ordinal.bsup_id_succ
@[simp]
theorem bsup_id_succ (o) : (bsup.{u, u} (succ o) fun x _ => x) = o 
Arguments: (o : Ordinal.{u})
Goal: ((Order.succ o).bsup fun x x_1 => x) = o
-- Ordinal.blsub_le_of_brange_subset
theorem blsub_le_of_brange_subset {o o'} {f : ∀ a < o, Ordinal} {g : ∀ a < o', Ordinal}
    (h : brange o f ⊆ brange o' g) : blsub.{u, max v w} o f ≤ blsub.{v, max u w} o' g 
Arguments: {o : Ordinal.{u}} {o' : Ordinal.{v}} {f : (a : Ordinal.{u}) → a < o → Ordinal.{max (max u v) w}} {g : (a : Ordinal.{v}) → a < o' → Ordinal.{max (max u v) w}} (h : o.brange f ⊆ o'.brange g)
Goal: o.blsub f ≤ o'.blsub g
-- Ordinal.blsub_eq_of_brange_eq
theorem blsub_eq_of_brange_eq {o o'} {f : ∀ a < o, Ordinal} {g : ∀ a < o', Ordinal}
    (h : { o | ∃ i hi, f i hi = o } = { o | ∃ i hi, g i hi = o }) :
    blsub.{u, max v w} o f = blsub.{v, max u w} o' g 
Arguments: {o : Ordinal.{u}} {o' : Ordinal.{v}} {f : (a : Ordinal.{u}) → a < o → Ordinal.{max (max u v) w}} {g : (a : Ordinal.{v}) → a < o' → Ordinal.{max (max u v) w}} (h : {o_1 | ∃ i, ∃ (hi : i < o), f i hi = o_1} = {o | ∃ i, ∃ (hi : i < o'), g i hi = o})
Goal: o.blsub f = o'.blsub g
-- Ordinal.bsup_comp
theorem bsup_comp {o o' : Ordinal.{max u v}} {f : ∀ a < o, Ordinal.{max u v w}}
    (hf : ∀ {i j} (hi) (hj), i ≤ j → f i hi ≤ f j hj) {g : ∀ a < o', Ordinal.{max u v}}
    (hg : blsub.{_, u} o' g = o) :
    (bsup.{_, w} o' fun a ha => f (g a ha) (by rw [← hg]; apply lt_blsub)) = bsup.{_, w} o f 
Arguments: {o o' : Ordinal.{max u v}} {f : (a : Ordinal.{max u v}) → a < o → Ordinal.{max u v w}} (hf : ∀ {i j : Ordinal.{max u v}} (hi : i < o) (hj : j < o), i ≤ j → f i hi ≤ f j hj) {g : (a : Ordinal.{max u v}) → a < o' → Ordinal.{max u v}} (hg : o'.blsub g = o)
Goal: (o'.bsup fun a ha => f (g a ha) ⋯) = o.bsup f
-- Ordinal.blsub_comp
theorem blsub_comp {o o' : Ordinal.{max u v}} {f : ∀ a < o, Ordinal.{max u v w}}
    (hf : ∀ {i j} (hi) (hj), i ≤ j → f i hi ≤ f j hj) {g : ∀ a < o', Ordinal.{max u v}}
    (hg : blsub.{_, u} o' g = o) :
    (blsub.{_, w} o' fun a ha => f (g a ha) (by rw [← hg]; apply lt_blsub)) = blsub.{_, w} o f 
Arguments: {o o' : Ordinal.{max u v}} {f : (a : Ordinal.{max u v}) → a < o → Ordinal.{max u v w}} (hf : ∀ {i j : Ordinal.{max u v}} (hi : i < o) (hj : j < o), i ≤ j → f i hi ≤ f j hj) {g : (a : Ordinal.{max u v}) → a < o' → Ordinal.{max u v}} (hg : o'.blsub g = o)
Goal: (o'.blsub fun a ha => f (g a ha) ⋯) = o.blsub f
-- Ordinal.IsNormal.bsup_eq
theorem IsNormal.bsup_eq {f : Ordinal.{u} → Ordinal.{max u v}} (H : IsNormal f) {o : Ordinal.{u}}
    (h : IsLimit o) : (Ordinal.bsup.{_, v} o fun x _ => f x) = f o 
Arguments: {f : Ordinal.{u} → Ordinal.{max u v}} (H : Ordinal.IsNormal f) {o : Ordinal.{u}} (h : o.IsLimit)
Goal: (o.bsup fun x x_1 => f x) = f o
-- Ordinal.IsNormal.blsub_eq
theorem IsNormal.blsub_eq {f : Ordinal.{u} → Ordinal.{max u v}} (H : IsNormal f) {o : Ordinal.{u}}
    (h : IsLimit o) : (blsub.{_, v} o fun x _ => f x) = f o 
Arguments: {f : Ordinal.{u} → Ordinal.{max u v}} (H : Ordinal.IsNormal f) {o : Ordinal.{u}} (h : o.IsLimit)
Goal: (o.blsub fun x x_1 => f x) = f o
-- Ordinal.isNormal_iff_lt_succ_and_bsup_eq
theorem isNormal_iff_lt_succ_and_bsup_eq {f : Ordinal.{u} → Ordinal.{max u v}} :
    IsNormal f ↔ (∀ a, f a < f (succ a)) ∧ ∀ o, IsLimit o → (bsup.{_, v} o fun x _ => f x) = f o 
Arguments: {f : Ordinal.{u} → Ordinal.{max u v}}
Goal: Ordinal.IsNormal f ↔
  (∀ (a : Ordinal.{u}), f a < f (Order.succ a)) ∧ ∀ (o : Ordinal.{u}), o.IsLimit → (o.bsup fun x x_1 => f x) = f o
-- Ordinal.isNormal_iff_lt_succ_and_blsub_eq
theorem isNormal_iff_lt_succ_and_blsub_eq {f : Ordinal.{u} → Ordinal.{max u v}} :
    IsNormal f ↔ (∀ a, f a < f (succ a)) ∧
      ∀ o, IsLimit o → (blsub.{_, v} o fun x _ => f x) = f o 
Arguments: {f : Ordinal.{u} → Ordinal.{max u v}}
Goal: Ordinal.IsNormal f ↔
  (∀ (a : Ordinal.{u}), f a < f (Order.succ a)) ∧ ∀ (o : Ordinal.{u}), o.IsLimit → (o.blsub fun x x_1 => f x) = f o
-- Ordinal.IsNormal.eq_iff_zero_and_succ
theorem IsNormal.eq_iff_zero_and_succ {f g : Ordinal.{u} → Ordinal.{u}} (hf : IsNormal f)
    (hg : IsNormal g) : f = g ↔ f 0 = g 0 ∧ ∀ a, f a = g a → f (succ a) = g (succ a) 
Arguments: {f g : Ordinal.{u} → Ordinal.{u}} (hf : Ordinal.IsNormal f) (hg : Ordinal.IsNormal g)
Goal: f = g ↔ f 0 = g 0 ∧ ∀ (a : Ordinal.{u}), f a = g a → f (Order.succ a) = g (Order.succ a)