ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Cardinal.aleph0_add_ofNat
@[simp]
theorem aleph0_add_ofNat {n : ℕ} [Nat.AtLeastTwo n] : ℵ₀ + no_index (OfNat.ofNat n) = ℵ₀ 
Arguments: {n : ℕ} [n.AtLeastTwo]
Goal: Cardinal.aleph0 + OfNat.ofNat n = Cardinal.aleph0
-- Cardinal.exists_nat_eq_of_le_nat
theorem exists_nat_eq_of_le_nat {c : Cardinal} {n : ℕ} (h : c ≤ n) : ∃ m, m ≤ n ∧ c = m 
Arguments: {c : Cardinal.{u_1}} {n : ℕ} (h : c ≤ ↑n)
Goal: ∃ m ≤ n, c = ↑m
-- Cardinal.mk_int
theorem mk_int : #ℤ = ℵ₀ 
Goal: Cardinal.mk ℤ = Cardinal.aleph0
-- Cardinal.mk_pNat
theorem mk_pNat : #ℕ+ = ℵ₀ 
Goal: Cardinal.mk ℕ+ = Cardinal.aleph0
-- Cardinal.sum_lt_prod
theorem sum_lt_prod {ι} (f g : ι → Cardinal) (H : ∀ i, f i < g i) : sum f < prod g 
Arguments: {ι : Type u_1} (f g : ι → Cardinal.{u_2}) (H : ∀ (i : ι), f i < g i)
Goal: Cardinal.sum f < Cardinal.prod g
-- Cardinal.mk_empty
theorem mk_empty : #Empty = 0 
Goal: Cardinal.mk Empty = 0
-- Cardinal.mk_pempty
theorem mk_pempty : #PEmpty = 0 
Goal: Cardinal.mk PEmpty.{u_1 + 1} = 0
-- Cardinal.mk_punit
theorem mk_punit : #PUnit = 1 
Goal: Cardinal.mk PUnit.{u_1 + 1} = 1
-- Cardinal.mk_unit
theorem mk_unit : #Unit = 1 
Goal: Cardinal.mk Unit = 1
-- Cardinal.mk_singleton
theorem mk_singleton {α : Type u} (x : α) : #({x} : Set α) = 1 
Arguments: {α : Type u} (x : α)
Goal: Cardinal.mk ↑{x} = 1
-- Cardinal.mk_plift_true
theorem mk_plift_true : #(PLift True) = 1 
Goal: Cardinal.mk (PLift True) = 1
-- Cardinal.mk_plift_false
theorem mk_plift_false : #(PLift False) = 0 
Goal: Cardinal.mk (PLift False) = 0
-- Cardinal.mk_vector
@[simp]
theorem mk_vector (α : Type u) (n : ℕ) : #(Vector α n) = #α ^ n 
Arguments: (α : Type u) (n : ℕ)
Goal: Cardinal.mk (Mathlib.Vector α n) = Cardinal.mk α ^ n
-- Cardinal.mk_list_eq_sum_pow
theorem mk_list_eq_sum_pow (α : Type u) : #(List α) = sum fun n : ℕ => #α ^ n 
Arguments: (α : Type u)
Goal: Cardinal.mk (List α) = Cardinal.sum fun n => Cardinal.mk α ^ n
-- Cardinal.mk_quot_le
theorem mk_quot_le {α : Type u} {r : α → α → Prop} : #(Quot r) ≤ #α 
Arguments: {α : Type u} {r : α → α → Prop}
Goal: Cardinal.mk (Quot r) ≤ Cardinal.mk α
-- Cardinal.mk_quotient_le
theorem mk_quotient_le {α : Type u} {s : Setoid α} : #(Quotient s) ≤ #α 
Arguments: {α : Type u} {s : Setoid α}
Goal: Cardinal.mk (Quotient s) ≤ Cardinal.mk α
-- Cardinal.mk_subtype_le_of_subset
theorem mk_subtype_le_of_subset {α : Type u} {p q : α → Prop} (h : ∀ ⦃x⦄, p x → q x) :
    #(Subtype p) ≤ #(Subtype q) 
Arguments: {α : Type u} {p q : α → Prop} (h : ∀ ⦃x : α⦄, p x → q x)
Goal: Cardinal.mk (Subtype p) ≤ Cardinal.mk (Subtype q)
-- Cardinal.mk_emptyCollection
theorem mk_emptyCollection (α : Type u) : #(∅ : Set α) = 0 
Arguments: (α : Type u)
Goal: Cardinal.mk ↑∅ = 0
-- Cardinal.mk_emptyCollection_iff
theorem mk_emptyCollection_iff {α : Type u} {s : Set α} : #s = 0 ↔ s = ∅ 
Arguments: {α : Type u} {s : Set α}
Goal: Cardinal.mk ↑s = 0 ↔ s = ∅
-- Cardinal.mk_univ
@[simp]
theorem mk_univ {α : Type u} : #(@univ α) = #α 
Arguments: {α : Type u}
Goal: Cardinal.mk ↑Set.univ = Cardinal.mk α
-- Cardinal.mk_image_le
theorem mk_image_le {α β : Type u} {f : α → β} {s : Set α} : #(f '' s) ≤ #s 
Arguments: {α β : Type u} {f : α → β} {s : Set α}
Goal: Cardinal.mk ↑(f '' s) ≤ Cardinal.mk ↑s
-- Cardinal.mk_image_le_lift
theorem mk_image_le_lift {α : Type u} {β : Type v} {f : α → β} {s : Set α} :
    lift.{u} #(f '' s) ≤ lift.{v} #s 
