Modules over nonnegative elements #
For an ordered ring R
, this file proves that any (ordered) R
-module M
is also an (ordered)
R≥0
-module`.
Among other things, these instances are useful for working with ConvexCone
.
instance
Nonneg.instIsScalarTower
{R : Type u_1}
{S : Type u_2}
{M : Type u_3}
[Semiring R]
[PartialOrder R]
[IsOrderedRing R]
[SMul R S]
[SMul R M]
[SMul S M]
[IsScalarTower R S M]
:
instance
Nonneg.instSMulWithZero
{R : Type u_1}
{S : Type u_2}
[Semiring R]
[PartialOrder R]
[Zero S]
[SMulWithZero R S]
:
Equations
- Nonneg.instSMulWithZero = { toSMul := Nonneg.instSMul, smul_zero := ⋯, zero_smul := ⋯ }
instance
Nonneg.instOrderedSMul
{R : Type u_1}
{M : Type u_3}
[Semiring R]
[PartialOrder R]
[IsOrderedRing R]
[AddCommMonoid M]
[PartialOrder M]
[SMulWithZero R M]
[hE : OrderedSMul R M]
:
instance
Nonneg.instModule
{R : Type u_1}
{M : Type u_3}
[Semiring R]
[PartialOrder R]
[IsOrderedRing R]
[AddCommMonoid M]
[Module R M]
:
A module over an ordered semiring is also a module over just the non-negative scalars.