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 : ι → α}
: