Files
agdaproofs/Numbers/Rationals.agda
2019-10-22 07:51:09 +01:00

75 lines
2.3 KiB
Agda
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{-# OPTIONS --safe --warning=error #-}
open import LogicalFormulae
open import Numbers.Naturals.Naturals
open import Numbers.Integers.Integers
open import Groups.Groups
open import Groups.Definition
open import Rings.Definition
open import Rings.Order
open import Fields.Fields
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
: Set
= fieldOfFractionsSet IntDom
_+Q_ :
a +Q b = fieldOfFractionsPlus IntDom a b
_*Q_ :
a *Q b = fieldOfFractionsTimes IntDom a b
Ring : Ring (fieldOfFractionsSetoid IntDom) _+Q_ _*Q_
Ring = fieldOfFractionsRing IntDom
0Q :
0Q = Ring.0R Ring
Field : Field Ring
Field = fieldOfFractions IntDom
_<Q_ : Set
_<Q_ = fieldOfFractionsComparison IntDom OrderedRing
_=Q_ : Set
a =Q b = Setoid.__ (fieldOfFractionsSetoid IntDom) a b
reflQ : {x : } (x =Q x)
reflQ {x} = Equivalence.reflexive (Setoid.eq (fieldOfFractionsSetoid IntDom)) {x}
_≤Q_ : Set
a ≤Q b = (a <Q b) || (a =Q b)
negateQ :
negateQ a = Group.inverse (Ring.additiveGroup Ring) a
_-Q_ :
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
TotalOrder : SetoidTotalOrder (fieldOfFractionsOrder IntDom OrderedRing)
TotalOrder = fieldOfFractionsTotalOrder IntDom OrderedRing
open SetoidTotalOrder (fieldOfFractionsTotalOrder IntDom OrderedRing)
open SetoidPartialOrder partial
open Setoid (fieldOfFractionsSetoid IntDom)
negateQWellDefined : (a b : ) (a =Q b) (negateQ a) =Q (negateQ b)
negateQWellDefined a b a=b = inverseWellDefined (Ring.additiveGroup Ring) {a} {b} a=b
Ordered : OrderedRing Ring (fieldOfFractionsTotalOrder IntDom OrderedRing)
Ordered = fieldOfFractionsOrderedRing IntDom OrderedRing