Algebraic structures on the set of positive numbers #
In this file we define various instances (AddSemigroup
, OrderedCommMonoid
etc) on the
type {x : R // 0 < x}
. In each case we try to require the weakest possible typeclass
assumptions on R
but possibly, there is a room for improvements.
Equations
instance
Positive.addCommSemigroup
{M : Type u_3}
[AddCommMonoid M]
[Preorder M]
[AddLeftStrictMono M]
:
Equations
instance
Positive.addLeftCancelSemigroup
{M : Type u_3}
[AddLeftCancelMonoid M]
[Preorder M]
[AddLeftStrictMono M]
:
Equations
instance
Positive.addRightCancelSemigroup
{M : Type u_3}
[AddRightCancelMonoid M]
[Preorder M]
[AddLeftStrictMono M]
:
Equations
instance
Positive.addLeftStrictMono
{M : Type u_1}
[AddMonoid M]
[Preorder M]
[AddLeftStrictMono M]
:
instance
Positive.addRightStrictMono
{M : Type u_1}
[AddMonoid M]
[Preorder M]
[AddLeftStrictMono M]
[AddRightStrictMono M]
:
instance
Positive.addLeftReflectLT
{M : Type u_1}
[AddMonoid M]
[Preorder M]
[AddLeftStrictMono M]
[AddLeftReflectLT M]
:
instance
Positive.addRightReflectLT
{M : Type u_1}
[AddMonoid M]
[Preorder M]
[AddLeftStrictMono M]
[AddRightReflectLT M]
:
instance
Positive.addLeftReflectLE
{M : Type u_1}
[AddMonoid M]
[Preorder M]
[AddLeftStrictMono M]
[AddLeftReflectLE M]
:
instance
Positive.addRightReflectLE
{M : Type u_1}
[AddMonoid M]
[Preorder M]
[AddLeftStrictMono M]
[AddRightReflectLE M]
:
instance
Positive.instMulSubtypeLtOfNat_mathlib
{R : Type u_2}
[Semiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
:
Equations
@[simp]
theorem
Positive.val_mul
{R : Type u_2}
[Semiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
(x y : { x : R // 0 < x })
:
instance
Positive.instPowSubtypeLtOfNatNat_mathlib
{R : Type u_2}
[Semiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
:
Equations
@[simp]
theorem
Positive.val_pow
{R : Type u_2}
[Semiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
(x : { x : R // 0 < x })
(n : ℕ)
:
instance
Positive.instSemigroupSubtypeLtOfNat
{R : Type u_2}
[Semiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
:
Equations
instance
Positive.instDistribSubtypeLtOfNat
{R : Type u_2}
[Semiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
:
Equations
instance
Positive.instOneSubtypeLtOfNat_mathlib
{R : Type u_2}
[Semiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
:
Equations
@[simp]
instance
Positive.instMonoidSubtypeLtOfNat
{R : Type u_2}
[Semiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
:
Equations
instance
Positive.commMonoid
{R : Type u_2}
[CommSemiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
:
Equations
instance
Positive.isOrderedMonoid
{R : Type u_2}
[CommSemiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
:
instance
Positive.isOrderedCancelMonoid
{R : Type u_2}
[CommSemiring R]
[LinearOrder R]
[IsStrictOrderedRing R]
:
If R
is a nontrivial linear ordered commutative semiring, then {x : R // 0 < x}
is a linear
ordered cancellative commutative monoid.