ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Hyperreal.infinitesimal_real_iff
@[simp] theorem infinitesimal_real_iff {r : ℝ} : Infinitesimal r ↔ r = 0 
Arguments: {r : ℝ}
Goal: (↑r).Infinitesimal ↔ r = 0
-- Hyperreal.Infinitesimal.add
nonrec theorem Infinitesimal.add {x y : ℝ*} (hx : Infinitesimal x) (hy : Infinitesimal y) :
    Infinitesimal (x + y) 
Arguments: {x y : ℝ*} (hx : x.Infinitesimal) (hy : y.Infinitesimal)
Goal: (x + y).Infinitesimal
-- Hyperreal.Infinitesimal.neg
nonrec theorem Infinitesimal.neg {x : ℝ*} (hx : Infinitesimal x) : Infinitesimal (-x) 
Arguments: {x : ℝ*} (hx : x.Infinitesimal)
Goal: (-x).Infinitesimal
-- Hyperreal.infinitesimal_neg
@[simp] theorem infinitesimal_neg {x : ℝ*} : Infinitesimal (-x) ↔ Infinitesimal x 
Arguments: {x : ℝ*}
Goal: (-x).Infinitesimal ↔ x.Infinitesimal
-- Hyperreal.Infinitesimal.mul
nonrec theorem Infinitesimal.mul {x y : ℝ*} (hx : Infinitesimal x) (hy : Infinitesimal y) :
    Infinitesimal (x * y) 
Arguments: {x y : ℝ*} (hx : x.Infinitesimal) (hy : y.Infinitesimal)
Goal: (x * y).Infinitesimal
-- Hyperreal.infinitesimal_of_tendsto_zero
theorem infinitesimal_of_tendsto_zero {f : ℕ → ℝ} (h : Tendsto f atTop (𝓝 0)) :
    Infinitesimal (ofSeq f) 
Arguments: {f : ℕ → ℝ} (h : Filter.Tendsto f Filter.atTop (𝓝 0))
Goal: (Hyperreal.ofSeq f).Infinitesimal
-- Hyperreal.infinitesimal_epsilon
theorem infinitesimal_epsilon : Infinitesimal ε 
Goal: Hyperreal.epsilon.Infinitesimal
-- Hyperreal.not_real_of_infinitesimal_ne_zero
theorem not_real_of_infinitesimal_ne_zero (x : ℝ*) : Infinitesimal x → x ≠ 0 → ∀ r : ℝ, x ≠ r 
Arguments: (x : ℝ*)
Goal: x.Infinitesimal → x ≠ 0 → ∀ (r : ℝ), x ≠ ↑r
-- Hyperreal.IsSt.infinitesimal_sub
theorem IsSt.infinitesimal_sub {x : ℝ*} {r : ℝ} (hxr : IsSt x r) : Infinitesimal (x - ↑r) 
Arguments: {x : ℝ*} {r : ℝ} (hxr : x.IsSt r)
Goal: (x - ↑r).Infinitesimal
-- Hyperreal.infinitesimal_sub_st
theorem infinitesimal_sub_st {x : ℝ*} (hx : ¬Infinite x) : Infinitesimal (x - ↑(st x)) 
Arguments: {x : ℝ*} (hx : ¬x.Infinite)
Goal: (x - ↑x.st).Infinitesimal
-- Hyperreal.infinitePos_iff_infinitesimal_inv_pos
theorem infinitePos_iff_infinitesimal_inv_pos {x : ℝ*} :
    InfinitePos x ↔ Infinitesimal x⁻¹ ∧ 0 < x⁻¹ 
Arguments: {x : ℝ*}
Goal: x.InfinitePos ↔ x⁻¹.Infinitesimal ∧ 0 < x⁻¹
-- Hyperreal.infiniteNeg_iff_infinitesimal_inv_neg
theorem infiniteNeg_iff_infinitesimal_inv_neg {x : ℝ*} :
    InfiniteNeg x ↔ Infinitesimal x⁻¹ ∧ x⁻¹ < 0 
Arguments: {x : ℝ*}
Goal: x.InfiniteNeg ↔ x⁻¹.Infinitesimal ∧ x⁻¹ < 0
-- Hyperreal.infinitesimal_inv_of_infinite
theorem infinitesimal_inv_of_infinite {x : ℝ*} : Infinite x → Infinitesimal x⁻¹ 
Arguments: {x : ℝ*}
Goal: x.Infinite → x⁻¹.Infinitesimal
-- Hyperreal.infinite_of_infinitesimal_inv
theorem infinite_of_infinitesimal_inv {x : ℝ*} (h0 : x ≠ 0) (hi : Infinitesimal x⁻¹) :
    Infinite x 
