Modules over nonnegative elements #
This file defines instances and prove some properties about modules over nonnegative elements
{c : 𝕜 // 0 ≤ c}
of an arbitrary OrderedSemiring 𝕜
.
These instances are useful for working with ConvexCone
.
instance
Nonneg.instIsScalarTower
{𝕜 : Type u_1}
{𝕜' : Type u_2}
{E : Type u_3}
[Semiring 𝕜]
[PartialOrder 𝕜]
[IsOrderedRing 𝕜]
[SMul 𝕜 𝕜']
[SMul 𝕜 E]
[SMul 𝕜' E]
[IsScalarTower 𝕜 𝕜' E]
:
instance
Nonneg.instSMulWithZero
{𝕜 : Type u_1}
{𝕜' : Type u_2}
[Semiring 𝕜]
[PartialOrder 𝕜]
[Zero 𝕜']
[SMulWithZero 𝕜 𝕜']
:
Equations
- Nonneg.instSMulWithZero = { toSMul := Nonneg.instSMul, smul_zero := ⋯, zero_smul := ⋯ }
instance
Nonneg.instOrderedSMul
{𝕜 : Type u_1}
{E : Type u_3}
[Semiring 𝕜]
[PartialOrder 𝕜]
[IsOrderedRing 𝕜]
[AddCommMonoid E]
[PartialOrder E]
[SMulWithZero 𝕜 E]
[hE : OrderedSMul 𝕜 E]
:
instance
Nonneg.instModule
{𝕜 : Type u_1}
{E : Type u_3}
[Semiring 𝕜]
[PartialOrder 𝕜]
[IsOrderedRing 𝕜]
[AddCommMonoid E]
[Module 𝕜 E]
:
A module over an ordered semiring is also a module over just the non-negative scalars.