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: Turns- s : Finset α,- t : Finset βinto their product in- Finset (α × β).
- Finset.diag: For- s : Finset α,- s.diagis the- Finset (α × α)of pairs- (a, a)with- a ∈ s.
- Finset.offDiag: For- s : Finset α,- s.offDiagis the- Finset (α × α)of pairs- (a, b)with- a, b ∈ sand- a ≠ 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 ι)
 :