Split out parts of Field of Fractions (#63)

This commit is contained in:
Patrick Stevens
2019-11-02 21:31:46 +00:00
committed by GitHub
parent 1325236359
commit e4daab7153
12 changed files with 374 additions and 224 deletions

View File

@@ -13,23 +13,28 @@ open import Numbers.Primes.PrimeNumbers
open import Setoids.Setoids
open import Setoids.Orders
open import Functions
open import Fields.FieldOfFractions
open import Fields.FieldOfFractionsOrder
open import Sets.EquivalenceRelations
module Numbers.Rationals where
open import Fields.FieldOfFractions.Setoid IntDom
open import Fields.FieldOfFractions.Addition IntDom
open import Fields.FieldOfFractions.Multiplication IntDom
open import Fields.FieldOfFractions.Ring IntDom
open import Fields.FieldOfFractions.Field IntDom
open import Fields.FieldOfFractions.Order IntDom OrderedRing
: Set
= fieldOfFractionsSet IntDom
= fieldOfFractionsSet
_+Q_ :
a +Q b = fieldOfFractionsPlus IntDom a b
a +Q b = fieldOfFractionsPlus a b
_*Q_ :
a *Q b = fieldOfFractionsTimes IntDom a b
a *Q b = fieldOfFractionsTimes a b
Ring : Ring (fieldOfFractionsSetoid IntDom) _+Q_ _*Q_
Ring = fieldOfFractionsRing IntDom
Ring : Ring fieldOfFractionsSetoid _+Q_ _*Q_
Ring = fieldOfFractionsRing
0Q :
0Q = Ring.0R Ring
@@ -38,16 +43,16 @@ injectionQ :
injectionQ z = z ,, (nonneg 1 , λ ())
Field : Field Ring
Field = fieldOfFractions IntDom
Field = fieldOfFractions
_<Q_ : Set
_<Q_ = fieldOfFractionsComparison IntDom OrderedRing
_<Q_ = fieldOfFractionsComparison
_=Q_ : Set
a =Q b = Setoid.__ (fieldOfFractionsSetoid IntDom) a b
a =Q b = Setoid.__ fieldOfFractionsSetoid a b
reflQ : {x : } (x =Q x)
reflQ {x} = Equivalence.reflexive (Setoid.eq (fieldOfFractionsSetoid IntDom)) {x}
reflQ {x} = Equivalence.reflexive (Setoid.eq fieldOfFractionsSetoid) {x}
_≤Q_ : Set
a ≤Q b = (a <Q b) || (a =Q b)
@@ -61,21 +66,21 @@ a -Q b = a +Q negateQ b
a-A : (a : ) (a -Q a) =Q 0Q
a-A a = Group.invRight (Ring.additiveGroup Ring) {a}
PartialOrder : SetoidPartialOrder (fieldOfFractionsSetoid IntDom) (fieldOfFractionsComparison IntDom OrderedRing)
PartialOrder = fieldOfFractionsOrder IntDom OrderedRing
PartialOrder : SetoidPartialOrder fieldOfFractionsSetoid fieldOfFractionsComparison
PartialOrder = fieldOfFractionsOrder
TotalOrder : SetoidTotalOrder (fieldOfFractionsOrder IntDom OrderedRing)
TotalOrder = fieldOfFractionsTotalOrder IntDom OrderedRing
TotalOrder : SetoidTotalOrder fieldOfFractionsOrder
TotalOrder = fieldOfFractionsTotalOrder
open SetoidTotalOrder (fieldOfFractionsTotalOrder IntDom OrderedRing)
open SetoidTotalOrder fieldOfFractionsTotalOrder
open SetoidPartialOrder partial
open Setoid (fieldOfFractionsSetoid IntDom)
open Setoid fieldOfFractionsSetoid
negateQWellDefined : (a b : ) (a =Q b) (negateQ a) =Q (negateQ b)
negateQWellDefined a b a=b = inverseWellDefined (Ring.additiveGroup Ring) {a} {b} a=b
POrdered : PartiallyOrderedRing Ring partial
POrdered = fieldOfFractionsPOrderedRing IntDom OrderedRing
POrdered = fieldOfFractionsPOrderedRing
Ordered : TotallyOrderedRing POrdered
Ordered = fieldOfFractionsOrderedRing IntDom OrderedRing
Ordered = fieldOfFractionsOrderedRing

View File

@@ -15,8 +15,6 @@ open import Numbers.Primes.PrimeNumbers
open import Setoids.Setoids
open import Setoids.Orders
open import Functions
open import Fields.FieldOfFractions
open import Fields.FieldOfFractionsOrder
open import Sets.EquivalenceRelations
open import Numbers.Rationals
open import Semirings.Definition