Arguments: {x : ℝ*} (h0 : x ≠ 0) (hi : x⁻¹.Infinitesimal)
Goal: x.Infinite
-- Hyperreal.infinite_iff_infinitesimal_inv
theorem infinite_iff_infinitesimal_inv {x : ℝ*} (h0 : x ≠ 0) : Infinite x ↔ Infinitesimal x⁻¹ 
Arguments: {x : ℝ*} (h0 : x ≠ 0)
Goal: x.Infinite ↔ x⁻¹.Infinitesimal
-- Hyperreal.infinitesimal_pos_iff_infinitePos_inv
theorem infinitesimal_pos_iff_infinitePos_inv {x : ℝ*} :
    InfinitePos x⁻¹ ↔ Infinitesimal x ∧ 0 < x 
Arguments: {x : ℝ*}
Goal: x⁻¹.InfinitePos ↔ x.Infinitesimal ∧ 0 < x
-- Hyperreal.infinitesimal_neg_iff_infiniteNeg_inv
theorem infinitesimal_neg_iff_infiniteNeg_inv {x : ℝ*} :
    InfiniteNeg x⁻¹ ↔ Infinitesimal x ∧ x < 0 
Arguments: {x : ℝ*}
Goal: x⁻¹.InfiniteNeg ↔ x.Infinitesimal ∧ x < 0
-- Hyperreal.infinitesimal_iff_infinite_inv
theorem infinitesimal_iff_infinite_inv {x : ℝ*} (h : x ≠ 0) : Infinitesimal x ↔ Infinite x⁻¹ 
Arguments: {x : ℝ*} (h : x ≠ 0)
Goal: x.Infinitesimal ↔ x⁻¹.Infinite
-- Hyperreal.IsSt.inv
theorem IsSt.inv {x : ℝ*} {r : ℝ} (hi : ¬Infinitesimal x) (hr : IsSt x r) : IsSt x⁻¹ r⁻¹ 
Arguments: {x : ℝ*} {r : ℝ} (hi : ¬x.Infinitesimal) (hr : x.IsSt r)
Goal: x⁻¹.IsSt r⁻¹
-- Hyperreal.st_inv
theorem st_inv (x : ℝ*) : st x⁻¹ = (st x)⁻¹ 
Arguments: (x : ℝ*)
Goal: x⁻¹.st = x.st⁻¹
-- Hyperreal.infinitePos_omega
theorem infinitePos_omega : InfinitePos ω 
Goal: Hyperreal.omega.InfinitePos
-- Hyperreal.infinite_omega
theorem infinite_omega : Infinite ω 
Goal: Hyperreal.omega.Infinite
-- Hyperreal.infinitePos_mul_of_infinitePos_not_infinitesimal_pos
theorem infinitePos_mul_of_infinitePos_not_infinitesimal_pos {x y : ℝ*} :
    InfinitePos x → ¬Infinitesimal y → 0 < y → InfinitePos (x * y) 
Arguments: {x y : ℝ*}
Goal: x.InfinitePos → ¬y.Infinitesimal → 0 < y → (x * y).InfinitePos
-- Hyperreal.infinitePos_mul_of_not_infinitesimal_pos_infinitePos
theorem infinitePos_mul_of_not_infinitesimal_pos_infinitePos {x y : ℝ*} :
    ¬Infinitesimal x → 0 < x → InfinitePos y → InfinitePos (x * y) 
Arguments: {x y : ℝ*}
Goal: ¬x.Infinitesimal → 0 < x → y.InfinitePos → (x * y).InfinitePos
-- Hyperreal.infinitePos_mul_of_infiniteNeg_not_infinitesimal_neg
theorem infinitePos_mul_of_infiniteNeg_not_infinitesimal_neg {x y : ℝ*} :
    InfiniteNeg x → ¬Infinitesimal y → y < 0 → InfinitePos (x * y) 
Arguments: {x y : ℝ*}
Goal: x.InfiniteNeg → ¬y.Infinitesimal → y < 0 → (x * y).InfinitePos
-- Hyperreal.infinitePos_mul_of_not_infinitesimal_neg_infiniteNeg
theorem infinitePos_mul_of_not_infinitesimal_neg_infiniteNeg {x y : ℝ*} :
    ¬Infinitesimal x → x < 0 → InfiniteNeg y → InfinitePos (x * y) 
