ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Set.mem_sups
@[simp]
theorem mem_sups : c ∈ s ⊻ t ↔ ∃ a ∈ s, ∃ b ∈ t, a ⊔ b = c 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t : Set α} {c : α}
Goal: c ∈ s ⊻ t ↔ ∃ a ∈ s, ∃ b ∈ t, a ⊔ b = c
-- Set.sup_mem_sups
theorem sup_mem_sups : a ∈ s → b ∈ t → a ⊔ b ∈ s ⊻ t 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t : Set α} {a b : α}
Goal: a ∈ s → b ∈ t → a ⊔ b ∈ s ⊻ t
-- Set.sups_subset
theorem sups_subset : s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ ⊻ t₁ ⊆ s₂ ⊻ t₂ 
Arguments: {α : Type u_2} [SemilatticeSup α] {s₁ s₂ t₁ t₂ : Set α}
Goal: s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ ⊻ t₁ ⊆ s₂ ⊻ t₂
-- Set.sups_subset_left
theorem sups_subset_left : t₁ ⊆ t₂ → s ⊻ t₁ ⊆ s ⊻ t₂ 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t₁ t₂ : Set α}
Goal: t₁ ⊆ t₂ → s ⊻ t₁ ⊆ s ⊻ t₂
-- Set.sups_subset_right
theorem sups_subset_right : s₁ ⊆ s₂ → s₁ ⊻ t ⊆ s₂ ⊻ t 
Arguments: {α : Type u_2} [SemilatticeSup α] {s₁ s₂ t : Set α}
Goal: s₁ ⊆ s₂ → s₁ ⊻ t ⊆ s₂ ⊻ t
-- Set.image_subset_sups_left
theorem image_subset_sups_left : b ∈ t → (fun a => a ⊔ b) '' s ⊆ s ⊻ t 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t : Set α} {b : α}
Goal: b ∈ t → (fun a => a ⊔ b) '' s ⊆ s ⊻ t
-- Set.image_subset_sups_right
theorem image_subset_sups_right : a ∈ s → (· ⊔ ·) a '' t ⊆ s ⊻ t 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t : Set α} {a : α}
Goal: a ∈ s → (fun x x_1 => x ⊔ x_1) a '' t ⊆ s ⊻ t
-- Set.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} [SemilatticeSup α] {s t : Set α} {p : α → Prop}
Goal: (∀ c ∈ s ⊻ t, p c) ↔ ∀ a ∈ s, ∀ b ∈ t, p (a ⊔ b)
-- Set.sups_subset_iff
@[simp]
theorem sups_subset_iff : s ⊻ t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a ⊔ b ∈ u 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t u : Set α}
Goal: s ⊻ t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a ⊔ b ∈ u
-- Set.sups_nonempty
@[simp]
theorem sups_nonempty : (s ⊻ t).Nonempty ↔ s.Nonempty ∧ t.Nonempty 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t : Set α}
Goal: (s ⊻ t).Nonempty ↔ s.Nonempty ∧ t.Nonempty
-- Set.Nonempty.sups
protected theorem Nonempty.sups : s.Nonempty → t.Nonempty → (s ⊻ t).Nonempty 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t : Set α}
Goal: s.Nonempty → t.Nonempty → (s ⊻ t).Nonempty
-- Set.Nonempty.of_sups_left
theorem Nonempty.of_sups_left : (s ⊻ t).Nonempty → s.Nonempty 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t : Set α}
Goal: (s ⊻ t).Nonempty → s.Nonempty
-- Set.Nonempty.of_sups_right
theorem Nonempty.of_sups_right : (s ⊻ t).Nonempty → t.Nonempty 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t : Set α}
Goal: (s ⊻ t).Nonempty → t.Nonempty
-- Set.empty_sups
@[simp]
theorem empty_sups : ∅ ⊻ t = ∅ 
Arguments: {α : Type u_2} [SemilatticeSup α] {t : Set α}
Goal: ∅ ⊻ t = ∅
-- Set.sups_empty
@[simp]
theorem sups_empty : s ⊻ ∅ = ∅ 
Arguments: {α : Type u_2} [SemilatticeSup α] {s : Set α}
Goal: s ⊻ ∅ = ∅
-- Set.sups_eq_empty
@[simp]
theorem sups_eq_empty : s ⊻ t = ∅ ↔ s = ∅ ∨ t = ∅ 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t : Set α}
Goal: s ⊻ t = ∅ ↔ s = ∅ ∨ t = ∅
-- Set.singleton_sups
@[simp]
theorem singleton_sups : {a} ⊻ t = t.image fun b => a ⊔ b 
Arguments: {α : Type u_2} [SemilatticeSup α] {t : Set α} {a : α}
Goal: {a} ⊻ t = (fun b => a ⊔ b) '' t
-- Set.sups_singleton
@[simp]
theorem sups_singleton : s ⊻ {b} = s.image fun a => a ⊔ b 
Arguments: {α : Type u_2} [SemilatticeSup α] {s : Set α} {b : α}
Goal: s ⊻ {b} = (fun a => a ⊔ b) '' s
-- Set.singleton_sups_singleton
theorem singleton_sups_singleton : ({a} ⊻ {b} : Set α) = {a ⊔ b} 
Arguments: {α : Type u_2} [SemilatticeSup α] {a b : α}
Goal: {a} ⊻ {b} = {a ⊔ b}
-- Set.sups_union_left
theorem sups_union_left : (s₁ ∪ s₂) ⊻ t = s₁ ⊻ t ∪ s₂ ⊻ t 
Arguments: {α : Type u_2} [SemilatticeSup α] {s₁ s₂ t : Set α}
Goal: (s₁ ∪ s₂) ⊻ t = s₁ ⊻ t ∪ s₂ ⊻ t
-- Set.sups_union_right
theorem sups_union_right : s ⊻ (t₁ ∪ t₂) = s ⊻ t₁ ∪ s ⊻ t₂ 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t₁ t₂ : Set α}
Goal: s ⊻ (t₁ ∪ t₂) = s ⊻ t₁ ∪ s ⊻ t₂
-- Set.sups_inter_subset_left
theorem sups_inter_subset_left : (s₁ ∩ s₂) ⊻ t ⊆ s₁ ⊻ t ∩ s₂ ⊻ t 
Arguments: {α : Type u_2} [SemilatticeSup α] {s₁ s₂ t : Set α}
Goal: (s₁ ∩ s₂) ⊻ t ⊆ s₁ ⊻ t ∩ s₂ ⊻ t
-- Set.sups_inter_subset_right
theorem sups_inter_subset_right : s ⊻ (t₁ ∩ t₂) ⊆ s ⊻ t₁ ∩ s ⊻ t₂ 
Arguments: {α : Type u_2} [SemilatticeSup α] {s t₁ t₂ : Set α}
Goal: s ⊻ (t₁ ∩ t₂) ⊆ s ⊻ t₁ ∩ s ⊻ t₂
-- Set.image_sups
lemma image_sups (f : F) (s t : Set α) : f '' (s ⊻ t) = f '' s ⊻ f '' t 
Arguments: {F : Type u_1} {α : Type u_2} {β : Type u_3} [SemilatticeSup α] [SemilatticeSup β] [FunLike F α β] [SupHomClass F α β] (f : F) (s t : Set α)
Goal: ⇑f '' (s ⊻ t) = ⇑f '' s ⊻ ⇑f '' t
-- Set.subset_sups_self
lemma subset_sups_self : s ⊆ s ⊻ s 
Arguments: {α : Type u_2} [SemilatticeSup α] {s : Set α}
Goal: s ⊆ s ⊻ s
-- Set.sups_subset_self
lemma sups_subset_self : s ⊻ s ⊆ s ↔ SupClosed s 
Arguments: {α : Type u_2} [SemilatticeSup α] {s : Set α}
Goal: s ⊻ s ⊆ s ↔ SupClosed s
-- Set.sups_eq_self
@[simp] lemma sups_eq_self : s ⊻ s = s ↔ SupClosed s 
Arguments: {α : Type u_2} [SemilatticeSup α] {s : Set α}
Goal: s ⊻ s = s ↔ SupClosed s
-- Set.sep_sups_le
lemma sep_sups_le (s t : Set α) (a : α) :
    {b ∈ s ⊻ t | b ≤ a} = {b ∈ s | b ≤ a} ⊻ {b ∈ t | b ≤ a} 
Arguments: {α : Type u_2} [SemilatticeSup α] (s t : Set α) (a : α)
Goal: {b | b ∈ s ⊻ t ∧ b ≤ a} = {b | b ∈ s ∧ b ≤ a} ⊻ {b | b ∈ t ∧ b ≤ a}
-- Set.iUnion_image_sup_left
theorem iUnion_image_sup_left : ⋃ a ∈ s, (· ⊔ ·) a '' t = s ⊻ t 
Arguments: {α : Type u_2} [SemilatticeSup α] (s t : Set α)
Goal: ⋃ a ∈ s, (fun x x_1 => x ⊔ x_1) a '' t = s ⊻ t
-- Set.iUnion_image_sup_right
theorem iUnion_image_sup_right : ⋃ b ∈ t, (· ⊔ b) '' s = s ⊻ t 
Arguments: {α : Type u_2} [SemilatticeSup α] (s t : Set α)
Goal: ⋃ b ∈ t, (fun x => x ⊔ b) '' s = s ⊻ t
-- Set.image_sup_prod
@[simp]
theorem image_sup_prod (s t : Set α) : Set.image2 (· ⊔ ·) s t = s ⊻ t 
Arguments: {α : Type u_2} [SemilatticeSup α] (s t : Set α)
Goal: Set.image2 (fun x x_1 => x ⊔ x_1) s t = s ⊻ t
-- Set.sups_assoc
theorem sups_assoc : s ⊻ t ⊻ u = s ⊻ (t ⊻ u) 
Arguments: {α : Type u_2} [SemilatticeSup α] (s t u : Set α)
Goal: s ⊻ t ⊻ u = s ⊻ (t ⊻ u)
-- Set.sups_comm
theorem sups_comm : s ⊻ t = t ⊻ s 
Arguments: {α : Type u_2} [SemilatticeSup α] (s t : Set α)
Goal: s ⊻ t = t ⊻ s
-- Set.sups_left_comm
theorem sups_left_comm : s ⊻ (t ⊻ u) = t ⊻ (s ⊻ u) 
Arguments: {α : Type u_2} [SemilatticeSup α] (s t u : Set α)
Goal: s ⊻ (t ⊻ u) = t ⊻ (s ⊻ u)
-- Set.sups_right_comm
theorem sups_right_comm : s ⊻ t ⊻ u = s ⊻ u ⊻ t 
Arguments: {α : Type u_2} [SemilatticeSup α] (s t u : Set α)
Goal: s ⊻ t ⊻ u = s ⊻ u ⊻ t
-- Set.sups_sups_sups_comm
theorem sups_sups_sups_comm : s ⊻ t ⊻ (u ⊻ v) = s ⊻ u ⊻ (t ⊻ v) 
Arguments: {α : Type u_2} [SemilatticeSup α] (s t u v : Set α)
Goal: s ⊻ t ⊻ (u ⊻ v) = s ⊻ u ⊻ (t ⊻ v)
-- Set.mem_infs
@[simp]
theorem mem_infs : c ∈ s ⊼ t ↔ ∃ a ∈ s, ∃ b ∈ t, a ⊓ b = c 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t : Set α} {c : α}
Goal: c ∈ s ⊼ t ↔ ∃ a ∈ s, ∃ b ∈ t, a ⊓ b = c
-- Set.inf_mem_infs
theorem inf_mem_infs : a ∈ s → b ∈ t → a ⊓ b ∈ s ⊼ t 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t : Set α} {a b : α}
Goal: a ∈ s → b ∈ t → a ⊓ b ∈ s ⊼ t
-- Set.infs_subset
theorem infs_subset : s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ ⊼ t₁ ⊆ s₂ ⊼ t₂ 
Arguments: {α : Type u_2} [SemilatticeInf α] {s₁ s₂ t₁ t₂ : Set α}
Goal: s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ ⊼ t₁ ⊆ s₂ ⊼ t₂
-- Set.infs_subset_left
theorem infs_subset_left : t₁ ⊆ t₂ → s ⊼ t₁ ⊆ s ⊼ t₂ 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t₁ t₂ : Set α}
Goal: t₁ ⊆ t₂ → s ⊼ t₁ ⊆ s ⊼ t₂
-- Set.infs_subset_right
theorem infs_subset_right : s₁ ⊆ s₂ → s₁ ⊼ t ⊆ s₂ ⊼ t 
Arguments: {α : Type u_2} [SemilatticeInf α] {s₁ s₂ t : Set α}
Goal: s₁ ⊆ s₂ → s₁ ⊼ t ⊆ s₂ ⊼ t
-- Set.image_subset_infs_left
theorem image_subset_infs_left : b ∈ t → (fun a => a ⊓ b) '' s ⊆ s ⊼ t 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t : Set α} {b : α}
Goal: b ∈ t → (fun a => a ⊓ b) '' s ⊆ s ⊼ t
-- Set.image_subset_infs_right
theorem image_subset_infs_right : a ∈ s → (a ⊓ ·) '' t ⊆ s ⊼ t 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t : Set α} {a : α}
Goal: a ∈ s → (fun x => a ⊓ x) '' t ⊆ s ⊼ t
-- Set.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} [SemilatticeInf α] {s t : Set α} {p : α → Prop}
Goal: (∀ c ∈ s ⊼ t, p c) ↔ ∀ a ∈ s, ∀ b ∈ t, p (a ⊓ b)
-- Set.infs_subset_iff
@[simp]
theorem infs_subset_iff : s ⊼ t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a ⊓ b ∈ u 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t u : Set α}
Goal: s ⊼ t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a ⊓ b ∈ u
-- Set.infs_nonempty
@[simp]
theorem infs_nonempty : (s ⊼ t).Nonempty ↔ s.Nonempty ∧ t.Nonempty 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t : Set α}
Goal: (s ⊼ t).Nonempty ↔ s.Nonempty ∧ t.Nonempty
-- Set.Nonempty.infs
protected theorem Nonempty.infs : s.Nonempty → t.Nonempty → (s ⊼ t).Nonempty 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t : Set α}
Goal: s.Nonempty → t.Nonempty → (s ⊼ t).Nonempty
-- Set.Nonempty.of_infs_left
theorem Nonempty.of_infs_left : (s ⊼ t).Nonempty → s.Nonempty 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t : Set α}
Goal: (s ⊼ t).Nonempty → s.Nonempty
-- Set.Nonempty.of_infs_right
theorem Nonempty.of_infs_right : (s ⊼ t).Nonempty → t.Nonempty 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t : Set α}
Goal: (s ⊼ t).Nonempty → t.Nonempty
-- Set.empty_infs
@[simp]
theorem empty_infs : ∅ ⊼ t = ∅ 
Arguments: {α : Type u_2} [SemilatticeInf α] {t : Set α}
Goal: ∅ ⊼ t = ∅
-- Set.infs_empty
@[simp]
theorem infs_empty : s ⊼ ∅ = ∅ 
Arguments: {α : Type u_2} [SemilatticeInf α] {s : Set α}
Goal: s ⊼ ∅ = ∅
-- Set.infs_eq_empty
@[simp]
theorem infs_eq_empty : s ⊼ t = ∅ ↔ s = ∅ ∨ t = ∅ 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t : Set α}
Goal: s ⊼ t = ∅ ↔ s = ∅ ∨ t = ∅
-- Set.singleton_infs
@[simp]
theorem singleton_infs : {a} ⊼ t = t.image fun b => a ⊓ b 
Arguments: {α : Type u_2} [SemilatticeInf α] {t : Set α} {a : α}
Goal: {a} ⊼ t = (fun b => a ⊓ b) '' t
-- Set.infs_singleton
@[simp]
theorem infs_singleton : s ⊼ {b} = s.image fun a => a ⊓ b 
Arguments: {α : Type u_2} [SemilatticeInf α] {s : Set α} {b : α}
Goal: s ⊼ {b} = (fun a => a ⊓ b) '' s
-- Set.singleton_infs_singleton
theorem singleton_infs_singleton : ({a} ⊼ {b} : Set α) = {a ⊓ b} 
Arguments: {α : Type u_2} [SemilatticeInf α] {a b : α}
Goal: {a} ⊼ {b} = {a ⊓ b}
-- Set.infs_union_left
theorem infs_union_left : (s₁ ∪ s₂) ⊼ t = s₁ ⊼ t ∪ s₂ ⊼ t 
Arguments: {α : Type u_2} [SemilatticeInf α] {s₁ s₂ t : Set α}
Goal: (s₁ ∪ s₂) ⊼ t = s₁ ⊼ t ∪ s₂ ⊼ t
-- Set.infs_union_right
theorem infs_union_right : s ⊼ (t₁ ∪ t₂) = s ⊼ t₁ ∪ s ⊼ t₂ 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t₁ t₂ : Set α}
Goal: s ⊼ (t₁ ∪ t₂) = s ⊼ t₁ ∪ s ⊼ t₂
-- Set.infs_inter_subset_left
theorem infs_inter_subset_left : (s₁ ∩ s₂) ⊼ t ⊆ s₁ ⊼ t ∩ s₂ ⊼ t 
Arguments: {α : Type u_2} [SemilatticeInf α] {s₁ s₂ t : Set α}
Goal: (s₁ ∩ s₂) ⊼ t ⊆ s₁ ⊼ t ∩ s₂ ⊼ t
-- Set.infs_inter_subset_right
theorem infs_inter_subset_right : s ⊼ (t₁ ∩ t₂) ⊆ s ⊼ t₁ ∩ s ⊼ t₂ 
Arguments: {α : Type u_2} [SemilatticeInf α] {s t₁ t₂ : Set α}
Goal: s ⊼ (t₁ ∩ t₂) ⊆ s ⊼ t₁ ∩ s ⊼ t₂
-- Set.image_infs
lemma image_infs (f : F) (s t : Set α) : f '' (s ⊼ t) = f '' s ⊼ f '' t 
Arguments: {F : Type u_1} {α : Type u_2} {β : Type u_3} [SemilatticeInf α] [SemilatticeInf β] [FunLike F α β] [InfHomClass F α β] (f : F) (s t : Set α)
Goal: ⇑f '' (s ⊼ t) = ⇑f '' s ⊼ ⇑f '' t
-- Set.subset_infs_self
lemma subset_infs_self : s ⊆ s ⊼ s 
Arguments: {α : Type u_2} [SemilatticeInf α] {s : Set α}
Goal: s ⊆ s ⊼ s
-- Set.infs_self_subset
lemma infs_self_subset : s ⊼ s ⊆ s ↔ InfClosed s 
Arguments: {α : Type u_2} [SemilatticeInf α] {s : Set α}
Goal: s ⊼ s ⊆ s ↔ InfClosed s
-- Set.infs_self
@[simp] lemma infs_self : s ⊼ s = s ↔ InfClosed s 
Arguments: {α : Type u_2} [SemilatticeInf α] {s : Set α}
Goal: s ⊼ s = s ↔ InfClosed s
-- Set.sep_infs_le
lemma sep_infs_le (s t : Set α) (a : α) :
    {b ∈ s ⊼ t | a ≤ b} = {b ∈ s | a ≤ b} ⊼ {b ∈ t | a ≤ b} 
Arguments: {α : Type u_2} [SemilatticeInf α] (s t : Set α) (a : α)
Goal: {b | b ∈ s ⊼ t ∧ a ≤ b} = {b | b ∈ s ∧ a ≤ b} ⊼ {b | b ∈ t ∧ a ≤ b}
-- Set.iUnion_image_inf_left
theorem iUnion_image_inf_left : ⋃ a ∈ s, (a ⊓ ·) '' t = s ⊼ t 
Arguments: {α : Type u_2} [SemilatticeInf α] (s t : Set α)
Goal: ⋃ a ∈ s, (fun x => a ⊓ x) '' t = s ⊼ t
-- Set.iUnion_image_inf_right
theorem iUnion_image_inf_right : ⋃ b ∈ t, (· ⊓ b) '' s = s ⊼ t 
Arguments: {α : Type u_2} [SemilatticeInf α] (s t : Set α)
Goal: ⋃ b ∈ t, (fun x => x ⊓ b) '' s = s ⊼ t
-- Set.image_inf_prod
@[simp]
theorem image_inf_prod (s t : Set α) : Set.image2 (fun x x_1 => x ⊓ x_1) s t = s ⊼ t 
Arguments: {α : Type u_2} [SemilatticeInf α] (s t : Set α)
Goal: Set.image2 (fun x x_1 => x ⊓ x_1) s t = s ⊼ t
-- Set.infs_assoc
theorem infs_assoc : s ⊼ t ⊼ u = s ⊼ (t ⊼ u) 
Arguments: {α : Type u_2} [SemilatticeInf α] (s t u : Set α)
Goal: s ⊼ t ⊼ u = s ⊼ (t ⊼ u)
-- Set.infs_comm
theorem infs_comm : s ⊼ t = t ⊼ s 
Arguments: {α : Type u_2} [SemilatticeInf α] (s t : Set α)
Goal: s ⊼ t = t ⊼ s
-- Set.infs_left_comm
theorem infs_left_comm : s ⊼ (t ⊼ u) = t ⊼ (s ⊼ u) 
Arguments: {α : Type u_2} [SemilatticeInf α] (s t u : Set α)
Goal: s ⊼ (t ⊼ u) = t ⊼ (s ⊼ u)
-- Set.infs_right_comm
theorem infs_right_comm : s ⊼ t ⊼ u = s ⊼ u ⊼ t 
Arguments: {α : Type u_2} [SemilatticeInf α] (s t u : Set α)
Goal: s ⊼ t ⊼ u = s ⊼ u ⊼ t
-- Set.infs_infs_infs_comm
theorem infs_infs_infs_comm : s ⊼ t ⊼ (u ⊼ v) = s ⊼ u ⊼ (t ⊼ v) 
Arguments: {α : Type u_2} [SemilatticeInf α] (s t u v : Set α)
Goal: s ⊼ t ⊼ (u ⊼ v) = s ⊼ u ⊼ (t ⊼ v)
-- Set.sups_infs_subset_left
theorem sups_infs_subset_left : s ⊻ t ⊼ u ⊆ (s ⊻ t) ⊼ (s ⊻ u) 
Arguments: {α : Type u_2} [DistribLattice α] (s t u : Set α)
Goal: s ⊻ t ⊼ u ⊆ (s ⊻ t) ⊼ (s ⊻ u)
-- Set.sups_infs_subset_right
theorem sups_infs_subset_right : t ⊼ u ⊻ s ⊆ (t ⊻ s) ⊼ (u ⊻ s) 
Arguments: {α : Type u_2} [DistribLattice α] (s t u : Set α)
Goal: t ⊼ u ⊻ s ⊆ (t ⊻ s) ⊼ (u ⊻ s)
-- Set.infs_sups_subset_left
theorem infs_sups_subset_left : s ⊼ (t ⊻ u) ⊆ s ⊼ t ⊻ s ⊼ u 
Arguments: {α : Type u_2} [DistribLattice α] (s t u : Set α)
Goal: s ⊼ (t ⊻ u) ⊆ s ⊼ t ⊻ s ⊼ u
-- Set.infs_sups_subset_right
theorem infs_sups_subset_right : (t ⊻ u) ⊼ s ⊆ t ⊼ s ⊻ u ⊼ s 
Arguments: {α : Type u_2} [DistribLattice α] (s t u : Set α)
Goal: (t ⊻ u) ⊼ s ⊆ t ⊼ s ⊻ u ⊼ s
-- upperClosure_sups
@[simp]
theorem upperClosure_sups [SemilatticeSup α] (s t : Set α) :
    upperClosure (s ⊻ t) = upperClosure s ⊔ upperClosure t 
