Real numbers from Cauchy sequences #
This file defines ℝ
as the type of equivalence classes of Cauchy sequences of rational numbers.
This choice is motivated by how easy it is to prove that ℝ
is a commutative ring, by simply
lifting everything to ℚ
.
The facts that the real numbers are an Archimedean floor ring,
and a conditionally complete linear order,
have been deferred to the file Mathlib/Data/Real/Archimedean.lean
,
in order to keep the imports here simple.
The fact that the real numbers are a (trivial) *-ring has similarly been deferred to
Mathlib/Data/Real/Star.lean
.
The type ℝ
of real numbers constructed as equivalence classes of Cauchy sequences of rational
numbers.
- ofCauchy :: (
- cauchy : CauSeq.Completion.Cauchy abs
The underlying Cauchy completion
- )
Instances For
- AddCircle.instProperlyDiscontinuousVAddSubtypeAddOppositeRealMemAddSubgroupOpZmultiples
- AddGroupNorm.addGroupNormClass
- AddGroupNorm.funLike
- AddGroupSeminorm.addGroupSeminormClass
- AddGroupSeminorm.funLike
- Algebra.complexToReal
- Cardinal.instUncountableReal
- Complex.canLift
- Complex.instCoeReal
- Complex.instStarModuleReal
- ENNReal.hasMeasurablePow
- ENNReal.instPowReal
- EReal.canLift
- EReal.instCoeReal
- FiniteDimensional.rclike_to_real
- GroupNorm.funLike
- GroupNorm.groupNormClass
- GroupSeminorm.funLike
- GroupSeminorm.groupSeminormClass
- IsScalarTower.complexToReal
- Module.complexToReal
- NNReal.canLift
- NNReal.hasMeasurablePow
- NNReal.instCoeReal
- NNReal.instPowReal
- NonarchAddGroupNorm.funLike
- NonarchAddGroupNormClass.toAddGroupNormClass
- NonarchAddGroupSeminorm.funLike
- NonarchAddGroupSeminormClass.toAddGroupSeminormClass
- NormedAlgebra.complexToReal
- NormedSpace.complexToReal
- NormedSpace.toLocallyConvexSpace
- RCLike.algebraMapCoe
- RCLike.instOrderedSMulRealOfStarModuleOfIsScalarTowerOfSMulCommClass
- Real.Angle.instCoe
- Real.borelSpace
- Real.boundedSMul
- Real.commRing
- Real.denselyNormedField
- Real.field
- Real.hasLipschitzAdd
- Real.hasMeasurablePow
- Real.instAdd
- Real.instAddCommGroup
- Real.instAddCommMonoid
- Real.instAddCommSemigroup
- Real.instAddGroup
- Real.instAddLeftCancelSemigroup
- Real.instAddMonoid
- Real.instAddRightCancelSemigroup
- Real.instAddSemigroup
- Real.instArchimedean
- Real.instCommMonoid
- Real.instCommMonoidWithZero
- Real.instCommSemigroup
- Real.instCommSemiring
- Real.instCompleteSpace
- Real.instConditionallyCompleteLinearOrder
- Real.instDistribLattice
- Real.instDivInvMonoid
- Real.instDivisionRing
- Real.instFloorRing
- Real.instInfSet
- Real.instInhabited
- Real.instIntCast
- Real.instInv
- Real.instIsCompleteAbs
- Real.instIsDomain
- Real.instLE
- Real.instLT
- Real.instLinearOrderedAddCommGroup
- Real.instLinearOrderedField
- Real.instLinearOrderedRing
- Real.instLinearOrderedSemiring
- Real.instMax
- Real.instMin
- Real.instMonoid
- Real.instMonoidWithZero
- Real.instMul
- Real.instNNRatCast
- Real.instNatCast
- Real.instNeg
- Real.instOne
- Real.instPathConnectedSpace
- Real.instPow
- Real.instPreorder
- Real.instRCLike
- Real.instRatCast
- Real.instRepr
- Real.instRing
- Real.instSemigroup
- Real.instSemilatticeInf
- Real.instSemilatticeSup
- Real.instStrictOrderedCommRing
- Real.instSub
- Real.instSupSet
- Real.instZero
- Real.isScalarTower
- Real.lattice
- Real.leTotal_R
- Real.linearOrder
- Real.linearOrderedCommRing
- Real.measurableSpace
- Real.measureSpace
- Real.metricSpace
- Real.nontrivial
- Real.norm
- Real.normedAddCommGroup
- Real.normedCommRing
- Real.normedField
- Real.normedLatticeAddCommGroup
- Real.normedLinearOrderedField
- Real.orderedAddCommGroup
- Real.orderedAddCommMonoid
- Real.orderedCancelAddCommMonoid
- Real.orderedRing
- Real.orderedSemiring
- Real.partialOrder
- Real.pseudoMetricSpace
- Real.semiring
- Real.strictOrderedCommSemiring
- Real.strictOrderedRing
- Real.strictOrderedSemiring
- SMulCommClass.complexToReal
- Seminorm.instFunLike
- Seminorm.smul_nnreal_real
- StarModule.complexToReal
- UniformConvexSpace.toStrictConvexSpace
- instCStarRingReal
- instContinuousStarReal
- instHasSolidNormReal
- instInnerProductSpaceRealComplex
- instInnerProductSpaceRealComplex_1
- instIsOrderBornology
- instNoncompactSpaceReal
- instOrderTopologyReal
- instProperSpaceReal
- instSecondCountableTopologyReal
- instSeparatingDualRealOfTopologicalAddGroupOfContinuousSMulOfLocallyConvexSpaceOfT1Space
- instStarModuleNNRealReal
- instStarRingReal
- instTopologicalAddGroupReal
- instTopologicalDivisionRingReal
- instTopologicalRingReal
- instTrivialStarReal
- instUniformAddGroupReal
The type ℝ
of real numbers constructed as equivalence classes of Cauchy sequences of rational
numbers.
Equations
- termℝ = Lean.ParserDescr.node `termℝ 1024 (Lean.ParserDescr.symbol "ℝ")
The real numbers are isomorphic to the quotient of Cauchy sequences on the rationals.
Equations
- Real.equivCauchy = { toFun := Real.cauchy, invFun := Real.ofCauchy, left_inv := Real.equivCauchy.proof_1, right_inv := Real.equivCauchy.proof_2 }
Equations
- Real.instNatCast = { natCast := fun (n : ℕ) => { cauchy := ↑n } }
Equations
- Real.instIntCast = { intCast := fun (z : ℤ) => { cauchy := ↑z } }
Equations
- Real.instNNRatCast = { nnratCast := fun (q : ℚ≥0) => { cauchy := ↑q } }
Equations
- Real.instRatCast = { ratCast := fun (q : ℚ) => { cauchy := ↑q } }
Real.equivCauchy
as a ring equivalence.
Equations
- One or more equations did not get rendered due to their size.
Extra instances to short-circuit type class resolution.
These short-circuits have an additional property of ensuring that a computable path is found; if
Field ℝ
is found first, then decaying it to these typeclasses would result in a noncomputable
version of them.
Equations
- Real.instCommMonoidWithZero = inferInstance
Equations
- Real.instMonoidWithZero = inferInstance
Equations
- Real.instAddCommMonoid = inferInstance
Equations
- Real.instAddLeftCancelSemigroup = inferInstance
Equations
- Real.instAddRightCancelSemigroup = inferInstance
Equations
- Real.instAddCommSemigroup = inferInstance
Equations
- Real.instCommSemigroup = inferInstance
Equations
- Real.strictOrderedRing = inferInstance
Equations
- Real.strictOrderedCommSemiring = inferInstance
Equations
- Real.strictOrderedSemiring = inferInstance
Equations
- Real.orderedAddCommGroup = inferInstance
Equations
- Real.orderedCancelAddCommMonoid = inferInstance
Equations
- Real.orderedAddCommMonoid = inferInstance
Equations
- Real.instSemilatticeInf = inferInstance
Equations
- Real.instSemilatticeSup = inferInstance
Equations
Equations
Equations
- Real.instLinearOrderedRing = inferInstance
Equations
- Real.instLinearOrderedSemiring = inferInstance
Equations
- One or more equations did not get rendered due to their size.
Equations
- Real.instLinearOrderedAddCommGroup = inferInstance
Equations
- Real.instDivisionRing = inferInstance
Show an underlying cauchy sequence for real numbers.
The representative chosen is the one passed in the VM to Quot.mk
, so two cauchy sequences
converging to the same number may be printed differently.