ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- ZMod.natAbs_min_of_le_div_two
theorem natAbs_min_of_le_div_two (n : ℕ) (x y : ℤ) (he : (x : ZMod n) = y) (hl : x.natAbs ≤ n / 2) :
    x.natAbs ≤ y.natAbs 
Arguments: (n : ℕ) (x y : ℤ) (he : ↑x = ↑y) (hl : x.natAbs ≤ n / 2)
Goal: x.natAbs ≤ y.natAbs
-- ZMod.natAbs_valMinAbs_add_le
theorem natAbs_valMinAbs_add_le {n : ℕ} (a b : ZMod n) :
    (a + b).valMinAbs.natAbs ≤ (a.valMinAbs + b.valMinAbs).natAbs 
Arguments: {n : ℕ} (a b : ZMod n)
Goal: (a + b).valMinAbs.natAbs ≤ (a.valMinAbs + b.valMinAbs).natAbs
-- _private.Mathlib.Data.ZMod.Basic.0.ZMod.mul_inv_cancel_aux
private theorem mul_inv_cancel_aux (a : ZMod p) (h : a ≠ 0) : a * a⁻¹ = 1 
Arguments: (p : ℕ) [Fact (Nat.Prime p)] (a : ZMod p) (h : a ≠ 0)
Goal: a * a⁻¹ = 1
-- RingHom.ext_zmod
theorem RingHom.ext_zmod {n : ℕ} {R : Type*} [Semiring R] (f g : ZMod n →+* R) : f = g 
Arguments: {n : ℕ} {R : Type u_1} [Semiring R] (f g : ZMod n →+* R)
Goal: f = g
-- ZMod.ringHom_map_cast
@[simp]
theorem ringHom_map_cast [Ring R] (f : R →+* ZMod n) (k : ZMod n) : f (cast k) = k 
Arguments: {n : ℕ} {R : Type u_1} [Ring R] (f : R →+* ZMod n) (k : ZMod n)
Goal: f k.cast = k
-- ZMod.ringHom_rightInverse
theorem ringHom_rightInverse [Ring R] (f : R →+* ZMod n) :
    Function.RightInverse (cast : ZMod n → R) f 
Arguments: {n : ℕ} {R : Type u_1} [Ring R] (f : R →+* ZMod n)
Goal: Function.RightInverse ZMod.cast ⇑f
-- ZMod.ringHom_surjective
theorem ringHom_surjective [Ring R] (f : R →+* ZMod n) : Function.Surjective f 
Arguments: {n : ℕ} {R : Type u_1} [Ring R] (f : R →+* ZMod n)
Goal: Function.Surjective ⇑f
-- ZMod.castHom_self
@[simp]
lemma castHom_self : ZMod.castHom dvd_rfl (ZMod n) = RingHom.id (ZMod n) 
Arguments: {n : ℕ}
Goal: ZMod.castHom ⋯ (ZMod n) = RingHom.id (ZMod n)
-- ZMod.castHom_comp
@[simp]
lemma castHom_comp {m d : ℕ} (hm : n ∣ m) (hd : m ∣ d) :
    (castHom hm (ZMod n)).comp (castHom hd (ZMod m)) = castHom (dvd_trans hm hd) (ZMod n) 
Arguments: {n m d : ℕ} (hm : n ∣ m) (hd : m ∣ d)
Goal: (ZMod.castHom hm (ZMod n)).comp (ZMod.castHom hd (ZMod m)) = ZMod.castHom ⋯ (ZMod n)
-- ZMod.lift_coe
@[simp]
theorem lift_coe (x : ℤ) : lift n f (x : ZMod n) = f.val x 
Arguments: (n : ℕ) {A : Type u_2} [AddGroup A] (f : { f // f ↑n = 0 }) (x : ℤ)
Goal: ((ZMod.lift n) f) ↑x = ↑f x
-- ZMod.lift_castAddHom
theorem lift_castAddHom (x : ℤ) : lift n f (Int.castAddHom (ZMod n) x) = f.1 x 
Arguments: (n : ℕ) {A : Type u_2} [AddGroup A] (f : { f // f ↑n = 0 }) (x : ℤ)
Goal: ((ZMod.lift n) f) ((Int.castAddHom (ZMod n)) x) = ↑f x
-- ZMod.lift_comp_coe
@[simp]
theorem lift_comp_coe : ZMod.lift n f ∘ ((↑) : ℤ → _) = f 
Arguments: (n : ℕ) {A : Type u_2} [AddGroup A] (f : { f // f ↑n = 0 })
Goal: ⇑((ZMod.lift n) f) ∘ Int.cast = ⇑↑f
-- ZMod.lift_comp_castAddHom
@[simp]
theorem lift_comp_castAddHom : (ZMod.lift n f).comp (Int.castAddHom (ZMod n)) = f 
Arguments: (n : ℕ) {A : Type u_2} [AddGroup A] (f : { f // f ↑n = 0 })
Goal: ((ZMod.lift n) f).comp (Int.castAddHom (ZMod n)) = ↑f
-- ZMod.lift_injective
lemma lift_injective {f : {f : ℤ →+ A // f n = 0}} :
    Injective (lift n f) ↔ ∀ m, f.1 m = 0 → (m : ZMod n) = 0 
Arguments: (n : ℕ) {A : Type u_2} [AddGroup A] {f : { f // f ↑n = 0 }}
Goal: Function.Injective ⇑((ZMod.lift n) f) ↔ ∀ (m : ℤ), ↑f m = 0 → ↑m = 0
-- nsmul_zmod_val_inv_nsmul
@[simp]
lemma nsmul_zmod_val_inv_nsmul (hn : (Nat.card α).Coprime n) (a : α) :
    n • (n⁻¹ : ZMod (Nat.card α)).val • a = a 
Arguments: {α : Type u_1} [AddGroup α] {n : ℕ} (hn : (Nat.card α).Coprime n) (a : α)
Goal: n • (↑n)⁻¹.val • a = a
-- zmod_val_inv_nsmul_nsmul
@[simp]
lemma zmod_val_inv_nsmul_nsmul (hn : (Nat.card α).Coprime n) (a : α) :
    (n⁻¹ : ZMod (Nat.card α)).val • n • a = a 
Arguments: {α : Type u_1} [AddGroup α] {n : ℕ} (hn : (Nat.card α).Coprime n) (a : α)
Goal: (↑n)⁻¹.val • n • a = a
-- pow_zmod_val_inv_pow
@[to_additive (attr := simp) existing nsmul_zmod_val_inv_nsmul]
lemma pow_zmod_val_inv_pow (hn : (Nat.card α).Coprime n) (a : α) :
    (a ^ (n⁻¹ : ZMod (Nat.card α)).val) ^ n = a 
Arguments: {α : Type u_1} [Group α] {n : ℕ} (hn : (Nat.card α).Coprime n) (a : α)
Goal: (a ^ (↑n)⁻¹.val) ^ n = a
-- pow_pow_zmod_val_inv
@[to_additive (attr := simp) existing zmod_val_inv_nsmul_nsmul]
lemma pow_pow_zmod_val_inv (hn : (Nat.card α).Coprime n) (a : α) :
    (a ^ n) ^ (n⁻¹ : ZMod (Nat.card α)).val = a 
Arguments: {α : Type u_1} [Group α] {n : ℕ} (hn : (Nat.card α).Coprime n) (a : α)
Goal: (a ^ n) ^ (↑n)⁻¹.val = a
-- Nat.range_mul_add
lemma Nat.range_mul_add (m k : ℕ) :
    Set.range (fun n : ℕ ↦ m * n + k) = {n : ℕ | (n : ZMod m) = k ∧ k ≤ n} 
Arguments: (m k : ℕ)
Goal: (Set.range fun n => m * n + k) = {n | ↑n = ↑k ∧ k ≤ n}
-- Finset.mem_sups
@[simp]
theorem mem_sups : c ∈ s ⊻ t ↔ ∃ a ∈ s, ∃ b ∈ t, a ⊔ b = c 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t : Finset α} {c : α}
Goal: c ∈ s ⊻ t ↔ ∃ a ∈ s, ∃ b ∈ t, a ⊔ b = c
-- Finset.coe_sups
@[simp, norm_cast]
theorem coe_sups : (↑(s ⊻ t) : Set α) = ↑s ⊻ ↑t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] (s t : Finset α)
Goal: ↑(s ⊻ t) = ↑s ⊻ ↑t
-- Finset.card_sups_le
theorem card_sups_le : (s ⊻ t).card ≤ s.card * t.card 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] (s t : Finset α)
Goal: (s ⊻ t).card ≤ s.card * t.card
-- Finset.card_sups_iff
theorem card_sups_iff :
    (s ⊻ t).card = s.card * t.card ↔ (s ×ˢ t : Set (α × α)).InjOn fun x => x.1 ⊔ x.2 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] (s t : Finset α)
Goal: (s ⊻ t).card = s.card * t.card ↔ Set.InjOn (fun x => x.1 ⊔ x.2) (↑s ×ˢ ↑t)
-- Finset.sup_mem_sups
theorem sup_mem_sups : a ∈ s → b ∈ t → a ⊔ b ∈ s ⊻ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t : Finset α} {a b : α}
Goal: a ∈ s → b ∈ t → a ⊔ b ∈ s ⊻ t
-- Finset.sups_subset
theorem sups_subset : s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ ⊻ t₁ ⊆ s₂ ⊻ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s₁ s₂ t₁ t₂ : Finset α}
Goal: s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ ⊻ t₁ ⊆ s₂ ⊻ t₂
-- Finset.sups_subset_left
theorem sups_subset_left : t₁ ⊆ t₂ → s ⊻ t₁ ⊆ s ⊻ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t₁ t₂ : Finset α}
Goal: t₁ ⊆ t₂ → s ⊻ t₁ ⊆ s ⊻ t₂
-- Finset.sups_subset_right
theorem sups_subset_right : s₁ ⊆ s₂ → s₁ ⊻ t ⊆ s₂ ⊻ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s₁ s₂ t : Finset α}
Goal: s₁ ⊆ s₂ → s₁ ⊻ t ⊆ s₂ ⊻ t
-- Finset.image_subset_sups_left
lemma image_subset_sups_left : b ∈ t → s.image (· ⊔ b) ⊆ s ⊻ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t : Finset α} {b : α}
Goal: b ∈ t → Finset.image (fun x => x ⊔ b) s ⊆ s ⊻ t
-- Finset.image_subset_sups_right
lemma image_subset_sups_right : a ∈ s → t.image (a ⊔ ·) ⊆ s ⊻ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t : Finset α} {a : α}
Goal: a ∈ s → Finset.image (fun x => a ⊔ x) t ⊆ s ⊻ t
-- Finset.forall_sups_iff
theorem forall_sups_iff {p : α → Prop} : (∀ c ∈ s ⊻ t, p c) ↔ ∀ a ∈ s, ∀ b ∈ t, p (a ⊔ b) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t : Finset α} {p : α → Prop}
Goal: (∀ c ∈ s ⊻ t, p c) ↔ ∀ a ∈ s, ∀ b ∈ t, p (a ⊔ b)
-- Finset.sups_subset_iff
@[simp]
theorem sups_subset_iff : s ⊻ t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a ⊔ b ∈ u 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t u : Finset α}
Goal: s ⊻ t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a ⊔ b ∈ u
-- Finset.sups_nonempty
@[simp, aesop safe apply (rule_sets := [finsetNonempty])]
theorem sups_nonempty : (s ⊻ t).Nonempty ↔ s.Nonempty ∧ t.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t : Finset α}
Goal: (s ⊻ t).Nonempty ↔ s.Nonempty ∧ t.Nonempty
-- Finset.Nonempty.sups
protected theorem Nonempty.sups : s.Nonempty → t.Nonempty → (s ⊻ t).Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t : Finset α}
Goal: s.Nonempty → t.Nonempty → (s ⊻ t).Nonempty
-- Finset.Nonempty.of_sups_left
theorem Nonempty.of_sups_left : (s ⊻ t).Nonempty → s.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t : Finset α}
Goal: (s ⊻ t).Nonempty → s.Nonempty
-- Finset.Nonempty.of_sups_right
theorem Nonempty.of_sups_right : (s ⊻ t).Nonempty → t.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t : Finset α}
Goal: (s ⊻ t).Nonempty → t.Nonempty
-- Finset.empty_sups
@[simp]
theorem empty_sups : ∅ ⊻ t = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {t : Finset α}
Goal: ∅ ⊻ t = ∅
-- Finset.sups_empty
@[simp]
theorem sups_empty : s ⊻ ∅ = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s : Finset α}
Goal: s ⊻ ∅ = ∅
-- Finset.sups_eq_empty
@[simp]
theorem sups_eq_empty : s ⊻ t = ∅ ↔ s = ∅ ∨ t = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t : Finset α}
Goal: s ⊻ t = ∅ ↔ s = ∅ ∨ t = ∅
-- Finset.singleton_sups
@[simp] lemma singleton_sups : {a} ⊻ t = t.image (a ⊔ ·) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {t : Finset α} {a : α}
Goal: {a} ⊻ t = Finset.image (fun x => a ⊔ x) t
-- Finset.sups_singleton
@[simp] lemma sups_singleton : s ⊻ {b} = s.image (· ⊔ b) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s : Finset α} {b : α}
Goal: s ⊻ {b} = Finset.image (fun x => x ⊔ b) s
-- Finset.singleton_sups_singleton
theorem singleton_sups_singleton : ({a} ⊻ {b} : Finset α) = {a ⊔ b} 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {a b : α}
Goal: {a} ⊻ {b} = {a ⊔ b}
-- Finset.sups_union_left
theorem sups_union_left : (s₁ ∪ s₂) ⊻ t = s₁ ⊻ t ∪ s₂ ⊻ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s₁ s₂ t : Finset α}
Goal: (s₁ ∪ s₂) ⊻ t = s₁ ⊻ t ∪ s₂ ⊻ t
-- Finset.sups_union_right
theorem sups_union_right : s ⊻ (t₁ ∪ t₂) = s ⊻ t₁ ∪ s ⊻ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t₁ t₂ : Finset α}
Goal: s ⊻ (t₁ ∪ t₂) = s ⊻ t₁ ∪ s ⊻ t₂
-- Finset.sups_inter_subset_left
theorem sups_inter_subset_left : (s₁ ∩ s₂) ⊻ t ⊆ s₁ ⊻ t ∩ s₂ ⊻ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s₁ s₂ t : Finset α}
Goal: (s₁ ∩ s₂) ⊻ t ⊆ s₁ ⊻ t ∩ s₂ ⊻ t
-- Finset.sups_inter_subset_right
theorem sups_inter_subset_right : s ⊻ (t₁ ∩ t₂) ⊆ s ⊻ t₁ ∩ s ⊻ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s t₁ t₂ : Finset α}
Goal: s ⊻ (t₁ ∩ t₂) ⊆ s ⊻ t₁ ∩ s ⊻ t₂
-- Finset.subset_sups
theorem subset_sups {s t : Set α} :
    ↑u ⊆ s ⊻ t → ∃ s' t' : Finset α, ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ u ⊆ s' ⊻ t' 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {u : Finset α} {s t : Set α}
Goal: ↑u ⊆ s ⊻ t → ∃ s' t', ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ u ⊆ s' ⊻ t'
-- Finset.image_sups
lemma image_sups (f : F) (s t : Finset α) : image f (s ⊻ t) = image f s ⊻ image f t 
Arguments: {F : Type u_1} {α : Type u_2} {β : Type u_3} [DecidableEq α] [DecidableEq β] [SemilatticeSup α] [SemilatticeSup β] [FunLike F α β] [SupHomClass F α β] (f : F) (s t : Finset α)
Goal: Finset.image (⇑f) (s ⊻ t) = Finset.image (⇑f) s ⊻ Finset.image (⇑f) t
-- Finset.map_sups
lemma map_sups (f : F) (hf) (s t : Finset α) :
    map ⟨f, hf⟩ (s ⊻ t) = map ⟨f, hf⟩ s ⊻ map ⟨f, hf⟩ t 
Arguments: {F : Type u_1} {α : Type u_2} {β : Type u_3} [DecidableEq α] [DecidableEq β] [SemilatticeSup α] [SemilatticeSup β] [FunLike F α β] [SupHomClass F α β] (f : F) (hf : Function.Injective ⇑f) (s t : Finset α)
Goal: Finset.map { toFun := ⇑f, inj' := hf } (s ⊻ t) =
  Finset.map { toFun := ⇑f, inj' := hf } s ⊻ Finset.map { toFun := ⇑f, inj' := hf } t
-- Finset.subset_sups_self
lemma subset_sups_self : s ⊆ s ⊻ s 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s : Finset α}
Goal: s ⊆ s ⊻ s
-- Finset.sups_subset_self
lemma sups_subset_self : s ⊻ s ⊆ s ↔ SupClosed (s : Set α) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s : Finset α}
Goal: s ⊻ s ⊆ s ↔ SupClosed ↑s
-- Finset.sups_eq_self
@[simp] lemma sups_eq_self : s ⊻ s = s ↔ SupClosed (s : Set α) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] {s : Finset α}
Goal: s ⊻ s = s ↔ SupClosed ↑s
-- Finset.univ_sups_univ
@[simp] lemma univ_sups_univ [Fintype α] : (univ : Finset α) ⊻ univ = univ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [Fintype α]
Goal: Finset.univ ⊻ Finset.univ = Finset.univ
-- Finset.filter_sups_le
lemma filter_sups_le [@DecidableRel α (· ≤ ·)] (s t : Finset α) (a : α) :
    (s ⊻ t).filter (· ≤ a) = s.filter (· ≤ a) ⊻ t.filter (· ≤ a) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [DecidableRel fun x x_1 => x ≤ x_1] (s t : Finset α) (a : α)
