Finsets in product types #
This file defines finset constructions on the product type α × β. Beware not to confuse with the
Finset.prod operation which computes the multiplicative product.
Main declarations #
Finset.product: Turnss : Finset α,t : Finset βinto their product inFinset (α × β).Finset.diag: Fors : Finset α,s.diagis theFinset (α × α)of pairs(a, a)witha ∈ s.Finset.offDiag: Fors : Finset α,s.offDiagis theFinset (α × α)of pairs(a, b)witha, b ∈ sanda ≠ b.
prod #
Equations
- Finset.instSProd = { sprod := Finset.product }
theorem
Finset.subset_product
{α : Type u_1}
{β : Type u_2}
[DecidableEq α]
[DecidableEq β]
{s : Finset (α × β)}
:
The product of two Finsets is nontrivial iff both are nonempty at least one of them is nontrivial.
@[simp]
theorem
Finset.union_product
{α : Type u_1}
{β : Type u_2}
{s s' : Finset α}
{t : Finset β}
[DecidableEq α]
[DecidableEq β]
:
@[simp]
theorem
Finset.product_union
{α : Type u_1}
{β : Type u_2}
{s : Finset α}
{t t' : Finset β}
[DecidableEq α]
[DecidableEq β]
:
theorem
Finset.inter_product
{α : Type u_1}
{β : Type u_2}
{s s' : Finset α}
{t : Finset β}
[DecidableEq α]
[DecidableEq β]
:
theorem
Finset.product_inter
{α : Type u_1}
{β : Type u_2}
{s : Finset α}
{t t' : Finset β}
[DecidableEq α]
[DecidableEq β]
:
theorem
Finset.product_inter_product
{α : Type u_1}
{β : Type u_2}
{s s' : Finset α}
{t t' : Finset β}
[DecidableEq α]
[DecidableEq β]
:
@[simp]
@[simp]
theorem
Finset.image_diag
{α : Type u_1}
{β : Type u_2}
[DecidableEq α]
[DecidableEq β]
(f : α × α → β)
(s : Finset α)
:
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
Finset.offDiag_filter_lt_eq_filter_le
{ι : Type u_4}
[PartialOrder ι]
[DecidableEq ι]
[DecidableLE ι]
[DecidableLT ι]
(s : Finset ι)
: