Basic definitions around the rational numbers #
This file declares ℚ
notation for the rationals and defines the nonnegative rationals ℚ≥0
.
This file is eligible to upstreaming to Batteries.
Rational numbers, implemented as a pair of integers num / den
such that the
denominator is positive and the numerator and denominator are coprime.
Equations
- termℚ = Lean.ParserDescr.node `termℚ 1024 (Lean.ParserDescr.symbol "ℚ")
Nonnegative rational numbers.
Instances For
- DivisionSemiring.toNNRatAlgebra
- IsScalarTower.nnrat
- LinearOrderedSemifield.toPosSMulStrictMono_rat
- NNRat.canLift
- NNRat.instCanonicallyOrderedAdd
- NNRat.instCharZero
- NNRat.instContinuousSub
- NNRat.instDistribMulActionOfRat
- NNRat.instDistribSMul
- NNRat.instDiv
- NNRat.instFloorSemiring
- NNRat.instHasContinuousInv₀
- NNRat.instInv
- NNRat.instIsScalarTowerRight
- NNRat.instIsTopologicalSemiring
- NNRat.instMetricSpace
- NNRat.instMulActionOfRat
- NNRat.instNNRatCast
- NNRat.instNontrivial
- NNRat.instOrderBot
- NNRat.instOrderTopology
- NNRat.instOrderedSub
- NNRat.instSMulCommClass
- NNRat.instSMulCommClass'
- NNRat.instSemifield
- NNRat.instStarOrderedRing
- NNRat.instStarRing
- NNRat.instTrivialStar
- NNRat.instZPow
- NNRat.smulDivisionSemiring
- NNRatCast.toCoeHTCT
- NNRatCast.toCoeTail
- Nonneg.instNNRatSMul
- PosSMulMono.nnrat_of_rat
- PosSMulStrictMono.nnrat_of_rat
- RingHomClass.toLinearMapClassNNRat
- SMulCommClass.nnrat
- SMulCommClass.nnrat'
- StarAddMonoid.toStarModuleNNRat
- SubfieldClass.instSMulNNRat
- instArchimedeanNNRat
- instIsStrictOrderedRingNNRat
- instMulArchimedeanNNRat
- instNNRatCommSemiring
- instNNRatInhabited
- instNNRatLinearOrder
- instNNRatLinearOrderedCommGroupWithZero
- instNNRatSub
- selfAdjoint.instSMulNNRat
Nonnegative rational numbers.
Equations
- «termℚ≥0» = Lean.ParserDescr.node `«termℚ≥0» 1024 (Lean.ParserDescr.symbol "ℚ≥0")
Cast from NNRat
#
This section sets up the typeclasses necessary to declare the canonical embedding ℚ≥0
to any
semifield.
Typeclass for the canonical homomorphism ℚ≥0 → K
.
This should be considered as a notation typeclass. The sole purpose of this typeclass is to be
extended by DivisionSemiring
.
- nnratCast : ℚ≥0 → K
The canonical homomorphism
ℚ≥0 → K
.Do not use directly. Use the coercion instead.
Instances
- AddOpposite.instNNRatCast
- CauSeq.Completion.instNNRatCast
- Complex.instNNRatCast
- ENNReal.instNNRatCast
- MulOpposite.instNNRatCast
- NNRat.instNNRatCast
- NNReal.instNNRatCast
- Nonneg.instNNRatCast
- Quaternion.instNNRatCast
- Rat.instNNRatCast
- Real.instNNRatCast
- Shrink.instNNRatCast
- SubfieldClass.instNNRatCast
- ULift.instNNRatCast
- selfAdjoint.instNNRatCast
Equations
- NNRat.instNNRatCast = { nnratCast := fun (q : ℚ≥0) => q }
Canonical homomorphism from ℚ≥0
to a division semiring K
.
This is just the bare function in order to aid in creating instances of DivisionSemiring
.
Equations
Instances For
Equations
- NNRatCast.toCoeTail = { coe := NNRat.cast }
Equations
- NNRatCast.toCoeHTCT = { coe := NNRat.cast }
Equations
- Rat.instNNRatCast = { nnratCast := Subtype.val }