Goal: Finset.filter (fun x => x ≤ a) (s ⊻ t) = Finset.filter (fun x => x ≤ a) s ⊻ Finset.filter (fun x => x ≤ a) t
-- Finset.biUnion_image_sup_left
lemma biUnion_image_sup_left : s.biUnion (fun a ↦ t.image (a ⊔ ·)) = s ⊻ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] (s t : Finset α)
Goal: (s.biUnion fun a => Finset.image (fun x => a ⊔ x) t) = s ⊻ t
-- Finset.biUnion_image_sup_right
lemma biUnion_image_sup_right : t.biUnion (fun b ↦ s.image (· ⊔ b)) = s ⊻ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] (s t : Finset α)
Goal: (t.biUnion fun b => Finset.image (fun x => x ⊔ b) s) = s ⊻ t
-- Finset.image_sup_product
theorem image_sup_product (s t : Finset α) : (s ×ˢ t).image (uncurry (· ⊔ ·)) = s ⊻ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] (s t : Finset α)
Goal: Finset.image (Function.uncurry fun x x_1 => x ⊔ x_1) (s ×ˢ t) = s ⊻ t
-- Finset.sups_assoc
theorem sups_assoc : s ⊻ t ⊻ u = s ⊻ (t ⊻ u) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] (s t u : Finset α)
Goal: s ⊻ t ⊻ u = s ⊻ (t ⊻ u)
-- Finset.sups_comm
theorem sups_comm : s ⊻ t = t ⊻ s 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] (s t : Finset α)
Goal: s ⊻ t = t ⊻ s
-- Finset.sups_left_comm
theorem sups_left_comm : s ⊻ (t ⊻ u) = t ⊻ (s ⊻ u) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] (s t u : Finset α)
Goal: s ⊻ (t ⊻ u) = t ⊻ (s ⊻ u)
-- Finset.sups_right_comm
theorem sups_right_comm : s ⊻ t ⊻ u = s ⊻ u ⊻ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] (s t u : Finset α)
Goal: s ⊻ t ⊻ u = s ⊻ u ⊻ t
-- Finset.sups_sups_sups_comm
theorem sups_sups_sups_comm : s ⊻ t ⊻ (u ⊻ v) = s ⊻ u ⊻ (t ⊻ v) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] (s t u v : Finset α)
Goal: s ⊻ t ⊻ (u ⊻ v) = s ⊻ u ⊻ (t ⊻ v)
-- Finset.mem_infs
@[simp]
theorem mem_infs : c ∈ s ⊼ t ↔ ∃ a ∈ s, ∃ b ∈ t, a ⊓ b = c 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t : Finset α} {c : α}
Goal: c ∈ s ⊼ t ↔ ∃ a ∈ s, ∃ b ∈ t, a ⊓ b = c
-- Finset.coe_infs
@[simp, norm_cast]
theorem coe_infs : (↑(s ⊼ t) : Set α) = ↑s ⊼ ↑t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] (s t : Finset α)
Goal: ↑(s ⊼ t) = ↑s ⊼ ↑t
-- Finset.card_infs_le
theorem card_infs_le : (s ⊼ t).card ≤ s.card * t.card 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] (s t : Finset α)
Goal: (s ⊼ t).card ≤ s.card * t.card
-- Finset.card_infs_iff
theorem card_infs_iff :
    (s ⊼ t).card = s.card * t.card ↔ (s ×ˢ t : Set (α × α)).InjOn fun x => x.1 ⊓ x.2 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] (s t : Finset α)
Goal: (s ⊼ t).card = s.card * t.card ↔ Set.InjOn (fun x => x.1 ⊓ x.2) (↑s ×ˢ ↑t)
-- Finset.inf_mem_infs
theorem inf_mem_infs : a ∈ s → b ∈ t → a ⊓ b ∈ s ⊼ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t : Finset α} {a b : α}
Goal: a ∈ s → b ∈ t → a ⊓ b ∈ s ⊼ t
-- Finset.infs_subset
theorem infs_subset : s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ ⊼ t₁ ⊆ s₂ ⊼ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s₁ s₂ t₁ t₂ : Finset α}
Goal: s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ ⊼ t₁ ⊆ s₂ ⊼ t₂
-- Finset.infs_subset_left
theorem infs_subset_left : t₁ ⊆ t₂ → s ⊼ t₁ ⊆ s ⊼ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t₁ t₂ : Finset α}
Goal: t₁ ⊆ t₂ → s ⊼ t₁ ⊆ s ⊼ t₂
-- Finset.infs_subset_right
theorem infs_subset_right : s₁ ⊆ s₂ → s₁ ⊼ t ⊆ s₂ ⊼ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s₁ s₂ t : Finset α}
Goal: s₁ ⊆ s₂ → s₁ ⊼ t ⊆ s₂ ⊼ t
-- Finset.image_subset_infs_left
lemma image_subset_infs_left : b ∈ t → s.image (· ⊓ b) ⊆ s ⊼ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t : Finset α} {b : α}
Goal: b ∈ t → Finset.image (fun x => x ⊓ b) s ⊆ s ⊼ t
-- Finset.image_subset_infs_right
lemma image_subset_infs_right : a ∈ s → t.image (a ⊓ ·) ⊆ s ⊼ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t : Finset α} {a : α}
Goal: a ∈ s → Finset.image (fun x => a ⊓ x) t ⊆ s ⊼ t
-- Finset.forall_infs_iff
theorem forall_infs_iff {p : α → Prop} : (∀ c ∈ s ⊼ t, p c) ↔ ∀ a ∈ s, ∀ b ∈ t, p (a ⊓ b) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t : Finset α} {p : α → Prop}
Goal: (∀ c ∈ s ⊼ t, p c) ↔ ∀ a ∈ s, ∀ b ∈ t, p (a ⊓ b)
-- Finset.infs_subset_iff
@[simp]
theorem infs_subset_iff : s ⊼ t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a ⊓ b ∈ u 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t u : Finset α}
Goal: s ⊼ t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a ⊓ b ∈ u
-- Finset.infs_nonempty
@[simp, aesop safe apply (rule_sets := [finsetNonempty])]
theorem infs_nonempty : (s ⊼ t).Nonempty ↔ s.Nonempty ∧ t.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t : Finset α}
Goal: (s ⊼ t).Nonempty ↔ s.Nonempty ∧ t.Nonempty
-- Finset.Nonempty.infs
protected theorem Nonempty.infs : s.Nonempty → t.Nonempty → (s ⊼ t).Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t : Finset α}
Goal: s.Nonempty → t.Nonempty → (s ⊼ t).Nonempty
-- Finset.Nonempty.of_infs_left
theorem Nonempty.of_infs_left : (s ⊼ t).Nonempty → s.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t : Finset α}
Goal: (s ⊼ t).Nonempty → s.Nonempty
-- Finset.Nonempty.of_infs_right
theorem Nonempty.of_infs_right : (s ⊼ t).Nonempty → t.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t : Finset α}
Goal: (s ⊼ t).Nonempty → t.Nonempty
-- Finset.empty_infs
@[simp]
theorem empty_infs : ∅ ⊼ t = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {t : Finset α}
Goal: ∅ ⊼ t = ∅
-- Finset.infs_empty
@[simp]
theorem infs_empty : s ⊼ ∅ = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s : Finset α}
Goal: s ⊼ ∅ = ∅
-- Finset.infs_eq_empty
@[simp]
theorem infs_eq_empty : s ⊼ t = ∅ ↔ s = ∅ ∨ t = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t : Finset α}
Goal: s ⊼ t = ∅ ↔ s = ∅ ∨ t = ∅
-- Finset.singleton_infs
@[simp] lemma singleton_infs : {a} ⊼ t = t.image (a ⊓ ·) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {t : Finset α} {a : α}
Goal: {a} ⊼ t = Finset.image (fun x => a ⊓ x) t
-- Finset.infs_singleton
@[simp] lemma infs_singleton : s ⊼ {b} = s.image (· ⊓ b) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s : Finset α} {b : α}
Goal: s ⊼ {b} = Finset.image (fun x => x ⊓ b) s
-- Finset.singleton_infs_singleton
theorem singleton_infs_singleton : ({a} ⊼ {b} : Finset α) = {a ⊓ b} 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {a b : α}
Goal: {a} ⊼ {b} = {a ⊓ b}
-- Finset.infs_union_left
theorem infs_union_left : (s₁ ∪ s₂) ⊼ t = s₁ ⊼ t ∪ s₂ ⊼ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s₁ s₂ t : Finset α}
Goal: (s₁ ∪ s₂) ⊼ t = s₁ ⊼ t ∪ s₂ ⊼ t
-- Finset.infs_union_right
theorem infs_union_right : s ⊼ (t₁ ∪ t₂) = s ⊼ t₁ ∪ s ⊼ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t₁ t₂ : Finset α}
Goal: s ⊼ (t₁ ∪ t₂) = s ⊼ t₁ ∪ s ⊼ t₂
-- Finset.infs_inter_subset_left
theorem infs_inter_subset_left : (s₁ ∩ s₂) ⊼ t ⊆ s₁ ⊼ t ∩ s₂ ⊼ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s₁ s₂ t : Finset α}
Goal: (s₁ ∩ s₂) ⊼ t ⊆ s₁ ⊼ t ∩ s₂ ⊼ t
-- Finset.infs_inter_subset_right
theorem infs_inter_subset_right : s ⊼ (t₁ ∩ t₂) ⊆ s ⊼ t₁ ∩ s ⊼ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s t₁ t₂ : Finset α}
Goal: s ⊼ (t₁ ∩ t₂) ⊆ s ⊼ t₁ ∩ s ⊼ t₂
-- Finset.subset_infs
theorem subset_infs {s t : Set α} :
    ↑u ⊆ s ⊼ t → ∃ s' t' : Finset α, ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ u ⊆ s' ⊼ t' 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {u : Finset α} {s t : Set α}
