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 ⋯ ⋯ ⋯
@[simp]
theorem
Finsupp.single_le_single
{ι : Type u_1}
{α : Type u_3}
[Zero α]
[Preorder α]
{i : ι}
{a b : α}
:
Finsupp.single i a ≤ Finsupp.single i b ↔ a ≤ b
theorem
Finsupp.GCongr.single_mono
{ι : Type u_1}
{α : Type u_3}
[Zero α]
[Preorder α]
{i : ι}
{a b : α}
:
a ≤ b → Finsupp.single i a ≤ Finsupp.single i b
Alias of the reverse direction of Finsupp.single_le_single
.
@[simp]
theorem
Finsupp.single_nonneg
{ι : Type u_1}
{α : Type u_3}
[Zero α]
[Preorder α]
{i : ι}
{a : α}
:
0 ≤ Finsupp.single i a ↔ 0 ≤ a
@[simp]
theorem
Finsupp.single_nonpos
{ι : Type u_1}
{α : Type u_3}
[Zero α]
[Preorder α]
{i : ι}
{a : α}
:
Finsupp.single i a ≤ 0 ↔ a ≤ 0
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
- Finsupp.partialorder = PartialOrder.mk ⋯
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
- Finsupp.lattice = Lattice.mk SemilatticeInf.inf ⋯ ⋯ ⋯
Algebraic order structures #
instance
Finsupp.orderedAddCommMonoid
{ι : Type u_1}
{α : Type u_3}
[OrderedAddCommMonoid α]
:
OrderedAddCommMonoid (ι →₀ α)
Equations
- Finsupp.orderedAddCommMonoid = OrderedAddCommMonoid.mk ⋯
theorem
Finsupp.mapDomain_mono
{ι : Type u_1}
{κ : Type u_2}
{α : Type u_3}
[OrderedAddCommMonoid α]
{f : ι → κ}
:
theorem
Finsupp.GCongr.mapDomain_mono
{ι : Type u_1}
{κ : Type u_2}
{α : Type u_3}
[OrderedAddCommMonoid α]
{f : ι → κ}
{g₁ g₂ : ι →₀ α}
(hg : g₁ ≤ g₂)
:
Finsupp.mapDomain f g₁ ≤ Finsupp.mapDomain f g₂
theorem
Finsupp.mapDomain_nonneg
{ι : Type u_1}
{κ : Type u_2}
{α : Type u_3}
[OrderedAddCommMonoid α]
{f : ι → κ}
{g : ι →₀ α}
(hg : 0 ≤ g)
:
0 ≤ Finsupp.mapDomain f g
theorem
Finsupp.mapDomain_nonpos
{ι : Type u_1}
{κ : Type u_2}
{α : Type u_3}
[OrderedAddCommMonoid α]
{f : ι → κ}
{g : ι →₀ α}
(hg : g ≤ 0)
:
Finsupp.mapDomain f g ≤ 0
instance
Finsupp.orderedCancelAddCommMonoid
{ι : Type u_1}
{α : Type u_3}
[OrderedCancelAddCommMonoid α]
:
OrderedCancelAddCommMonoid (ι →₀ α)
Equations
- Finsupp.orderedCancelAddCommMonoid = OrderedCancelAddCommMonoid.mk ⋯
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 α (ι →₀ β)
Equations
- Finsupp.orderBot = OrderBot.mk ⋯
theorem
Finsupp.le_iff
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
(f g : ι →₀ α)
:
theorem
Finsupp.support_monotone
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
:
Monotone Finsupp.support
theorem
Finsupp.support_mono
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
{f g : ι →₀ α}
(hfg : f ≤ g)
:
f.support ⊆ g.support
instance
Finsupp.decidableLE
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
[DecidableRel LE.le]
:
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}
[CanonicallyOrderedAddCommMonoid α]
[DecidableRel LE.le]
:
DecidableRel LT.lt
Equations
- Finsupp.decidableLT = decidableLTOfDecidableLE
@[simp]
theorem
Finsupp.single_le_iff
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
{i : ι}
{x : α}
{f : ι →₀ α}
:
Finsupp.single i x ≤ f ↔ x ≤ f i
instance
Finsupp.tsub
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
[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}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
:
OrderedSub (ι →₀ α)
instance
Finsupp.instCanonicallyOrderedAddCommMonoid
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
:
Equations
- Finsupp.instCanonicallyOrderedAddCommMonoid = CanonicallyOrderedAddCommMonoid.mk ⋯ ⋯
@[simp]
theorem
Finsupp.coe_tsub
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
(f g : ι →₀ α)
:
theorem
Finsupp.tsub_apply
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
(f g : ι →₀ α)
(a : ι)
:
@[simp]
theorem
Finsupp.single_tsub
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
{i : ι}
{a b : α}
:
Finsupp.single i (a - b) = Finsupp.single i a - Finsupp.single i b
theorem
Finsupp.support_tsub
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
{f1 f2 : ι →₀ α}
:
theorem
Finsupp.subset_support_tsub
{ι : Type u_1}
{α : Type u_3}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
[DecidableEq ι]
{f1 f2 : ι →₀ α}
:
@[simp]
theorem
Finsupp.support_inf
{ι : Type u_1}
{α : Type u_3}
[CanonicallyLinearOrderedAddCommMonoid α]
[DecidableEq ι]
(f g : ι →₀ α)
:
@[simp]
theorem
Finsupp.support_sup
{ι : Type u_1}
{α : Type u_3}
[CanonicallyLinearOrderedAddCommMonoid α]
[DecidableEq ι]
(f g : ι →₀ α)
:
theorem
Finsupp.disjoint_iff
{ι : Type u_1}
{α : Type u_3}
[CanonicallyLinearOrderedAddCommMonoid α]
{f g : ι →₀ α}
:
Some lemmas about ℕ
#
theorem
Finsupp.sub_single_one_add
{ι : Type u_1}
{a : ι}
{u u' : ι →₀ ℕ}
(h : u a ≠ 0)
:
u - Finsupp.single a 1 + u' = u + u' - Finsupp.single a 1
theorem
Finsupp.add_sub_single_one
{ι : Type u_1}
{a : ι}
{u u' : ι →₀ ℕ}
(h : u' a ≠ 0)
:
u + (u' - Finsupp.single a 1) = u + u' - Finsupp.single a 1
theorem
Finsupp.sub_add_single_one_cancel
{ι : Type u_1}
{u : ι →₀ ℕ}
{i : ι}
(h : u i ≠ 0)
:
u - Finsupp.single i 1 + Finsupp.single i 1 = u