Pointwise order on finitely supported dependent functions #
This file lifts order structures on the α i
to Π₀ i, α i
.
Main declarations #
DFinsupp.orderEmbeddingToFun
: The order embedding from finitely supported dependent functions to functions.
Order structures #
def
DFinsupp.orderEmbeddingToFun
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → LE (α i)]
:
(Π₀ (i : ι), α i) ↪o ((i : ι) → α i)
The order on DFinsupp
s over a partial order embeds into the order on functions
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
DFinsupp.instPartialOrderDFinsupp
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → PartialOrder (α i)]
:
PartialOrder (Π₀ (i : ι), α i)
Equations
- DFinsupp.instPartialOrderDFinsupp = let src := inferInstance; PartialOrder.mk (_ : ∀ (x x_1 : Π₀ (i : ι), α i), x ≤ x_1 → x_1 ≤ x → x = x_1)
instance
DFinsupp.instSemilatticeInfDFinsupp
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → SemilatticeInf (α i)]
:
SemilatticeInf (Π₀ (i : ι), α i)
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
DFinsupp.coe_inf
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → SemilatticeInf (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
:
theorem
DFinsupp.inf_apply
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → SemilatticeInf (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
(i : ι)
:
instance
DFinsupp.instSemilatticeSupDFinsupp
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → SemilatticeSup (α i)]
:
SemilatticeSup (Π₀ (i : ι), α i)
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
DFinsupp.coe_sup
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → SemilatticeSup (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
:
theorem
DFinsupp.sup_apply
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → SemilatticeSup (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
(i : ι)
:
theorem
DFinsupp.support_inf_union_support_sup
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → Lattice (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
[DecidableEq ι]
[(i : ι) → (x : α i) → Decidable (x ≠ 0)]
:
DFinsupp.support (f ⊓ g) ∪ DFinsupp.support (f ⊔ g) = DFinsupp.support f ∪ DFinsupp.support g
theorem
DFinsupp.support_sup_union_support_inf
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Zero (α i)]
[(i : ι) → Lattice (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
[DecidableEq ι]
[(i : ι) → (x : α i) → Decidable (x ≠ 0)]
:
DFinsupp.support (f ⊔ g) ∪ DFinsupp.support (f ⊓ g) = DFinsupp.support f ∪ DFinsupp.support g
Algebraic order structures #
instance
DFinsupp.instOrderedAddCommMonoidDFinsuppToZeroToAddMonoidToAddCommMonoid
{ι : Type u_1}
(α : ι → Type u_3)
[(i : ι) → OrderedAddCommMonoid (α i)]
:
OrderedAddCommMonoid (Π₀ (i : ι), α i)
Equations
- One or more equations did not get rendered due to their size.
instance
DFinsupp.instOrderedCancelAddCommMonoidDFinsuppToZeroToAddRightCancelMonoidToAddCancelMonoidToCancelAddCommMonoid
{ι : Type u_1}
(α : ι → Type u_3)
[(i : ι) → OrderedCancelAddCommMonoid (α i)]
:
OrderedCancelAddCommMonoid (Π₀ (i : ι), α i)
Equations
- One or more equations did not get rendered due to their size.
instance
DFinsupp.instContravariantClassDFinsuppToZeroToAddMonoidToAddCommMonoidHAddInstHAddInstAddDFinsuppToZeroToAddZeroClassLeInstLEDFinsuppToLEToPreorderToPartialOrder
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → OrderedAddCommMonoid (α i)]
[∀ (i : ι), ContravariantClass (α i) (α i) (fun (x x_1 : α i) => x + x_1) fun (x x_1 : α i) => x ≤ x_1]
:
ContravariantClass (Π₀ (i : ι), α i) (Π₀ (i : ι), α i) (fun (x x_1 : Π₀ (i : ι), α i) => x + x_1)
fun (x x_1 : Π₀ (i : ι), α i) => x ≤ x_1
Equations
- One or more equations did not get rendered due to their size.
instance
DFinsupp.instPosSMulMono
{ι : Type u_1}
{α : Type u_3}
{β : ι → Type u_4}
[Semiring α]
[Preorder α]
[(i : ι) → AddCommMonoid (β i)]
[(i : ι) → Preorder (β i)]
[(i : ι) → Module α (β i)]
[∀ (i : ι), PosSMulMono α (β i)]
:
PosSMulMono α (Π₀ (i : ι), β i)
Equations
- (_ : PosSMulMono α (Π₀ (i : ι), β i)) = (_ : PosSMulMono α (Π₀ (i : ι), β i))
instance
DFinsupp.instSMulPosMono
{ι : Type u_1}
{α : Type u_3}
{β : ι → Type u_4}
[Semiring α]
[Preorder α]
[(i : ι) → AddCommMonoid (β i)]
[(i : ι) → Preorder (β i)]
[(i : ι) → Module α (β i)]
[∀ (i : ι), SMulPosMono α (β i)]
:
SMulPosMono α (Π₀ (i : ι), β i)
Equations
- (_ : SMulPosMono α (Π₀ (i : ι), β i)) = (_ : SMulPosMono α (Π₀ (i : ι), β i))
instance
DFinsupp.instPosSMulReflectLE
{ι : Type u_1}
{α : Type u_3}
{β : ι → Type u_4}
[Semiring α]
[Preorder α]
[(i : ι) → AddCommMonoid (β i)]
[(i : ι) → Preorder (β i)]
[(i : ι) → Module α (β i)]
[∀ (i : ι), PosSMulReflectLE α (β i)]
:
PosSMulReflectLE α (Π₀ (i : ι), β i)
Equations
- (_ : PosSMulReflectLE α (Π₀ (i : ι), β i)) = (_ : PosSMulReflectLE α (Π₀ (i : ι), β i))
instance
DFinsupp.instSMulPosReflectLE
{ι : Type u_1}
{α : Type u_3}
{β : ι → Type u_4}
[Semiring α]
[Preorder α]
[(i : ι) → AddCommMonoid (β i)]
[(i : ι) → Preorder (β i)]
[(i : ι) → Module α (β i)]
[∀ (i : ι), SMulPosReflectLE α (β i)]
:
SMulPosReflectLE α (Π₀ (i : ι), β i)
Equations
- (_ : SMulPosReflectLE α (Π₀ (i : ι), β i)) = (_ : SMulPosReflectLE α (Π₀ (i : ι), β i))
instance
DFinsupp.instPosSMulStrictMono
{ι : Type u_1}
{α : Type u_3}
{β : ι → Type u_4}
[Semiring α]
[PartialOrder α]
[(i : ι) → AddCommMonoid (β i)]
[(i : ι) → PartialOrder (β i)]
[(i : ι) → Module α (β i)]
[∀ (i : ι), PosSMulStrictMono α (β i)]
:
PosSMulStrictMono α (Π₀ (i : ι), β i)
Equations
- (_ : PosSMulStrictMono α (Π₀ (i : ι), β i)) = (_ : PosSMulStrictMono α (Π₀ (i : ι), β i))
instance
DFinsupp.instSMulPosStrictMono
{ι : Type u_1}
{α : Type u_3}
{β : ι → Type u_4}
[Semiring α]
[PartialOrder α]
[(i : ι) → AddCommMonoid (β i)]
[(i : ι) → PartialOrder (β i)]
[(i : ι) → Module α (β i)]
[∀ (i : ι), SMulPosStrictMono α (β i)]
:
SMulPosStrictMono α (Π₀ (i : ι), β i)
Equations
- (_ : SMulPosStrictMono α (Π₀ (i : ι), β i)) = (_ : SMulPosStrictMono α (Π₀ (i : ι), β i))
instance
DFinsupp.instSMulPosReflectLT
{ι : Type u_1}
{α : Type u_3}
{β : ι → Type u_4}
[Semiring α]
[PartialOrder α]
[(i : ι) → AddCommMonoid (β i)]
[(i : ι) → PartialOrder (β i)]
[(i : ι) → Module α (β i)]
[∀ (i : ι), SMulPosReflectLT α (β i)]
:
SMulPosReflectLT α (Π₀ (i : ι), β i)
Equations
- (_ : SMulPosReflectLT α (Π₀ (i : ι), β i)) = (_ : SMulPosReflectLT α (Π₀ (i : ι), β i))
instance
DFinsupp.instOrderBotDFinsuppToZeroToAddMonoidToAddCommMonoidToOrderedAddCommMonoidInstLEDFinsuppToLEToPreorderToPartialOrder
{ι : Type u_1}
(α : ι → Type u_2)
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
:
OrderBot (Π₀ (i : ι), α i)
Equations
- DFinsupp.instOrderBotDFinsuppToZeroToAddMonoidToAddCommMonoidToOrderedAddCommMonoidInstLEDFinsuppToLEToPreorderToPartialOrder α = OrderBot.mk (_ : ∀ (a : Π₀ (i : ι), α i), 0 ≤ a)
theorem
DFinsupp.bot_eq_zero
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
:
theorem
DFinsupp.le_iff'
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[DecidableEq ι]
[(i : ι) → (x : α i) → Decidable (x ≠ 0)]
{f : Π₀ (i : ι), α i}
{g : Π₀ (i : ι), α i}
{s : Finset ι}
(hf : DFinsupp.support f ⊆ s)
:
theorem
DFinsupp.le_iff
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[DecidableEq ι]
[(i : ι) → (x : α i) → Decidable (x ≠ 0)]
{f : Π₀ (i : ι), α i}
{g : Π₀ (i : ι), α i}
:
f ≤ g ↔ ∀ i ∈ DFinsupp.support f, f i ≤ g i
theorem
DFinsupp.support_monotone
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[DecidableEq ι]
[(i : ι) → (x : α i) → Decidable (x ≠ 0)]
:
Monotone DFinsupp.support
theorem
DFinsupp.support_mono
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[DecidableEq ι]
[(i : ι) → (x : α i) → Decidable (x ≠ 0)]
{f : Π₀ (i : ι), α i}
{g : Π₀ (i : ι), α i}
(hfg : f ≤ g)
:
instance
DFinsupp.decidableLE
{ι : Type u_1}
(α : ι → Type u_2)
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[DecidableEq ι]
[(i : ι) → (x : α i) → Decidable (x ≠ 0)]
[(i : ι) → DecidableRel LE.le]
:
DecidableRel LE.le
Equations
- DFinsupp.decidableLE α x✝ x = decidable_of_iff (∀ i ∈ DFinsupp.support x✝, x✝ i ≤ x i) (_ : (∀ i ∈ DFinsupp.support x✝, x✝ i ≤ x i) ↔ x✝ ≤ x)
@[simp]
theorem
DFinsupp.single_le_iff
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[DecidableEq ι]
[(i : ι) → (x : α i) → Decidable (x ≠ 0)]
{f : Π₀ (i : ι), α i}
{i : ι}
{a : α i}
:
DFinsupp.single i a ≤ f ↔ a ≤ f i
instance
DFinsupp.tsub
{ι : Type u_1}
(α : ι → Type u_2)
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[(i : ι) → Sub (α i)]
[∀ (i : ι), OrderedSub (α i)]
:
Sub (Π₀ (i : ι), α i)
This is called tsub
for truncated subtraction, to distinguish it with subtraction in an
additive group.
Equations
- DFinsupp.tsub α = { sub := DFinsupp.zipWith (fun (x : ι) (m n : α x) => m - n) (_ : ∀ (x : ι), 0 - 0 = 0) }
theorem
DFinsupp.tsub_apply
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[(i : ι) → Sub (α i)]
[∀ (i : ι), OrderedSub (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
(i : ι)
:
@[simp]
theorem
DFinsupp.coe_tsub
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[(i : ι) → Sub (α i)]
[∀ (i : ι), OrderedSub (α i)]
(f : Π₀ (i : ι), α i)
(g : Π₀ (i : ι), α i)
:
instance
DFinsupp.instOrderedSubDFinsuppToZeroToAddMonoidToAddCommMonoidToOrderedAddCommMonoidInstLEDFinsuppToLEToPreorderToPartialOrderInstAddDFinsuppToZeroToAddZeroClassTsub
{ι : Type u_1}
(α : ι → Type u_2)
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[(i : ι) → Sub (α i)]
[∀ (i : ι), OrderedSub (α i)]
:
OrderedSub (Π₀ (i : ι), α i)
Equations
- (_ : OrderedSub (Π₀ (i : ι), α i)) = (_ : OrderedSub (Π₀ (i : ι), α i))
instance
DFinsupp.instCanonicallyOrderedAddCommMonoidDFinsuppToZeroToAddMonoidToAddCommMonoidToOrderedAddCommMonoid
{ι : Type u_1}
(α : ι → Type u_2)
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[(i : ι) → Sub (α i)]
[∀ (i : ι), OrderedSub (α i)]
:
CanonicallyOrderedAddCommMonoid (Π₀ (i : ι), α i)
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
DFinsupp.single_tsub
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[(i : ι) → Sub (α i)]
[∀ (i : ι), OrderedSub (α i)]
{i : ι}
{a : α i}
{b : α i}
[DecidableEq ι]
:
DFinsupp.single i (a - b) = DFinsupp.single i a - DFinsupp.single i b
theorem
DFinsupp.support_tsub
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[(i : ι) → Sub (α i)]
[∀ (i : ι), OrderedSub (α i)]
{f : Π₀ (i : ι), α i}
{g : Π₀ (i : ι), α i}
[DecidableEq ι]
[(i : ι) → (x : α i) → Decidable (x ≠ 0)]
:
DFinsupp.support (f - g) ⊆ DFinsupp.support f
theorem
DFinsupp.subset_support_tsub
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (α i)]
[(i : ι) → Sub (α i)]
[∀ (i : ι), OrderedSub (α i)]
{f : Π₀ (i : ι), α i}
{g : Π₀ (i : ι), α i}
[DecidableEq ι]
[(i : ι) → (x : α i) → Decidable (x ≠ 0)]
:
DFinsupp.support f \ DFinsupp.support g ⊆ DFinsupp.support (f - g)
@[simp]
theorem
DFinsupp.support_inf
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyLinearOrderedAddCommMonoid (α i)]
[DecidableEq ι]
{f : Π₀ (i : ι), α i}
{g : Π₀ (i : ι), α i}
:
DFinsupp.support (f ⊓ g) = DFinsupp.support f ∩ DFinsupp.support g
@[simp]
theorem
DFinsupp.support_sup
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyLinearOrderedAddCommMonoid (α i)]
[DecidableEq ι]
{f : Π₀ (i : ι), α i}
{g : Π₀ (i : ι), α i}
:
DFinsupp.support (f ⊔ g) = DFinsupp.support f ∪ DFinsupp.support g
theorem
DFinsupp.disjoint_iff
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → CanonicallyLinearOrderedAddCommMonoid (α i)]
[DecidableEq ι]
{f : Π₀ (i : ι), α i}
{g : Π₀ (i : ι), α i}
:
Disjoint f g ↔ Disjoint (DFinsupp.support f) (DFinsupp.support g)