ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Finset.infs_sups_subset_right
theorem infs_sups_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.powerset_union
@[simp] lemma powerset_union (s t : Finset α) : (s ∪ t).powerset = s.powerset ⊻ t.powerset 
Arguments: {α : Type u_2} [DecidableEq α] (s t : Finset α)
Goal: (s ∪ t).powerset = s.powerset ⊻ t.powerset
-- Finset.powerset_inter
@[simp] lemma powerset_inter (s t : Finset α) : (s ∩ t).powerset = s.powerset ⊼ t.powerset 
Arguments: {α : Type u_2} [DecidableEq α] (s t : Finset α)
Goal: (s ∩ t).powerset = s.powerset ⊼ t.powerset
-- Finset.powerset_sups_powerset_self
@[simp] lemma powerset_sups_powerset_self (s : Finset α) :
    s.powerset ⊻ s.powerset = s.powerset 
Arguments: {α : Type u_2} [DecidableEq α] (s : Finset α)
Goal: s.powerset ⊻ s.powerset = s.powerset
-- Finset.powerset_infs_powerset_self
@[simp] lemma powerset_infs_powerset_self (s : Finset α) :
    s.powerset ⊼ s.powerset = s.powerset 
Arguments: {α : Type u_2} [DecidableEq α] (s : Finset α)
Goal: s.powerset ⊼ s.powerset = s.powerset
-- Finset.union_mem_sups
lemma union_mem_sups : s ∈ 𝒜 → t ∈ ℬ → s ∪ t ∈ 𝒜 ⊻ ℬ 
Arguments: {α : Type u_2} [DecidableEq α] {𝒜 ℬ : Finset (Finset α)} {s t : Finset α}
Goal: s ∈ 𝒜 → t ∈ ℬ → s ∪ t ∈ 𝒜 ⊻ ℬ
-- Finset.inter_mem_infs
lemma inter_mem_infs : s ∈ 𝒜 → t ∈ ℬ → s ∩ t ∈ 𝒜 ⊼ ℬ 
Arguments: {α : Type u_2} [DecidableEq α] {𝒜 ℬ : Finset (Finset α)} {s t : Finset α}
Goal: s ∈ 𝒜 → t ∈ ℬ → s ∩ t ∈ 𝒜 ⊼ ℬ
-- Finset.mem_disjSups
@[simp]
theorem mem_disjSups : c ∈ s ○ t ↔ ∃ a ∈ s, ∃ b ∈ t, Disjoint a b ∧ a ⊔ b = c 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s t : Finset α} {c : α}
Goal: c ∈ s.disjSups t ↔ ∃ a ∈ s, ∃ b ∈ t, Disjoint a b ∧ a ⊔ b = c
-- Finset.disjSups_subset_sups
theorem disjSups_subset_sups : s ○ t ⊆ s ⊻ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s t : Finset α}
Goal: s.disjSups t ⊆ s ⊻ t
-- Finset.card_disjSups_le
theorem card_disjSups_le : (s ○ t).card ≤ s.card * t.card 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] (s t : Finset α)
Goal: (s.disjSups t).card ≤ s.card * t.card
-- Finset.disjSups_subset
theorem disjSups_subset (hs : s₁ ⊆ s₂) (ht : t₁ ⊆ t₂) : s₁ ○ t₁ ⊆ s₂ ○ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s₁ s₂ t₁ t₂ : Finset α} (hs : s₁ ⊆ s₂) (ht : t₁ ⊆ t₂)
Goal: s₁.disjSups t₁ ⊆ s₂.disjSups t₂
-- Finset.disjSups_subset_left
theorem disjSups_subset_left (ht : t₁ ⊆ t₂) : s ○ t₁ ⊆ s ○ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s t₁ t₂ : Finset α} (ht : t₁ ⊆ t₂)
Goal: s.disjSups t₁ ⊆ s.disjSups t₂
-- Finset.disjSups_subset_right
theorem disjSups_subset_right (hs : s₁ ⊆ s₂) : s₁ ○ t ⊆ s₂ ○ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s₁ s₂ t : Finset α} (hs : s₁ ⊆ s₂)
Goal: s₁.disjSups t ⊆ s₂.disjSups t
-- Finset.forall_disjSups_iff
theorem forall_disjSups_iff {p : α → Prop} :
    (∀ c ∈ s ○ t, p c) ↔ ∀ a ∈ s, ∀ b ∈ t, Disjoint a b → p (a ⊔ b) 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s t : Finset α} {p : α → Prop}