Arguments: {x y : ℝ*}
Goal: ¬x.Infinitesimal → x < 0 → y.InfiniteNeg → (x * y).InfinitePos
-- Hyperreal.infiniteNeg_mul_of_infinitePos_not_infinitesimal_neg
theorem infiniteNeg_mul_of_infinitePos_not_infinitesimal_neg {x y : ℝ*} :
    InfinitePos x → ¬Infinitesimal y → y < 0 → InfiniteNeg (x * y) 
Arguments: {x y : ℝ*}
Goal: x.InfinitePos → ¬y.Infinitesimal → y < 0 → (x * y).InfiniteNeg
-- Hyperreal.infiniteNeg_mul_of_not_infinitesimal_neg_infinitePos
theorem infiniteNeg_mul_of_not_infinitesimal_neg_infinitePos {x y : ℝ*} :
    ¬Infinitesimal x → x < 0 → InfinitePos y → InfiniteNeg (x * y) 
Arguments: {x y : ℝ*}
Goal: ¬x.Infinitesimal → x < 0 → y.InfinitePos → (x * y).InfiniteNeg
-- Hyperreal.infiniteNeg_mul_of_infiniteNeg_not_infinitesimal_pos
theorem infiniteNeg_mul_of_infiniteNeg_not_infinitesimal_pos {x y : ℝ*} :
    InfiniteNeg x → ¬Infinitesimal y → 0 < y → InfiniteNeg (x * y) 
Arguments: {x y : ℝ*}
Goal: x.InfiniteNeg → ¬y.Infinitesimal → 0 < y → (x * y).InfiniteNeg
-- Hyperreal.infiniteNeg_mul_of_not_infinitesimal_pos_infiniteNeg
theorem infiniteNeg_mul_of_not_infinitesimal_pos_infiniteNeg {x y : ℝ*} :
    ¬Infinitesimal x → 0 < x → InfiniteNeg y → InfiniteNeg (x * y) 
Arguments: {x y : ℝ*}
Goal: ¬x.Infinitesimal → 0 < x → y.InfiniteNeg → (x * y).InfiniteNeg
-- Hyperreal.infinitePos_mul_infinitePos
theorem infinitePos_mul_infinitePos {x y : ℝ*} :
    InfinitePos x → InfinitePos y → InfinitePos (x * y) 
Arguments: {x y : ℝ*}
Goal: x.InfinitePos → y.InfinitePos → (x * y).InfinitePos
-- Hyperreal.infiniteNeg_mul_infiniteNeg
theorem infiniteNeg_mul_infiniteNeg {x y : ℝ*} :
    InfiniteNeg x → InfiniteNeg y → InfinitePos (x * y) 
Arguments: {x y : ℝ*}
Goal: x.InfiniteNeg → y.InfiniteNeg → (x * y).InfinitePos
-- Hyperreal.infinitePos_mul_infiniteNeg
theorem infinitePos_mul_infiniteNeg {x y : ℝ*} :
    InfinitePos x → InfiniteNeg y → InfiniteNeg (x * y) 
Arguments: {x y : ℝ*}
Goal: x.InfinitePos → y.InfiniteNeg → (x * y).InfiniteNeg
-- Hyperreal.infiniteNeg_mul_infinitePos
theorem infiniteNeg_mul_infinitePos {x y : ℝ*} :
    InfiniteNeg x → InfinitePos y → InfiniteNeg (x * y) 
Arguments: {x y : ℝ*}
Goal: x.InfiniteNeg → y.InfinitePos → (x * y).InfiniteNeg
-- Hyperreal.infinite_mul_of_infinite_not_infinitesimal
theorem infinite_mul_of_infinite_not_infinitesimal {x y : ℝ*} :
    Infinite x → ¬Infinitesimal y → Infinite (x * y) 
Arguments: {x y : ℝ*}
Goal: x.Infinite → ¬y.Infinitesimal → (x * y).Infinite
-- Hyperreal.infinite_mul_of_not_infinitesimal_infinite
theorem infinite_mul_of_not_infinitesimal_infinite {x y : ℝ*} :
    ¬Infinitesimal x → Infinite y → Infinite (x * y) 
Arguments: {x y : ℝ*}
Goal: ¬x.Infinitesimal → y.Infinite → (x * y).Infinite
-- Hyperreal.Infinite.mul
theorem Infinite.mul {x y : ℝ*} : Infinite x → Infinite y → Infinite (x * y) 
Arguments: {x y : ℝ*}
Goal: x.Infinite → y.Infinite → (x * y).Infinite
-- FinEnum.mem_toList
@[simp]
theorem mem_toList [FinEnum α] (x : α) : x ∈ toList α 
Arguments: {α : Type u} [FinEnum α] (x : α)
Goal: x ∈ FinEnum.toList α
-- FinEnum.nodup_toList
@[simp]
theorem nodup_toList [FinEnum α] : List.Nodup (toList α) 
Arguments: {α : Type u} [FinEnum α]
Goal: (FinEnum.toList α).Nodup
-- FinEnum.Finset.mem_enum
@[simp]
theorem Finset.mem_enum [DecidableEq α] (s : Finset α) (xs : List α) :
    s ∈ Finset.enum xs ↔ ∀ x ∈ s, x ∈ xs 
Arguments: {α : Type u} [DecidableEq α] (s : Finset α) (xs : List α)
Goal: s ∈ FinEnum.Finset.enum xs ↔ ∀ x ∈ s, x ∈ xs
-- List.mem_pi_toList
theorem mem_pi_toList (xs : List α)
    (f : ∀ a, a ∈ xs → β a) : f ∈ pi xs fun x => toList (β x) 
Arguments: {α : Type u_1} [FinEnum α] {β : α → Type u_2} [(a : α) → FinEnum (β a)] (xs : List α) (f : (a : α) → a ∈ xs → β a)
Goal: f ∈ xs.pi fun x => FinEnum.toList (β x)
-- List.Pi.mem_enum
theorem Pi.mem_enum (f : ∀ a, β a) :
    f ∈ Pi.enum β 
