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 (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 a
means that0 ≤ a
according to the cone. - pos : α → Prop
The characteristic predicate of a positive cone.
pos a
means that0 < a
according 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
a
the propositionnonneg a
is decidable Either
a
or-a
isnonneg
Instances For
Either a
or -a
is nonneg
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.