Pointwise order on finitely supported functions #
This file lifts order structures on α
to ι →₀ α
.
Main declarations #
Finsupp.orderEmbeddingToFun
: The order embedding from finitely supported functions to functions.
Order structures #
theorem
Finsupp.sum_le_sum
{ι : Type u_1}
{α : Type u_3}
{β : Type u_4}
[Zero α]
[OrderedAddCommMonoid β]
{f : ι →₀ α}
{h₁ h₂ : ι → α → β}
(h : ∀ i ∈ f.support, h₁ i (f i) ≤ h₂ i (f i))
:
f.sum h₁ ≤ f.sum h₂
Equations
- Finsupp.preorder = Preorder.mk ⋯ ⋯ ⋯
theorem
Finsupp.sum_le_sum_index
{ι : Type u_1}
{α : Type u_3}
{β : Type u_4}
[Zero α]
[Preorder α]
[OrderedAddCommMonoid β]
[DecidableEq ι]
{f₁ f₂ : ι →₀ α}
{h : ι → α → β}
(hf : f₁ ≤ f₂)
(hh : ∀ i ∈ f₁.support ∪ f₂.support, Monotone (h i))
(hh₀ : ∀ i ∈ f₁.support ∪ f₂.support, h i 0 = 0)
:
f₁.sum h ≤ f₂.sum h
instance
Finsupp.partialorder
{ι : Type u_1}
{α : Type u_3}
[Zero α]
[PartialOrder α]
:
PartialOrder (ι →₀ α)
Equations
instance
Finsupp.semilatticeInf
{ι : Type u_1}
{α : Type u_3}
[Zero α]
[SemilatticeInf α]
:
SemilatticeInf (ι →₀ α)
Equations
- Finsupp.semilatticeInf = SemilatticeInf.mk (Finsupp.zipWith (fun (x1 x2 : α) => x1 ⊓ x2) ⋯) ⋯ ⋯ ⋯
@[simp]
theorem
Finsupp.inf_apply
{ι : Type u_1}
{α : Type u_3}
[Zero α]
[SemilatticeInf α]
{i : ι}
{f g : ι →₀ α}
:
instance
Finsupp.semilatticeSup
{ι : Type u_1}
{α : Type u_3}
[Zero α]
[SemilatticeSup α]
:
SemilatticeSup (ι →₀ α)
Equations
- Finsupp.semilatticeSup = SemilatticeSup.mk (Finsupp.zipWith (fun (x1 x2 : α) => x1 ⊔ x2) ⋯) ⋯ ⋯ ⋯
@[simp]
theorem
Finsupp.sup_apply
{ι : Type u_1}
{α : Type u_3}
[Zero α]
[SemilatticeSup α]
{i : ι}
{f g : ι →₀ α}
:
Equations
Algebraic order structures #
instance
Finsupp.orderedAddCommMonoid
{ι : Type u_1}
{α : Type u_3}
[OrderedAddCommMonoid α]
:
OrderedAddCommMonoid (ι →₀ α)
Equations
theorem
Finsupp.mapDomain_mono
{ι : Type u_1}
{κ : Type u_2}
{α : Type u_3}
[OrderedAddCommMonoid α]
{f : ι → κ}
:
theorem
Finsupp.mapDomain_nonneg
{ι : Type u_1}
{κ : Type u_2}
{α : Type u_3}
[OrderedAddCommMonoid α]
{f : ι → κ}
{g : ι →₀ α}
(hg : 0 ≤ g)
:
theorem
Finsupp.mapDomain_nonpos
{ι : Type u_1}
{κ : Type u_2}
{α : Type u_3}
[OrderedAddCommMonoid α]
{f : ι → κ}
{g : ι →₀ α}
(hg : g ≤ 0)
:
instance
Finsupp.orderedCancelAddCommMonoid
{ι : Type u_1}
{α : Type u_3}
[OrderedCancelAddCommMonoid α]
:
OrderedCancelAddCommMonoid (ι →₀ α)
instance
Finsupp.addLeftReflectLE
{ι : Type u_1}
{α : Type u_3}
[OrderedAddCommMonoid α]
[AddLeftReflectLE α]
:
AddLeftReflectLE (ι →₀ α)
instance
Finsupp.instPosSMulMono
{ι : Type u_1}
{α : Type u_3}
{β : Type u_4}
[Zero α]
[Preorder α]
[Zero β]
[Preorder β]
[SMulZeroClass α β]
[PosSMulMono α β]
:
PosSMulMono α (ι →₀ β)
instance
Finsupp.instSMulPosMono
{ι : Type u_1}
{α : Type u_3}
{β : Type u_4}
[Preorder α]
[Zero β]
[Preorder β]
[SMulZeroClass α β]
[SMulPosMono α β]
:
SMulPosMono α (ι →₀ β)
instance
Finsupp.instPosSMulReflectLE
{ι : Type u_1}
{α : Type u_3}
{β : Type u_4}
[Zero α]
[Preorder α]
[Zero β]
[Preorder β]
[SMulZeroClass α β]
[PosSMulReflectLE α β]
:
PosSMulReflectLE α (ι →₀ β)
instance
Finsupp.instSMulPosReflectLE
{ι : Type u_1}
{α : Type u_3}
{β : Type u_4}
[Preorder α]
[Zero β]
[Preorder β]
[SMulZeroClass α β]
[SMulPosReflectLE α β]
:
SMulPosReflectLE α (ι →₀ β)
instance
Finsupp.instPosSMulStrictMono
{ι : Type u_1}
{α : Type u_3}
{β : Type u_4}
[Zero α]
[PartialOrder α]
[Zero β]
[PartialOrder β]
[SMulWithZero α β]
[PosSMulStrictMono α β]
:
PosSMulStrictMono α (ι →₀ β)
instance
Finsupp.instSMulPosStrictMono
{ι : Type u_1}
{α : Type u_3}
{β : Type u_4}
[Zero α]
[PartialOrder α]
[Zero β]
[PartialOrder β]
[SMulWithZero α β]
[SMulPosStrictMono α β]
:
SMulPosStrictMono α (ι →₀ β)
instance
Finsupp.instSMulPosReflectLT
{ι : Type u_1}
{α : Type u_3}
{β : Type u_4}
[Zero α]
[PartialOrder α]
[Zero β]
[PartialOrder β]
[SMulWithZero α β]
[SMulPosReflectLT α β]
:
SMulPosReflectLT α (ι →₀ β)
instance
Finsupp.orderBot
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
:
Equations
theorem
Finsupp.bot_eq_zero
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
:
@[simp]
theorem
Finsupp.add_eq_zero_iff
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
(f g : ι →₀ α)
:
theorem
Finsupp.le_iff'
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
(f g : ι →₀ α)
{s : Finset ι}
(hf : f.support ⊆ s)
:
theorem
Finsupp.le_iff
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
(f g : ι →₀ α)
:
theorem
Finsupp.support_monotone
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
:
theorem
Finsupp.support_mono
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
{f g : ι →₀ α}
(hfg : f ≤ g)
:
f.support ⊆ g.support
instance
Finsupp.decidableLE
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[DecidableRel LE.le]
:
Equations
- f.decidableLE g = decidable_of_iff (∀ i ∈ f.support, f i ≤ g i) ⋯
instance
Finsupp.decidableLT
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[DecidableRel LE.le]
:
Equations
@[simp]
theorem
Finsupp.single_le_iff
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
{i : ι}
{x : α}
{f : ι →₀ α}
:
instance
Finsupp.tsub
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
:
This is called tsub
for truncated subtraction, to distinguish it with subtraction in an
additive group.
Equations
- Finsupp.tsub = { sub := Finsupp.zipWith (fun (m n : α) => m - n) ⋯ }
instance
Finsupp.orderedSub
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
:
OrderedSub (ι →₀ α)
instance
Finsupp.instCanonicallyOrderedAddOfCovariantClassHAddLe
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
[CovariantClass α α (fun (x1 x2 : α) => x1 + x2) fun (x1 x2 : α) => x1 ≤ x2]
:
CanonicallyOrderedAdd (ι →₀ α)
@[simp]
theorem
Finsupp.coe_tsub
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
(f g : ι →₀ α)
:
theorem
Finsupp.tsub_apply
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
(f g : ι →₀ α)
(a : ι)
:
@[simp]
theorem
Finsupp.single_tsub
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
{i : ι}
{a b : α}
:
theorem
Finsupp.support_tsub
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
{f1 f2 : ι →₀ α}
:
theorem
Finsupp.subset_support_tsub
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[PartialOrder α]
[CanonicallyOrderedAdd α]
[Sub α]
[OrderedSub α]
[DecidableEq ι]
{f1 f2 : ι →₀ α}
:
@[simp]
theorem
Finsupp.support_inf
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[LinearOrder α]
[CanonicallyOrderedAdd α]
[DecidableEq ι]
(f g : ι →₀ α)
:
@[simp]
theorem
Finsupp.support_sup
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[LinearOrder α]
[CanonicallyOrderedAdd α]
[DecidableEq ι]
(f g : ι →₀ α)
:
theorem
Finsupp.disjoint_iff
{ι : Type u_1}
{α : Type u_3}
[AddCommMonoid α]
[LinearOrder α]
[CanonicallyOrderedAdd α]
{f g : ι →₀ α}
: