Building finitely supported functions off finsets #
This file defines Finsupp.indicator to help create finsupps from finsets.
Main declarations #
Finsupp.indicator: Turns a map from aFinsetinto aFinsuppfrom the entire type.
noncomputable def
Finsupp.indicator
{ι : Type u_1}
{α : Type u_2}
[Zero α]
(s : Finset ι)
(f : (i : ι) → i ∈ s → α)
:
Create an element of ι →₀ α from a finset s and a function f defined on this finset.
Instances For
theorem
Finsupp.indicator_of_mem
{ι : Type u_1}
{α : Type u_2}
[Zero α]
{s : Finset ι}
{i : ι}
(hi : i ∈ s)
(f : (i : ι) → i ∈ s → α)
:
(indicator s f) i = f i hi
theorem
Finsupp.indicator_of_notMem
{ι : Type u_1}
{α : Type u_2}
[Zero α]
{s : Finset ι}
{i : ι}
(hi : i ∉ s)
(f : (i : ι) → i ∈ s → α)
:
(indicator s f) i = 0
@[simp]
theorem
Finsupp.indicator_apply
{ι : Type u_1}
{α : Type u_2}
[Zero α]
(s : Finset ι)
(f : (i : ι) → i ∈ s → α)
(i : ι)
[DecidableEq ι]
:
(indicator s f) i = if hi : i ∈ s then f i hi else 0
theorem
Finsupp.indicator_injective
{ι : Type u_1}
{α : Type u_2}
[Zero α]
(s : Finset ι)
:
Function.Injective fun (f : (i : ι) → i ∈ s → α) => indicator s f
theorem
Finsupp.eq_indicator_iff
{ι : Type u_1}
{α : Type u_2}
[Zero α]
(s : Finset ι)
(f : (i : ι) → i ∈ s → α)
{g : ι → α}
:
g = ⇑(indicator s f) ↔ Function.support g ⊆ ↑s ∧ ∀ ⦃i : ι⦄ (hi : i ∈ s), f i hi = g i