{-# OPTIONS --safe --warning=error --without-K --guardedness #-} open import Agda.Primitive using (Level; lzero; lsuc; _⊔_) open import Setoids.Setoids open import Rings.Definition open import Rings.Lemmas open import Rings.Orders.Partial.Definition open import Rings.Orders.Total.Definition open import Groups.Definition open import Groups.Groups open import Fields.Fields open import Fields.Orders.Total.Definition open import Sets.EquivalenceRelations open import Sequences open import Setoids.Orders open import Functions open import LogicalFormulae open import Numbers.Naturals.Semiring open import Numbers.Naturals.Order open import Numbers.Naturals.Order.Lemmas open import Semirings.Definition open import Groups.Homomorphisms.Definition open import Rings.Homomorphisms.Definition module Fields.CauchyCompletion.PartiallyOrderedRing {m n o : _} {A : Set m} {S : Setoid {m} {n} A} {_+_ : A → A → A} {_*_ : A → A → A} {_<_ : Rel {m} {o} A} {pOrder : SetoidPartialOrder S _<_} {R : Ring S _+_ _*_} {pRing : PartiallyOrderedRing R pOrder} (order : TotallyOrderedRing pRing) (F : Field R) (charNot2 : Setoid._∼_ S ((Ring.1R R) + (Ring.1R R)) (Ring.0R R) → False) where open Setoid S open SetoidTotalOrder (TotallyOrderedRing.total order) open SetoidPartialOrder pOrder open Equivalence eq open PartiallyOrderedRing pRing open Ring R open Group additiveGroup open Field F open import Fields.Lemmas F open import Rings.Orders.Partial.Lemmas pRing open import Rings.Orders.Total.Lemmas order open import Fields.Orders.Lemmas {F = F} {pRing} (record { oRing = order }) open import Fields.CauchyCompletion.Definition order F open import Fields.CauchyCompletion.Addition order F charNot2 open import Fields.CauchyCompletion.Multiplication order F charNot2 open import Fields.CauchyCompletion.Approximation order F charNot2 open import Fields.CauchyCompletion.Ring order F charNot2 open import Fields.CauchyCompletion.Comparison order F charNot2 open import Fields.CauchyCompletion.Setoid order F charNot2 productPositives : (a b : A) → (injection 0R)