{-# OPTIONS --cubical --no-import-sorts #-}
open import Agda.Primitive renaming (_⊔_ to ℓ-max; lsuc to ℓ-suc; lzero to ℓ-zero)
module Number.Bundles where
private
variable
ℓ ℓ' : Level
open import Cubical.Foundations.Everything renaming (_⁻¹ to _⁻¹ᵖ; assoc to ∙-assoc)
open import Cubical.Relation.Binary.Base
open import Cubical.Data.Sum.Base renaming (_⊎_ to infixr 4 _⊎_)
open import Cubical.Data.Sigma.Base renaming (_×_ to infixr 4 _×_)
open import MoreAlgebra
open import Number.Structures
record RCommSemiring : Type (ℓ-suc (ℓ-max ℓ ℓ')) where
field
Carrier : Type ℓ
_#_ : Rel Carrier Carrier ℓ'
0f 1f : Carrier
_+_ _·_ : Carrier → Carrier → Carrier
isRCommSemiring : IsRCommSemiring _#_ 0f 1f _+_ _·_
open IsRCommSemiring isRCommSemiring public
record RCommRing : Type (ℓ-suc (ℓ-max ℓ ℓ')) where
field
Carrier : Type ℓ
_#_ : Rel Carrier Carrier ℓ'
0f 1f : Carrier
_+_ _·_ : Carrier → Carrier → Carrier
-_ : Carrier → Carrier
isRCommRing : IsRCommRing _#_ 0f 1f _+_ _·_ -_
open IsRCommRing isRCommRing public
record RField : Type (ℓ-suc (ℓ-max ℓ ℓ')) where
field
Carrier : Type ℓ
_#_ : Rel Carrier Carrier ℓ'
0f 1f : Carrier
_+_ _·_ : Carrier → Carrier → Carrier
-_ : Carrier → Carrier
_⁻¹ : (x : Carrier) → {{ x # 0f }} → Carrier
isRField : IsRField _#_ 0f 1f _+_ _·_ -_ _⁻¹
record RLattice : Type (ℓ-suc (ℓ-max ℓ ℓ')) where
constructor rlattice
field
Carrier : Type ℓ
_<_ _≤_ _#_ : Rel Carrier Carrier ℓ'
min max : Carrier → Carrier → Carrier
isRLattice : IsRLattice _<_ _≤_ _#_ min max
open IsRLattice isRLattice public
infixl 4 _<_
infixl 4 _≤_
infixl 4 _#_
record ROrderedCommSemiring : Type (ℓ-suc (ℓ-max ℓ ℓ')) where
field
Carrier : Type ℓ
_<_ _≤_ _#_ : Rel Carrier Carrier ℓ'
min max : Carrier → Carrier → Carrier
0f 1f : Carrier
_+_ _·_ : Carrier → Carrier → Carrier
isROrderedCommSemiring : IsROrderedCommSemiring _<_ _≤_ _#_ min max 0f 1f _+_ _·_
open IsROrderedCommSemiring isROrderedCommSemiring public
record ROrderedCommRing : Type (ℓ-suc (ℓ-max ℓ ℓ')) where
field
Carrier : Type ℓ
_<_ _≤_ _#_ : Rel Carrier Carrier ℓ'
min max : Carrier → Carrier → Carrier
0f 1f : Carrier
_+_ _·_ : Carrier → Carrier → Carrier
-_ : Carrier → Carrier
isROrderedCommRing : IsROrderedCommRing _<_ _≤_ _#_ min max 0f 1f _+_ _·_ -_
open IsROrderedCommRing isROrderedCommRing public
abs : Carrier → Carrier
abs x = max x (- x)
field
isAbsOrderedCommRing : IsAbsOrderedCommRing _<_ _≤_ _#_ min max 0f 1f _+_ _·_ -_ abs
open IsAbsOrderedCommRing isAbsOrderedCommRing public
record ROrderedField : Type (ℓ-suc (ℓ-max ℓ ℓ')) where
field
Carrier : Type ℓ
_<_ _≤_ _#_ : Rel Carrier Carrier ℓ'
min max : Carrier → Carrier → Carrier
0f 1f : Carrier
_+_ _·_ : Carrier → Carrier → Carrier
-_ : Carrier → Carrier
_⁻¹ : (x : Carrier) → {{ x # 0f }} → Carrier
isROrderedField : IsROrderedField _<_ _≤_ _#_ min max 0f 1f _+_ _·_ -_ _⁻¹
open IsROrderedField isROrderedField public
abs : Carrier → Carrier
abs x = max x (- x)
field
isAbsOrderedCommRing : IsAbsOrderedCommRing _<_ _≤_ _#_ min max 0f 1f _+_ _·_ -_ abs
open IsAbsOrderedCommRing isAbsOrderedCommRing public