Skip to content

Properties of OrderedCommRings#1303

Open
LorenzoMolena wants to merge 24 commits into
agda:masterfrom
LorenzoMolena:ocr-update
Open

Properties of OrderedCommRings#1303
LorenzoMolena wants to merge 24 commits into
agda:masterfrom
LorenzoMolena:ocr-update

Conversation

@LorenzoMolena
Copy link
Copy Markdown
Contributor

This PR introduces properties of Ordered Commutative Rings, including, but not limited to:

  • Morphisms between OCRs (homomorphisms, monomorphisms, and isomorphisms), univalence for OCRs, and proof that OrderedCommRing is a 1-Groupoid
  • An OrderedCommRingReasoning module, derived from QuosetReasoning, with additional helpers for adding/multiplying the same element on both sides of inequalities
  • Positive and non-negative cones, with various algebraic structure instances
  • Canonical monomorphism from the fast integers, with proof of uniqueness

To prove the last point, this PR also includes the proof of the existence and uniqueness of a ring homomorphism from the fast integers into any other commutative ring.

The notion of OCR homomorphism is derived from homomorphisms of Ordered Heyting Fields, following Definition 4.3.1 of A.Booij PhD Thesis. In addition to requiring to reflect <, we also ask to preserve .
Although the latter is logically redundant, in specific cases it could be useful to provide that proof directly, rather than relying on the one derived from reflect<. If not needed, this can be avoided using the helper makeIsOrderedCommRingHom

If this addition is welcome, this PR would need to be merged before #1293, which will be updated to depend on these changes.

LorenzoMolena and others added 24 commits April 2, 2026 20:15
…solving the equality ; use `_<+[_]`, `_≤·[_,_]`, etc. in equational reasoning ; shorten comment about `·CancelL<`, `·CancelR<` ; add `/2+/2≡mean` and `mean₊`
…mmRing` ; add positive rationals and their properties
* typo

* remove unnecessary imports, make some proofs ~pointless~ pointfree
…keIsOrderedCommRingEquivFromMono`, add a new `makeIsOrderedCommRingEquiv` that is actually a specialized `make` (i.e. taking as inputs the individual proofs needed to build the OCR equivalence)
* typo

* remove unnecessary imports, make some proofs ~~pointless~~ pointfree

* make more proofs pointfree, rename `makeIsOrderedCommRingEquiv` → `makeIsOrderedCommRingEquivFromMono`, add a new `makeIsOrderedCommRingEquiv` that is actually a specialized `make` (i.e. taking as inputs the individual proofs needed to build the OCR equivalence)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant