Set family operations #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines a few binary operations on finset α
for use in set family combinatorics.
Main declarations #
s ⊻ t
: Finset of elements of the forma ⊔ b
wherea ∈ s
,b ∈ t
.s ⊼ t
: Finset of elements of the forma ⊓ b
wherea ∈ s
,b ∈ t
.finset.disj_sups s t
: Finset of elements of the forma ⊔ b
wherea ∈ s
,b ∈ t
anda
andb
are disjoint.
Notation #
We define the following notation in locale finset_family
:
s ⊻ t
s ⊼ t
s ○ t
forfinset.disj_sups s t
References #
@[protected, instance]
def
finset.decidable_pred_mem_upper_closure
{α : Type u_1}
[preorder α]
(s : finset α)
[decidable_rel has_le.le] :
decidable_pred (λ (_x : α), _x ∈ upper_closure ↑s)
Equations
- s.decidable_pred_mem_upper_closure = λ (_x : α), finset.decidable_dexists_finset
@[protected, instance]
def
finset.decidable_pred_mem_lower_closure
{α : Type u_1}
[preorder α]
(s : finset α)
[decidable_rel has_le.le] :
decidable_pred (λ (_x : α), _x ∈ lower_closure ↑s)
Equations
- s.decidable_pred_mem_lower_closure = λ (_x : α), finset.decidable_dexists_finset
@[protected]
s ⊻ t
is the finset of elements of the form a ⊔ b
where a ∈ s
, b ∈ t
.
Equations
@[simp]
theorem
finset.mem_sups
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s t : finset α}
{c : α} :
@[simp, norm_cast]
theorem
finset.sup_mem_sups
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s t : finset α}
{a b : α} :
theorem
finset.sups_subset
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s₁ s₂ t₁ t₂ : finset α} :
theorem
finset.sups_subset_left
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s t₁ t₂ : finset α} :
theorem
finset.sups_subset_right
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s₁ s₂ t : finset α} :
theorem
finset.image_subset_sups_left
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s t : finset α}
{b : α} :
theorem
finset.image_subset_sups_right
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s t : finset α}
{a : α} :
a ∈ s → finset.image (has_sup.sup a) t ⊆ s ⊻ t
@[simp]
@[protected]
theorem
finset.nonempty.of_sups_left
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s t : finset α} :
theorem
finset.nonempty.of_sups_right
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s t : finset α} :
@[simp]
@[simp]
@[simp]
@[simp]
theorem
finset.singleton_sups
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{t : finset α}
{a : α} :
{a} ⊻ t = finset.image (λ (b : α), a ⊔ b) t
@[simp]
theorem
finset.sups_singleton
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s : finset α}
{b : α} :
s ⊻ {b} = finset.image (λ (a : α), a ⊔ b) s
theorem
finset.singleton_sups_singleton
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{a b : α} :
theorem
finset.sups_union_left
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s₁ s₂ t : finset α} :
theorem
finset.sups_union_right
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s t₁ t₂ : finset α} :
theorem
finset.sups_inter_subset_left
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s₁ s₂ t : finset α} :
theorem
finset.sups_inter_subset_right
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
{s t₁ t₂ : finset α} :
theorem
finset.bUnion_image_sup_left
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
(s t : finset α) :
s.bUnion (λ (a : α), finset.image (has_sup.sup a) t) = s ⊻ t
theorem
finset.bUnion_image_sup_right
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
(s t : finset α) :
t.bUnion (λ (b : α), finset.image (λ (a : α), a ⊔ b) s) = s ⊻ t
@[simp]
theorem
finset.image_sup_product
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
(s t : finset α) :
finset.image (function.uncurry has_sup.sup) (s ×ˢ t) = s ⊻ t
theorem
finset.sups_left_comm
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
(s t u : finset α) :
theorem
finset.sups_right_comm
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
(s t u : finset α) :
theorem
finset.sups_sups_sups_comm
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
(s t u v : finset α) :
theorem
finset.filter_sups_le
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[decidable_rel has_le.le]
(s t : finset α)
(a : α) :
finset.filter (λ (b : α), b ≤ a) (s ⊻ t) = finset.filter (λ (b : α), b ≤ a) s ⊻ finset.filter (λ (b : α), b ≤ a) t
@[protected]
s ⊼ t
is the finset of elements of the form a ⊓ b
where a ∈ s
, b ∈ t
.
Equations
@[simp]
theorem
finset.mem_infs
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s t : finset α}
{c : α} :
@[simp, norm_cast]
theorem
finset.inf_mem_infs
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s t : finset α}
{a b : α} :
theorem
finset.infs_subset
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s₁ s₂ t₁ t₂ : finset α} :
theorem
finset.infs_subset_left
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s t₁ t₂ : finset α} :
theorem
finset.infs_subset_right
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s₁ s₂ t : finset α} :
theorem
finset.image_subset_infs_left
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s t : finset α}
{b : α} :
theorem
finset.image_subset_infs_right
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s t : finset α}
{a : α} :
a ∈ s → finset.image (has_inf.inf a) t ⊆ s ⊼ t
@[simp]
@[protected]
theorem
finset.nonempty.of_infs_left
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s t : finset α} :
theorem
finset.nonempty.of_infs_right
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s t : finset α} :
@[simp]
@[simp]
@[simp]
@[simp]
theorem
finset.singleton_infs
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{t : finset α}
{a : α} :
{a} ⊼ t = finset.image (λ (b : α), a ⊓ b) t
@[simp]
theorem
finset.infs_singleton
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s : finset α}
{b : α} :
s ⊼ {b} = finset.image (λ (a : α), a ⊓ b) s
theorem
finset.singleton_infs_singleton
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{a b : α} :
theorem
finset.infs_union_left
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s₁ s₂ t : finset α} :
theorem
finset.infs_union_right
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s t₁ t₂ : finset α} :
theorem
finset.infs_inter_subset_left
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s₁ s₂ t : finset α} :
theorem
finset.infs_inter_subset_right
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
{s t₁ t₂ : finset α} :
theorem
finset.bUnion_image_inf_left
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
(s t : finset α) :
s.bUnion (λ (a : α), finset.image (has_inf.inf a) t) = s ⊼ t
theorem
finset.bUnion_image_inf_right
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
(s t : finset α) :
t.bUnion (λ (b : α), finset.image (λ (a : α), a ⊓ b) s) = s ⊼ t
@[simp]
theorem
finset.image_inf_product
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
(s t : finset α) :
finset.image (function.uncurry has_inf.inf) (s ×ˢ t) = s ⊼ t
theorem
finset.infs_left_comm
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
(s t u : finset α) :
theorem
finset.infs_right_comm
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
(s t u : finset α) :
theorem
finset.infs_infs_infs_comm
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
(s t u v : finset α) :
theorem
finset.filter_infs_ge
{α : Type u_1}
[decidable_eq α]
[semilattice_inf α]
[decidable_rel has_le.le]
(s t : finset α)
(a : α) :
finset.filter (λ (b : α), a ≤ b) (s ⊼ t) = finset.filter (λ (b : α), a ≤ b) s ⊼ finset.filter (λ (b : α), a ≤ b) t
theorem
finset.sups_infs_subset_left
{α : Type u_1}
[decidable_eq α]
[distrib_lattice α]
(s t u : finset α) :
theorem
finset.sups_infs_subset_right
{α : Type u_1}
[decidable_eq α]
[distrib_lattice α]
(s t u : finset α) :
theorem
finset.infs_sups_subset_left
{α : Type u_1}
[decidable_eq α]
[distrib_lattice α]
(s t u : finset α) :
theorem
finset.infs_sups_subset_right
{α : Type u_1}
[decidable_eq α]
[distrib_lattice α]
(s t u : finset α) :
def
finset.disj_sups
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
(s t : finset α) :
finset α
The finset of elements of the form a ⊔ b
where a ∈ s
, b ∈ t
and a
and b
are disjoint.
@[simp]
theorem
finset.mem_disj_sups
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s t : finset α}
{c : α} :
theorem
finset.disj_sups_subset_sups
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s t : finset α} :
theorem
finset.card_disj_sups_le
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
(s t : finset α) :
theorem
finset.disj_sups_subset
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s₁ s₂ t₁ t₂ : finset α}
(hs : s₁ ⊆ s₂)
(ht : t₁ ⊆ t₂) :
theorem
finset.disj_sups_subset_left
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s t₁ t₂ : finset α}
(ht : t₁ ⊆ t₂) :
theorem
finset.disj_sups_subset_right
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s₁ s₂ t : finset α}
(hs : s₁ ⊆ s₂) :
theorem
finset.nonempty.of_disj_sups_left
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s t : finset α} :
theorem
finset.nonempty.of_disj_sups_right
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s t : finset α} :
@[simp]
theorem
finset.disj_sups_empty_left
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{t : finset α} :
@[simp]
theorem
finset.disj_sups_empty_right
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s : finset α} :
theorem
finset.disj_sups_singleton
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{a b : α} :
theorem
finset.disj_sups_union_left
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s₁ s₂ t : finset α} :
theorem
finset.disj_sups_union_right
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s t₁ t₂ : finset α} :
theorem
finset.disj_sups_inter_subset_left
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s₁ s₂ t : finset α} :
theorem
finset.disj_sups_inter_subset_right
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
{s t₁ t₂ : finset α} :
theorem
finset.disj_sups_comm
{α : Type u_1}
[decidable_eq α]
[semilattice_sup α]
[order_bot α]
[decidable_rel disjoint]
(s t : finset α) :
theorem
finset.disj_sups_assoc
{α : Type u_1}
[decidable_eq α]
[distrib_lattice α]
[order_bot α]
[decidable_rel disjoint]
(s t u : finset α) :
theorem
finset.disj_sups_left_comm
{α : Type u_1}
[decidable_eq α]
[distrib_lattice α]
[order_bot α]
[decidable_rel disjoint]
(s t u : finset α) :
theorem
finset.disj_sups_right_comm
{α : Type u_1}
[decidable_eq α]
[distrib_lattice α]
[order_bot α]
[decidable_rel disjoint]
(s t u : finset α) :
theorem
finset.disj_sups_disj_sups_disj_sups_comm
{α : Type u_1}
[decidable_eq α]
[distrib_lattice α]
[order_bot α]
[decidable_rel disjoint]
(s t u v : finset α) :