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 #
Equations
- Finsupp.preorder = let __src := Finsupp.instLEFinsupp; Preorder.mk ⋯ ⋯ ⋯
instance
Finsupp.partialorder
{ι : Type u_1}
{α : Type u_2}
[Zero α]
[PartialOrder α]
:
PartialOrder (ι →₀ α)
Equations
- Finsupp.partialorder = let __src := Finsupp.preorder; PartialOrder.mk ⋯
instance
Finsupp.semilatticeInf
{ι : Type u_1}
{α : Type u_2}
[Zero α]
[SemilatticeInf α]
:
SemilatticeInf (ι →₀ α)
Equations
- Finsupp.semilatticeInf = let __src := Finsupp.partialorder; SemilatticeInf.mk ⋯ ⋯ ⋯
instance
Finsupp.semilatticeSup
{ι : Type u_1}
{α : Type u_2}
[Zero α]
[SemilatticeSup α]
:
SemilatticeSup (ι →₀ α)
Equations
- Finsupp.semilatticeSup = let __src := Finsupp.partialorder; SemilatticeSup.mk ⋯ ⋯ ⋯
Equations
- Finsupp.lattice = let __src := Finsupp.semilatticeInf; let __src_1 := Finsupp.semilatticeSup; Lattice.mk ⋯ ⋯ ⋯
Algebraic order structures #
instance
Finsupp.orderedAddCommMonoid
{ι : Type u_1}
{α : Type u_2}
[OrderedAddCommMonoid α]
:
OrderedAddCommMonoid (ι →₀ α)
Equations
- Finsupp.orderedAddCommMonoid = let __src := Finsupp.instAddCommMonoid; let __src_1 := Finsupp.partialorder; OrderedAddCommMonoid.mk ⋯
instance
Finsupp.orderedCancelAddCommMonoid
{ι : Type u_1}
{α : Type u_2}
[OrderedCancelAddCommMonoid α]
:
OrderedCancelAddCommMonoid (ι →₀ α)
Equations
- Finsupp.orderedCancelAddCommMonoid = let __src := Finsupp.orderedAddCommMonoid; OrderedCancelAddCommMonoid.mk ⋯
instance
Finsupp.contravariantClass
{ι : Type u_1}
{α : Type u_2}
[OrderedAddCommMonoid α]
[ContravariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
:
Equations
- ⋯ = ⋯
instance
Finsupp.instPosSMulMono
{ι : Type u_1}
{α : Type u_2}
{β : Type u_3}
[Zero α]
[Preorder α]
[Zero β]
[Preorder β]
[SMulZeroClass α β]
[PosSMulMono α β]
:
PosSMulMono α (ι →₀ β)
Equations
- ⋯ = ⋯
instance
Finsupp.instSMulPosMono
{ι : Type u_1}
{α : Type u_2}
{β : Type u_3}
[Preorder α]
[Zero β]
[Preorder β]
[SMulZeroClass α β]
[SMulPosMono α β]
:
SMulPosMono α (ι →₀ β)
Equations
- ⋯ = ⋯
instance
Finsupp.instPosSMulReflectLE
{ι : Type u_1}
{α : Type u_2}
{β : Type u_3}
[Zero α]
[Preorder α]
[Zero β]
[Preorder β]
[SMulZeroClass α β]
[PosSMulReflectLE α β]
:
PosSMulReflectLE α (ι →₀ β)
Equations
- ⋯ = ⋯
instance
Finsupp.instSMulPosReflectLE
{ι : Type u_1}
{α : Type u_2}
{β : Type u_3}
[Preorder α]
[Zero β]
[Preorder β]
[SMulZeroClass α β]
[SMulPosReflectLE α β]
:
SMulPosReflectLE α (ι →₀ β)
Equations
- ⋯ = ⋯
instance
Finsupp.instPosSMulStrictMono
{ι : Type u_1}
{α : Type u_2}
{β : Type u_3}
[Zero α]
[PartialOrder α]
[Zero β]
[PartialOrder β]
[SMulWithZero α β]
[PosSMulStrictMono α β]
:
PosSMulStrictMono α (ι →₀ β)
Equations
- ⋯ = ⋯
instance
Finsupp.instSMulPosStrictMono
{ι : Type u_1}
{α : Type u_2}
{β : Type u_3}
[Zero α]
[PartialOrder α]
[Zero β]
[PartialOrder β]
[SMulWithZero α β]
[SMulPosStrictMono α β]
:
SMulPosStrictMono α (ι →₀ β)
Equations
- ⋯ = ⋯
instance
Finsupp.instSMulPosReflectLT
{ι : Type u_1}
{α : Type u_2}
{β : Type u_3}
[Zero α]
[PartialOrder α]
[Zero β]
[PartialOrder β]
[SMulWithZero α β]
[SMulPosReflectLT α β]
:
SMulPosReflectLT α (ι →₀ β)
Equations
- ⋯ = ⋯
Equations
- Finsupp.orderBot = OrderBot.mk ⋯
theorem
Finsupp.le_iff
{ι : Type u_1}
{α : Type u_2}
[CanonicallyOrderedAddCommMonoid α]
(f : ι →₀ α)
(g : ι →₀ α)
:
theorem
Finsupp.support_monotone
{ι : Type u_1}
{α : Type u_2}
[CanonicallyOrderedAddCommMonoid α]
:
Monotone Finsupp.support
theorem
Finsupp.support_mono
{ι : Type u_1}
{α : Type u_2}
[CanonicallyOrderedAddCommMonoid α]
{f : ι →₀ α}
{g : ι →₀ α}
(hfg : f ≤ g)
:
f.support ⊆ g.support
instance
Finsupp.decidableLE
{ι : Type u_1}
{α : Type u_2}
[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_2}
[CanonicallyOrderedAddCommMonoid α]
[DecidableRel LE.le]
:
DecidableRel LT.lt
Equations
- Finsupp.decidableLT = decidableLTOfDecidableLE
@[simp]
theorem
Finsupp.single_le_iff
{ι : Type u_1}
{α : Type u_2}
[CanonicallyOrderedAddCommMonoid α]
{i : ι}
{x : α}
{f : ι →₀ α}
:
Finsupp.single i x ≤ f ↔ x ≤ f i
instance
Finsupp.tsub
{ι : Type u_1}
{α : Type u_2}
[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_2}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
:
OrderedSub (ι →₀ α)
Equations
- ⋯ = ⋯
instance
Finsupp.instCanonicallyOrderedAddCommMonoid
{ι : Type u_1}
{α : Type u_2}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
:
Equations
- Finsupp.instCanonicallyOrderedAddCommMonoid = let __src := Finsupp.orderBot; let __src_1 := Finsupp.orderedAddCommMonoid; CanonicallyOrderedAddCommMonoid.mk ⋯ ⋯
@[simp]
theorem
Finsupp.coe_tsub
{ι : Type u_1}
{α : Type u_2}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
(f : ι →₀ α)
(g : ι →₀ α)
:
theorem
Finsupp.tsub_apply
{ι : Type u_1}
{α : Type u_2}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
(f : ι →₀ α)
(g : ι →₀ α)
(a : ι)
:
@[simp]
theorem
Finsupp.single_tsub
{ι : Type u_1}
{α : Type u_2}
[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_2}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
{f1 : ι →₀ α}
{f2 : ι →₀ α}
:
theorem
Finsupp.subset_support_tsub
{ι : Type u_1}
{α : Type u_2}
[CanonicallyOrderedAddCommMonoid α]
[Sub α]
[OrderedSub α]
[DecidableEq ι]
{f1 : ι →₀ α}
{f2 : ι →₀ α}
:
@[simp]
theorem
Finsupp.support_inf
{ι : Type u_1}
{α : Type u_2}
[CanonicallyLinearOrderedAddCommMonoid α]
[DecidableEq ι]
(f : ι →₀ α)
(g : ι →₀ α)
:
@[simp]
theorem
Finsupp.support_sup
{ι : Type u_1}
{α : Type u_2}
[CanonicallyLinearOrderedAddCommMonoid α]
[DecidableEq ι]
(f : ι →₀ α)
(g : ι →₀ α)
:
theorem
Finsupp.disjoint_iff
{ι : Type u_1}
{α : Type u_2}
[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