Arguments: {α : Type u_2} [SemilatticeSup α] (s t : Set α)
Goal: upperClosure (s ⊻ t) = upperClosure s ⊔ upperClosure t
-- lowerClosure_infs
@[simp]
theorem lowerClosure_infs [SemilatticeInf α] (s t : Set α) :
    lowerClosure (s ⊼ t) = lowerClosure s ⊓ lowerClosure t 
Arguments: {α : Type u_2} [SemilatticeInf α] (s t : Set α)
Goal: lowerClosure (s ⊼ t) = lowerClosure s ⊓ lowerClosure t
-- Multiset.coe_range
theorem coe_range (n : ℕ) : ↑(List.range n) = range n 
Arguments: (n : ℕ)
Goal: ↑(List.range n) = Multiset.range n
-- Multiset.range_zero
@[simp]
theorem range_zero : range 0 = 0 
Goal: Multiset.range 0 = 0
-- Multiset.range_succ
@[simp]
theorem range_succ (n : ℕ) : range (succ n) = n ::ₘ range n 
Arguments: (n : ℕ)
Goal: Multiset.range n.succ = n ::ₘ Multiset.range n
-- Multiset.card_range
@[simp]
theorem card_range (n : ℕ) : card (range n) = n 
Arguments: (n : ℕ)
Goal: Multiset.card (Multiset.range n) = n
-- Multiset.range_subset
theorem range_subset {m n : ℕ} : range m ⊆ range n ↔ m ≤ n 
Arguments: {m n : ℕ}
Goal: Multiset.range m ⊆ Multiset.range n ↔ m ≤ n
-- Multiset.mem_range
@[simp]
theorem mem_range {m n : ℕ} : m ∈ range n ↔ m < n 
Arguments: {m n : ℕ}
Goal: m ∈ Multiset.range n ↔ m < n
-- Multiset.not_mem_range_self
theorem not_mem_range_self {n : ℕ} : n ∉ range n 
Arguments: {n : ℕ}
Goal: n ∉ Multiset.range n
-- Multiset.self_mem_range_succ
theorem self_mem_range_succ (n : ℕ) : n ∈ range (n + 1) 
Arguments: (n : ℕ)
Goal: n ∈ Multiset.range (n + 1)
-- Multiset.range_add
theorem range_add (a b : ℕ) : range (a + b) = range a + (range b).map (a + ·) 
Arguments: (a b : ℕ)
Goal: Multiset.range (a + b) = Multiset.range a + Multiset.map (fun x => a + x) (Multiset.range b)
-- Multiset.range_disjoint_map_add
theorem range_disjoint_map_add (a : ℕ) (m : Multiset ℕ) :
    (range a).Disjoint (m.map (a + ·)) 
