Files
agdaproofs/Numbers/Rationals/Definition.agda
2019-11-04 07:34:59 +00:00

91 lines
2.6 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 Groups.Lemmas
open import Rings.Definition
open import Rings.Orders.Total.Definition
open import Rings.Orders.Partial.Definition
open import Fields.Fields
open import Numbers.Primes.PrimeNumbers
open import Setoids.Setoids
open import Setoids.Orders
open import Functions
open import Sets.EquivalenceRelations
module Numbers.Rationals.Definition 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
_+Q_ :
a +Q b = fieldOfFractionsPlus a b
_*Q_ :
a *Q b = fieldOfFractionsTimes a b
Ring : Ring fieldOfFractionsSetoid _+Q_ _*Q_
Ring = fieldOfFractionsRing
0Q :
0Q = Ring.0R Ring
injectionQ :
injectionQ z = z ,, (nonneg 1 , λ ())
Field : Field Ring
Field = fieldOfFractions
_<Q_ : Set
_<Q_ = fieldOfFractionsComparison
_=Q_ : Set
a =Q b = Setoid.__ fieldOfFractionsSetoid a b
reflQ : {x : } (x =Q x)
reflQ {x} = Equivalence.reflexive (Setoid.eq fieldOfFractionsSetoid) {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 fieldOfFractionsComparison
PartialOrder = fieldOfFractionsOrder
TotalOrder : SetoidTotalOrder fieldOfFractionsOrder
TotalOrder = fieldOfFractionsTotalOrder
open SetoidTotalOrder fieldOfFractionsTotalOrder
open SetoidPartialOrder partial
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
Ordered : TotallyOrderedRing POrdered
Ordered = fieldOfFractionsOrderedRing
charNot2 : ((Ring.1R Ring) +Q (Ring.1R Ring)) =Q (Ring.0R Ring) False
charNot2 ()