Arguments: {α : Type u_1} [FinEnum α] {β : α → Type u_2} [(a : α) → FinEnum (β a)] (f : (a : α) → β a)
Goal: f ∈ List.Pi.enum β
-- Setoid.eq_of_mem_eqv_class
theorem eq_of_mem_eqv_class {c : Set (Set α)} (H : ∀ a, ∃! b ∈ c, a ∈ b) {x b b'}
    (hc : b ∈ c) (hb : x ∈ b) (hc' : b' ∈ c) (hb' : x ∈ b') : b = b' 
Arguments: {α : Type u_1} {c : Set (Set α)} (H : ∀ (a : α), ∃! b, b ∈ c ∧ a ∈ b) {x : α} {b b' : Set α} (hc : b ∈ c) (hb : x ∈ b) (hc' : b' ∈ c) (hb' : x ∈ b')
Goal: b = b'
-- Setoid.mem_classes
theorem mem_classes (r : Setoid α) (y) : { x | r.Rel x y } ∈ r.classes 
Arguments: {α : Type u_1} (r : Setoid α) (y : α)
Goal: {x | r.Rel x y} ∈ r.classes
-- Setoid.classes_ker_subset_fiber_set
theorem classes_ker_subset_fiber_set {β : Type*} (f : α → β) :
    (Setoid.ker f).classes ⊆ Set.range fun y => { x | f x = y } 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β)
Goal: (Setoid.ker f).classes ⊆ Set.range fun y => {x | f x = y}
-- Setoid.finite_classes_ker
theorem finite_classes_ker {α β : Type*} [Finite β] (f : α → β) : (Setoid.ker f).classes.Finite 
Arguments: {α : Type u_2} {β : Type u_3} [Finite β] (f : α → β)
Goal: (Setoid.ker f).classes.Finite
-- Setoid.card_classes_ker_le
theorem card_classes_ker_le {α β : Type*} [Fintype β] (f : α → β)
    [Fintype (Setoid.ker f).classes] : Fintype.card (Setoid.ker f).classes ≤ Fintype.card β 
Arguments: {α : Type u_2} {β : Type u_3} [Fintype β] (f : α → β) [Fintype ↑(Setoid.ker f).classes]
Goal: Fintype.card ↑(Setoid.ker f).classes ≤ Fintype.card β
-- Setoid.eq_iff_classes_eq
theorem eq_iff_classes_eq {r₁ r₂ : Setoid α} :
    r₁ = r₂ ↔ ∀ x, { y | r₁.Rel x y } = { y | r₂.Rel x y } 
Arguments: {α : Type u_1} {r₁ r₂ : Setoid α}
Goal: r₁ = r₂ ↔ ∀ (x : α), {y | r₁.Rel x y} = {y | r₂.Rel x y}
-- Setoid.rel_iff_exists_classes
theorem rel_iff_exists_classes (r : Setoid α) {x y} : r.Rel x y ↔ ∃ c ∈ r.classes, x ∈ c ∧ y ∈ c 
Arguments: {α : Type u_1} (r : Setoid α) {x y : α}
Goal: r.Rel x y ↔ ∃ c ∈ r.classes, x ∈ c ∧ y ∈ c
-- Setoid.classes_inj
theorem classes_inj {r₁ r₂ : Setoid α} : r₁ = r₂ ↔ r₁.classes = r₂.classes 
Arguments: {α : Type u_1} {r₁ r₂ : Setoid α}
Goal: r₁ = r₂ ↔ r₁.classes = r₂.classes
-- Setoid.empty_not_mem_classes
theorem empty_not_mem_classes {r : Setoid α} : ∅ ∉ r.classes 
Arguments: {α : Type u_1} {r : Setoid α}
Goal: ∅ ∉ r.classes
-- Setoid.classes_eqv_classes
theorem classes_eqv_classes {r : Setoid α} (a) : ∃! b ∈ r.classes, a ∈ b 
Arguments: {α : Type u_1} {r : Setoid α} (a : α)
Goal: ∃! b, b ∈ r.classes ∧ a ∈ b
-- Setoid.eq_of_mem_classes
theorem eq_of_mem_classes {r : Setoid α} {x b} (hc : b ∈ r.classes) (hb : x ∈ b) {b'}
    (hc' : b' ∈ r.classes) (hb' : x ∈ b') : b = b' 
Arguments: {α : Type u_1} {r : Setoid α} {x : α} {b : Set α} (hc : b ∈ r.classes) (hb : x ∈ b) {b' : Set α} (hc' : b' ∈ r.classes) (hb' : x ∈ b')
Goal: b = b'
-- Setoid.eq_eqv_class_of_mem
theorem eq_eqv_class_of_mem {c : Set (Set α)} (H : ∀ a, ∃! b ∈ c, a ∈ b) {s y}
    (hs : s ∈ c) (hy : y ∈ s) : s = { x | (mkClasses c H).Rel x y } 
Arguments: {α : Type u_1} {c : Set (Set α)} (H : ∀ (a : α), ∃! b, b ∈ c ∧ a ∈ b) {s : Set α} {y : α} (hs : s ∈ c) (hy : y ∈ s)
Goal: s = {x | (Setoid.mkClasses c H).Rel x y}
-- Setoid.eqv_class_mem
theorem eqv_class_mem {c : Set (Set α)} (H : ∀ a, ∃! b ∈ c, a ∈ b) {y} :
    { x | (mkClasses c H).Rel x y } ∈ c 
Arguments: {α : Type u_1} {c : Set (Set α)} (H : ∀ (a : α), ∃! b, b ∈ c ∧ a ∈ b) {y : α}
Goal: {x | (Setoid.mkClasses c H).Rel x y} ∈ c
-- Setoid.eqv_class_mem'
theorem eqv_class_mem' {c : Set (Set α)} (H : ∀ a, ∃! b ∈ c, a ∈ b) {x} :
    { y : α | (mkClasses c H).Rel x y } ∈ c 
Arguments: {α : Type u_1} {c : Set (Set α)} (H : ∀ (a : α), ∃! b, b ∈ c ∧ a ∈ b) {x : α}
Goal: {y | (Setoid.mkClasses c H).Rel x y} ∈ c
-- Setoid.eqv_classes_disjoint
theorem eqv_classes_disjoint {c : Set (Set α)} (H : ∀ a, ∃! b ∈ c, a ∈ b) :
    c.PairwiseDisjoint id 
Arguments: {α : Type u_1} {c : Set (Set α)} (H : ∀ (a : α), ∃! b, b ∈ c ∧ a ∈ b)
Goal: c.PairwiseDisjoint id
-- Setoid.eqv_classes_of_disjoint_union
theorem eqv_classes_of_disjoint_union {c : Set (Set α)} (hu : Set.sUnion c = @Set.univ α)
    (H : c.PairwiseDisjoint id) (a) : ∃! b ∈ c, a ∈ b 
Arguments: {α : Type u_1} {c : Set (Set α)} (hu : ⋃₀ c = Set.univ) (H : c.PairwiseDisjoint id) (a : α)
Goal: ∃! b, b ∈ c ∧ a ∈ b
-- Setoid.mkClasses_classes
theorem mkClasses_classes (r : Setoid α) : mkClasses r.classes classes_eqv_classes = r 
Arguments: {α : Type u_1} (r : Setoid α)
Goal: Setoid.mkClasses r.classes ⋯ = r
-- Setoid.sUnion_classes
@[simp]
theorem sUnion_classes (r : Setoid α) : ⋃₀ r.classes = Set.univ 
Arguments: {α : Type u_1} (r : Setoid α)
Goal: ⋃₀ r.classes = Set.univ
-- Setoid.quotientEquivClasses_mk_eq
@[simp]
lemma quotientEquivClasses_mk_eq (r : Setoid α) (a : α) :
    (quotientEquivClasses r (Quotient.mk r a) : Set α) = { x | r.Rel x a } 
Arguments: {α : Type u_1} (r : Setoid α) (a : α)
Goal: ↑(r.quotientEquivClasses ⟦a⟧) = {x | r.Rel x a}
-- Setoid.nonempty_of_mem_partition
theorem nonempty_of_mem_partition {c : Set (Set α)} (hc : IsPartition c) {s} (h : s ∈ c) :
    s.Nonempty 
Arguments: {α : Type u_1} {c : Set (Set α)} (hc : Setoid.IsPartition c) {s : Set α} (h : s ∈ c)
Goal: s.Nonempty
-- Setoid.isPartition_classes
theorem isPartition_classes (r : Setoid α) : IsPartition r.classes 
Arguments: {α : Type u_1} (r : Setoid α)
Goal: Setoid.IsPartition r.classes
-- Setoid.IsPartition.pairwiseDisjoint
theorem IsPartition.pairwiseDisjoint {c : Set (Set α)} (hc : IsPartition c) :
    c.PairwiseDisjoint id 
Arguments: {α : Type u_1} {c : Set (Set α)} (hc : Setoid.IsPartition c)
Goal: c.PairwiseDisjoint id
-- Set.PairwiseDisjoint.isPartition_of_exists_of_ne_empty
lemma _root_.Set.PairwiseDisjoint.isPartition_of_exists_of_ne_empty {α : Type*} {s : Set (Set α)}
    (h₁ : s.PairwiseDisjoint id) (h₂ : ∀ a : α, ∃ x ∈ s, a ∈ x) (h₃ : ∅ ∉ s) :
    Setoid.IsPartition s 
Arguments: {α : Type u_2} {s : Set (Set α)} (h₁ : s.PairwiseDisjoint id) (h₂ : ∀ (a : α), ∃ x ∈ s, a ∈ x) (h₃ : ∅ ∉ s)
Goal: Setoid.IsPartition s
-- Setoid.IsPartition.sUnion_eq_univ
theorem IsPartition.sUnion_eq_univ {c : Set (Set α)} (hc : IsPartition c) : ⋃₀ c = Set.univ 
Arguments: {α : Type u_1} {c : Set (Set α)} (hc : Setoid.IsPartition c)
Goal: ⋃₀ c = Set.univ
-- Setoid.exists_of_mem_partition
theorem exists_of_mem_partition {c : Set (Set α)} (hc : IsPartition c) {s} (hs : s ∈ c) :
    ∃ y, s = { x | (mkClasses c hc.2).Rel x y } 
Arguments: {α : Type u_1} {c : Set (Set α)} (hc : Setoid.IsPartition c) {s : Set α} (hs : s ∈ c)
Goal: ∃ y, s = {x | (Setoid.mkClasses c ⋯).Rel x y}
-- Setoid.classes_mkClasses
theorem classes_mkClasses (c : Set (Set α)) (hc : IsPartition c) :
    (mkClasses c hc.2).classes = c 
Arguments: {α : Type u_1} (c : Set (Set α)) (hc : Setoid.IsPartition c)
Goal: (Setoid.mkClasses c ⋯).classes = c
-- Setoid.IsPartition.finpartition_parts
@[simps]
def IsPartition.finpartition {c : Finset (Set α)} (hc : Setoid.IsPartition (c : Set (Set α))) :
    Finpartition (Set.univ : Set α) 
Arguments: {α : Type u_1} {c : Finset (Set α)} (hc : Setoid.IsPartition ↑c)
Goal: hc.finpartition.parts = c
-- Finpartition.isPartition_parts
theorem Finpartition.isPartition_parts {α} (f : Finpartition (Set.univ : Set α)) :
    Setoid.IsPartition (f.parts : Set (Set α)) 
Arguments: {α : Type u_1} (f : Finpartition Set.univ)
Goal: Setoid.IsPartition ↑f.parts
-- IndexedPartition.eq_of_mem
structure IndexedPartition {ι α : Type*} (s : ι → Set α) where
    eq_of_mem : ∀ {x i j}, x ∈ s i → x ∈ s j → i = j
    some : ι → α
    some_mem : ∀ i, some i ∈ s i
    index : α → ι
    mem_index : ∀ x, x ∈ s (index x)
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (self : IndexedPartition s) {x : α} {i j : ι}
Goal: x ∈ s i → x ∈ s j → i = j
-- IndexedPartition.some_mem
structure IndexedPartition {ι α : Type*} (s : ι → Set α) where
    eq_of_mem : ∀ {x i j}, x ∈ s i → x ∈ s j → i = j
    some : ι → α
    some_mem : ∀ i, some i ∈ s i
    index : α → ι
    mem_index : ∀ x, x ∈ s (index x)
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (self : IndexedPartition s) (i : ι)
Goal: self.some i ∈ s i
-- IndexedPartition.mem_index
structure IndexedPartition {ι α : Type*} (s : ι → Set α) where
    eq_of_mem : ∀ {x i j}, x ∈ s i → x ∈ s j → i = j
    some : ι → α
    some_mem : ∀ i, some i ∈ s i
    index : α → ι
    mem_index : ∀ x, x ∈ s (index x)
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (self : IndexedPartition s) (x : α)
Goal: x ∈ s (self.index x)
-- IndexedPartition.exists_mem
theorem exists_mem (x : α) : ∃ i, x ∈ s i 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) (x : α)
Goal: ∃ i, x ∈ s i
-- IndexedPartition.iUnion
theorem iUnion : ⋃ i, s i = univ 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s)
Goal: ⋃ i, s i = Set.univ
-- IndexedPartition.disjoint
theorem disjoint : Pairwise fun i j => Disjoint (s i) (s j) 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s)
Goal: Pairwise fun i j => Disjoint (s i) (s j)
-- IndexedPartition.mem_iff_index_eq
theorem mem_iff_index_eq {x i} : x ∈ s i ↔ hs.index x = i 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) {x : α} {i : ι}
Goal: x ∈ s i ↔ hs.index x = i
-- IndexedPartition.eq
theorem eq (i) : s i = { x | hs.index x = i } 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) (i : ι)
Goal: s i = {x | hs.index x = i}
-- IndexedPartition.index_some
@[simp]
theorem index_some (i : ι) : hs.index (hs.some i) = i 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) (i : ι)
Goal: hs.index (hs.some i) = i
-- IndexedPartition.some_index
theorem some_index (x : α) : hs.setoid.Rel (hs.some (hs.index x)) x 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) (x : α)
Goal: hs.setoid.Rel (hs.some (hs.index x)) x
-- IndexedPartition.proj_eq_iff
theorem proj_eq_iff {x y : α} : hs.proj x = hs.proj y ↔ hs.index x = hs.index y 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) {x y : α}
Goal: hs.proj x = hs.proj y ↔ hs.index x = hs.index y
-- IndexedPartition.proj_some_index
@[simp]
theorem proj_some_index (x : α) : hs.proj (hs.some (hs.index x)) = hs.proj x 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) (x : α)
Goal: hs.proj (hs.some (hs.index x)) = hs.proj x
-- IndexedPartition.equivQuotient_index_apply
@[simp]
theorem equivQuotient_index_apply (x : α) : hs.equivQuotient (hs.index x) = hs.proj x 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) (x : α)
Goal: hs.equivQuotient (hs.index x) = hs.proj x
-- IndexedPartition.equivQuotient_symm_proj_apply
@[simp]
theorem equivQuotient_symm_proj_apply (x : α) : hs.equivQuotient.symm (hs.proj x) = hs.index x 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) (x : α)
Goal: hs.equivQuotient.symm (hs.proj x) = hs.index x
-- IndexedPartition.equivQuotient_index
theorem equivQuotient_index : hs.equivQuotient ∘ hs.index = hs.proj 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s)
Goal: ⇑hs.equivQuotient ∘ hs.index = hs.proj
-- IndexedPartition.out_proj
@[simp]
theorem out_proj (x : α) : hs.out (hs.proj x) = hs.some (hs.index x) 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) (x : α)
Goal: hs.out (hs.proj x) = hs.some (hs.index x)
-- IndexedPartition.index_out'
theorem index_out' (x : hs.Quotient) : hs.index x.out' = hs.index (hs.out x) 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) (x : hs.Quotient)
Goal: hs.index (Quotient.out' x) = hs.index (hs.out x)
-- IndexedPartition.proj_out
@[simp]
theorem proj_out (x : hs.Quotient) : hs.proj (hs.out x) = x 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) (x : hs.Quotient)
Goal: hs.proj (hs.out x) = x
-- IndexedPartition.class_of
theorem class_of {x : α} : setOf (hs.setoid.Rel x) = s (hs.index x) 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) {x : α}
Goal: setOf (hs.setoid.Rel x) = s (hs.index x)
-- IndexedPartition.proj_fiber
theorem proj_fiber (x : hs.Quotient) : hs.proj ⁻¹' {x} = s (hs.equivQuotient.symm x) 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) (x : hs.Quotient)
Goal: hs.proj ⁻¹' {x} = s (hs.equivQuotient.symm x)
-- IndexedPartition.piecewise_apply
lemma piecewise_apply {β : Type*} {f : ι → α → β} (x : α) : hs.piecewise f x = f (hs.index x) x 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) {β : Type u_3} {f : ι → α → β} (x : α)
Goal: hs.piecewise f x = f (hs.index x) x
-- IndexedPartition.piecewise_inj
theorem piecewise_inj {β : Type*} {f : ι → α → β}
    (h_injOn : ∀ i, InjOn (f i) (s i))
    (h_disjoint : PairwiseDisjoint (univ : Set ι) fun i => (f i) '' (s i)) :
    Injective (piecewise hs f) 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) {β : Type u_3} {f : ι → α → β} (h_injOn : ∀ (i : ι), Set.InjOn (f i) (s i)) (h_disjoint : Set.univ.PairwiseDisjoint fun i => f i '' s i)