Arguments: {α : Type u} {β : Type v} {f : α → β} {s : Set α}
Goal: Cardinal.lift.{u, v} (Cardinal.mk ↑(f '' s)) ≤ Cardinal.lift.{v, u} (Cardinal.mk ↑s)
-- Cardinal.mk_range_le
theorem mk_range_le {α β : Type u} {f : α → β} : #(range f) ≤ #α 
Arguments: {α β : Type u} {f : α → β}
Goal: Cardinal.mk ↑(Set.range f) ≤ Cardinal.mk α
-- Cardinal.mk_range_le_lift
theorem mk_range_le_lift {α : Type u} {β : Type v} {f : α → β} :
    lift.{u} #(range f) ≤ lift.{v} #α 
Arguments: {α : Type u} {β : Type v} {f : α → β}
Goal: Cardinal.lift.{u, v} (Cardinal.mk ↑(Set.range f)) ≤ Cardinal.lift.{v, u} (Cardinal.mk α)
-- Cardinal.mk_range_eq
theorem mk_range_eq (f : α → β) (h : Injective f) : #(range f) = #α 
Arguments: {α β : Type u} (f : α → β) (h : Function.Injective f)
Goal: Cardinal.mk ↑(Set.range f) = Cardinal.mk α
-- Cardinal.mk_range_eq_lift
theorem mk_range_eq_lift {α : Type u} {β : Type v} {f : α → β} (hf : Injective f) :
    lift.{max u w} #(range f) = lift.{max v w} #α 
Arguments: {α : Type u} {β : Type v} {f : α → β} (hf : Function.Injective f)
Goal: Cardinal.lift.{max u w, v} (Cardinal.mk ↑(Set.range f)) = Cardinal.lift.{max v w, u} (Cardinal.mk α)
-- Cardinal.mk_range_eq_of_injective
theorem mk_range_eq_of_injective {α : Type u} {β : Type v} {f : α → β} (hf : Injective f) :
    lift.{u} #(range f) = lift.{v} #α 
Arguments: {α : Type u} {β : Type v} {f : α → β} (hf : Function.Injective f)
Goal: Cardinal.lift.{u, v} (Cardinal.mk ↑(Set.range f)) = Cardinal.lift.{v, u} (Cardinal.mk α)
-- Cardinal.lift_mk_le_lift_mk_of_injective
lemma lift_mk_le_lift_mk_of_injective {α : Type u} {β : Type v} {f : α → β} (hf : Injective f) :
    Cardinal.lift.{v} (#α) ≤ Cardinal.lift.{u} (#β) 
Arguments: {α : Type u} {β : Type v} {f : α → β} (hf : Function.Injective f)
Goal: Cardinal.lift.{v, u} (Cardinal.mk α) ≤ Cardinal.lift.{u, v} (Cardinal.mk β)
-- Cardinal.lift_mk_le_lift_mk_of_surjective
lemma lift_mk_le_lift_mk_of_surjective {α : Type u} {β : Type v} {f : α → β} (hf : Surjective f) :
    Cardinal.lift.{u} (#β) ≤ Cardinal.lift.{v} (#α) 
Arguments: {α : Type u} {β : Type v} {f : α → β} (hf : Function.Surjective f)
Goal: Cardinal.lift.{u, v} (Cardinal.mk β) ≤ Cardinal.lift.{v, u} (Cardinal.mk α)
-- Cardinal.mk_image_eq_of_injOn
theorem mk_image_eq_of_injOn {α β : Type u} (f : α → β) (s : Set α) (h : InjOn f s) :
    #(f '' s) = #s 
Arguments: {α β : Type u} (f : α → β) (s : Set α) (h : Set.InjOn f s)
Goal: Cardinal.mk ↑(f '' s) = Cardinal.mk ↑s
-- Cardinal.mk_image_eq_of_injOn_lift
theorem mk_image_eq_of_injOn_lift {α : Type u} {β : Type v} (f : α → β) (s : Set α)
    (h : InjOn f s) : lift.{u} #(f '' s) = lift.{v} #s 
Arguments: {α : Type u} {β : Type v} (f : α → β) (s : Set α) (h : Set.InjOn f s)
Goal: Cardinal.lift.{u, v} (Cardinal.mk ↑(f '' s)) = Cardinal.lift.{v, u} (Cardinal.mk ↑s)
-- Cardinal.mk_image_eq
theorem mk_image_eq {α β : Type u} {f : α → β} {s : Set α} (hf : Injective f) : #(f '' s) = #s 
Arguments: {α β : Type u} {f : α → β} {s : Set α} (hf : Function.Injective f)
Goal: Cardinal.mk ↑(f '' s) = Cardinal.mk ↑s
-- Cardinal.mk_image_eq_lift
theorem mk_image_eq_lift {α : Type u} {β : Type v} (f : α → β) (s : Set α) (h : Injective f) :
    lift.{u} #(f '' s) = lift.{v} #s 
Arguments: {α : Type u} {β : Type v} (f : α → β) (s : Set α) (h : Function.Injective f)
Goal: Cardinal.lift.{u, v} (Cardinal.mk ↑(f '' s)) = Cardinal.lift.{v, u} (Cardinal.mk ↑s)
-- Cardinal.mk_iUnion_le_sum_mk
theorem mk_iUnion_le_sum_mk {α ι : Type u} {f : ι → Set α} : #(⋃ i, f i) ≤ sum fun i => #(f i) 
Arguments: {α ι : Type u} {f : ι → Set α}
Goal: Cardinal.mk ↑(⋃ i, f i) ≤ Cardinal.sum fun i => Cardinal.mk ↑(f i)
-- Cardinal.mk_iUnion_le_sum_mk_lift
theorem mk_iUnion_le_sum_mk_lift {α : Type u} {ι : Type v} {f : ι → Set α} :
    lift.{v} #(⋃ i, f i) ≤ sum fun i => #(f i) 
Arguments: {α : Type u} {ι : Type v} {f : ι → Set α}
Goal: Cardinal.lift.{v, u} (Cardinal.mk ↑(⋃ i, f i)) ≤ Cardinal.sum fun i => Cardinal.mk ↑(f i)
-- Cardinal.mk_iUnion_eq_sum_mk
theorem mk_iUnion_eq_sum_mk {α ι : Type u} {f : ι → Set α}
    (h : Pairwise fun i j => Disjoint (f i) (f j)) : #(⋃ i, f i) = sum fun i => #(f i) 
Arguments: {α ι : Type u} {f : ι → Set α} (h : Pairwise fun i j => Disjoint (f i) (f j))
Goal: Cardinal.mk ↑(⋃ i, f i) = Cardinal.sum fun i => Cardinal.mk ↑(f i)
-- Cardinal.mk_iUnion_eq_sum_mk_lift
theorem mk_iUnion_eq_sum_mk_lift {α : Type u} {ι : Type v} {f : ι → Set α}
    (h : Pairwise fun i j => Disjoint (f i) (f j)) :
    lift.{v} #(⋃ i, f i) = sum fun i => #(f i) 
Arguments: {α : Type u} {ι : Type v} {f : ι → Set α} (h : Pairwise fun i j => Disjoint (f i) (f j))
Goal: Cardinal.lift.{v, u} (Cardinal.mk ↑(⋃ i, f i)) = Cardinal.sum fun i => Cardinal.mk ↑(f i)
-- Cardinal.mk_iUnion_le
theorem mk_iUnion_le {α ι : Type u} (f : ι → Set α) : #(⋃ i, f i) ≤ #ι * ⨆ i, #(f i) 
Arguments: {α ι : Type u} (f : ι → Set α)
Goal: Cardinal.mk ↑(⋃ i, f i) ≤ Cardinal.mk ι * ⨆ i, Cardinal.mk ↑(f i)
-- Cardinal.mk_iUnion_le_lift
theorem mk_iUnion_le_lift {α : Type u} {ι : Type v} (f : ι → Set α) :
    lift.{v} #(⋃ i, f i) ≤ lift.{u} #ι * ⨆ i, lift.{v} #(f i) 
Arguments: {α : Type u} {ι : Type v} (f : ι → Set α)
Goal: Cardinal.lift.{v, u} (Cardinal.mk ↑(⋃ i, f i)) ≤
  Cardinal.lift.{u, v} (Cardinal.mk ι) * ⨆ i, Cardinal.lift.{v, u} (Cardinal.mk ↑(f i))
-- Cardinal.mk_sUnion_le
theorem mk_sUnion_le {α : Type u} (A : Set (Set α)) : #(⋃₀ A) ≤ #A * ⨆ s : A, #s 
Arguments: {α : Type u} (A : Set (Set α))
Goal: Cardinal.mk ↑(⋃₀ A) ≤ Cardinal.mk ↑A * ⨆ s, Cardinal.mk ↑↑s
-- Cardinal.mk_biUnion_le
theorem mk_biUnion_le {ι α : Type u} (A : ι → Set α) (s : Set ι) :
    #(⋃ x ∈ s, A x) ≤ #s * ⨆ x : s, #(A x.1) 
Arguments: {ι α : Type u} (A : ι → Set α) (s : Set ι)
Goal: Cardinal.mk ↑(⋃ x ∈ s, A x) ≤ Cardinal.mk ↑s * ⨆ x, Cardinal.mk ↑(A ↑x)
-- Cardinal.mk_biUnion_le_lift
theorem mk_biUnion_le_lift {α : Type u} {ι : Type v} (A : ι → Set α) (s : Set ι) :
    lift.{v} #(⋃ x ∈ s, A x) ≤ lift.{u} #s * ⨆ x : s, lift.{v} #(A x.1) 
Arguments: {α : Type u} {ι : Type v} (A : ι → Set α) (s : Set ι)
Goal: Cardinal.lift.{v, u} (Cardinal.mk ↑(⋃ x ∈ s, A x)) ≤
  Cardinal.lift.{u, v} (Cardinal.mk ↑s) * ⨆ x, Cardinal.lift.{v, u} (Cardinal.mk ↑(A ↑x))
-- Cardinal.finset_card_lt_aleph0
theorem finset_card_lt_aleph0 (s : Finset α) : #(↑s : Set α) < ℵ₀ 
Arguments: {α : Type u} (s : Finset α)
Goal: Cardinal.mk ↑↑s < Cardinal.aleph0
-- Cardinal.mk_set_eq_nat_iff_finset
theorem mk_set_eq_nat_iff_finset {α} {s : Set α} {n : ℕ} :
    #s = n ↔ ∃ t : Finset α, (t : Set α) = s ∧ t.card = n 
Arguments: {α : Type u_1} {s : Set α} {n : ℕ}
Goal: Cardinal.mk ↑s = ↑n ↔ ∃ t, ↑t = s ∧ t.card = n
-- Cardinal.mk_eq_nat_iff_finset
theorem mk_eq_nat_iff_finset {n : ℕ} :
    #α = n ↔ ∃ t : Finset α, (t : Set α) = univ ∧ t.card = n 
Arguments: {α : Type u} {n : ℕ}
Goal: Cardinal.mk α = ↑n ↔ ∃ t, ↑t = Set.univ ∧ t.card = n
-- Cardinal.mk_eq_nat_iff_fintype
theorem mk_eq_nat_iff_fintype {n : ℕ} : #α = n ↔ ∃ h : Fintype α, @Fintype.card α h = n 
Arguments: {α : Type u} {n : ℕ}
Goal: Cardinal.mk α = ↑n ↔ ∃ h, Fintype.card α = n
-- Cardinal.mk_union_add_mk_inter
theorem mk_union_add_mk_inter {α : Type u} {S T : Set α} :
    #(S ∪ T : Set α) + #(S ∩ T : Set α) = #S + #T 
Arguments: {α : Type u} {S T : Set α}
Goal: Cardinal.mk ↑(S ∪ T) + Cardinal.mk ↑(S ∩ T) = Cardinal.mk ↑S + Cardinal.mk ↑T
-- Cardinal.mk_union_le
theorem mk_union_le {α : Type u} (S T : Set α) : #(S ∪ T : Set α) ≤ #S + #T 
Arguments: {α : Type u} (S T : Set α)
Goal: Cardinal.mk ↑(S ∪ T) ≤ Cardinal.mk ↑S + Cardinal.mk ↑T
-- Cardinal.mk_union_of_disjoint
theorem mk_union_of_disjoint {α : Type u} {S T : Set α} (H : Disjoint S T) :
    #(S ∪ T : Set α) = #S + #T 
Arguments: {α : Type u} {S T : Set α} (H : Disjoint S T)
Goal: Cardinal.mk ↑(S ∪ T) = Cardinal.mk ↑S + Cardinal.mk ↑T
-- Cardinal.mk_insert
theorem mk_insert {α : Type u} {s : Set α} {a : α} (h : a ∉ s) :
    #(insert a s : Set α) = #s + 1 
Arguments: {α : Type u} {s : Set α} {a : α} (h : a ∉ s)
Goal: Cardinal.mk ↑(insert a s) = Cardinal.mk ↑s + 1
-- Cardinal.mk_insert_le
theorem mk_insert_le {α : Type u} {s : Set α} {a : α} : #(insert a s : Set α) ≤ #s + 1 
Arguments: {α : Type u} {s : Set α} {a : α}
Goal: Cardinal.mk ↑(insert a s) ≤ Cardinal.mk ↑s + 1
-- Cardinal.mk_sum_compl
theorem mk_sum_compl {α} (s : Set α) : #s + #(sᶜ : Set α) = #α 
Arguments: {α : Type u_1} (s : Set α)
Goal: Cardinal.mk ↑s + Cardinal.mk ↑sᶜ = Cardinal.mk α
-- Cardinal.mk_le_mk_of_subset
theorem mk_le_mk_of_subset {α} {s t : Set α} (h : s ⊆ t) : #s ≤ #t 
Arguments: {α : Type u_1} {s t : Set α} (h : s ⊆ t)
Goal: Cardinal.mk ↑s ≤ Cardinal.mk ↑t
-- Cardinal.mk_le_iff_forall_finset_subset_card_le
theorem mk_le_iff_forall_finset_subset_card_le {α : Type u} {n : ℕ} {t : Set α} :
    #t ≤ n ↔ ∀ s : Finset α, (s : Set α) ⊆ t → s.card ≤ n 
Arguments: {α : Type u} {n : ℕ} {t : Set α}
Goal: Cardinal.mk ↑t ≤ ↑n ↔ ∀ (s : Finset α), ↑s ⊆ t → s.card ≤ n
-- Cardinal.mk_subtype_mono
theorem mk_subtype_mono {p q : α → Prop} (h : ∀ x, p x → q x) :
    #{ x // p x } ≤ #{ x // q x } 
Arguments: {α : Type u} {p q : α → Prop} (h : ∀ (x : α), p x → q x)
Goal: Cardinal.mk { x // p x } ≤ Cardinal.mk { x // q x }
-- Cardinal.le_mk_diff_add_mk
theorem le_mk_diff_add_mk (S T : Set α) : #S ≤ #(S \ T : Set α) + #T 
Arguments: {α : Type u} (S T : Set α)
Goal: Cardinal.mk ↑S ≤ Cardinal.mk ↑(S \ T) + Cardinal.mk ↑T
-- Cardinal.mk_diff_add_mk
theorem mk_diff_add_mk {S T : Set α} (h : T ⊆ S) : #(S \ T : Set α) + #T = #S 
Arguments: {α : Type u} {S T : Set α} (h : T ⊆ S)
Goal: Cardinal.mk ↑(S \ T) + Cardinal.mk ↑T = Cardinal.mk ↑S
-- Cardinal.mk_union_le_aleph0
theorem mk_union_le_aleph0 {α} {P Q : Set α} :
    #(P ∪ Q : Set α) ≤ ℵ₀ ↔ #P ≤ ℵ₀ ∧ #Q ≤ ℵ₀ 
Arguments: {α : Type u_1} {P Q : Set α}
Goal: Cardinal.mk ↑(P ∪ Q) ≤ Cardinal.aleph0 ↔ Cardinal.mk ↑P ≤ Cardinal.aleph0 ∧ Cardinal.mk ↑Q ≤ Cardinal.aleph0
-- Cardinal.mk_subtype_of_equiv
theorem mk_subtype_of_equiv {α β : Type u} (p : β → Prop) (e : α ≃ β) :
    #{ a : α // p (e a) } = #{ b : β // p b } 
Arguments: {α β : Type u} (p : β → Prop) (e : α ≃ β)
Goal: Cardinal.mk { a // p (e a) } = Cardinal.mk { b // p b }
-- Cardinal.mk_sep
theorem mk_sep (s : Set α) (t : α → Prop) : #({ x ∈ s | t x } : Set α) = #{ x : s | t x.1 } 
Arguments: {α : Type u} (s : Set α) (t : α → Prop)
Goal: Cardinal.mk ↑{x | x ∈ s ∧ t x} = Cardinal.mk ↑{x | t ↑x}
-- Cardinal.mk_preimage_of_injective_lift
theorem mk_preimage_of_injective_lift {α : Type u} {β : Type v} (f : α → β) (s : Set β)
    (h : Injective f) : lift.{v} #(f ⁻¹' s) ≤ lift.{u} #s 
Arguments: {α : Type u} {β : Type v} (f : α → β) (s : Set β) (h : Function.Injective f)
Goal: Cardinal.lift.{v, u} (Cardinal.mk ↑(f ⁻¹' s)) ≤ Cardinal.lift.{u, v} (Cardinal.mk ↑s)
-- Cardinal.mk_preimage_of_subset_range_lift
theorem mk_preimage_of_subset_range_lift {α : Type u} {β : Type v} (f : α → β) (s : Set β)
    (h : s ⊆ range f) : lift.{u} #s ≤ lift.{v} #(f ⁻¹' s) 
Arguments: {α : Type u} {β : Type v} (f : α → β) (s : Set β) (h : s ⊆ Set.range f)
Goal: Cardinal.lift.{u, v} (Cardinal.mk ↑s) ≤ Cardinal.lift.{v, u} (Cardinal.mk ↑(f ⁻¹' s))
-- Cardinal.mk_preimage_of_injective_of_subset_range_lift
theorem mk_preimage_of_injective_of_subset_range_lift {β : Type v} (f : α → β) (s : Set β)
    (h : Injective f) (h2 : s ⊆ range f) : lift.{v} #(f ⁻¹' s) = lift.{u} #s 
Arguments: {α : Type u} {β : Type v} (f : α → β) (s : Set β) (h : Function.Injective f) (h2 : s ⊆ Set.range f)
Goal: Cardinal.lift.{v, u} (Cardinal.mk ↑(f ⁻¹' s)) = Cardinal.lift.{u, v} (Cardinal.mk ↑s)
-- Cardinal.mk_preimage_of_injective_of_subset_range
theorem mk_preimage_of_injective_of_subset_range (f : α → β) (s : Set β) (h : Injective f)
    (h2 : s ⊆ range f) : #(f ⁻¹' s) = #s 
Arguments: {α β : Type u} (f : α → β) (s : Set β) (h : Function.Injective f) (h2 : s ⊆ Set.range f)
Goal: Cardinal.mk ↑(f ⁻¹' s) = Cardinal.mk ↑s
-- Cardinal.mk_preimage_of_injective
theorem mk_preimage_of_injective (f : α → β) (s : Set β) (h : Injective f) :
    #(f ⁻¹' s) ≤ #s 
Arguments: {α β : Type u} (f : α → β) (s : Set β) (h : Function.Injective f)
Goal: Cardinal.mk ↑(f ⁻¹' s) ≤ Cardinal.mk ↑s
-- Cardinal.mk_preimage_of_subset_range
theorem mk_preimage_of_subset_range (f : α → β) (s : Set β) (h : s ⊆ range f) :
    #s ≤ #(f ⁻¹' s) 
Arguments: {α β : Type u} (f : α → β) (s : Set β) (h : s ⊆ Set.range f)
Goal: Cardinal.mk ↑s ≤ Cardinal.mk ↑(f ⁻¹' s)
-- Cardinal.mk_subset_ge_of_subset_image_lift
theorem mk_subset_ge_of_subset_image_lift {α : Type u} {β : Type v} (f : α → β) {s : Set α}
    {t : Set β} (h : t ⊆ f '' s) : lift.{u} #t ≤ lift.{v} #({ x ∈ s | f x ∈ t } : Set α) 
Arguments: {α : Type u} {β : Type v} (f : α → β) {s : Set α} {t : Set β} (h : t ⊆ f '' s)
Goal: Cardinal.lift.{u, v} (Cardinal.mk ↑t) ≤ Cardinal.lift.{v, u} (Cardinal.mk ↑{x | x ∈ s ∧ f x ∈ t})
-- Cardinal.mk_subset_ge_of_subset_image
theorem mk_subset_ge_of_subset_image (f : α → β) {s : Set α} {t : Set β} (h : t ⊆ f '' s) :
    #t ≤ #({ x ∈ s | f x ∈ t } : Set α) 
Arguments: {α β : Type u} (f : α → β) {s : Set α} {t : Set β} (h : t ⊆ f '' s)
Goal: Cardinal.mk ↑t ≤ Cardinal.mk ↑{x | x ∈ s ∧ f x ∈ t}
-- Cardinal.le_mk_iff_exists_subset
theorem le_mk_iff_exists_subset {c : Cardinal} {α : Type u} {s : Set α} :
    c ≤ #s ↔ ∃ p : Set α, p ⊆ s ∧ #p = c 
Arguments: {c : Cardinal.{u}} {α : Type u} {s : Set α}
Goal: c ≤ Cardinal.mk ↑s ↔ ∃ p ⊆ s, Cardinal.mk ↑p = c
-- Cardinal.two_le_iff
theorem two_le_iff : (2 : Cardinal) ≤ #α ↔ ∃ x y : α, x ≠ y 
Arguments: {α : Type u}
Goal: 2 ≤ Cardinal.mk α ↔ ∃ x y, x ≠ y
-- Cardinal.two_le_iff'
theorem two_le_iff' (x : α) : (2 : Cardinal) ≤ #α ↔ ∃ y : α, y ≠ x 
Arguments: {α : Type u} (x : α)
Goal: 2 ≤ Cardinal.mk α ↔ ∃ y, y ≠ x
-- Cardinal.mk_eq_two_iff
theorem mk_eq_two_iff : #α = 2 ↔ ∃ x y : α, x ≠ y ∧ ({x, y} : Set α) = univ 
Arguments: {α : Type u}
Goal: Cardinal.mk α = 2 ↔ ∃ x y, x ≠ y ∧ {x, y} = Set.univ
-- Cardinal.mk_eq_two_iff'
theorem mk_eq_two_iff' (x : α) : #α = 2 ↔ ∃! y, y ≠ x 
Arguments: {α : Type u} (x : α)
Goal: Cardinal.mk α = 2 ↔ ∃! y, y ≠ x
-- Cardinal.exists_not_mem_of_length_lt
theorem exists_not_mem_of_length_lt {α : Type*} (l : List α) (h : ↑l.length < #α) :
    ∃ z : α, z ∉ l 
Arguments: {α : Type u_1} (l : List α) (h : ↑l.length < Cardinal.mk α)
Goal: ∃ z, z ∉ l
-- Cardinal.three_le
theorem three_le {α : Type*} (h : 3 ≤ #α) (x : α) (y : α) : ∃ z : α, z ≠ x ∧ z ≠ y 
Arguments: {α : Type u_1} (h : 3 ≤ Cardinal.mk α) (x y : α)
Goal: ∃ z, z ≠ x ∧ z ≠ y
-- Cardinal.le_powerlt
theorem le_powerlt {b c : Cardinal.{u}} (a) (h : c < b) : (a^c) ≤ a ^< b 
Arguments: {b c : Cardinal.{u}} (a : Cardinal.{u}) (h : c < b)
Goal: a ^ c ≤ a ^< b
-- Cardinal.powerlt_le
theorem powerlt_le {a b c : Cardinal.{u}} : a ^< b ≤ c ↔ ∀ x < b, a ^ x ≤ c 
Arguments: {a b c : Cardinal.{u}}
Goal: a ^< b ≤ c ↔ ∀ x < b, a ^ x ≤ c
-- Cardinal.powerlt_le_powerlt_left
theorem powerlt_le_powerlt_left {a b c : Cardinal} (h : b ≤ c) : a ^< b ≤ a ^< c 
Arguments: {a b c : Cardinal.{u_1}} (h : b ≤ c)
Goal: a ^< b ≤ a ^< c
-- Cardinal.powerlt_mono_left
theorem powerlt_mono_left (a) : Monotone fun c => a ^< c 
Arguments: (a : Cardinal.{u_1})
Goal: Monotone fun c => a ^< c
-- Cardinal.powerlt_succ
theorem powerlt_succ {a b : Cardinal} (h : a ≠ 0) : a ^< succ b = a ^ b 
Arguments: {a b : Cardinal.{u_1}} (h : a ≠ 0)
Goal: a ^< Order.succ b = a ^ b
-- Cardinal.powerlt_min
theorem powerlt_min {a b c : Cardinal} : a ^< min b c = min (a ^< b) (a ^< c) 
Arguments: {a b c : Cardinal.{u_1}}
Goal: a ^< min b c = min (a ^< b) (a ^< c)
-- Cardinal.powerlt_max
theorem powerlt_max {a b c : Cardinal} : a ^< max b c = max (a ^< b) (a ^< c) 
Arguments: {a b c : Cardinal.{u_1}}
Goal: a ^< max b c = max (a ^< b) (a ^< c)
-- Cardinal.zero_powerlt
theorem zero_powerlt {a : Cardinal} (h : a ≠ 0) : 0 ^< a = 1 
Arguments: {a : Cardinal.{u_1}} (h : a ≠ 0)
Goal: 0 ^< a = 1
-- Cardinal.powerlt_zero
@[simp]
theorem powerlt_zero {a : Cardinal} : a ^< 0 = 0 
Arguments: {a : Cardinal.{u_1}}
Goal: a ^< 0 = 0
-- Quiver.WeaklyConnectedComponent.eq
protected theorem eq (a b : V) :
    (a : WeaklyConnectedComponent V) = b ↔ Nonempty (@Path (Symmetrify V) _ a b) 
Arguments: {V : Type u_1} [Quiver V] (a b : V)
Goal: Quiver.WeaklyConnectedComponent.mk a = Quiver.WeaklyConnectedComponent.mk b ↔ Nonempty (Quiver.Path a b)
-- SetTheory.PGame.numeric_def
theorem numeric_def {x : PGame} :
    Numeric x ↔
      (∀ i j, x.moveLeft i < x.moveRight j) ∧
        (∀ i, Numeric (x.moveLeft i)) ∧ ∀ j, Numeric (x.moveRight j) 
Arguments: {x : SetTheory.PGame}
Goal: x.Numeric ↔
  (∀ (i : x.LeftMoves) (j : x.RightMoves), x.moveLeft i < x.moveRight j) ∧
    (∀ (i : x.LeftMoves), (x.moveLeft i).Numeric) ∧ ∀ (j : x.RightMoves), (x.moveRight j).Numeric
-- SetTheory.PGame.Numeric.mk
theorem mk {x : PGame} (h₁ : ∀ i j, x.moveLeft i < x.moveRight j) (h₂ : ∀ i, Numeric (x.moveLeft i))
    (h₃ : ∀ j, Numeric (x.moveRight j)) : Numeric x 
Arguments: {x : SetTheory.PGame} (h₁ : ∀ (i : x.LeftMoves) (j : x.RightMoves), x.moveLeft i < x.moveRight j) (h₂ : ∀ (i : x.LeftMoves), (x.moveLeft i).Numeric) (h₃ : ∀ (j : x.RightMoves), (x.moveRight j).Numeric)
Goal: x.Numeric
-- SetTheory.PGame.Numeric.left_lt_right
theorem left_lt_right {x : PGame} (o : Numeric x) (i : x.LeftMoves) (j : x.RightMoves) :
    x.moveLeft i < x.moveRight j 
Arguments: {x : SetTheory.PGame} (o : x.Numeric) (i : x.LeftMoves) (j : x.RightMoves)
Goal: x.moveLeft i < x.moveRight j
-- SetTheory.PGame.Numeric.moveLeft
theorem moveLeft {x : PGame} (o : Numeric x) (i : x.LeftMoves) : Numeric (x.moveLeft i) 
Arguments: {x : SetTheory.PGame} (o : x.Numeric) (i : x.LeftMoves)
Goal: (x.moveLeft i).Numeric
-- SetTheory.PGame.Numeric.moveRight
theorem moveRight {x : PGame} (o : Numeric x) (j : x.RightMoves) : Numeric (x.moveRight j) 
Arguments: {x : SetTheory.PGame} (o : x.Numeric) (j : x.RightMoves)
Goal: (x.moveRight j).Numeric
-- SetTheory.PGame.Numeric.isOption
lemma isOption {x' x} (h : IsOption x' x) (hx : Numeric x) : Numeric x' 
Arguments: {x' x : SetTheory.PGame} (h : x'.IsOption x) (hx : x.Numeric)
Goal: x'.Numeric
-- SetTheory.PGame.numeric_rec
@[elab_as_elim]
theorem numeric_rec {C : PGame → Prop}
    (H : ∀ (l r) (L : l → PGame) (R : r → PGame), (∀ i j, L i < R j) →
      (∀ i, Numeric (L i)) → (∀ i, Numeric (R i)) → (∀ i, C (L i)) → (∀ i, C (R i)) →
      C ⟨l, r, L, R⟩) :
    ∀ x, Numeric x → C x
  
Arguments: {C : SetTheory.PGame → Prop} (H :
  ∀ (l r : Type u_1) (L : l → SetTheory.PGame) (R : r → SetTheory.PGame),
    (∀ (i : l) (j : r), L i < R j) →
      (∀ (i : l), (L i).Numeric) →
        (∀ (i : r), (R i).Numeric) → (∀ (i : l), C (L i)) → (∀ (i : r), C (R i)) → C (SetTheory.PGame.mk l r L R)) (x : SetTheory.PGame)
Goal: x.Numeric → C x
-- SetTheory.PGame.Relabelling.numeric_imp
theorem Relabelling.numeric_imp {x y : PGame} (r : x ≡r y) (ox : Numeric x) : Numeric y 
Arguments: {x y : SetTheory.PGame} (r : x ≡r y) (ox : x.Numeric)
Goal: y.Numeric
-- SetTheory.PGame.Relabelling.numeric_congr
theorem Relabelling.numeric_congr {x y : PGame} (r : x ≡r y) : Numeric x ↔ Numeric y 
Arguments: {x y : SetTheory.PGame} (r : x ≡r y)
Goal: x.Numeric ↔ y.Numeric
-- SetTheory.PGame.lf_asymm
theorem lf_asymm {x y : PGame} (ox : Numeric x) (oy : Numeric y) : x ⧏ y → ¬y ⧏ x 
Arguments: {x y : SetTheory.PGame} (ox : x.Numeric) (oy : y.Numeric)
Goal: x ⧏ y → ¬y ⧏ x
-- SetTheory.PGame.le_of_lf
theorem le_of_lf {x y : PGame} (h : x ⧏ y) (ox : Numeric x) (oy : Numeric y) : x ≤ y 
Arguments: {x y : SetTheory.PGame} (h : x ⧏ y) (ox : x.Numeric) (oy : y.Numeric)
Goal: x ≤ y
-- SetTheory.PGame.lt_of_lf
theorem lt_of_lf {x y : PGame} (h : x ⧏ y) (ox : Numeric x) (oy : Numeric y) : x < y 
Arguments: {x y : SetTheory.PGame} (h : x ⧏ y) (ox : x.Numeric) (oy : y.Numeric)
Goal: x < y
-- SetTheory.PGame.lf_iff_lt
theorem lf_iff_lt {x y : PGame} (ox : Numeric x) (oy : Numeric y) : x ⧏ y ↔ x < y 
Arguments: {x y : SetTheory.PGame} (ox : x.Numeric) (oy : y.Numeric)
Goal: x ⧏ y ↔ x < y
-- SetTheory.PGame.le_iff_forall_lt
theorem le_iff_forall_lt {x y : PGame} (ox : x.Numeric) (oy : y.Numeric) :
    x ≤ y ↔ (∀ i, x.moveLeft i < y) ∧ ∀ j, x < y.moveRight j 
Arguments: {x y : SetTheory.PGame} (ox : x.Numeric) (oy : y.Numeric)
Goal: x ≤ y ↔ (∀ (i : x.LeftMoves), x.moveLeft i < y) ∧ ∀ (j : y.RightMoves), x < y.moveRight j
-- SetTheory.PGame.lt_iff_exists_le
theorem lt_iff_exists_le {x y : PGame} (ox : x.Numeric) (oy : y.Numeric) :
    x < y ↔ (∃ i, x ≤ y.moveLeft i) ∨ ∃ j, x.moveRight j ≤ y 
Arguments: {x y : SetTheory.PGame} (ox : x.Numeric) (oy : y.Numeric)
Goal: x < y ↔ (∃ i, x ≤ y.moveLeft i) ∨ ∃ j, x.moveRight j ≤ y
-- SetTheory.PGame.lt_of_exists_le
theorem lt_of_exists_le {x y : PGame} (ox : x.Numeric) (oy : y.Numeric) :
    ((∃ i, x ≤ y.moveLeft i) ∨ ∃ j, x.moveRight j ≤ y) → x < y 
Arguments: {x y : SetTheory.PGame} (ox : x.Numeric) (oy : y.Numeric)
Goal: ((∃ i, x ≤ y.moveLeft i) ∨ ∃ j, x.moveRight j ≤ y) → x < y