Construct ordered rings from rings with a specified positive cone. #
In this file we provide the structure RingCone
that encodes axioms of OrderedRing and LinearOrderedRing
in terms of the subset of non-negative elements.
We also provide constructors that convert between cones in rings and the corresponding ordered rings.
RingConeClass S R says that S is a type of cones in R.
Instances
A (positive) cone in a ring is a subsemiring that
does not contain both a and -a for any nonzero a.
This is equivalent to being the set of non-negative elements of
some order making the ring into a partially ordered ring.
Instances For
Equations
- RingCone.instSetLike R = { coe := fun (C : RingCone R) => C.carrier, coe_injective' := ⋯ }
Construct a cone from the set of non-negative elements of a partially ordered ring.
Equations
- RingCone.nonneg T = { toSubsemiring := Subsemiring.nonneg T, eq_zero_of_mem_of_neg_mem' := ⋯ }
Instances For
Construct a partially ordered ring by designating a cone in a ring.
Warning: using this def as a constructor in an instance can lead to diamonds
due to non-customisable field: lt.
Equations
- OrderedRing.mkOfCone C = OrderedRing.mk ⋯ ⋯ ⋯
Instances For
Construct a linearly ordered domain by designating a maximal cone in a domain.
Warning: using this def as a constructor in an instance can lead to diamonds
due to non-customisable fields: lt, decidableLT, decidableEq, compare.
Equations
- LinearOrderedRing.mkOfCone C dec = LinearOrderedRing.mk ⋯ (fun (x x_1 : R) => dec (x_1 - x)) decidableEqOfDecidableLE decidableLTOfDecidableLE ⋯ ⋯ ⋯