Arguments: (a : ℕ) (m : Multiset ℕ)
Goal: (Multiset.range a).Disjoint (Multiset.map (fun x => a + x) m)
-- Multiset.range_add_eq_union
theorem range_add_eq_union (a b : ℕ) : range (a + b) = range a ∪ (range b).map (a + ·) 
Arguments: (a b : ℕ)
Goal: Multiset.range (a + b) = Multiset.range a ∪ Multiset.map (fun x => a + x) (Multiset.range b)
-- Set.Subsingleton.prod
theorem Subsingleton.prod (hs : s.Subsingleton) (ht : t.Subsingleton) :
    (s ×ˢ t).Subsingleton 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} (hs : s.Subsingleton) (ht : t.Subsingleton)
Goal: (s ×ˢ t).Subsingleton
-- Set.prod_mono
@[gcongr]
theorem prod_mono (hs : s₁ ⊆ s₂) (ht : t₁ ⊆ t₂) : s₁ ×ˢ t₁ ⊆ s₂ ×ˢ t₂ 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t₁ t₂ : Set β} (hs : s₁ ⊆ s₂) (ht : t₁ ⊆ t₂)
Goal: s₁ ×ˢ t₁ ⊆ s₂ ×ˢ t₂
-- Set.prod_mono_left
@[gcongr]
theorem prod_mono_left (hs : s₁ ⊆ s₂) : s₁ ×ˢ t ⊆ s₂ ×ˢ t 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t : Set β} (hs : s₁ ⊆ s₂)
Goal: s₁ ×ˢ t ⊆ s₂ ×ˢ t
-- Set.prod_mono_right
@[gcongr]
theorem prod_mono_right (ht : t₁ ⊆ t₂) : s ×ˢ t₁ ⊆ s ×ˢ t₂ 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t₁ t₂ : Set β} (ht : t₁ ⊆ t₂)
Goal: s ×ˢ t₁ ⊆ s ×ˢ t₂
-- Set.prod_self_subset_prod_self
@[simp]
theorem prod_self_subset_prod_self : s₁ ×ˢ s₁ ⊆ s₂ ×ˢ s₂ ↔ s₁ ⊆ s₂ 
Arguments: {α : Type u_1} {s₁ s₂ : Set α}
Goal: s₁ ×ˢ s₁ ⊆ s₂ ×ˢ s₂ ↔ s₁ ⊆ s₂
-- Set.prod_self_ssubset_prod_self
@[simp]
theorem prod_self_ssubset_prod_self : s₁ ×ˢ s₁ ⊂ s₂ ×ˢ s₂ ↔ s₁ ⊂ s₂ 
Arguments: {α : Type u_1} {s₁ s₂ : Set α}
Goal: s₁ ×ˢ s₁ ⊂ s₂ ×ˢ s₂ ↔ s₁ ⊂ s₂
-- Set.prod_subset_iff
theorem prod_subset_iff {P : Set (α × β)} : s ×ˢ t ⊆ P ↔ ∀ x ∈ s, ∀ y ∈ t, (x, y) ∈ P 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {P : Set (α × β)}
Goal: s ×ˢ t ⊆ P ↔ ∀ x ∈ s, ∀ y ∈ t, (x, y) ∈ P
-- Set.forall_prod_set
theorem forall_prod_set {p : α × β → Prop} : (∀ x ∈ s ×ˢ t, p x) ↔ ∀ x ∈ s, ∀ y ∈ t, p (x, y) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {p : α × β → Prop}
Goal: (∀ x ∈ s ×ˢ t, p x) ↔ ∀ x ∈ s, ∀ y ∈ t, p (x, y)
-- Set.exists_prod_set
theorem exists_prod_set {p : α × β → Prop} : (∃ x ∈ s ×ˢ t, p x) ↔ ∃ x ∈ s, ∃ y ∈ t, p (x, y) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {p : α × β → Prop}
Goal: (∃ x ∈ s ×ˢ t, p x) ↔ ∃ x ∈ s, ∃ y ∈ t, p (x, y)
-- Set.prod_empty
@[simp]
theorem prod_empty : s ×ˢ (∅ : Set β) = ∅ 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α}
Goal: s ×ˢ ∅ = ∅
-- Set.empty_prod
@[simp]
theorem empty_prod : (∅ : Set α) ×ˢ t = ∅ 
Arguments: {α : Type u_1} {β : Type u_2} {t : Set β}
Goal: ∅ ×ˢ t = ∅
-- Set.univ_prod_univ
@[simp, mfld_simps]
theorem univ_prod_univ : @univ α ×ˢ @univ β = univ 
Arguments: {α : Type u_1} {β : Type u_2}
Goal: Set.univ ×ˢ Set.univ = Set.univ
-- Set.univ_prod
theorem univ_prod {t : Set β} : (univ : Set α) ×ˢ t = Prod.snd ⁻¹' t 
Arguments: {α : Type u_1} {β : Type u_2} {t : Set β}
Goal: Set.univ ×ˢ t = Prod.snd ⁻¹' t
-- Set.prod_univ
theorem prod_univ {s : Set α} : s ×ˢ (univ : Set β) = Prod.fst ⁻¹' s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α}
Goal: s ×ˢ Set.univ = Prod.fst ⁻¹' s
-- Set.prod_eq_univ
@[simp] lemma prod_eq_univ [Nonempty α] [Nonempty β] : s ×ˢ t = univ ↔ s = univ ∧ t = univ 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} [Nonempty α] [Nonempty β]
Goal: s ×ˢ t = Set.univ ↔ s = Set.univ ∧ t = Set.univ
-- Set.singleton_prod
@[simp]
theorem singleton_prod : ({a} : Set α) ×ˢ t = Prod.mk a '' t 
Arguments: {α : Type u_1} {β : Type u_2} {t : Set β} {a : α}
Goal: {a} ×ˢ t = Prod.mk a '' t
-- Set.prod_singleton
@[simp]
theorem prod_singleton : s ×ˢ ({b} : Set β) = (fun a => (a, b)) '' s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {b : β}
Goal: s ×ˢ {b} = (fun a => (a, b)) '' s
-- Set.singleton_prod_singleton
theorem singleton_prod_singleton : ({a} : Set α) ×ˢ ({b} : Set β) = {(a, b)} 
Arguments: {α : Type u_1} {β : Type u_2} {a : α} {b : β}
Goal: {a} ×ˢ {b} = {(a, b)}
-- Set.union_prod
@[simp]
theorem union_prod : (s₁ ∪ s₂) ×ˢ t = s₁ ×ˢ t ∪ s₂ ×ˢ t 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t : Set β}
Goal: (s₁ ∪ s₂) ×ˢ t = s₁ ×ˢ t ∪ s₂ ×ˢ t
-- Set.prod_union
@[simp]
theorem prod_union : s ×ˢ (t₁ ∪ t₂) = s ×ˢ t₁ ∪ s ×ˢ t₂ 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t₁ t₂ : Set β}
Goal: s ×ˢ (t₁ ∪ t₂) = s ×ˢ t₁ ∪ s ×ˢ t₂
-- Set.inter_prod
theorem inter_prod : (s₁ ∩ s₂) ×ˢ t = s₁ ×ˢ t ∩ s₂ ×ˢ t 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t : Set β}
Goal: (s₁ ∩ s₂) ×ˢ t = s₁ ×ˢ t ∩ s₂ ×ˢ t
-- Set.prod_inter
theorem prod_inter : s ×ˢ (t₁ ∩ t₂) = s ×ˢ t₁ ∩ s ×ˢ t₂ 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t₁ t₂ : Set β}
Goal: s ×ˢ (t₁ ∩ t₂) = s ×ˢ t₁ ∩ s ×ˢ t₂
-- Set.prod_inter_prod
@[mfld_simps]
theorem prod_inter_prod : s₁ ×ˢ t₁ ∩ s₂ ×ˢ t₂ = (s₁ ∩ s₂) ×ˢ (t₁ ∩ t₂) 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t₁ t₂ : Set β}
Goal: s₁ ×ˢ t₁ ∩ s₂ ×ˢ t₂ = (s₁ ∩ s₂) ×ˢ (t₁ ∩ t₂)
-- Set.compl_prod_eq_union
lemma compl_prod_eq_union {α β : Type*} (s : Set α) (t : Set β) :
    (s ×ˢ t)ᶜ = (sᶜ ×ˢ univ) ∪ (univ ×ˢ tᶜ) 
