{-# 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 _