Goal: (∀ c ∈ s.disjSups t, p c) ↔ ∀ a ∈ s, ∀ b ∈ t, Disjoint a b → p (a ⊔ b)
-- Finset.disjSups_subset_iff
@[simp]
theorem disjSups_subset_iff : s ○ t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, Disjoint a b → a ⊔ b ∈ u 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s t u : Finset α}
Goal: s.disjSups t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, Disjoint a b → a ⊔ b ∈ u
-- Finset.Nonempty.of_disjSups_left
theorem Nonempty.of_disjSups_left : (s ○ t).Nonempty → s.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s t : Finset α}
Goal: (s.disjSups t).Nonempty → s.Nonempty
-- Finset.Nonempty.of_disjSups_right
theorem Nonempty.of_disjSups_right : (s ○ t).Nonempty → t.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s t : Finset α}
Goal: (s.disjSups t).Nonempty → t.Nonempty
-- Finset.disjSups_empty_left
@[simp]
theorem disjSups_empty_left : ∅ ○ t = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {t : Finset α}
Goal: ∅.disjSups t = ∅
-- Finset.disjSups_empty_right
@[simp]
theorem disjSups_empty_right : s ○ ∅ = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s : Finset α}
Goal: s.disjSups ∅ = ∅
-- Finset.disjSups_singleton
theorem disjSups_singleton : ({a} ○ {b} : Finset α) = if Disjoint a b then {a ⊔ b} else ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {a b : α}
Goal: {a}.disjSups {b} = if Disjoint a b then {a ⊔ b} else ∅
-- Finset.disjSups_union_left
theorem disjSups_union_left : (s₁ ∪ s₂) ○ t = s₁ ○ t ∪ s₂ ○ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s₁ s₂ t : Finset α}
Goal: (s₁ ∪ s₂).disjSups t = s₁.disjSups t ∪ s₂.disjSups t
-- Finset.disjSups_union_right
theorem disjSups_union_right : s ○ (t₁ ∪ t₂) = s ○ t₁ ∪ s ○ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s t₁ t₂ : Finset α}
Goal: s.disjSups (t₁ ∪ t₂) = s.disjSups t₁ ∪ s.disjSups t₂
-- Finset.disjSups_inter_subset_left
theorem disjSups_inter_subset_left : (s₁ ∩ s₂) ○ t ⊆ s₁ ○ t ∩ s₂ ○ t 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s₁ s₂ t : Finset α}
Goal: (s₁ ∩ s₂).disjSups t ⊆ s₁.disjSups t ∩ s₂.disjSups t
-- Finset.disjSups_inter_subset_right
theorem disjSups_inter_subset_right : s ○ (t₁ ∩ t₂) ⊆ s ○ t₁ ∩ s ○ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] {s t₁ t₂ : Finset α}
Goal: s.disjSups (t₁ ∩ t₂) ⊆ s.disjSups t₁ ∩ s.disjSups t₂
-- Finset.disjSups_comm
theorem disjSups_comm : s ○ t = t ○ s 
Arguments: {α : Type u_2} [DecidableEq α] [SemilatticeSup α] [OrderBot α] [DecidableRel Disjoint] (s t : Finset α)
Goal: s.disjSups t = t.disjSups s
-- Finset.disjSups_assoc
theorem disjSups_assoc : ∀ s t u : Finset α, s ○ t ○ u = s ○ (t ○ u) 
Arguments: {α : Type u_2} [DecidableEq α] [DistribLattice α] [OrderBot α] [DecidableRel Disjoint] (s t u : Finset α)
Goal: (s.disjSups t).disjSups u = s.disjSups (t.disjSups u)
-- Finset.disjSups_left_comm
theorem disjSups_left_comm : s ○ (t ○ u) = t ○ (s ○ u) 
Arguments: {α : Type u_2} [DecidableEq α] [DistribLattice α] [OrderBot α] [DecidableRel Disjoint] (s t u : Finset α)
Goal: s.disjSups (t.disjSups u) = t.disjSups (s.disjSups u)
-- Finset.disjSups_right_comm
theorem disjSups_right_comm : s ○ t ○ u = s ○ u ○ t 
Arguments: {α : Type u_2} [DecidableEq α] [DistribLattice α] [OrderBot α] [DecidableRel Disjoint] (s t u : Finset α)
Goal: (s.disjSups t).disjSups u = (s.disjSups u).disjSups t
-- Finset.disjSups_disjSups_disjSups_comm
theorem disjSups_disjSups_disjSups_comm : s ○ t ○ (u ○ v) = s ○ u ○ (t ○ v) 
Arguments: {α : Type u_2} [DecidableEq α] [DistribLattice α] [OrderBot α] [DecidableRel Disjoint] (s t u v : Finset α)
Goal: (s.disjSups t).disjSups (u.disjSups v) = (s.disjSups u).disjSups (t.disjSups v)
-- Finset.mem_diffs
@[simp] lemma mem_diffs : c ∈ s \\ t ↔ ∃ a ∈ s, ∃ b ∈ t, a \ b = c 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t : Finset α} {c : α}
Goal: c ∈ s.diffs t ↔ ∃ a ∈ s, ∃ b ∈ t, a \ b = c
-- Finset.coe_diffs
@[simp, norm_cast] lemma coe_diffs : (↑(s \\ t) : Set α) = Set.image2 (· \ ·) s t 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] (s t : Finset α)
Goal: ↑(s.diffs t) = Set.image2 (fun x x_1 => x \ x_1) ↑s ↑t
-- Finset.card_diffs_le
lemma card_diffs_le : (s \\ t).card ≤ s.card * t.card 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] (s t : Finset α)
Goal: (s.diffs t).card ≤ s.card * t.card
-- Finset.card_diffs_iff
lemma card_diffs_iff :
    (s \\ t).card = s.card * t.card ↔ (s ×ˢ t : Set (α × α)).InjOn fun x ↦ x.1 \ x.2 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] (s t : Finset α)
Goal: (s.diffs t).card = s.card * t.card ↔ Set.InjOn (fun x => x.1 \ x.2) (↑s ×ˢ ↑t)
-- Finset.sdiff_mem_diffs
lemma sdiff_mem_diffs : a ∈ s → b ∈ t → a \ b ∈ s \\ t 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t : Finset α} {a b : α}
Goal: a ∈ s → b ∈ t → a \ b ∈ s.diffs t
-- Finset.diffs_subset
lemma diffs_subset : s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ \\ t₁ ⊆ s₂ \\ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s₁ s₂ t₁ t₂ : Finset α}
Goal: s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁.diffs t₁ ⊆ s₂.diffs t₂
-- Finset.diffs_subset_left
lemma diffs_subset_left : t₁ ⊆ t₂ → s \\ t₁ ⊆ s \\ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t₁ t₂ : Finset α}
Goal: t₁ ⊆ t₂ → s.diffs t₁ ⊆ s.diffs t₂
-- Finset.diffs_subset_right
lemma diffs_subset_right : s₁ ⊆ s₂ → s₁ \\ t ⊆ s₂ \\ t 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s₁ s₂ t : Finset α}
Goal: s₁ ⊆ s₂ → s₁.diffs t ⊆ s₂.diffs t
-- Finset.image_subset_diffs_left
lemma image_subset_diffs_left : b ∈ t → s.image (· \ b) ⊆ s \\ t 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t : Finset α} {b : α}
Goal: b ∈ t → Finset.image (fun x => x \ b) s ⊆ s.diffs t
-- Finset.image_subset_diffs_right
lemma image_subset_diffs_right : a ∈ s → t.image (a \ ·) ⊆ s \\ t 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t : Finset α} {a : α}
Goal: a ∈ s → Finset.image (fun x => a \ x) t ⊆ s.diffs t
-- Finset.forall_mem_diffs
lemma forall_mem_diffs {p : α → Prop} : (∀ c ∈ s \\ t, p c) ↔ ∀ a ∈ s, ∀ b ∈ t, p (a \ b) 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t : Finset α} {p : α → Prop}
Goal: (∀ c ∈ s.diffs t, p c) ↔ ∀ a ∈ s, ∀ b ∈ t, p (a \ b)
-- Finset.diffs_subset_iff
@[simp] lemma diffs_subset_iff : s \\ t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a \ b ∈ u 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t u : Finset α}
Goal: s.diffs t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a \ b ∈ u
-- Finset.diffs_nonempty
@[simp, aesop safe apply (rule_sets := [finsetNonempty])]
lemma diffs_nonempty : (s \\ t).Nonempty ↔ s.Nonempty ∧ t.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t : Finset α}
Goal: (s.diffs t).Nonempty ↔ s.Nonempty ∧ t.Nonempty
-- Finset.Nonempty.diffs
protected lemma Nonempty.diffs : s.Nonempty → t.Nonempty → (s \\ t).Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t : Finset α}
Goal: s.Nonempty → t.Nonempty → (s.diffs t).Nonempty
-- Finset.Nonempty.of_diffs_left
lemma Nonempty.of_diffs_left : (s \\ t).Nonempty → s.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t : Finset α}
Goal: (s.diffs t).Nonempty → s.Nonempty
-- Finset.Nonempty.of_diffs_right
lemma Nonempty.of_diffs_right : (s \\ t).Nonempty → t.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t : Finset α}
Goal: (s.diffs t).Nonempty → t.Nonempty
-- Finset.empty_diffs
@[simp] lemma empty_diffs : ∅ \\ t = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {t : Finset α}
Goal: ∅.diffs t = ∅
-- Finset.diffs_empty
@[simp] lemma diffs_empty : s \\ ∅ = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s : Finset α}
Goal: s.diffs ∅ = ∅
-- Finset.diffs_eq_empty
@[simp] lemma diffs_eq_empty : s \\ t = ∅ ↔ s = ∅ ∨ t = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t : Finset α}
Goal: s.diffs t = ∅ ↔ s = ∅ ∨ t = ∅
-- Finset.singleton_diffs
@[simp] lemma singleton_diffs : {a} \\ t = t.image (a \ ·) 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {t : Finset α} {a : α}
Goal: {a}.diffs t = Finset.image (fun x => a \ x) t
-- Finset.diffs_singleton
@[simp] lemma diffs_singleton : s \\ {b} = s.image (· \ b) 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s : Finset α} {b : α}
Goal: s.diffs {b} = Finset.image (fun x => x \ b) s
-- Finset.singleton_diffs_singleton
lemma singleton_diffs_singleton : ({a} \\ {b} : Finset α) = {a \ b} 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {a b : α}
Goal: {a}.diffs {b} = {a \ b}
-- Finset.diffs_union_left
lemma diffs_union_left : (s₁ ∪ s₂) \\ t = s₁ \\ t ∪ s₂ \\ t 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s₁ s₂ t : Finset α}
Goal: (s₁ ∪ s₂).diffs t = s₁.diffs t ∪ s₂.diffs t
-- Finset.diffs_union_right
lemma diffs_union_right : s \\ (t₁ ∪ t₂) = s \\ t₁ ∪ s \\ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t₁ t₂ : Finset α}
Goal: s.diffs (t₁ ∪ t₂) = s.diffs t₁ ∪ s.diffs t₂
-- Finset.diffs_inter_subset_left
lemma diffs_inter_subset_left : (s₁ ∩ s₂) \\ t ⊆ s₁ \\ t ∩ s₂ \\ t 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s₁ s₂ t : Finset α}
Goal: (s₁ ∩ s₂).diffs t ⊆ s₁.diffs t ∩ s₂.diffs t
-- Finset.diffs_inter_subset_right
lemma diffs_inter_subset_right : s \\ (t₁ ∩ t₂) ⊆ s \\ t₁ ∩ s \\ t₂ 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {s t₁ t₂ : Finset α}
Goal: s.diffs (t₁ ∩ t₂) ⊆ s.diffs t₁ ∩ s.diffs t₂
-- Finset.subset_diffs
lemma subset_diffs {s t : Set α} :
    ↑u ⊆ Set.image2 (· \ ·) s t → ∃ s' t' : Finset α, ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ u ⊆ s' \\ t' 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] {u : Finset α} {s t : Set α}
Goal: ↑u ⊆ Set.image2 (fun x x_1 => x \ x_1) s t → ∃ s' t', ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ u ⊆ s'.diffs t'
-- Finset.biUnion_image_sdiff_left
lemma biUnion_image_sdiff_left : s.biUnion (fun a ↦ t.image (a \ ·)) = s \\ t 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] (s t : Finset α)
Goal: (s.biUnion fun a => Finset.image (fun x => a \ x) t) = s.diffs t
-- Finset.biUnion_image_sdiff_right
lemma biUnion_image_sdiff_right : t.biUnion (fun b ↦ s.image (· \ b)) = s \\ t 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] (s t : Finset α)
Goal: (t.biUnion fun b => Finset.image (fun x => x \ b) s) = s.diffs t
-- Finset.image_sdiff_product
lemma image_sdiff_product (s t : Finset α) : (s ×ˢ t).image (uncurry (· \ ·)) = s \\ t 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] (s t : Finset α)
Goal: Finset.image (Function.uncurry fun x x_1 => x \ x_1) (s ×ˢ t) = s.diffs t
-- Finset.diffs_right_comm
lemma diffs_right_comm : s \\ t \\ u = s \\ u \\ t 
Arguments: {α : Type u_2} [DecidableEq α] [GeneralizedBooleanAlgebra α] (s t u : Finset α)
Goal: (s.diffs t).diffs u = (s.diffs u).diffs t
-- Finset.mem_compls
@[simp] lemma mem_compls : a ∈ sᶜˢ ↔ aᶜ ∈ s 
Arguments: {α : Type u_2} [BooleanAlgebra α] {s : Finset α} {a : α}
Goal: a ∈ s.compls ↔ aᶜ ∈ s
-- Finset.image_compl
@[simp] lemma image_compl : s.image compl = sᶜˢ 
Arguments: {α : Type u_2} [DecidableEq α] [BooleanAlgebra α] (s : Finset α)
Goal: Finset.image compl s = s.compls
-- Finset.coe_compls
@[simp, norm_cast] lemma coe_compls : (↑sᶜˢ : Set α) = compl '' ↑s 
Arguments: {α : Type u_2} [BooleanAlgebra α] (s : Finset α)
Goal: ↑s.compls = compl '' ↑s
-- Finset.card_compls
@[simp] lemma card_compls : sᶜˢ.card = s.card 
Arguments: {α : Type u_2} [BooleanAlgebra α] (s : Finset α)
Goal: s.compls.card = s.card
-- Finset.compl_mem_compls
lemma compl_mem_compls : a ∈ s → aᶜ ∈ sᶜˢ 
Arguments: {α : Type u_2} [BooleanAlgebra α] {s : Finset α} {a : α}
Goal: a ∈ s → aᶜ ∈ s.compls
-- Finset.compls_subset_compls
@[simp] lemma compls_subset_compls : s₁ᶜˢ ⊆ s₂ᶜˢ ↔ s₁ ⊆ s₂ 
Arguments: {α : Type u_2} [BooleanAlgebra α] {s₁ s₂ : Finset α}
Goal: s₁.compls ⊆ s₂.compls ↔ s₁ ⊆ s₂
-- Finset.forall_mem_compls
lemma forall_mem_compls {p : α → Prop} : (∀ a ∈ sᶜˢ, p a) ↔ ∀ a ∈ s, p aᶜ 
Arguments: {α : Type u_2} [BooleanAlgebra α] {s : Finset α} {p : α → Prop}
Goal: (∀ a ∈ s.compls, p a) ↔ ∀ a ∈ s, p aᶜ
-- Finset.exists_compls_iff
lemma exists_compls_iff {p : α → Prop} : (∃ a ∈ sᶜˢ, p a) ↔ ∃ a ∈ s, p aᶜ 
Arguments: {α : Type u_2} [BooleanAlgebra α] {s : Finset α} {p : α → Prop}
Goal: (∃ a ∈ s.compls, p a) ↔ ∃ a ∈ s, p aᶜ
-- Finset.compls_compls
@[simp] lemma compls_compls (s : Finset α) : sᶜˢᶜˢ = s 
Arguments: {α : Type u_2} [BooleanAlgebra α] (s : Finset α)
Goal: s.compls.compls = s
-- Finset.compls_subset_iff
lemma compls_subset_iff : sᶜˢ ⊆ t ↔ s ⊆ tᶜˢ 
Arguments: {α : Type u_2} [BooleanAlgebra α] {s t : Finset α}
Goal: s.compls ⊆ t ↔ s ⊆ t.compls
-- Finset.compls_nonempty
@[simp, aesop safe apply (rule_sets := [finsetNonempty])]
lemma compls_nonempty : sᶜˢ.Nonempty ↔ s.Nonempty 
Arguments: {α : Type u_2} [BooleanAlgebra α] {s : Finset α}
Goal: s.compls.Nonempty ↔ s.Nonempty
-- Finset.compls_empty
@[simp] lemma compls_empty : (∅ : Finset α)ᶜˢ = ∅ 
Arguments: {α : Type u_2} [BooleanAlgebra α]
Goal: ∅.compls = ∅
-- Finset.compls_eq_empty
@[simp] lemma compls_eq_empty : sᶜˢ = ∅ ↔ s = ∅ 
Arguments: {α : Type u_2} [BooleanAlgebra α] {s : Finset α}
Goal: s.compls = ∅ ↔ s = ∅
-- Finset.compls_singleton
@[simp] lemma compls_singleton (a : α) : {a}ᶜˢ = {aᶜ} 
Arguments: {α : Type u_2} [BooleanAlgebra α] (a : α)
Goal: {a}.compls = {aᶜ}
-- Finset.compls_univ
@[simp] lemma compls_univ [Fintype α] : (univ : Finset α)ᶜˢ = univ 
Arguments: {α : Type u_2} [BooleanAlgebra α] [Fintype α]
Goal: Finset.univ.compls = Finset.univ
-- Finset.compls_union
@[simp] lemma compls_union (s t : Finset α) : (s ∪ t)ᶜˢ = sᶜˢ ∪ tᶜˢ 
Arguments: {α : Type u_2} [DecidableEq α] [BooleanAlgebra α] (s t : Finset α)
Goal: (s ∪ t).compls = s.compls ∪ t.compls
-- Finset.compls_inter
@[simp] lemma compls_inter (s t : Finset α) : (s ∩ t)ᶜˢ = sᶜˢ ∩ tᶜˢ 
Arguments: {α : Type u_2} [DecidableEq α] [BooleanAlgebra α] (s t : Finset α)
Goal: (s ∩ t).compls = s.compls ∩ t.compls
-- Finset.compls_infs
@[simp] lemma compls_infs (s t : Finset α) : (s ⊼ t)ᶜˢ = sᶜˢ ⊻ tᶜˢ 
Arguments: {α : Type u_2} [DecidableEq α] [BooleanAlgebra α] (s t : Finset α)
Goal: (s ⊼ t).compls = s.compls ⊻ t.compls
-- Finset.compls_sups
@[simp] lemma compls_sups (s t : Finset α) : (s ⊻ t)ᶜˢ = sᶜˢ ⊼ tᶜˢ 
Arguments: {α : Type u_2} [DecidableEq α] [BooleanAlgebra α] (s t : Finset α)
Goal: (s ⊻ t).compls = s.compls ⊼ t.compls
-- Finset.infs_compls_eq_diffs
@[simp] lemma infs_compls_eq_diffs (s t : Finset α) : s ⊼ tᶜˢ = s \\ t 
Arguments: {α : Type u_2} [DecidableEq α] [BooleanAlgebra α] (s t : Finset α)
Goal: s ⊼ t.compls = s.diffs t
-- Finset.compls_infs_eq_diffs
@[simp] lemma compls_infs_eq_diffs (s t : Finset α) : sᶜˢ ⊼ t = t \\ s 
Arguments: {α : Type u_2} [DecidableEq α] [BooleanAlgebra α] (s t : Finset α)
Goal: s.compls ⊼ t = t.diffs s
-- Finset.diffs_compls_eq_infs
@[simp] lemma diffs_compls_eq_infs (s t : Finset α) : s \\ tᶜˢ = s ⊼ t 
Arguments: {α : Type u_2} [DecidableEq α] [BooleanAlgebra α] (s t : Finset α)
Goal: s.diffs t.compls = s ⊼ t
-- Set.Sized.compls
protected lemma _root_.Set.Sized.compls (h𝒜 : (𝒜 : Set (Finset α)).Sized n) :
    (𝒜ᶜˢ : Set (Finset α)).Sized (Fintype.card α - n) 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {𝒜 : Finset (Finset α)} {n : ℕ} (h𝒜 : Set.Sized n ↑𝒜)