Goal: ↑u ⊆ s ⊼ t → ∃ s' t', ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ u ⊆ s' ⊼ t'
-- Finset.image_infs
lemma image_infs (f : F) (s t : Finset α) : image f (s ⊼ t) = image f s ⊼ image f t 
Arguments: {F : Type u_1} {α : Type u_2} {β : Type u_3} [DecidableEq α] [DecidableEq β] [SemilatticeInf α] [SemilatticeInf β] [FunLike F α β] [InfHomClass F α β] (f : F) (s t : Finset α)
Goal: Finset.image (⇑f) (s ⊼ t) = Finset.image (⇑f) s ⊼ Finset.image (⇑f) t
-- Finset.map_infs
lemma map_infs (f : F) (hf) (s t : Finset α) :
    map ⟨f, hf⟩ (s ⊼ t) = map ⟨f, hf⟩ s ⊼ map ⟨f, hf⟩ t 
Arguments: {F : Type u_1} {α : Type u_2} {β : Type u_3} [DecidableEq α] [DecidableEq β] [SemilatticeInf α] [SemilatticeInf β] [FunLike F α β] [InfHomClass F α β] (f : F) (hf : Function.Injective ⇑f) (s t : Finset α)
Goal: Finset.map { toFun := ⇑f, inj' := hf } (s ⊼ t) =
  Finset.map { toFun := ⇑f, inj' := hf } s ⊼ Finset.map { toFun := ⇑f, inj' := hf } t
-- Finset.subset_infs_self
lemma subset_infs_self : s ⊆ s ⊼ s 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s : Finset α}
Goal: s ⊆ s ⊼ s
-- Finset.infs_self_subset
lemma infs_self_subset : s ⊼ s ⊆ s ↔ InfClosed (s : Set α) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s : Finset α}
Goal: s ⊼ s ⊆ s ↔ InfClosed ↑s
-- Finset.infs_self
@[simp] lemma infs_self : s ⊼ s = s ↔ InfClosed (s : Set α) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] {s : Finset α}
Goal: s ⊼ s = s ↔ InfClosed ↑s
-- Finset.univ_infs_univ
@[simp] lemma univ_infs_univ [Fintype α] : (univ : Finset α) ⊼ univ = univ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] [Fintype α]
Goal: Finset.univ ⊼ Finset.univ = Finset.univ
-- Finset.filter_infs_le
lemma filter_infs_le [@DecidableRel α (· ≤ ·)] (s t : Finset α) (a : α) :
    (s ⊼ t).filter (a ≤ ·) = s.filter (a ≤ ·) ⊼ t.filter (a ≤ ·) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] [DecidableRel fun x x_1 => x ≤ x_1] (s t : Finset α) (a : α)
