Construct ordered groups from positive cones #
In this file we provide structures PositiveCone and TotalPositiveCone
that encode axioms of OrderedAddCommGroup and LinearOrderedAddCommGroup
in terms of the the (0 ≤ ·) predicate.
We also provide two constructors,
OrderedAddCommGroup.mkOfPositiveCone and LinearOrderedAddCommGroup.mkOfPositiveCone,
that turn these structures into instances of the corresponding typeclasses.
A collection of elements in an AddCommGroup designated as "non-negative".
This is useful for constructing an OrderedAddCommGroup
by choosing a positive cone in an existing AddCommGroup.
- nonneg : α → Prop
The characteristic predicate of a positive cone.
nonneg ameans that0 ≤ aaccording to the cone. - pos : α → Prop
The characteristic predicate of a positive cone.
pos ameans that0 < aaccording to the cone. - zero_nonneg : self.nonneg 0
- add_nonneg : ∀ {a b : α}, self.nonneg a → self.nonneg b → self.nonneg (a + b)
Instances For
A positive cone in an AddCommGroup induces a linear order if
for every a, either a or -a is non-negative.
- nonneg : α → Prop
- pos : α → Prop
- zero_nonneg : self.nonneg 0
- add_nonneg : ∀ {a b : α}, self.nonneg a → self.nonneg b → self.nonneg (a + b)
- nonnegDecidable : DecidablePred self.nonneg
For any
athe propositionnonneg ais decidable Either
aor-aisnonneg
Instances For
Construct an OrderedAddCommGroup by
designating a positive cone in an existing AddCommGroup.
Equations
- OrderedAddCommGroup.mkOfPositiveCone C = let __src := inst; OrderedAddCommGroup.mk ⋯
Instances For
Construct a LinearOrderedAddCommGroup by
designating a positive cone in an existing AddCommGroup
such that for every a, either a or -a is non-negative.
Equations
- One or more equations did not get rendered due to their size.