Goal: Set.Sized (Fintype.card α - n) ↑𝒜.compls
-- Finset.sized_compls
lemma sized_compls (hn : n ≤ Fintype.card α) :
    (𝒜ᶜˢ : Set (Finset α)).Sized n ↔ (𝒜 : Set (Finset α)).Sized (Fintype.card α - n) 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {𝒜 : Finset (Finset α)} {n : ℕ} (hn : n ≤ Fintype.card α)
Goal: Set.Sized n ↑𝒜.compls ↔ Set.Sized (Fintype.card α - n) ↑𝒜
-- Matrix.hadamard_apply
@[simp]
theorem hadamard_apply [Mul α] (A : Matrix m n α) (B : Matrix m n α) (i j) :
    hadamard A B i j = A i j * B i j 
Arguments: {α : Type u_1} {m : Type u_4} {n : Type u_5} [Mul α] (A B : Matrix m n α) (i : m) (j : n)
Goal: A.hadamard B i j = A i j * B i j
-- Matrix.hadamard_comm
theorem hadamard_comm [CommSemigroup α] : A ⊙ B = B ⊙ A 
Arguments: {α : Type u_1} {m : Type u_4} {n : Type u_5} (A B : Matrix m n α) [CommSemigroup α]
Goal: A.hadamard B = B.hadamard A
-- Matrix.hadamard_assoc
theorem hadamard_assoc [Semigroup α] : A ⊙ B ⊙ C = A ⊙ (B ⊙ C) 
Arguments: {α : Type u_1} {m : Type u_4} {n : Type u_5} (A B C : Matrix m n α) [Semigroup α]
Goal: (A.hadamard B).hadamard C = A.hadamard (B.hadamard C)
-- Matrix.hadamard_add
theorem hadamard_add [Distrib α] : A ⊙ (B + C) = A ⊙ B + A ⊙ C 
Arguments: {α : Type u_1} {m : Type u_4} {n : Type u_5} (A B C : Matrix m n α) [Distrib α]
Goal: A.hadamard (B + C) = A.hadamard B + A.hadamard C
-- Matrix.add_hadamard
theorem add_hadamard [Distrib α] : (B + C) ⊙ A = B ⊙ A + C ⊙ A 
Arguments: {α : Type u_1} {m : Type u_4} {n : Type u_5} (A B C : Matrix m n α) [Distrib α]
Goal: (B + C).hadamard A = B.hadamard A + C.hadamard A
-- Matrix.smul_hadamard
@[simp]
theorem smul_hadamard [Mul α] [SMul R α] [IsScalarTower R α α] (k : R) : (k • A) ⊙ B = k • A ⊙ B 
Arguments: {α : Type u_1} {m : Type u_4} {n : Type u_5} {R : Type u_6} (A B : Matrix m n α) [Mul α] [SMul R α] [IsScalarTower R α α] (k : R)
Goal: (k • A).hadamard B = k • A.hadamard B
-- Matrix.hadamard_smul
@[simp]
theorem hadamard_smul [Mul α] [SMul R α] [SMulCommClass R α α] (k : R) : A ⊙ (k • B) = k • A ⊙ B 
Arguments: {α : Type u_1} {m : Type u_4} {n : Type u_5} {R : Type u_6} (A B : Matrix m n α) [Mul α] [SMul R α] [SMulCommClass R α α] (k : R)
Goal: A.hadamard (k • B) = k • A.hadamard B
-- Matrix.hadamard_zero
@[simp]
theorem hadamard_zero : A ⊙ (0 : Matrix m n α) = 0 
Arguments: {α : Type u_1} {m : Type u_4} {n : Type u_5} (A : Matrix m n α) [MulZeroClass α]
Goal: A.hadamard 0 = 0
-- Matrix.zero_hadamard
@[simp]
theorem zero_hadamard : (0 : Matrix m n α) ⊙ A = 0 
Arguments: {α : Type u_1} {m : Type u_4} {n : Type u_5} (A : Matrix m n α) [MulZeroClass α]
Goal: Matrix.hadamard 0 A = 0
-- Matrix.hadamard_one
theorem hadamard_one : M ⊙ (1 : Matrix n n α) = diagonal fun i => M i i 
Arguments: {α : Type u_1} {n : Type u_5} [DecidableEq n] [MulZeroOneClass α] (M : Matrix n n α)
Goal: M.hadamard 1 = Matrix.diagonal fun i => M i i
-- Matrix.one_hadamard
theorem one_hadamard : (1 : Matrix n n α) ⊙ M = diagonal fun i => M i i 
Arguments: {α : Type u_1} {n : Type u_5} [DecidableEq n] [MulZeroOneClass α] (M : Matrix n n α)
Goal: Matrix.hadamard 1 M = Matrix.diagonal fun i => M i i
-- Matrix.diagonal_hadamard_diagonal
theorem diagonal_hadamard_diagonal (v : n → α) (w : n → α) :
    diagonal v ⊙ diagonal w = diagonal (v * w) 