Arguments: {α : Type u_5} {β : Type u_6} (s : Set α) (t : Set β)
Goal: (s ×ˢ t)ᶜ = sᶜ ×ˢ Set.univ ∪ Set.univ ×ˢ tᶜ
-- Set.disjoint_prod
@[simp]
theorem disjoint_prod : Disjoint (s₁ ×ˢ t₁) (s₂ ×ˢ t₂) ↔ Disjoint s₁ s₂ ∨ Disjoint t₁ t₂ 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t₁ t₂ : Set β}
Goal: Disjoint (s₁ ×ˢ t₁) (s₂ ×ˢ t₂) ↔ Disjoint s₁ s₂ ∨ Disjoint t₁ t₂
-- Set.Disjoint.set_prod_left
theorem Disjoint.set_prod_left (hs : Disjoint s₁ s₂) (t₁ t₂ : Set β) :
    Disjoint (s₁ ×ˢ t₁) (s₂ ×ˢ t₂) 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} (hs : Disjoint s₁ s₂) (t₁ t₂ : Set β)
Goal: Disjoint (s₁ ×ˢ t₁) (s₂ ×ˢ t₂)
-- Set.Disjoint.set_prod_right
theorem Disjoint.set_prod_right (ht : Disjoint t₁ t₂) (s₁ s₂ : Set α) :
    Disjoint (s₁ ×ˢ t₁) (s₂ ×ˢ t₂) 