Goal: Finset.filter (fun x => a ≤ x) (s ⊼ t) = Finset.filter (fun x => a ≤ x) s ⊼ Finset.filter (fun x => a ≤ x) t
-- Finset.biUnion_image_inf_left
lemma biUnion_image_inf_left : s.biUnion (fun a ↦ t.image (a ⊓ ·)) = s ⊼ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] (s t : Finset α)
Goal: (s.biUnion fun a => Finset.image (fun x => a ⊓ x) t) = s ⊼ t
-- Finset.biUnion_image_inf_right
lemma biUnion_image_inf_right : t.biUnion (fun b ↦ s.image (· ⊓ b)) = s ⊼ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] (s t : Finset α)
Goal: (t.biUnion fun b => Finset.image (fun x => x ⊓ b) s) = s ⊼ t
-- Finset.image_inf_product
theorem image_inf_product (s t : Finset α) : (s ×ˢ t).image (uncurry (· ⊓ ·)) = s ⊼ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] (s t : Finset α)
Goal: Finset.image (Function.uncurry fun x x_1 => x ⊓ x_1) (s ×ˢ t) = s ⊼ t
-- Finset.infs_assoc
theorem infs_assoc : s ⊼ t ⊼ u = s ⊼ (t ⊼ u) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] (s t u : Finset α)
Goal: s ⊼ t ⊼ u = s ⊼ (t ⊼ u)
-- Finset.infs_comm
theorem infs_comm : s ⊼ t = t ⊼ s 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] (s t : Finset α)
Goal: s ⊼ t = t ⊼ s
-- Finset.infs_left_comm
theorem infs_left_comm : s ⊼ (t ⊼ u) = t ⊼ (s ⊼ u) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] (s t u : Finset α)
Goal: s ⊼ (t ⊼ u) = t ⊼ (s ⊼ u)
-- Finset.infs_right_comm
theorem infs_right_comm : s ⊼ t ⊼ u = s ⊼ u ⊼ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] (s t u : Finset α)
Goal: s ⊼ t ⊼ u = s ⊼ u ⊼ t
-- Finset.infs_infs_infs_comm
theorem infs_infs_infs_comm : s ⊼ t ⊼ (u ⊼ v) = s ⊼ u ⊼ (t ⊼ v) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeInf α] (s t u v : Finset α)
Goal: s ⊼ t ⊼ (u ⊼ v) = s ⊼ u ⊼ (t ⊼ v)
-- Finset.sups_infs_subset_left
theorem sups_infs_subset_left : s ⊻ t ⊼ u ⊆ (s ⊻ t) ⊼ (s ⊻ u) 
Arguments: {α : Type u_2} [DecidableEq α] [DistribLattice α] (s t u : Finset α)
Goal: s ⊻ t ⊼ u ⊆ (s ⊻ t) ⊼ (s ⊻ u)
-- Finset.sups_infs_subset_right
theorem sups_infs_subset_right : t ⊼ u ⊻ s ⊆ (t ⊻ s) ⊼ (u ⊻ s) 
Arguments: {α : Type u_2} [DecidableEq α] [DistribLattice α] (s t u : Finset α)
Goal: t ⊼ u ⊻ s ⊆ (t ⊻ s) ⊼ (u ⊻ s)
-- Finset.infs_sups_subset_left
theorem infs_sups_subset_left : s ⊼ (t ⊻ u) ⊆ s ⊼ t ⊻ s ⊼ u 
Arguments: {α : Type u_2} [DecidableEq α] [DistribLattice α] (s t u : Finset α)
Goal: s ⊼ (t ⊻ u) ⊆ s ⊼ t ⊻ s ⊼ u