Arguments: {α : Type u_1} {n : Type u_5} [DecidableEq n] [MulZeroClass α] (v w : n → α)
Goal: (Matrix.diagonal v).hadamard (Matrix.diagonal w) = Matrix.diagonal (v * w)
-- Matrix.sum_hadamard_eq
theorem sum_hadamard_eq : (∑ i : m, ∑ j : n, (A ⊙ B) i j) = trace (A * Bᵀ) 
Arguments: {α : Type u_1} {m : Type u_4} {n : Type u_5} (A B : Matrix m n α) [Fintype m] [Fintype n] [Semiring α]
Goal: ∑ i : m, ∑ j : n, A.hadamard B i j = (A * B.transpose).trace
-- Matrix.dotProduct_vecMul_hadamard
theorem dotProduct_vecMul_hadamard [DecidableEq m] [DecidableEq n] (v : m → α) (w : n → α) :
    dotProduct (v ᵥ* (A ⊙ B)) w = trace (diagonal v * A * (B * diagonal w)ᵀ) 
Arguments: {α : Type u_1} {m : Type u_4} {n : Type u_5} (A B : Matrix m n α) [Fintype m] [Fintype n] [Semiring α] [DecidableEq m] [DecidableEq n] (v : m → α) (w : n → α)
Goal: Matrix.dotProduct (Matrix.vecMul v (A.hadamard B)) w = (Matrix.diagonal v * A * (B * Matrix.diagonal w).transpose).trace
-- Matroid.dualIndepMatroid_Indep
@[simps] def dualIndepMatroid (M : Matroid α) : IndepMatroid α 
Arguments: {α : Type u_1} (M : Matroid α) (I : Set α)
Goal: M.dualIndepMatroid.Indep I = (I ⊆ M.E ∧ ∃ B, M.Base B ∧ Disjoint I B)
-- Matroid.dualIndepMatroid_E
@[simps] def dualIndepMatroid (M : Matroid α) : IndepMatroid α 
Arguments: {α : Type u_1} (M : Matroid α)
Goal: M.dualIndepMatroid.E = M.E
-- Matroid.dual_indep_iff_exists'
theorem dual_indep_iff_exists' : (M✶.Indep I) ↔ I ⊆ M.E ∧ (∃ B, M.Base B ∧ Disjoint I B) 
Arguments: {α : Type u_1} {M : Matroid α} {I : Set α}
Goal: M✶.Indep I ↔ I ⊆ M.E ∧ ∃ B, M.Base B ∧ Disjoint I B
-- Matroid.dual_ground
@[simp] theorem dual_ground : M✶.E = M.E 
Arguments: {α : Type u_1} {M : Matroid α}
Goal: M✶.E = M.E