Goal: Function.Injective (hs.piecewise f)
-- IndexedPartition.piecewise_bij
theorem piecewise_bij {β : Type*} {f : ι → α → β}
    {t : ι → Set β} (ht : IndexedPartition t)
    (hf : ∀ i, BijOn (f i) (s i) (t i)) :
    Bijective (piecewise hs f) 
Arguments: {ι : Type u_1} {α : Type u_2} {s : ι → Set α} (hs : IndexedPartition s) {β : Type u_3} {f : ι → α → β} {t : ι → Set β} (ht : IndexedPartition t) (hf : ∀ (i : ι), Set.BijOn (f i) (s i) (t i))
Goal: Function.Bijective (hs.piecewise f)
-- SignType.zero_eq_zero
@[simp]
theorem zero_eq_zero : zero = 0 
Goal: SignType.zero = 0
-- SignType.neg_eq_neg_one
@[simp]
theorem neg_eq_neg_one : neg = -1 
Goal: SignType.neg = -1
-- SignType.pos_eq_one
@[simp]
theorem pos_eq_one : pos = 1 
Goal: SignType.pos = 1
-- _private.Mathlib.Data.Sign.0.SignType.mul_comm
private lemma mul_comm : ∀ (a b : SignType), a * b = b * a 
Arguments: (a b : SignType)
Goal: a * b = b * a
-- _private.Mathlib.Data.Sign.0.SignType.mul_assoc
private lemma mul_assoc : ∀ (a b c : SignType), (a * b) * c = a * (b * c) 
Arguments: (a b c : SignType)
Goal: a * b * c = a * (b * c)
-- _private.Mathlib.Data.Sign.0.SignType.le_antisymm
private lemma le_antisymm (a b : SignType) (_ : a ≤ b) (_ : b ≤ a) : a = b 
Arguments: (a b : SignType)
Goal: a ≤ b → b ≤ a → a = b
-- _private.Mathlib.Data.Sign.0.SignType.le_trans
private lemma le_trans (a b c : SignType) (_ : a ≤ b) (_ : b ≤ c) : a ≤ c 
Arguments: (a b c : SignType)
Goal: a ≤ b → b ≤ c → a ≤ c
-- SignType.nonneg_iff
theorem nonneg_iff {a : SignType} : 0 ≤ a ↔ a = 0 ∨ a = 1 
Arguments: {a : SignType}
Goal: 0 ≤ a ↔ a = 0 ∨ a = 1
-- SignType.nonneg_iff_ne_neg_one
theorem nonneg_iff_ne_neg_one {a : SignType} : 0 ≤ a ↔ a ≠ -1 
Arguments: {a : SignType}
Goal: 0 ≤ a ↔ a ≠ -1
-- SignType.neg_one_lt_iff
theorem neg_one_lt_iff {a : SignType} : -1 < a ↔ 0 ≤ a 
Arguments: {a : SignType}
Goal: -1 < a ↔ 0 ≤ a
-- SignType.nonpos_iff
theorem nonpos_iff {a : SignType} : a ≤ 0 ↔ a = -1 ∨ a = 0 
Arguments: {a : SignType}
Goal: a ≤ 0 ↔ a = -1 ∨ a = 0