Finite intervals of finitely supported functions #
This file provides the LocallyFiniteOrder
instance for Π₀ i, α i
when α
itself is locally
finite and calculates the cardinality of its finite intervals.
def
Finset.dfinsupp
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → Zero (α i)]
(s : Finset ι)
(t : (i : ι) → Finset (α i))
:
Finset (Π₀ (i : ι), α i)
Finitely supported product of finsets.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Finset.card_dfinsupp
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → Zero (α i)]
(s : Finset ι)
(t : (i : ι) → Finset (α i))
:
(Finset.dfinsupp s t).card = Finset.prod s fun (i : ι) => (t i).card
theorem
Finset.mem_dfinsupp_iff
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → Zero (α i)]
{s : Finset ι}
{f : Π₀ (i : ι), α i}
{t : (i : ι) → Finset (α i)}
[(i : ι) → DecidableEq (α i)]
:
f ∈ Finset.dfinsupp s t ↔ DFinsupp.support f ⊆ s ∧ ∀ i ∈ s, f i ∈ t i
@[simp]
theorem
Finset.mem_dfinsupp_iff_of_support_subset
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → Zero (α i)]
{s : Finset ι}
{f : Π₀ (i : ι), α i}
[(i : ι) → DecidableEq (α i)]
{t : Π₀ (i : ι), Finset (α i)}
(ht : DFinsupp.support t ⊆ s)
:
f ∈ Finset.dfinsupp s ⇑t ↔ ∀ (i : ι), f i ∈ t i
When t
is supported on s
, f ∈ s.dfinsupp t
precisely means that f
is pointwise in t
.
theorem
DFinsupp.mem_singleton_apply_iff
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
{f : Π₀ (i : ι), α i}
{i : ι}
{a : α i}
:
a ∈ (DFinsupp.singleton f) i ↔ a = f i
def
DFinsupp.rangeIcc
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → PartialOrder (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
:
Π₀ (i : ι), Finset (α i)
Pointwise Finset.Icc
bundled as a DFinsupp
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
DFinsupp.rangeIcc_apply
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → PartialOrder (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
(i : ι)
:
(DFinsupp.rangeIcc f g) i = Finset.Icc (f i) (g i)
theorem
DFinsupp.mem_rangeIcc_apply_iff
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → PartialOrder (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
{f : Π₀ (i : ι), α i}
{g : Π₀ (i : ι), α i}
{i : ι}
{a : α i}
:
theorem
DFinsupp.support_rangeIcc_subset
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → PartialOrder (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
{f : Π₀ (i : ι), α i}
{g : Π₀ (i : ι), α i}
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
:
def
DFinsupp.pi
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
(f : Π₀ (i : ι), Finset (α i))
:
Finset (Π₀ (i : ι), α i)
Given a finitely supported function f : Π₀ i, Finset (α i)
, one can define the finset
f.pi
of all finitely supported functions whose value at i
is in f i
for all i
.
Equations
- DFinsupp.pi f = Finset.dfinsupp (DFinsupp.support f) ⇑f
Instances For
@[simp]
theorem
DFinsupp.mem_pi
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
{f : Π₀ (i : ι), Finset (α i)}
{g : Π₀ (i : ι), α i}
:
g ∈ DFinsupp.pi f ↔ ∀ (i : ι), g i ∈ f i
@[simp]
theorem
DFinsupp.card_pi
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
(f : Π₀ (i : ι), Finset (α i))
:
(DFinsupp.pi f).card = DFinsupp.prod f fun (i : ι) => ↑(f i).card
instance
DFinsupp.instLocallyFiniteOrderDFinsuppInstPreorderDFinsuppToPreorder
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
[(i : ι) → PartialOrder (α i)]
[(i : ι) → Zero (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
:
LocallyFiniteOrder (Π₀ (i : ι), α i)
Equations
- One or more equations did not get rendered due to their size.
theorem
DFinsupp.Icc_eq
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
[(i : ι) → PartialOrder (α i)]
[(i : ι) → Zero (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
:
Finset.Icc f g = Finset.dfinsupp (DFinsupp.support f ∪ DFinsupp.support g) ⇑(DFinsupp.rangeIcc f g)
theorem
DFinsupp.card_Icc
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
[(i : ι) → PartialOrder (α i)]
[(i : ι) → Zero (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
:
(Finset.Icc f g).card = Finset.prod (DFinsupp.support f ∪ DFinsupp.support g) fun (i : ι) => (Finset.Icc (f i) (g i)).card
theorem
DFinsupp.card_Ico
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
[(i : ι) → PartialOrder (α i)]
[(i : ι) → Zero (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
:
(Finset.Ico f g).card = (Finset.prod (DFinsupp.support f ∪ DFinsupp.support g) fun (i : ι) => (Finset.Icc (f i) (g i)).card) - 1
theorem
DFinsupp.card_Ioc
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
[(i : ι) → PartialOrder (α i)]
[(i : ι) → Zero (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
:
(Finset.Ioc f g).card = (Finset.prod (DFinsupp.support f ∪ DFinsupp.support g) fun (i : ι) => (Finset.Icc (f i) (g i)).card) - 1
theorem
DFinsupp.card_Ioo
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
[(i : ι) → PartialOrder (α i)]
[(i : ι) → Zero (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
:
(Finset.Ioo f g).card = (Finset.prod (DFinsupp.support f ∪ DFinsupp.support g) fun (i : ι) => (Finset.Icc (f i) (g i)).card) - 2
theorem
DFinsupp.card_uIcc
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
[(i : ι) → Lattice (α i)]
[(i : ι) → Zero (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
:
(Finset.uIcc f g).card = Finset.prod (DFinsupp.support f ∪ DFinsupp.support g) fun (i : ι) => (Finset.uIcc (f i) (g i)).card
theorem
DFinsupp.card_Iic
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
(f : Π₀ (i : ι), α i)
:
(Finset.Iic f).card = Finset.prod (DFinsupp.support f) fun (i : ι) => (Finset.Iic (f i)).card
theorem
DFinsupp.card_Iio
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ι]
[(i : ι) → DecidableEq (α i)]
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[(i : ι) → LocallyFiniteOrder (α i)]
(f : Π₀ (i : ι), α i)
:
(Finset.Iio f).card = (Finset.prod (DFinsupp.support f) fun (i : ι) => (Finset.Iic (f i)).card) - 1