ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- SimpleGraph.induce_union_connected
lemma induce_union_connected {s t : Set V}
    (sconn : (G.induce s).Connected) (tconn : (G.induce t).Connected)
    (sintert : (s ∩ t).Nonempty) :
    (G.induce (s ∪ t)).Connected 
Arguments: {V : Type u} {G : SimpleGraph V} {s t : Set V} (sconn : (SimpleGraph.induce s G).Connected) (tconn : (SimpleGraph.induce t G).Connected) (sintert : (s ∩ t).Nonempty)
Goal: (SimpleGraph.induce (s ∪ t) G).Connected
-- SimpleGraph.induce_pair_connected_of_adj
lemma induce_pair_connected_of_adj {u v : V} (huv : G.Adj u v) :
    (G.induce {u, v}).Connected 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (huv : G.Adj u v)
Goal: (SimpleGraph.induce {u, v} G).Connected
-- SimpleGraph.Subgraph.Connected.induce_verts
lemma Subgraph.Connected.induce_verts {H : G.Subgraph} (h : H.Connected) :
    (G.induce H.verts).Connected 
Arguments: {V : Type u} {G : SimpleGraph V} {H : G.Subgraph} (h : H.Connected)
Goal: (SimpleGraph.induce H.verts G).Connected
-- SimpleGraph.Walk.connected_induce_support
lemma Walk.connected_induce_support {u v : V} (p : G.Walk u v) :
    (G.induce {v | v ∈ p.support}).Connected 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v)
Goal: (SimpleGraph.induce {v_1 | v_1 ∈ p.support} G).Connected
-- SimpleGraph.induce_connected_adj_union
lemma induce_connected_adj_union {v w : V} {s t : Set V}
    (sconn : (G.induce s).Connected) (tconn : (G.induce t).Connected)
    (hv : v ∈ s) (hw : w ∈ t) (ha : G.Adj v w) :
    (G.induce (s ∪ t)).Connected 
Arguments: {V : Type u} {G : SimpleGraph V} {v w : V} {s t : Set V} (sconn : (SimpleGraph.induce s G).Connected) (tconn : (SimpleGraph.induce t G).Connected) (hv : v ∈ s) (hw : w ∈ t) (ha : G.Adj v w)
Goal: (SimpleGraph.induce (s ∪ t) G).Connected
-- SimpleGraph.induce_connected_of_patches
lemma induce_connected_of_patches {s : Set V} (u : V) (hu : u ∈ s)
    (patches : ∀ {v}, v ∈ s → ∃ s' ⊆ s, ∃ (hu' : u ∈ s') (hv' : v ∈ s'),
                  (G.induce s').Reachable ⟨u, hu'⟩ ⟨v, hv'⟩) : (G.induce s).Connected 
Arguments: {V : Type u} {G : SimpleGraph V} {s : Set V} (u : V) (hu : u ∈ s) (patches :
  ∀ {v : V}, v ∈ s → ∃ s' ⊆ s, ∃ (hu' : u ∈ s') (hv' : v ∈ s'), (SimpleGraph.induce s' G).Reachable ⟨u, hu'⟩ ⟨v, hv'⟩)
Goal: (SimpleGraph.induce s G).Connected
-- SimpleGraph.induce_sUnion_connected_of_pairwise_not_disjoint
lemma induce_sUnion_connected_of_pairwise_not_disjoint {S : Set (Set V)} (Sn : S.Nonempty)
    (Snd : ∀ {s t}, s ∈ S → t ∈ S → (s ∩ t).Nonempty)
    (Sc : ∀ {s}, s ∈ S → (G.induce s).Connected) :
    (G.induce (⋃₀ S)).Connected 
Arguments: {V : Type u} {G : SimpleGraph V} {S : Set (Set V)} (Sn : S.Nonempty) (Snd : ∀ {s t : Set V}, s ∈ S → t ∈ S → (s ∩ t).Nonempty) (Sc : ∀ {s : Set V}, s ∈ S → (SimpleGraph.induce s G).Connected)
Goal: (SimpleGraph.induce (⋃₀ S) G).Connected
-- SimpleGraph.extend_finset_to_connected
lemma extend_finset_to_connected (Gpc : G.Preconnected) {t : Finset V} (tn : t.Nonempty) :
    ∃ (t' : Finset V), t ⊆ t' ∧ (G.induce (t' : Set V)).Connected 
Arguments: {V : Type u} {G : SimpleGraph V} (Gpc : G.Preconnected) {t : Finset V} (tn : t.Nonempty)
Goal: ∃ t', t ⊆ t' ∧ (SimpleGraph.induce (↑t') G).Connected
-- SzemerediRegularity.card_increment
theorem card_increment (hPα : P.parts.card * 16 ^ P.parts.card ≤ card α) (hPG : ¬P.IsUniform G ε) :
    (increment hP G ε).parts.card = stepBound P.parts.card 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {P : Finpartition Finset.univ} {hP : P.IsEquipartition} {G : SimpleGraph α} [DecidableRel G.Adj] {ε : ℝ} (hPα : P.parts.card * 16 ^ P.parts.card ≤ Fintype.card α) (hPG : ¬P.IsUniform G ε)
Goal: (SzemerediRegularity.increment hP G ε).parts.card = SzemerediRegularity.stepBound P.parts.card
-- SzemerediRegularity.increment_isEquipartition
theorem increment_isEquipartition : (increment hP G ε).IsEquipartition 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {P : Finpartition Finset.univ} (hP : P.IsEquipartition) (G : SimpleGraph α) [DecidableRel G.Adj] (ε : ℝ)
Goal: (SzemerediRegularity.increment hP G ε).IsEquipartition
-- _private.Mathlib.Combinatorics.SimpleGraph.Regularity.Increment.0.SzemerediRegularity.distinctPairs_increment
private theorem distinctPairs_increment :
    P.parts.offDiag.attach.biUnion (distinctPairs hP G ε) ⊆ (increment hP G ε).parts.offDiag 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {P : Finpartition Finset.univ} {hP : P.IsEquipartition} {G : SimpleGraph α} [DecidableRel G.Adj] {ε : ℝ}
Goal: P.parts.offDiag.attach.biUnion (SzemerediRegularity.distinctPairs hP G ε) ⊆
  (SzemerediRegularity.increment hP G ε).parts.offDiag
-- _private.Mathlib.Combinatorics.SimpleGraph.Regularity.Increment.0.SzemerediRegularity.pairwiseDisjoint_distinctPairs
private lemma pairwiseDisjoint_distinctPairs :
    (P.parts.offDiag.attach : Set {x // x ∈ P.parts.offDiag}).PairwiseDisjoint
      (distinctPairs hP G ε) 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {P : Finpartition Finset.univ} {hP : P.IsEquipartition} {G : SimpleGraph α} [DecidableRel G.Adj] {ε : ℝ}
Goal: (↑P.parts.offDiag.attach).PairwiseDisjoint (SzemerediRegularity.distinctPairs hP G ε)
-- SzemerediRegularity.le_sum_distinctPairs_edgeDensity_sq
lemma le_sum_distinctPairs_edgeDensity_sq (x : {i // i ∈ P.parts.offDiag}) (hε₁ : ε ≤ 1)
    (hPα : P.parts.card * 16 ^ P.parts.card ≤ card α) (hPε : ↑100 ≤ ↑4 ^ P.parts.card * ε ^ 5) :
    (G.edgeDensity x.1.1 x.1.2 : ℝ) ^ 2 +
      ((if G.IsUniform ε x.1.1 x.1.2 then 0 else ε ^ 4 / 3) - ε ^ 5 / 25) ≤
    (∑ i ∈ distinctPairs hP G ε x, G.edgeDensity i.1 i.2 ^ 2 : ℝ) / 16 ^ P.parts.card 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {P : Finpartition Finset.univ} {hP : P.IsEquipartition} {G : SimpleGraph α} [DecidableRel G.Adj] {ε : ℝ} [Nonempty α] (x : { i // i ∈ P.parts.offDiag }) (hε₁ : ε ≤ 1) (hPα : P.parts.card * 16 ^ P.parts.card ≤ Fintype.card α) (hPε : 100 ≤ 4 ^ P.parts.card * ε ^ 5)
Goal: ↑(G.edgeDensity (↑x).1 (↑x).2) ^ 2 + ((if G.IsUniform ε (↑x).1 (↑x).2 then 0 else ε ^ 4 / 3) - ε ^ 5 / 25) ≤
  (∑ i ∈ SzemerediRegularity.distinctPairs hP G ε x, ↑(G.edgeDensity i.1 i.2) ^ 2) / 16 ^ P.parts.card
-- SzemerediRegularity.energy_increment
theorem energy_increment (hP : P.IsEquipartition) (hP₇ : 7 ≤ P.parts.card)
    (hPε : 100 ≤ 4 ^ P.parts.card * ε ^ 5) (hPα : P.parts.card * 16 ^ P.parts.card ≤ card α)
    (hPG : ¬P.IsUniform G ε) (hε₀ : 0 ≤ ε) (hε₁ : ε ≤ 1) :
    ↑(P.energy G) + ε ^ 5 / 4 ≤ (increment hP G ε).energy G 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {P : Finpartition Finset.univ} {G : SimpleGraph α} [DecidableRel G.Adj] {ε : ℝ} [Nonempty α] (hP : P.IsEquipartition) (hP₇ : 7 ≤ P.parts.card) (hPε : 100 ≤ 4 ^ P.parts.card * ε ^ 5) (hPα : P.parts.card * 16 ^ P.parts.card ≤ Fintype.card α) (hPG : ¬P.IsUniform G ε) (hε₀ : 0 ≤ ε) (hε₁ : ε ≤ 1)
Goal: ↑(P.energy G) + ε ^ 5 / 4 ≤ ↑((SzemerediRegularity.increment hP G ε).energy G)
-- NatOrdinal.toOrdinal_symm_eq
@[simp]
theorem toOrdinal_symm_eq : NatOrdinal.toOrdinal.symm = Ordinal.toNatOrdinal 
Goal: NatOrdinal.toOrdinal.symm = Ordinal.toNatOrdinal
-- NatOrdinal.toOrdinal_toNatOrdinal
@[simp]
theorem toOrdinal_toNatOrdinal (a : NatOrdinal) :
    Ordinal.toNatOrdinal (NatOrdinal.toOrdinal a) = a 
Arguments: (a : NatOrdinal)
Goal: Ordinal.toNatOrdinal (NatOrdinal.toOrdinal a) = a
-- NatOrdinal.lt_wf
theorem lt_wf : @WellFounded NatOrdinal (· < ·) 
Goal: WellFounded fun x x_1 => x < x_1
-- NatOrdinal.toOrdinal_zero
@[simp]
theorem toOrdinal_zero : toOrdinal 0 = 0 
Goal: NatOrdinal.toOrdinal 0 = 0
-- NatOrdinal.toOrdinal_one
@[simp]
theorem toOrdinal_one : toOrdinal 1 = 1 
Goal: NatOrdinal.toOrdinal 1 = 1
-- NatOrdinal.toOrdinal_eq_zero
@[simp]
theorem toOrdinal_eq_zero (a) : toOrdinal a = 0 ↔ a = 0 
Arguments: (a : NatOrdinal)
Goal: NatOrdinal.toOrdinal a = 0 ↔ a = 0
-- NatOrdinal.toOrdinal_eq_one
@[simp]
theorem toOrdinal_eq_one (a) : toOrdinal a = 1 ↔ a = 1 
Arguments: (a : NatOrdinal)
Goal: NatOrdinal.toOrdinal a = 1 ↔ a = 1
-- NatOrdinal.toOrdinal_max
@[simp]
theorem toOrdinal_max {a b : NatOrdinal} : toOrdinal (max a b) = max (toOrdinal a) (toOrdinal b) 
Arguments: {a b : NatOrdinal}
Goal: NatOrdinal.toOrdinal (max a b) = max (NatOrdinal.toOrdinal a) (NatOrdinal.toOrdinal b)
-- NatOrdinal.toOrdinal_min
@[simp]
theorem toOrdinal_min {a b : NatOrdinal} : toOrdinal (min a b) = min (toOrdinal a) (toOrdinal b) 
Arguments: {a b : NatOrdinal}
Goal: NatOrdinal.toOrdinal (min a b) = min (NatOrdinal.toOrdinal a) (NatOrdinal.toOrdinal b)
-- NatOrdinal.succ_def
theorem succ_def (a : NatOrdinal) : succ a = toNatOrdinal (toOrdinal a + 1) 
Arguments: (a : NatOrdinal)
Goal: Order.succ a = Ordinal.toNatOrdinal (NatOrdinal.toOrdinal a + 1)
-- NatOrdinal.induction
theorem induction {p : NatOrdinal → Prop} : ∀ (i) (_ : ∀ j, (∀ k, k < j → p k) → p j), p i 
Arguments: {p : NatOrdinal → Prop} (i : NatOrdinal)
Goal: (∀ (j : NatOrdinal), (∀ k < j, p k) → p j) → p i
-- Ordinal.toNatOrdinal_symm_eq
@[simp]
theorem toNatOrdinal_symm_eq : toNatOrdinal.symm = NatOrdinal.toOrdinal 
Goal: Ordinal.toNatOrdinal.symm = NatOrdinal.toOrdinal
-- Ordinal.toNatOrdinal_toOrdinal
@[simp]
theorem toNatOrdinal_toOrdinal (a : Ordinal) :  NatOrdinal.toOrdinal (toNatOrdinal a) = a 
Arguments: (a : Ordinal.{u_1})
Goal: NatOrdinal.toOrdinal (Ordinal.toNatOrdinal a) = a
-- Ordinal.toNatOrdinal_zero
@[simp]
theorem toNatOrdinal_zero : toNatOrdinal 0 = 0 
Goal: Ordinal.toNatOrdinal 0 = 0
-- Ordinal.toNatOrdinal_one
@[simp]
theorem toNatOrdinal_one : toNatOrdinal 1 = 1 
Goal: Ordinal.toNatOrdinal 1 = 1
-- Ordinal.toNatOrdinal_eq_zero
@[simp]
theorem toNatOrdinal_eq_zero (a) : toNatOrdinal a = 0 ↔ a = 0 
Arguments: (a : Ordinal.{u_1})
Goal: Ordinal.toNatOrdinal a = 0 ↔ a = 0
-- Ordinal.toNatOrdinal_eq_one
@[simp]
theorem toNatOrdinal_eq_one (a) : toNatOrdinal a = 1 ↔ a = 1 
Arguments: (a : Ordinal.{u_1})
Goal: Ordinal.toNatOrdinal a = 1 ↔ a = 1
-- Ordinal.toNatOrdinal_max
@[simp]
theorem toNatOrdinal_max (a b : Ordinal) :
    toNatOrdinal (max a b) = max (toNatOrdinal a) (toNatOrdinal b) 
Arguments: (a b : Ordinal.{u_1})
Goal: Ordinal.toNatOrdinal (max a b) = max (Ordinal.toNatOrdinal a) (Ordinal.toNatOrdinal b)
-- Ordinal.toNatOrdinal_min
@[simp]
theorem toNatOrdinal_min (a b : Ordinal) :
    toNatOrdinal (linearOrder.min a b) = linearOrder.min (toNatOrdinal a) (toNatOrdinal b) 
Arguments: (a b : Ordinal.{u_1})
Goal: Ordinal.toNatOrdinal (min a b) = min (Ordinal.toNatOrdinal a) (Ordinal.toNatOrdinal b)
-- Ordinal.nadd_def
theorem nadd_def (a b : Ordinal) :
    a ♯ b = max (blsub.{u, u} a fun a' _ => a' ♯ b) (blsub.{u, u} b fun b' _ => a ♯ b') 
Arguments: (a b : Ordinal.{u})
Goal: a ♯ b = max (a.blsub fun a' x => a' ♯ b) (b.blsub fun b' x => a ♯ b')
-- Ordinal.lt_nadd_iff
theorem lt_nadd_iff : a < b ♯ c ↔ (∃ b' < b, a ≤ b' ♯ c) ∨ ∃ c' < c, a ≤ b ♯ c' 
Arguments: {a b c : Ordinal.{u}}
Goal: a < b ♯ c ↔ (∃ b' < b, a ≤ b' ♯ c) ∨ ∃ c' < c, a ≤ b ♯ c'
-- Ordinal.nadd_le_iff
theorem nadd_le_iff : b ♯ c ≤ a ↔ (∀ b' < b, b' ♯ c < a) ∧ ∀ c' < c, b ♯ c' < a 
Arguments: {a b c : Ordinal.{u}}
Goal: b ♯ c ≤ a ↔ (∀ b' < b, b' ♯ c < a) ∧ ∀ c' < c, b ♯ c' < a
-- Ordinal.nadd_lt_nadd_left
theorem nadd_lt_nadd_left (h : b < c) (a) : a ♯ b < a ♯ c 
Arguments: {b c : Ordinal.{u}} (h : b < c) (a : Ordinal.{u})
Goal: a ♯ b < a ♯ c
-- Ordinal.nadd_lt_nadd_right
theorem nadd_lt_nadd_right (h : b < c) (a) : b ♯ a < c ♯ a 
Arguments: {b c : Ordinal.{u}} (h : b < c) (a : Ordinal.{u})
Goal: b ♯ a < c ♯ a
-- Ordinal.nadd_le_nadd_left
theorem nadd_le_nadd_left (h : b ≤ c) (a) : a ♯ b ≤ a ♯ c 
Arguments: {b c : Ordinal.{u}} (h : b ≤ c) (a : Ordinal.{u})
Goal: a ♯ b ≤ a ♯ c
-- Ordinal.nadd_le_nadd_right
theorem nadd_le_nadd_right (h : b ≤ c) (a) : b ♯ a ≤ c ♯ a 
Arguments: {b c : Ordinal.{u}} (h : b ≤ c) (a : Ordinal.{u})
Goal: b ♯ a ≤ c ♯ a
-- Ordinal.nadd_comm
theorem nadd_comm : ∀ a b, a ♯ b = b ♯ a
  
Arguments: (a b : Ordinal.{u_1})
Goal: a ♯ b = b ♯ a
-- Ordinal.blsub_nadd_of_mono
theorem blsub_nadd_of_mono {f : ∀ c < a ♯ b, Ordinal.{max u v}}
    (hf : ∀ {i j} (hi hj), i ≤ j → f i hi ≤ f j hj) :
    -- Porting note: needed to add universe hint blsub.{u,v} in the line below
    blsub.{u,v} _ f =
      max (blsub.{u, v} a fun a' ha' => f (a' ♯ b) <| nadd_lt_nadd_right ha' b)
        (blsub.{u, v} b fun b' hb' => f (a ♯ b') <| nadd_lt_nadd_left hb' a) 
Arguments: (a b : Ordinal.{u}) {f : (c : Ordinal.{u}) → c < a ♯ b → Ordinal.{max u v}} (hf : ∀ {i j : Ordinal.{u}} (hi : i < a ♯ b) (hj : j < a ♯ b), i ≤ j → f i hi ≤ f j hj)
Goal: (a ♯ b).blsub f = max (a.blsub fun a' ha' => f (a' ♯ b) ⋯) (b.blsub fun b' hb' => f (a ♯ b') ⋯)
-- Ordinal.nadd_assoc
theorem nadd_assoc (a b c) : a ♯ b ♯ c = a ♯ (b ♯ c) 
Arguments: (a b c : Ordinal.{u_1})
Goal: a ♯ b ♯ c = a ♯ (b ♯ c)
-- Ordinal.nadd_zero
@[simp]
theorem nadd_zero : a ♯ 0 = a 
Arguments: (a : Ordinal.{u})
Goal: a ♯ 0 = a
-- Ordinal.zero_nadd
@[simp]
theorem zero_nadd : 0 ♯ a = a 
Arguments: (a : Ordinal.{u})
Goal: 0 ♯ a = a
-- Ordinal.nadd_one
@[simp]
theorem nadd_one : a ♯ 1 = succ a 
Arguments: (a : Ordinal.{u})
Goal: a ♯ 1 = Order.succ a
-- Ordinal.one_nadd
@[simp]
theorem one_nadd : 1 ♯ a = succ a 
Arguments: (a : Ordinal.{u})
Goal: 1 ♯ a = Order.succ a
-- Ordinal.nadd_succ
theorem nadd_succ : a ♯ succ b = succ (a ♯ b) 
Arguments: (a b : Ordinal.{u})
Goal: a ♯ Order.succ b = Order.succ (a ♯ b)
-- Ordinal.succ_nadd
theorem succ_nadd : succ a ♯ b = succ (a ♯ b) 
Arguments: (a b : Ordinal.{u})
Goal: Order.succ a ♯ b = Order.succ (a ♯ b)
-- Ordinal.nadd_nat
@[simp]
theorem nadd_nat (n : ℕ) : a ♯ n = a + n 
Arguments: (a : Ordinal.{u}) (n : ℕ)
Goal: a ♯ ↑n = a + ↑n
-- Ordinal.nat_nadd
@[simp]
theorem nat_nadd (n : ℕ) : ↑n ♯ a = a + n 
Arguments: (a : Ordinal.{u}) (n : ℕ)
Goal: ↑n ♯ a = a + ↑n
-- Ordinal.add_le_nadd
theorem add_le_nadd : a + b ≤ a ♯ b 
Arguments: (a b : Ordinal.{u})
Goal: a + b ≤ a ♯ b
-- NatOrdinal.add_one_eq_succ
@[simp]
theorem add_one_eq_succ : ∀ a : NatOrdinal, a + 1 = succ a 
Arguments: (a : NatOrdinal)
Goal: a + 1 = Order.succ a
-- NatOrdinal.toOrdinal_cast_nat
@[simp]
theorem toOrdinal_cast_nat (n : ℕ) : toOrdinal n = n 
Arguments: (n : ℕ)
Goal: NatOrdinal.toOrdinal ↑n = ↑n
-- Ordinal.nadd_eq_add
theorem nadd_eq_add (a b : Ordinal) : a ♯ b = toOrdinal (toNatOrdinal a + toNatOrdinal b) 
Arguments: (a b : Ordinal.{u_1})
Goal: a ♯ b = NatOrdinal.toOrdinal (Ordinal.toNatOrdinal a + Ordinal.toNatOrdinal b)
-- Ordinal.toNatOrdinal_cast_nat
@[simp]
theorem toNatOrdinal_cast_nat (n : ℕ) : toNatOrdinal n = n 
Arguments: (n : ℕ)
Goal: Ordinal.toNatOrdinal ↑n = ↑n
-- Ordinal.lt_of_nadd_lt_nadd_left
theorem lt_of_nadd_lt_nadd_left : ∀ {a b c}, a ♯ b < a ♯ c → b < c 
Arguments: {a b c : Ordinal.{u_1}}
Goal: a ♯ b < a ♯ c → b < c
-- Ordinal.lt_of_nadd_lt_nadd_right
theorem lt_of_nadd_lt_nadd_right : ∀ {a b c}, b ♯ a < c ♯ a → b < c 
Arguments: {a b c : Ordinal.{u_1}}
Goal: b ♯ a < c ♯ a → b < c
-- Ordinal.le_of_nadd_le_nadd_left
theorem le_of_nadd_le_nadd_left : ∀ {a b c}, a ♯ b ≤ a ♯ c → b ≤ c 
Arguments: {a b c : Ordinal.{u_1}}
Goal: a ♯ b ≤ a ♯ c → b ≤ c
-- Ordinal.le_of_nadd_le_nadd_right
theorem le_of_nadd_le_nadd_right : ∀ {a b c}, b ♯ a ≤ c ♯ a → b ≤ c 
Arguments: {a b c : Ordinal.{u_1}}
Goal: b ♯ a ≤ c ♯ a → b ≤ c
-- Ordinal.nadd_lt_nadd_iff_left
theorem nadd_lt_nadd_iff_left : ∀ (a) {b c}, a ♯ b < a ♯ c ↔ b < c 
Arguments: (a : Ordinal.{u_1}) {b c : Ordinal.{u_1}}
Goal: a ♯ b < a ♯ c ↔ b < c
-- Ordinal.nadd_lt_nadd_iff_right
theorem nadd_lt_nadd_iff_right : ∀ (a) {b c}, b ♯ a < c ♯ a ↔ b < c 
Arguments: (a : Ordinal.{u_1}) {b c : Ordinal.{u_1}}
Goal: b ♯ a < c ♯ a ↔ b < c
-- Ordinal.nadd_le_nadd_iff_left
theorem nadd_le_nadd_iff_left : ∀ (a) {b c}, a ♯ b ≤ a ♯ c ↔ b ≤ c 
Arguments: (a : Ordinal.{u_1}) {b c : Ordinal.{u_1}}
Goal: a ♯ b ≤ a ♯ c ↔ b ≤ c
-- Ordinal.nadd_le_nadd_iff_right
theorem nadd_le_nadd_iff_right : ∀ (a) {b c}, b ♯ a ≤ c ♯ a ↔ b ≤ c 
Arguments: (a : Ordinal.{u_1}) {b c : Ordinal.{u_1}}
Goal: b ♯ a ≤ c ♯ a ↔ b ≤ c
-- Ordinal.nadd_le_nadd
theorem nadd_le_nadd : ∀ {a b c d}, a ≤ b → c ≤ d → a ♯ c ≤ b ♯ d 
Arguments: {a b c d : Ordinal.{u_1}}
Goal: a ≤ b → c ≤ d → a ♯ c ≤ b ♯ d
-- Ordinal.nadd_lt_nadd
theorem nadd_lt_nadd : ∀ {a b c d}, a < b → c < d → a ♯ c < b ♯ d 
Arguments: {a b c d : Ordinal.{u_1}}
Goal: a < b → c < d → a ♯ c < b ♯ d
-- Ordinal.nadd_lt_nadd_of_lt_of_le
theorem nadd_lt_nadd_of_lt_of_le : ∀ {a b c d}, a < b → c ≤ d → a ♯ c < b ♯ d 
Arguments: {a b c d : Ordinal.{u_1}}
Goal: a < b → c ≤ d → a ♯ c < b ♯ d
-- Ordinal.nadd_lt_nadd_of_le_of_lt
theorem nadd_lt_nadd_of_le_of_lt : ∀ {a b c d}, a ≤ b → c < d → a ♯ c < b ♯ d 
Arguments: {a b c d : Ordinal.{u_1}}
Goal: a ≤ b → c < d → a ♯ c < b ♯ d
-- Ordinal.nadd_left_cancel
theorem nadd_left_cancel : ∀ {a b c}, a ♯ b = a ♯ c → b = c 
Arguments: {a b c : Ordinal.{u_1}}
Goal: a ♯ b = a ♯ c → b = c
-- Ordinal.nadd_right_cancel
theorem nadd_right_cancel : ∀ {a b c}, a ♯ b = c ♯ b → a = c 
Arguments: {a b c : Ordinal.{u_1}}
Goal: a ♯ b = c ♯ b → a = c
-- Ordinal.nadd_left_cancel_iff
theorem nadd_left_cancel_iff : ∀ {a b c}, a ♯ b = a ♯ c ↔ b = c 
Arguments: {a b c : Ordinal.{u_1}}
Goal: a ♯ b = a ♯ c ↔ b = c
-- Ordinal.nadd_right_cancel_iff
theorem nadd_right_cancel_iff : ∀ {a b c}, b ♯ a = c ♯ a ↔ b = c 
Arguments: {a b c : Ordinal.{u_1}}
Goal: b ♯ a = c ♯ a ↔ b = c
-- Ordinal.le_nadd_self
theorem le_nadd_self {a b} : a ≤ b ♯ a 
Arguments: {a b : Ordinal.{u_1}}
Goal: a ≤ b ♯ a
-- Ordinal.le_nadd_left
theorem le_nadd_left {a b c} (h : a ≤ c) : a ≤ b ♯ c 
Arguments: {a b c : Ordinal.{u_1}} (h : a ≤ c)
Goal: a ≤ b ♯ c
-- Ordinal.le_self_nadd
theorem le_self_nadd {a b} : a ≤ a ♯ b 
Arguments: {a b : Ordinal.{u_1}}
Goal: a ≤ a ♯ b
-- Ordinal.le_nadd_right
theorem le_nadd_right {a b c} (h : a ≤ b) : a ≤ b ♯ c 
Arguments: {a b c : Ordinal.{u_1}} (h : a ≤ b)
Goal: a ≤ b ♯ c
-- Ordinal.nadd_left_comm
theorem nadd_left_comm : ∀ a b c, a ♯ (b ♯ c) = b ♯ (a ♯ c) 
Arguments: (a b c : Ordinal.{u_1})
Goal: a ♯ (b ♯ c) = b ♯ (a ♯ c)
-- Ordinal.nadd_right_comm
theorem nadd_right_comm : ∀ a b c, a ♯ b ♯ c = a ♯ c ♯ b 
Arguments: (a b c : Ordinal.{u_1})
Goal: a ♯ b ♯ c = a ♯ c ♯ b
-- Ordinal.nmul_def
theorem nmul_def (a b : Ordinal) :
    a ⨳ b = sInf {c | ∀ a' < a, ∀ b' < b, a' ⨳ b ♯ a ⨳ b' < c ♯ a' ⨳ b'} 
Arguments: (a b : Ordinal.{u_1})
Goal: a ⨳ b = sInf {c | ∀ a' < a, ∀ b' < b, a' ⨳ b ♯ a ⨳ b' < c ♯ a' ⨳ b'}
-- Ordinal.nmul_nonempty
theorem nmul_nonempty (a b : Ordinal.{u}) :
    {c : Ordinal.{u} | ∀ a' < a, ∀ b' < b, a' ⨳ b ♯ a ⨳ b' < c ♯ a' ⨳ b'}.Nonempty 
Arguments: (a b : Ordinal.{u})
Goal: {c | ∀ a' < a, ∀ b' < b, a' ⨳ b ♯ a ⨳ b' < c ♯ a' ⨳ b'}.Nonempty
-- Ordinal.nmul_nadd_lt
theorem nmul_nadd_lt {a' b' : Ordinal} (ha : a' < a) (hb : b' < b) :
    a' ⨳ b ♯ a ⨳ b' < a ⨳ b ♯ a' ⨳ b' 
Arguments: {a b a' b' : Ordinal.{u}} (ha : a' < a) (hb : b' < b)
Goal: a' ⨳ b ♯ a ⨳ b' < a ⨳ b ♯ a' ⨳ b'
-- Ordinal.nmul_nadd_le
theorem nmul_nadd_le {a' b' : Ordinal} (ha : a' ≤ a) (hb : b' ≤ b) :
    a' ⨳ b ♯ a ⨳ b' ≤ a ⨳ b ♯ a' ⨳ b' 
Arguments: {a b a' b' : Ordinal.{u}} (ha : a' ≤ a) (hb : b' ≤ b)
Goal: a' ⨳ b ♯ a ⨳ b' ≤ a ⨳ b ♯ a' ⨳ b'
-- Ordinal.lt_nmul_iff
theorem lt_nmul_iff : c < a ⨳ b ↔ ∃ a' < a, ∃ b' < b, c ♯ a' ⨳ b' ≤ a' ⨳ b ♯ a ⨳ b' 
Arguments: {a b c : Ordinal.{u}}
Goal: c < a ⨳ b ↔ ∃ a' < a, ∃ b' < b, c ♯ a' ⨳ b' ≤ a' ⨳ b ♯ a ⨳ b'
-- Ordinal.nmul_le_iff
theorem nmul_le_iff : a ⨳ b ≤ c ↔ ∀ a' < a, ∀ b' < b, a' ⨳ b ♯ a ⨳ b' < c ♯ a' ⨳ b' 
Arguments: {a b c : Ordinal.{u}}
Goal: a ⨳ b ≤ c ↔ ∀ a' < a, ∀ b' < b, a' ⨳ b ♯ a ⨳ b' < c ♯ a' ⨳ b'
-- Ordinal.nmul_comm
theorem nmul_comm : ∀ a b, a ⨳ b = b ⨳ a
  
Arguments: (a b : Ordinal.{u_1})
Goal: a ⨳ b = b ⨳ a
-- Ordinal.nmul_zero
@[simp]
theorem nmul_zero (a) : a ⨳ 0 = 0 
Arguments: (a : Ordinal.{u_1})
Goal: a ⨳ 0 = 0
-- Ordinal.zero_nmul
@[simp]
theorem zero_nmul (a) : 0 ⨳ a = 0 
Arguments: (a : Ordinal.{u_1})
Goal: 0 ⨳ a = 0
-- Ordinal.nmul_one
@[simp]
theorem nmul_one (a : Ordinal) : a ⨳ 1 = a 
Arguments: (a : Ordinal.{u_1})
Goal: a ⨳ 1 = a
-- Ordinal.one_nmul
@[simp]
theorem one_nmul (a) : 1 ⨳ a = a 
Arguments: (a : Ordinal.{u_1})
Goal: 1 ⨳ a = a
-- Ordinal.nmul_lt_nmul_of_pos_left
theorem nmul_lt_nmul_of_pos_left (h₁ : a < b) (h₂ : 0 < c) : c ⨳ a < c ⨳ b 
Arguments: {a b c : Ordinal.{u}} (h₁ : a < b) (h₂ : 0 < c)
Goal: c ⨳ a < c ⨳ b
-- Ordinal.nmul_lt_nmul_of_pos_right
theorem nmul_lt_nmul_of_pos_right (h₁ : a < b) (h₂ : 0 < c) : a ⨳ c < b ⨳ c 
Arguments: {a b c : Ordinal.{u}} (h₁ : a < b) (h₂ : 0 < c)
Goal: a ⨳ c < b ⨳ c
-- Ordinal.nmul_le_nmul_of_nonneg_left
theorem nmul_le_nmul_of_nonneg_left (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c ⨳ a ≤ c ⨳ b 
Arguments: {a b c : Ordinal.{u}} (h₁ : a ≤ b) (h₂ : 0 ≤ c)
Goal: c ⨳ a ≤ c ⨳ b
-- Ordinal.nmul_le_nmul_of_nonneg_right
theorem nmul_le_nmul_of_nonneg_right (h₁ : a ≤ b) (h₂ : 0 ≤ c) : a ⨳ c ≤ b ⨳ c 
Arguments: {a b c : Ordinal.{u}} (h₁ : a ≤ b) (h₂ : 0 ≤ c)
Goal: a ⨳ c ≤ b ⨳ c
-- Ordinal.nmul_nadd
theorem nmul_nadd : ∀ a b c, a ⨳ (b ♯ c) = a ⨳ b ♯ a ⨳ c
  
Arguments: (a b c : Ordinal.{u_1})
Goal: a ⨳ (b ♯ c) = a ⨳ b ♯ a ⨳ c
-- Ordinal.nadd_nmul
theorem nadd_nmul (a b c) : (a ♯ b) ⨳ c = a ⨳ c ♯ b ⨳ c 
Arguments: (a b c : Ordinal.{u_1})
Goal: (a ♯ b) ⨳ c = a ⨳ c ♯ b ⨳ c
-- Ordinal.nmul_nadd_lt₃
theorem nmul_nadd_lt₃ {a' b' c' : Ordinal} (ha : a' < a) (hb : b' < b) (hc : c' < c) :
    a' ⨳ b ⨳ c ♯ a ⨳ b' ⨳ c ♯ a ⨳ b ⨳ c' ♯ a' ⨳ b' ⨳ c' <
      a ⨳ b ⨳ c ♯ a' ⨳ b' ⨳ c ♯ a' ⨳ b ⨳ c' ♯ a ⨳ b' ⨳ c' 
Arguments: {a b c a' b' c' : Ordinal.{u}} (ha : a' < a) (hb : b' < b) (hc : c' < c)
Goal: a' ⨳ b ⨳ c ♯ a ⨳ b' ⨳ c ♯ a ⨳ b ⨳ c' ♯ a' ⨳ b' ⨳ c' < a ⨳ b ⨳ c ♯ a' ⨳ b' ⨳ c ♯ a' ⨳ b ⨳ c' ♯ a ⨳ b' ⨳ c'
-- Ordinal.nmul_nadd_le₃
theorem nmul_nadd_le₃ {a' b' c' : Ordinal} (ha : a' ≤ a) (hb : b' ≤ b) (hc : c' ≤ c) :
    a' ⨳ b ⨳ c ♯ a ⨳ b' ⨳ c ♯ a ⨳ b ⨳ c' ♯ a' ⨳ b' ⨳ c' ≤
      a ⨳ b ⨳ c ♯ a' ⨳ b' ⨳ c ♯ a' ⨳ b ⨳ c' ♯ a ⨳ b' ⨳ c' 
Arguments: {a b c a' b' c' : Ordinal.{u}} (ha : a' ≤ a) (hb : b' ≤ b) (hc : c' ≤ c)
Goal: a' ⨳ b ⨳ c ♯ a ⨳ b' ⨳ c ♯ a ⨳ b ⨳ c' ♯ a' ⨳ b' ⨳ c' ≤ a ⨳ b ⨳ c ♯ a' ⨳ b' ⨳ c ♯ a' ⨳ b ⨳ c' ♯ a ⨳ b' ⨳ c'
-- Ordinal.nmul_nadd_lt₃'
theorem nmul_nadd_lt₃' {a' b' c' : Ordinal} (ha : a' < a) (hb : b' < b) (hc : c' < c) :
    a' ⨳ (b ⨳ c) ♯ a ⨳ (b' ⨳ c) ♯ a ⨳ (b ⨳ c') ♯ a' ⨳ (b' ⨳ c') <
      a ⨳ (b ⨳ c) ♯ a' ⨳ (b' ⨳ c) ♯ a' ⨳ (b ⨳ c') ♯ a ⨳ (b' ⨳ c') 
Arguments: {a b c a' b' c' : Ordinal.{u}} (ha : a' < a) (hb : b' < b) (hc : c' < c)
Goal: a' ⨳ (b ⨳ c) ♯ a ⨳ (b' ⨳ c) ♯ a ⨳ (b ⨳ c') ♯ a' ⨳ (b' ⨳ c') <
  a ⨳ (b ⨳ c) ♯ a' ⨳ (b' ⨳ c) ♯ a' ⨳ (b ⨳ c') ♯ a ⨳ (b' ⨳ c')
-- Ordinal.nmul_nadd_le₃'
theorem nmul_nadd_le₃' {a' b' c' : Ordinal} (ha : a' ≤ a) (hb : b' ≤ b) (hc : c' ≤ c) :
    a' ⨳ (b ⨳ c) ♯ a ⨳ (b' ⨳ c) ♯ a ⨳ (b ⨳ c') ♯ a' ⨳ (b' ⨳ c') ≤
      a ⨳ (b ⨳ c) ♯ a' ⨳ (b' ⨳ c) ♯ a' ⨳ (b ⨳ c') ♯ a ⨳ (b' ⨳ c') 
Arguments: {a b c a' b' c' : Ordinal.{u}} (ha : a' ≤ a) (hb : b' ≤ b) (hc : c' ≤ c)
Goal: a' ⨳ (b ⨳ c) ♯ a ⨳ (b' ⨳ c) ♯ a ⨳ (b ⨳ c') ♯ a' ⨳ (b' ⨳ c') ≤
  a ⨳ (b ⨳ c) ♯ a' ⨳ (b' ⨳ c) ♯ a' ⨳ (b ⨳ c') ♯ a ⨳ (b' ⨳ c')
-- Ordinal.lt_nmul_iff₃
theorem lt_nmul_iff₃ :
    d < a ⨳ b ⨳ c ↔
      ∃ a' < a, ∃ b' < b, ∃ c' < c,
        d ♯ a' ⨳ b' ⨳ c ♯ a' ⨳ b ⨳ c' ♯ a ⨳ b' ⨳ c' ≤
          a' ⨳ b ⨳ c ♯ a ⨳ b' ⨳ c ♯ a ⨳ b ⨳ c' ♯ a' ⨳ b' ⨳ c' 
Arguments: {a b c d : Ordinal.{u}}
Goal: d < a ⨳ b ⨳ c ↔
  ∃ a' < a,
    ∃ b' < b,
      ∃ c' < c, d ♯ a' ⨳ b' ⨳ c ♯ a' ⨳ b ⨳ c' ♯ a ⨳ b' ⨳ c' ≤ a' ⨳ b ⨳ c ♯ a ⨳ b' ⨳ c ♯ a ⨳ b ⨳ c' ♯ a' ⨳ b' ⨳ c'
-- Ordinal.nmul_le_iff₃
theorem nmul_le_iff₃ :
    a ⨳ b ⨳ c ≤ d ↔
      ∀ a' < a, ∀ b' < b, ∀ c' < c,
        a' ⨳ b ⨳ c ♯ a ⨳ b' ⨳ c ♯ a ⨳ b ⨳ c' ♯ a' ⨳ b' ⨳ c' <
          d ♯ a' ⨳ b' ⨳ c ♯ a' ⨳ b ⨳ c' ♯ a ⨳ b' ⨳ c' 
Arguments: {a b c d : Ordinal.{u}}
Goal: a ⨳ b ⨳ c ≤ d ↔
  ∀ a' < a,
    ∀ b' < b,
      ∀ c' < c, a' ⨳ b ⨳ c ♯ a ⨳ b' ⨳ c ♯ a ⨳ b ⨳ c' ♯ a' ⨳ b' ⨳ c' < d ♯ a' ⨳ b' ⨳ c ♯ a' ⨳ b ⨳ c' ♯ a ⨳ b' ⨳ c'
-- Ordinal.lt_nmul_iff₃'
theorem lt_nmul_iff₃' :
    d < a ⨳ (b ⨳ c) ↔
      ∃ a' < a, ∃ b' < b, ∃ c' < c,
        d ♯ a' ⨳ (b' ⨳ c) ♯ a' ⨳ (b ⨳ c') ♯ a ⨳ (b' ⨳ c') ≤
          a' ⨳ (b ⨳ c) ♯ a ⨳ (b' ⨳ c) ♯ a ⨳ (b ⨳ c') ♯ a' ⨳ (b' ⨳ c') 
Arguments: {a b c d : Ordinal.{u}}
Goal: d < a ⨳ (b ⨳ c) ↔
  ∃ a' < a,
    ∃ b' < b,
      ∃ c' < c,
        d ♯ a' ⨳ (b' ⨳ c) ♯ a' ⨳ (b ⨳ c') ♯ a ⨳ (b' ⨳ c') ≤ a' ⨳ (b ⨳ c) ♯ a ⨳ (b' ⨳ c) ♯ a ⨳ (b ⨳ c') ♯ a' ⨳ (b' ⨳ c')