Arguments: {α : Type u_1} {β : Type u_2} {t₁ t₂ : Set β} (ht : Disjoint t₁ t₂) (s₁ s₂ : Set α)
Goal: Disjoint (s₁ ×ˢ t₁) (s₂ ×ˢ t₂)
-- Set.insert_prod
theorem insert_prod : insert a s ×ˢ t = Prod.mk a '' t ∪ s ×ˢ t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {a : α}
Goal: insert a s ×ˢ t = Prod.mk a '' t ∪ s ×ˢ t
-- Set.prod_insert
theorem prod_insert : s ×ˢ insert b t = (fun a => (a, b)) '' s ∪ s ×ˢ t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {b : β}
Goal: s ×ˢ insert b t = (fun a => (a, b)) '' s ∪ s ×ˢ t
-- Set.prod_preimage_eq
theorem prod_preimage_eq {f : γ → α} {g : δ → β} :
    (f ⁻¹' s) ×ˢ (g ⁻¹' t) = (fun p : γ × δ => (f p.1, g p.2)) ⁻¹' s ×ˢ t 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {s : Set α} {t : Set β} {f : γ → α} {g : δ → β}
Goal: (f ⁻¹' s) ×ˢ (g ⁻¹' t) = (fun p => (f p.1, g p.2)) ⁻¹' s ×ˢ t
-- Set.prod_preimage_left
theorem prod_preimage_left {f : γ → α} :
    (f ⁻¹' s) ×ˢ t = (fun p : γ × β => (f p.1, p.2)) ⁻¹' s ×ˢ t 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {f : γ → α}
Goal: (f ⁻¹' s) ×ˢ t = (fun p => (f p.1, p.2)) ⁻¹' s ×ˢ t
-- Set.prod_preimage_right
theorem prod_preimage_right {g : δ → β} :
    s ×ˢ (g ⁻¹' t) = (fun p : α × δ => (p.1, g p.2)) ⁻¹' s ×ˢ t 
Arguments: {α : Type u_1} {β : Type u_2} {δ : Type u_4} {s : Set α} {t : Set β} {g : δ → β}
Goal: s ×ˢ (g ⁻¹' t) = (fun p => (p.1, g p.2)) ⁻¹' s ×ˢ t
-- Set.preimage_prod_map_prod
theorem preimage_prod_map_prod (f : α → β) (g : γ → δ) (s : Set β) (t : Set δ) :
    Prod.map f g ⁻¹' s ×ˢ t = (f ⁻¹' s) ×ˢ (g ⁻¹' t) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} (f : α → β) (g : γ → δ) (s : Set β) (t : Set δ)
Goal: Prod.map f g ⁻¹' s ×ˢ t = (f ⁻¹' s) ×ˢ (g ⁻¹' t)
-- Set.mk_preimage_prod
theorem mk_preimage_prod (f : γ → α) (g : γ → β) :
    (fun x => (f x, g x)) ⁻¹' s ×ˢ t = f ⁻¹' s ∩ g ⁻¹' t 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} (f : γ → α) (g : γ → β)
Goal: (fun x => (f x, g x)) ⁻¹' s ×ˢ t = f ⁻¹' s ∩ g ⁻¹' t