ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- _private.Mathlib.Combinatorics.SetFamily.CauchyDavenport.0.devosAddRel_of_le_of_le
@[to_additive]
private lemma devosMulRel_of_le_of_le (mul : (x.1 * x.2).card ≤ (y.1 * y.2).card)
    (hadd : y.1.card + y.2.card ≤ x.1.card + x.2.card) (hone : x.1.card < y.1.card) :
    DevosMulRel x y 
Arguments: {α : Type u_1} [AddGroup α] [DecidableEq α] {x y : Finset α × Finset α} (mul : (x.1 + x.2).card ≤ (y.1 + y.2).card) (hadd : y.1.card + y.2.card ≤ x.1.card + x.2.card) (hone : x.1.card < y.1.card)
Goal: DevosAddRel x y
-- _private.Mathlib.Combinatorics.SetFamily.CauchyDavenport.0.wellFoundedOn_devosAddRel
@[to_additive]
private lemma wellFoundedOn_devosMulRel :
    {x : Finset α × Finset α | x.1.Nonempty ∧ x.2.Nonempty}.WellFoundedOn
      (DevosMulRel : Finset α × Finset α → Finset α × Finset α → Prop) 
Arguments: {α : Type u_1} [AddGroup α] [DecidableEq α]
Goal: {x | x.1.Nonempty ∧ x.2.Nonempty}.WellFoundedOn DevosAddRel
-- _private.Mathlib.Combinatorics.SetFamily.CauchyDavenport.0.wellFoundedOn_devosMulRel
@[to_additive]
private lemma wellFoundedOn_devosMulRel :
    {x : Finset α × Finset α | x.1.Nonempty ∧ x.2.Nonempty}.WellFoundedOn
      (DevosMulRel : Finset α × Finset α → Finset α × Finset α → Prop) 
Arguments: {α : Type u_1} [Group α] [DecidableEq α]
Goal: {x | x.1.Nonempty ∧ x.2.Nonempty}.WellFoundedOn DevosMulRel
-- Finset.min_le_card_mul
@[to_additive "A generalisation of the **Cauchy-Davenport theorem** to arbitrary groups. The size of
`s + t` is lower-bounded by `|s| + |t| - 1` unless this quantity is greater than the size of the
smallest subgroup."]
lemma Finset.min_le_card_mul (hs : s.Nonempty) (ht : t.Nonempty) :
    min (minOrder α) ↑(s.card + t.card - 1) ≤ (s * t).card 
Arguments: {α : Type u_1} [Group α] [DecidableEq α] {s t : Finset α} (hs : s.Nonempty) (ht : t.Nonempty)
Goal: min (Monoid.minOrder α) ↑(s.card + t.card - 1) ≤ ↑(s * t).card
-- Finset.min_le_card_add
@[to_additive "A generalisation of the **Cauchy-Davenport theorem** to arbitrary groups. The size of
`s + t` is lower-bounded by `|s| + |t| - 1` unless this quantity is greater than the size of the
smallest subgroup."]
lemma Finset.min_le_card_mul (hs : s.Nonempty) (ht : t.Nonempty) :
    min (minOrder α) ↑(s.card + t.card - 1) ≤ (s * t).card 
Arguments: {α : Type u_1} [AddGroup α] [DecidableEq α] {s t : Finset α} (hs : s.Nonempty) (ht : t.Nonempty)
Goal: min (AddMonoid.minOrder α) ↑(s.card + t.card - 1) ≤ ↑(s + t).card
-- AddMonoid.IsTorsionFree.card_add_card_sub_nonneg_card_add
@[to_additive "The **Cauchy-Davenport theorem** for torsion-free groups. The size of `s + t` is
lower-bounded by `|s| + |t| - 1`."]
lemma Monoid.IsTorsionFree.card_add_card_sub_one_le_card_mul (h : IsTorsionFree α)
    (hs : s.Nonempty) (ht : t.Nonempty) : s.card + t.card - 1 ≤ (s * t).card 
Arguments: {α : Type u_1} [AddGroup α] [DecidableEq α] {s t : Finset α} (h : AddMonoid.IsTorsionFree α) (hs : s.Nonempty) (ht : t.Nonempty)
Goal: s.card + t.card - 1 ≤ (s + t).card
-- Monoid.IsTorsionFree.card_add_card_sub_one_le_card_mul
@[to_additive "The **Cauchy-Davenport theorem** for torsion-free groups. The size of `s + t` is
lower-bounded by `|s| + |t| - 1`."]
lemma Monoid.IsTorsionFree.card_add_card_sub_one_le_card_mul (h : IsTorsionFree α)
    (hs : s.Nonempty) (ht : t.Nonempty) : s.card + t.card - 1 ≤ (s * t).card 
Arguments: {α : Type u_1} [Group α] [DecidableEq α] {s t : Finset α} (h : Monoid.IsTorsionFree α) (hs : s.Nonempty) (ht : t.Nonempty)
Goal: s.card + t.card - 1 ≤ (s * t).card
-- ZMod.min_le_card_add
lemma ZMod.min_le_card_add {p : ℕ} (hp : p.Prime) {s t : Finset (ZMod p)} (hs : s.Nonempty)
    (ht : t.Nonempty) : min p (s.card + t.card - 1) ≤ (s + t).card 
Arguments: {p : ℕ} (hp : Nat.Prime p) {s t : Finset (ZMod p)} (hs : s.Nonempty) (ht : t.Nonempty)
Goal: min p (s.card + t.card - 1) ≤ (s + t).card
-- Finset.card_add_card_sub_nonneg_card_add
@[to_additive
"The **Cauchy-Davenport theorem** for linearly ordered additive cancellative semigroups. The size of
`s + t` is lower-bounded by `|s| + |t| - 1`."]
lemma Finset.card_add_card_sub_one_le_card_mul [LinearOrder α] [Semigroup α] [IsCancelMul α]
    [CovariantClass α α (· * ·) (· ≤ ·)] [CovariantClass α α (swap (· * ·)) (· ≤ ·)]
    {s t : Finset α} (hs : s.Nonempty) (ht : t.Nonempty) : s.card + t.card - 1 ≤ (s * t).card 
Arguments: {α : Type u_1} [LinearOrder α] [AddSemigroup α] [IsCancelAdd α] [CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass α α (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {s t : Finset α} (hs : s.Nonempty) (ht : t.Nonempty)
Goal: s.card + t.card - 1 ≤ (s + t).card
-- Finset.card_add_card_sub_one_le_card_mul
@[to_additive
"The **Cauchy-Davenport theorem** for linearly ordered additive cancellative semigroups. The size of
`s + t` is lower-bounded by `|s| + |t| - 1`."]
lemma Finset.card_add_card_sub_one_le_card_mul [LinearOrder α] [Semigroup α] [IsCancelMul α]
    [CovariantClass α α (· * ·) (· ≤ ·)] [CovariantClass α α (swap (· * ·)) (· ≤ ·)]
    {s t : Finset α} (hs : s.Nonempty) (ht : t.Nonempty) : s.card + t.card - 1 ≤ (s * t).card 
Arguments: {α : Type u_1} [LinearOrder α] [Semigroup α] [IsCancelMul α] [CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass α α (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {s t : Finset α} (hs : s.Nonempty) (ht : t.Nonempty)
Goal: s.card + t.card - 1 ≤ (s * t).card
-- SimpleGraph.Dart.adj
structure Dart extends V × V where
  adj : G.Adj fst snd
  deriving DecidableEq
Arguments: {V : Type u_1} {G : SimpleGraph V} (self : G.Dart)
Goal: G.Adj self.toProd.1 self.toProd.2
-- SimpleGraph.Dart.ext_iff
theorem Dart.ext_iff (d₁ d₂ : G.Dart) : d₁ = d₂ ↔ d₁.toProd = d₂.toProd 
Arguments: {V : Type u_1} {G : SimpleGraph V} (d₁ d₂ : G.Dart)
Goal: d₁ = d₂ ↔ d₁.toProd = d₂.toProd
-- SimpleGraph.Dart.ext
@[ext]
theorem Dart.ext (d₁ d₂ : G.Dart) (h : d₁.toProd = d₂.toProd) : d₁ = d₂ 
Arguments: {V : Type u_1} {G : SimpleGraph V} (d₁ d₂ : G.Dart) (h : d₁.toProd = d₂.toProd)
Goal: d₁ = d₂
-- SimpleGraph.Dart.toProd_injective
theorem Dart.toProd_injective : Function.Injective (Dart.toProd : G.Dart → V × V) 
Arguments: {V : Type u_1} {G : SimpleGraph V}
Goal: Function.Injective SimpleGraph.Dart.toProd
-- SimpleGraph.Dart.edge_mk
@[simp]
theorem Dart.edge_mk {p : V × V} (h : G.Adj p.1 p.2) : (Dart.mk p h).edge = Sym2.mk p 
Arguments: {V : Type u_1} {G : SimpleGraph V} {p : V × V} (h : G.Adj p.1 p.2)
Goal: { toProd := p, adj := h }.edge = Sym2.mk p
-- SimpleGraph.Dart.edge_mem
@[simp]
theorem Dart.edge_mem (d : G.Dart) : d.edge ∈ G.edgeSet 
Arguments: {V : Type u_1} {G : SimpleGraph V} (d : G.Dart)
Goal: d.edge ∈ G.edgeSet
-- SimpleGraph.Dart.symm_toProd
@[simps]
def Dart.symm (d : G.Dart) : G.Dart 
Arguments: {V : Type u_1} {G : SimpleGraph V} (d : G.Dart)
Goal: d.symm.toProd = d.swap
-- SimpleGraph.Dart.symm_mk
@[simp]
theorem Dart.symm_mk {p : V × V} (h : G.Adj p.1 p.2) : (Dart.mk p h).symm = Dart.mk p.swap h.symm 
Arguments: {V : Type u_1} {G : SimpleGraph V} {p : V × V} (h : G.Adj p.1 p.2)
Goal: { toProd := p, adj := h }.symm = { toProd := p.swap, adj := ⋯ }
-- SimpleGraph.Dart.edge_symm
@[simp]
theorem Dart.edge_symm (d : G.Dart) : d.symm.edge = d.edge 
Arguments: {V : Type u_1} {G : SimpleGraph V} (d : G.Dart)
Goal: d.symm.edge = d.edge
-- SimpleGraph.Dart.edge_comp_symm
@[simp]
theorem Dart.edge_comp_symm : Dart.edge ∘ Dart.symm = (Dart.edge : G.Dart → Sym2 V) 
Arguments: {V : Type u_1} {G : SimpleGraph V}
Goal: SimpleGraph.Dart.edge ∘ SimpleGraph.Dart.symm = SimpleGraph.Dart.edge
-- SimpleGraph.Dart.symm_symm
@[simp]
theorem Dart.symm_symm (d : G.Dart) : d.symm.symm = d 
Arguments: {V : Type u_1} {G : SimpleGraph V} (d : G.Dart)
Goal: d.symm.symm = d
-- SimpleGraph.Dart.symm_involutive
@[simp]
theorem Dart.symm_involutive : Function.Involutive (Dart.symm : G.Dart → G.Dart) 
Arguments: {V : Type u_1} {G : SimpleGraph V}
Goal: Function.Involutive SimpleGraph.Dart.symm
-- SimpleGraph.Dart.symm_ne
theorem Dart.symm_ne (d : G.Dart) : d.symm ≠ d 
Arguments: {V : Type u_1} {G : SimpleGraph V} (d : G.Dart)
Goal: d.symm ≠ d
-- SimpleGraph.dart_edge_eq_iff
theorem dart_edge_eq_iff : ∀ d₁ d₂ : G.Dart, d₁.edge = d₂.edge ↔ d₁ = d₂ ∨ d₁ = d₂.symm 
Arguments: {V : Type u_1} {G : SimpleGraph V} (d₁ d₂ : G.Dart)
Goal: d₁.edge = d₂.edge ↔ d₁ = d₂ ∨ d₁ = d₂.symm
-- SimpleGraph.dart_edge_eq_mk'_iff
theorem dart_edge_eq_mk'_iff :
    ∀ {d : G.Dart} {p : V × V}, d.edge = Sym2.mk p ↔ d.toProd = p ∨ d.toProd = p.swap 
Arguments: {V : Type u_1} {G : SimpleGraph V} {d : G.Dart} {p : V × V}
Goal: d.edge = Sym2.mk p ↔ d.toProd = p ∨ d.toProd = p.swap
-- SimpleGraph.dart_edge_eq_mk'_iff'
theorem dart_edge_eq_mk'_iff' :
    ∀ {d : G.Dart} {u v : V},
      d.edge = s(u, v) ↔ d.fst = u ∧ d.snd = v ∨ d.fst = v ∧ d.snd = u 
Arguments: {V : Type u_1} {G : SimpleGraph V} {d : G.Dart} {u v : V}
Goal: d.edge = s(u, v) ↔ d.toProd.1 = u ∧ d.toProd.2 = v ∨ d.toProd.1 = v ∧ d.toProd.2 = u
-- SimpleGraph.dartOfNeighborSet_toProd
@[simps]
def dartOfNeighborSet (v : V) (w : G.neighborSet v) : G.Dart 
Arguments: {V : Type u_1} (G : SimpleGraph V) (v : V) (w : ↑(G.neighborSet v))
Goal: (G.dartOfNeighborSet v w).toProd = (v, ↑w)
-- SimpleGraph.dartOfNeighborSet_injective
theorem dartOfNeighborSet_injective (v : V) : Function.Injective (G.dartOfNeighborSet v) 
Arguments: {V : Type u_1} (G : SimpleGraph V) (v : V)
Goal: Function.Injective (G.dartOfNeighborSet v)
-- Finset.card_mul_le_card_shadow_mul
theorem card_mul_le_card_shadow_mul (h𝒜 : (𝒜 : Set (Finset α)).Sized r) :
    𝒜.card * r ≤ (∂ 𝒜).card * (Fintype.card α - r + 1) 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {𝒜 : Finset (Finset α)} {r : ℕ} (h𝒜 : Set.Sized r ↑𝒜)
Goal: 𝒜.card * r ≤ (∂ 𝒜).card * (Fintype.card α - r + 1)
-- Finset.card_div_choose_le_card_shadow_div_choose
theorem card_div_choose_le_card_shadow_div_choose (hr : r ≠ 0)
    (h𝒜 : (𝒜 : Set (Finset α)).Sized r) : (𝒜.card : 𝕜) / (Fintype.card α).choose r
    ≤ (∂ 𝒜).card / (Fintype.card α).choose (r - 1) 
Arguments: {𝕜 : Type u_1} {α : Type u_2} [LinearOrderedField 𝕜] [DecidableEq α] [Fintype α] {𝒜 : Finset (Finset α)} {r : ℕ} (hr : r ≠ 0) (h𝒜 : Set.Sized r ↑𝒜)
Goal: ↑𝒜.card / ↑((Fintype.card α).choose r) ≤ ↑(∂ 𝒜).card / ↑((Fintype.card α).choose (r - 1))
-- Finset.mem_falling
theorem mem_falling : s ∈ falling k 𝒜 ↔ (∃ t ∈ 𝒜, s ⊆ t) ∧ s.card = k 
Arguments: {α : Type u_2} [DecidableEq α] {k : ℕ} {𝒜 : Finset (Finset α)} {s : Finset α}
Goal: s ∈ Finset.falling k 𝒜 ↔ (∃ t ∈ 𝒜, s ⊆ t) ∧ s.card = k
-- Finset.sized_falling
theorem sized_falling : (falling k 𝒜 : Set (Finset α)).Sized k 
Arguments: {α : Type u_2} [DecidableEq α] (k : ℕ) (𝒜 : Finset (Finset α))
Goal: Set.Sized k ↑(Finset.falling k 𝒜)
-- Finset.slice_subset_falling
theorem slice_subset_falling : 𝒜 # k ⊆ falling k 𝒜 
Arguments: {α : Type u_2} [DecidableEq α] (k : ℕ) (𝒜 : Finset (Finset α))
Goal: 𝒜 # k ⊆ Finset.falling k 𝒜
-- Finset.falling_zero_subset
theorem falling_zero_subset : falling 0 𝒜 ⊆ {∅} 
Arguments: {α : Type u_2} [DecidableEq α] (𝒜 : Finset (Finset α))
Goal: Finset.falling 0 𝒜 ⊆ {∅}
-- Finset.slice_union_shadow_falling_succ
theorem slice_union_shadow_falling_succ : 𝒜 # k ∪ ∂ (falling (k + 1) 𝒜) = falling k 𝒜 
Arguments: {α : Type u_2} [DecidableEq α] (k : ℕ) (𝒜 : Finset (Finset α))
Goal: 𝒜 # k ∪ ∂ (Finset.falling (k + 1) 𝒜) = Finset.falling k 𝒜
-- Finset.IsAntichain.disjoint_slice_shadow_falling
theorem IsAntichain.disjoint_slice_shadow_falling {m n : ℕ}
    (h𝒜 : IsAntichain (· ⊆ ·) (𝒜 : Set (Finset α))) : Disjoint (𝒜 # m) (∂ (falling n 𝒜)) 
Arguments: {α : Type u_2} [DecidableEq α] {𝒜 : Finset (Finset α)} {m n : ℕ} (h𝒜 : IsAntichain (fun x x_1 => x ⊆ x_1) ↑𝒜)
Goal: Disjoint (𝒜 # m) (∂ (Finset.falling n 𝒜))
-- Finset.le_card_falling_div_choose
theorem le_card_falling_div_choose [Fintype α] (hk : k ≤ Fintype.card α)
    (h𝒜 : IsAntichain (· ⊆ ·) (𝒜 : Set (Finset α))) :
    (∑ r ∈ range (k + 1),
        ((𝒜 # (Fintype.card α - r)).card : 𝕜) / (Fintype.card α).choose (Fintype.card α - r)) ≤
      (falling (Fintype.card α - k) 𝒜).card / (Fintype.card α).choose (Fintype.card α - k) 
Arguments: {𝕜 : Type u_1} {α : Type u_2} [LinearOrderedField 𝕜] [DecidableEq α] {k : ℕ} {𝒜 : Finset (Finset α)} [Fintype α] (hk : k ≤ Fintype.card α) (h𝒜 : IsAntichain (fun x x_1 => x ⊆ x_1) ↑𝒜)
Goal: ∑ r ∈ Finset.range (k + 1), ↑(𝒜 # (Fintype.card α - r)).card / ↑((Fintype.card α).choose (Fintype.card α - r)) ≤
  ↑(Finset.falling (Fintype.card α - k) 𝒜).card / ↑((Fintype.card α).choose (Fintype.card α - k))
-- Finset.sum_card_slice_div_choose_le_one
theorem sum_card_slice_div_choose_le_one [Fintype α]
    (h𝒜 : IsAntichain (· ⊆ ·) (𝒜 : Set (Finset α))) :
    (∑ r ∈ range (Fintype.card α + 1), ((𝒜 # r).card : 𝕜) / (Fintype.card α).choose r) ≤ 1 
Arguments: {𝕜 : Type u_1} {α : Type u_2} [LinearOrderedField 𝕜] {𝒜 : Finset (Finset α)} [Fintype α] (h𝒜 : IsAntichain (fun x x_1 => x ⊆ x_1) ↑𝒜)
Goal: ∑ r ∈ Finset.range (Fintype.card α + 1), ↑(𝒜 # r).card / ↑((Fintype.card α).choose r) ≤ 1
-- Finset.IsAntichain.sperner
theorem IsAntichain.sperner [Fintype α] {𝒜 : Finset (Finset α)}
    (h𝒜 : IsAntichain (· ⊆ ·) (𝒜 : Set (Finset α))) :
    𝒜.card ≤ (Fintype.card α).choose (Fintype.card α / 2) 
Arguments: {α : Type u_2} [Fintype α] {𝒜 : Finset (Finset α)} (h𝒜 : IsAntichain (fun x x_1 => x ⊆ x_1) ↑𝒜)
Goal: 𝒜.card ≤ (Fintype.card α).choose (Fintype.card α / 2)
-- SimpleGraph.Partition.isPartition
structure Partition where
    parts : Set (Set V)
    isPartition : Setoid.IsPartition parts
    independent : ∀ s ∈ parts, IsAntichain G.Adj s
Arguments: {V : Type u} {G : SimpleGraph V} (self : G.Partition)
Goal: Setoid.IsPartition self.parts
-- SimpleGraph.Partition.independent
structure Partition where
    parts : Set (Set V)
    isPartition : Setoid.IsPartition parts
    independent : ∀ s ∈ parts, IsAntichain G.Adj s
Arguments: {V : Type u} {G : SimpleGraph V} (self : G.Partition) (s : Set V)
Goal: s ∈ self.parts → IsAntichain G.Adj s
-- SimpleGraph.Partition.partOfVertex_mem
theorem partOfVertex_mem (v : V) : P.partOfVertex v ∈ P.parts 
Arguments: {V : Type u} {G : SimpleGraph V} (P : G.Partition) (v : V)
Goal: P.partOfVertex v ∈ P.parts
-- SimpleGraph.Partition.mem_partOfVertex
theorem mem_partOfVertex (v : V) : v ∈ P.partOfVertex v 
Arguments: {V : Type u} {G : SimpleGraph V} (P : G.Partition) (v : V)
Goal: v ∈ P.partOfVertex v
-- SimpleGraph.Partition.partOfVertex_ne_of_adj
theorem partOfVertex_ne_of_adj {v w : V} (h : G.Adj v w) : P.partOfVertex v ≠ P.partOfVertex w 
Arguments: {V : Type u} {G : SimpleGraph V} (P : G.Partition) {v w : V} (h : G.Adj v w)
Goal: P.partOfVertex v ≠ P.partOfVertex w
-- SimpleGraph.Partition.colorable
theorem colorable [Fintype P.parts] : G.Colorable (Fintype.card P.parts) 
Arguments: {V : Type u} {G : SimpleGraph V} (P : G.Partition) [Fintype ↑P.parts]
Goal: G.Colorable (Fintype.card ↑P.parts)
-- SimpleGraph.Coloring.toPartition_parts
@[simps]
def Coloring.toPartition {α : Type v} (C : G.Coloring α) : G.Partition 
Arguments: {V : Type u} {G : SimpleGraph V} {α : Type v} (C : G.Coloring α)
Goal: C.toPartition.parts = C.colorClasses
-- SimpleGraph.instInhabitedPartition_default
@[simps]
instance : Inhabited (Partition G) 
Arguments: {V : Type u} {G : SimpleGraph V}
Goal: default = G.selfColoring.toPartition
-- SimpleGraph.partitionable_iff_colorable
theorem partitionable_iff_colorable {n : ℕ} : G.Partitionable n ↔ G.Colorable n 
Arguments: {V : Type u} {G : SimpleGraph V} {n : ℕ}
Goal: G.Partitionable n ↔ G.Colorable n
-- Order.cof_nonempty
theorem cof_nonempty (r : α → α → Prop) [IsRefl α r] :
    { c | ∃ S : Set α, (∀ a, ∃ b ∈ S, r a b) ∧ #S = c }.Nonempty 
Arguments: {α : Type u_1} (r : α → α → Prop) [IsRefl α r]
Goal: {c | ∃ S, (∀ (a : α), ∃ b ∈ S, r a b) ∧ #↑S = c}.Nonempty
-- Order.cof_le
theorem cof_le (r : α → α → Prop) {S : Set α} (h : ∀ a, ∃ b ∈ S, r a b) : cof r ≤ #S 
Arguments: {α : Type u_1} (r : α → α → Prop) {S : Set α} (h : ∀ (a : α), ∃ b ∈ S, r a b)
Goal: Order.cof r ≤ #↑S
-- Order.le_cof
theorem le_cof {r : α → α → Prop} [IsRefl α r] (c : Cardinal) :
    c ≤ cof r ↔ ∀ {S : Set α}, (∀ a, ∃ b ∈ S, r a b) → c ≤ #S 
Arguments: {α : Type u_1} {r : α → α → Prop} [IsRefl α r] (c : Cardinal.{u_1})
Goal: c ≤ Order.cof r ↔ ∀ {S : Set α}, (∀ (a : α), ∃ b ∈ S, r a b) → c ≤ #↑S
-- RelIso.cof_le_lift
theorem RelIso.cof_le_lift {α : Type u} {β : Type v} {r : α → α → Prop} {s} [IsRefl β s]
    (f : r ≃r s) : Cardinal.lift.{max u v} (Order.cof r) ≤
    Cardinal.lift.{max u v} (Order.cof s) 
Arguments: {α : Type u} {β : Type v} {r : α → α → Prop} {s : β → β → Prop} [IsRefl β s] (f : r ≃r s)
Goal: Cardinal.lift.{max u v, u} (Order.cof r) ≤ Cardinal.lift.{max u v, v} (Order.cof s)
-- RelIso.cof_eq_lift
theorem RelIso.cof_eq_lift {α : Type u} {β : Type v} {r s} [IsRefl α r] [IsRefl β s] (f : r ≃r s) :
    Cardinal.lift.{max u v} (Order.cof r) = Cardinal.lift.{max u v} (Order.cof s) 
Arguments: {α : Type u} {β : Type v} {r : α → α → Prop} {s : β → β → Prop} [IsRefl α r] [IsRefl β s] (f : r ≃r s)
Goal: Cardinal.lift.{max u v, u} (Order.cof r) = Cardinal.lift.{max u v, v} (Order.cof s)
-- RelIso.cof_le
theorem RelIso.cof_le {α β : Type u} {r : α → α → Prop} {s} [IsRefl β s] (f : r ≃r s) :
    Order.cof r ≤ Order.cof s 
Arguments: {α β : Type u} {r : α → α → Prop} {s : β → β → Prop} [IsRefl β s] (f : r ≃r s)
Goal: Order.cof r ≤ Order.cof s
-- RelIso.cof_eq
theorem RelIso.cof_eq {α β : Type u} {r s} [IsRefl α r] [IsRefl β s] (f : r ≃r s) :
    Order.cof r = Order.cof s 
Arguments: {α β : Type u} {r : α → α → Prop} {s : β → β → Prop} [IsRefl α r] [IsRefl β s] (f : r ≃r s)
Goal: Order.cof r = Order.cof s
-- StrictOrder.cof_nonempty
theorem StrictOrder.cof_nonempty (r : α → α → Prop) [IsIrrefl α r] :
    { c | ∃ S : Set α, Unbounded r S ∧ #S = c }.Nonempty 
Arguments: {α : Type u_1} (r : α → α → Prop) [IsIrrefl α r]
Goal: {c | ∃ S, Set.Unbounded r S ∧ #↑S = c}.Nonempty
-- Ordinal.cof_type
theorem cof_type (r : α → α → Prop) [IsWellOrder α r] : (type r).cof = StrictOrder.cof r 
Arguments: {α : Type u_1} (r : α → α → Prop) [IsWellOrder α r]
Goal: (Ordinal.type r).cof = StrictOrder.cof r
-- Ordinal.le_cof_type
theorem le_cof_type [IsWellOrder α r] {c} : c ≤ cof (type r) ↔ ∀ S, Unbounded r S → c ≤ #S 
Arguments: {α : Type u_1} {r : α → α → Prop} [IsWellOrder α r] {c : Cardinal.{u_1}}
Goal: c ≤ (Ordinal.type r).cof ↔ ∀ (S : Set α), Set.Unbounded r S → c ≤ #↑S
-- Ordinal.cof_type_le
theorem cof_type_le [IsWellOrder α r] {S : Set α} (h : Unbounded r S) : cof (type r) ≤ #S 
Arguments: {α : Type u_1} {r : α → α → Prop} [IsWellOrder α r] {S : Set α} (h : Set.Unbounded r S)
Goal: (Ordinal.type r).cof ≤ #↑S
-- Ordinal.lt_cof_type
theorem lt_cof_type [IsWellOrder α r] {S : Set α} : #S < cof (type r) → Bounded r S 
Arguments: {α : Type u_1} {r : α → α → Prop} [IsWellOrder α r] {S : Set α}
Goal: #↑S < (Ordinal.type r).cof → Set.Bounded r S
-- Ordinal.cof_eq
theorem cof_eq (r : α → α → Prop) [IsWellOrder α r] : ∃ S, Unbounded r S ∧ #S = cof (type r) 
Arguments: {α : Type u_1} (r : α → α → Prop) [IsWellOrder α r]
Goal: ∃ S, Set.Unbounded r S ∧ #↑S = (Ordinal.type r).cof
-- Ordinal.ord_cof_eq
theorem ord_cof_eq (r : α → α → Prop) [IsWellOrder α r] :
    ∃ S, Unbounded r S ∧ type (Subrel r S) = (cof (type r)).ord 
Arguments: {α : Type u_1} (r : α → α → Prop) [IsWellOrder α r]
Goal: ∃ S, Set.Unbounded r S ∧ Ordinal.type (Subrel r S) = (Ordinal.type r).cof.ord
-- _private.Mathlib.SetTheory.Cardinal.Cofinality.0.Ordinal.card_mem_cof
private theorem card_mem_cof {o} : ∃ (ι : _) (f : ι → Ordinal), lsub.{u, u} f = o ∧ #ι = o.card 
Arguments: {o : Ordinal.{u}}
Goal: ∃ ι f, Ordinal.lsub f = o ∧ #ι = o.card
-- Ordinal.cof_lsub_def_nonempty
theorem cof_lsub_def_nonempty (o) :
    { a : Cardinal | ∃ (ι : _) (f : ι → Ordinal), lsub.{u, u} f = o ∧ #ι = a }.Nonempty 
Arguments: (o : Ordinal.{u})
Goal: {a | ∃ ι f, Ordinal.lsub f = o ∧ #ι = a}.Nonempty
-- Ordinal.cof_eq_sInf_lsub
theorem cof_eq_sInf_lsub (o : Ordinal.{u}) : cof o =
    sInf { a : Cardinal | ∃ (ι : Type u) (f : ι → Ordinal), lsub.{u, u} f = o ∧ #ι = a } 
Arguments: (o : Ordinal.{u})
Goal: o.cof = sInf {a | ∃ ι f, Ordinal.lsub f = o ∧ #ι = a}
-- Ordinal.lift_cof
@[simp]
theorem lift_cof (o) : Cardinal.lift.{u, v} (cof o) = cof (Ordinal.lift.{u, v} o) 
Arguments: (o : Ordinal.{v})
Goal: Cardinal.lift.{u, v} o.cof = (Ordinal.lift.{u, v} o).cof
-- Ordinal.cof_le_card
theorem cof_le_card (o) : cof o ≤ card o 
Arguments: (o : Ordinal.{u_2})
Goal: o.cof ≤ o.card
-- Ordinal.cof_ord_le
theorem cof_ord_le (c : Cardinal) : c.ord.cof ≤ c 
Arguments: (c : Cardinal.{u_2})
Goal: c.ord.cof ≤ c
-- Ordinal.ord_cof_le
theorem ord_cof_le (o : Ordinal.{u}) : o.cof.ord ≤ o 
Arguments: (o : Ordinal.{u})
Goal: o.cof.ord ≤ o
-- Ordinal.exists_lsub_cof
theorem exists_lsub_cof (o : Ordinal) :
    ∃ (ι : _) (f : ι → Ordinal), lsub.{u, u} f = o ∧ #ι = cof o 
Arguments: (o : Ordinal.{u})
Goal: ∃ ι f, Ordinal.lsub f = o ∧ #ι = o.cof
-- Ordinal.cof_lsub_le
theorem cof_lsub_le {ι} (f : ι → Ordinal) : cof (lsub.{u, u} f) ≤ #ι 
Arguments: {ι : Type u} (f : ι → Ordinal.{u})
Goal: (Ordinal.lsub f).cof ≤ #ι
-- Ordinal.cof_lsub_le_lift
theorem cof_lsub_le_lift {ι} (f : ι → Ordinal) :
    cof (lsub.{u, v} f) ≤ Cardinal.lift.{v, u} #ι 
Arguments: {ι : Type u} (f : ι → Ordinal.{max u v})
Goal: (Ordinal.lsub f).cof ≤ Cardinal.lift.{v, u} #ι
-- Ordinal.le_cof_iff_lsub
theorem le_cof_iff_lsub {o : Ordinal} {a : Cardinal} :
    a ≤ cof o ↔ ∀ {ι} (f : ι → Ordinal), lsub.{u, u} f = o → a ≤ #ι 
Arguments: {o : Ordinal.{u}} {a : Cardinal.{u}}
Goal: a ≤ o.cof ↔ ∀ {ι : Type u} (f : ι → Ordinal.{u}), Ordinal.lsub f = o → a ≤ #ι
-- Ordinal.lsub_lt_ord_lift
theorem lsub_lt_ord_lift {ι} {f : ι → Ordinal} {c : Ordinal}
    (hι : Cardinal.lift.{v, u} #ι < c.cof)
    (hf : ∀ i, f i < c) : lsub.{u, v} f < c 
Arguments: {ι : Type u} {f : ι → Ordinal.{max u v}} {c : Ordinal.{max u v}} (hι : Cardinal.lift.{v, u} #ι < c.cof) (hf : ∀ (i : ι), f i < c)
Goal: Ordinal.lsub f < c
-- Ordinal.lsub_lt_ord
theorem lsub_lt_ord {ι} {f : ι → Ordinal} {c : Ordinal} (hι : #ι < c.cof) :
    (∀ i, f i < c) → lsub.{u, u} f < c 
Arguments: {ι : Type u} {f : ι → Ordinal.{u}} {c : Ordinal.{u}} (hι : #ι < c.cof)
Goal: (∀ (i : ι), f i < c) → Ordinal.lsub f < c
-- Ordinal.cof_sup_le_lift
theorem cof_sup_le_lift {ι} {f : ι → Ordinal} (H : ∀ i, f i < sup.{u, v} f) :
    cof (sup.{u, v} f) ≤ Cardinal.lift.{v, u} #ι 
Arguments: {ι : Type u} {f : ι → Ordinal.{max u v}} (H : ∀ (i : ι), f i < Ordinal.sup f)
Goal: (Ordinal.sup f).cof ≤ Cardinal.lift.{v, u} #ι
-- Ordinal.cof_sup_le
theorem cof_sup_le {ι} {f : ι → Ordinal} (H : ∀ i, f i < sup.{u, u} f) :
    cof (sup.{u, u} f) ≤ #ι 
Arguments: {ι : Type u} {f : ι → Ordinal.{u}} (H : ∀ (i : ι), f i < Ordinal.sup f)
Goal: (Ordinal.sup f).cof ≤ #ι
-- Ordinal.sup_lt_ord_lift
theorem sup_lt_ord_lift {ι} {f : ι → Ordinal} {c : Ordinal} (hι : Cardinal.lift.{v, u} #ι < c.cof)
    (hf : ∀ i, f i < c) : sup.{u, v} f < c 
Arguments: {ι : Type u} {f : ι → Ordinal.{max u v}} {c : Ordinal.{max u v}} (hι : Cardinal.lift.{v, u} #ι < c.cof) (hf : ∀ (i : ι), f i < c)
Goal: Ordinal.sup f < c
-- Ordinal.sup_lt_ord
theorem sup_lt_ord {ι} {f : ι → Ordinal} {c : Ordinal} (hι : #ι < c.cof) :
    (∀ i, f i < c) → sup.{u, u} f < c 
Arguments: {ι : Type u} {f : ι → Ordinal.{u}} {c : Ordinal.{u}} (hι : #ι < c.cof)
Goal: (∀ (i : ι), f i < c) → Ordinal.sup f < c
-- Ordinal.iSup_lt_lift
theorem iSup_lt_lift {ι} {f : ι → Cardinal} {c : Cardinal}
    (hι : Cardinal.lift.{v, u} #ι < c.ord.cof)
    (hf : ∀ i, f i < c) : iSup.{max u v + 1, u + 1} f < c 
Arguments: {ι : Type u} {f : ι → Cardinal.{max u v}} {c : Cardinal.{max u v}} (hι : Cardinal.lift.{v, u} #ι < c.ord.cof) (hf : ∀ (i : ι), f i < c)
Goal: iSup f < c
-- Ordinal.iSup_lt
theorem iSup_lt {ι} {f : ι → Cardinal} {c : Cardinal} (hι : #ι < c.ord.cof) :
    (∀ i, f i < c) → iSup f < c 
Arguments: {ι : Type u_2} {f : ι → Cardinal.{u_2}} {c : Cardinal.{u_2}} (hι : #ι < c.ord.cof)
Goal: (∀ (i : ι), f i < c) → iSup f < c
-- Ordinal.nfpFamily_lt_ord_lift
theorem nfpFamily_lt_ord_lift {ι} {f : ι → Ordinal → Ordinal} {c} (hc : ℵ₀ < cof c)
    (hc' : Cardinal.lift.{v, u} #ι < cof c) (hf : ∀ (i), ∀ b < c, f i b < c) {a} (ha : a < c) :
    nfpFamily.{u, v} f a < c 
Arguments: {ι : Type u} {f : ι → Ordinal.{max u v} → Ordinal.{max u v}} {c : Ordinal.{max u v}} (hc : ℵ₀ < c.cof) (hc' : Cardinal.lift.{v, u} #ι < c.cof) (hf : ∀ (i : ι), ∀ b < c, f i b < c) {a : Ordinal.{max u v}} (ha : a < c)
Goal: Ordinal.nfpFamily f a < c