The cartesian product of finsets #
Main definitions #
Finset.pi: Cartesian product of finsets indexed by a finset.
pi #
def
Finset.pi
{α : Type u_1}
{β : α → Type u}
[DecidableEq α]
(s : Finset α)
(t : (a : α) → Finset (β a))
:
Given a finset s of α and for all a : α a finset t a of δ a, then one can define the
finset s.pi t of all functions defined on elements of s taking values in t a for a ∈ s.
Note that the elements of s.pi t are only partially defined, on s.
Equations
Instances For
def
Finset.Pi.cons
{α : Type u_1}
{δ : α → Sort v}
[DecidableEq α]
(s : Finset α)
(a : α)
(b : δ a)
(f : (a : α) → a ∈ s → δ a)
(a' : α)
(h : a' ∈ insert a s)
:
δ a'
Given a function f defined on a finset s, define a new function on the finset s ∪ {a},
equal to f on s and sending a to a given value b. This function is denoted
s.Pi.cons a b f. If a already belongs to s, the new function takes the value b at a
anyway.
Equations
Instances For
theorem
Finset.Pi.cons_injective
{α : Type u_1}
{δ : α → Sort v}
[DecidableEq α]
{a : α}
{b : δ a}
{s : Finset α}
(hs : a ∉ s)
:
Function.Injective (cons s a b)
theorem
Finset.pi_nonempty_of_forall_nonempty
{α : Type u_1}
{β : α → Type u}
{s : Finset α}
{t : (a : α) → Finset (β a)}
[DecidableEq α]
:
Alias of the reverse direction of Finset.pi_nonempty.
@[simp]
theorem
Finset.pi_insert
{α : Type u_1}
{β : α → Type u}
[DecidableEq α]
[(a : α) → DecidableEq (β a)]
{s : Finset α}
{t : (a : α) → Finset (β a)}
{a : α}
(ha : a ∉ s)
:
Diagonal #
def
Finset.piDiag
{α : Type u_1}
(s : Finset α)
(ι : Type u_3)
[DecidableEq (ι → α)]
:
Finset (ι → α)
The diagonal of a finset s : Finset α as a finset of functions ι → α, namely the set of
constant functions valued in s.
Equations
Instances For
@[simp]
theorem
Finset.mem_piDiag
{α : Type u_1}
{ι : Type u_2}
[DecidableEq (ι → α)]
{s : Finset α}
{f : ι → α}
: