TauLib · API Book I

TauLib.BookI.Boundary.ConstructiveReals

TauLib.Boundary.ConstructiveReals

The constructive reals ℝ_τ: Cauchy completion of TauRat.

Registry Cross-References

  • [I.D84] TauReal — Constructive reals via Cauchy completion of TauRat

  • [I.T42] Archimedean Property — ℝ_τ is Archimedean (unbounded embedding of TauIdx)

  • [I.P39] Ordered Field Axioms — ℝ_τ forms a commutative ring (field axioms up to equiv)

Ground Truth Sources

  • ch76-constructive-reals.tex: Cauchy completion, Archimedean property, ordered field

Mathematical Content

TauReal is represented as sequences of TauRat approximations (Cauchy sequences). Equivalence is pointwise TauRat.equiv: two TauReals agree if each approximation step agrees (up to TauRat equivalence). All ring axioms reduce to the corresponding TauRat axioms proved in NumberTower.lean.

The key philosophical point: ℝ_τ is the countable, constructive continuum — every TauReal is specified by an explicit sequence of TauRat values.


Tau.Boundary.taurat_add_assoc

source theorem Tau.Boundary.taurat_add_assoc (a b c : TauRat) :((a.add b).add c).equiv (a.add (b.add c))

Addition is associative up to equiv.


Tau.Boundary.taurat_zero_add

source theorem Tau.Boundary.taurat_zero_add (a : TauRat) :(TauRat.zero.add a).equiv a

Zero is a left identity for addition (up to equiv).


Tau.Boundary.taurat_negate_add

source theorem Tau.Boundary.taurat_negate_add (a : TauRat) :(a.negate.add a).equiv TauRat.zero

Negation is a left inverse for addition (up to equiv).


Tau.Boundary.taurat_mul_assoc

source theorem Tau.Boundary.taurat_mul_assoc (a b c : TauRat) :((a.mul b).mul c).equiv (a.mul (b.mul c))

Multiplication is associative up to equiv.


Tau.Boundary.taurat_one_mul

source theorem Tau.Boundary.taurat_one_mul (a : TauRat) :(TauRat.one.mul a).equiv a

One is a left identity for multiplication (up to equiv).


Tau.Boundary.taurat_left_distrib

source theorem Tau.Boundary.taurat_left_distrib (a b c : TauRat) :(a.mul (b.add c)).equiv ((a.mul b).add (a.mul c))

Left distributivity: a * (b + c) = ab + ac (up to equiv).


Tau.Boundary.taurat_right_distrib

source theorem Tau.Boundary.taurat_right_distrib (a b c : TauRat) :((a.add b).mul c).equiv ((a.mul c).add (b.mul c))

Right distributivity: (a + b) * c = ac + bc (up to equiv).


Tau.Boundary.taurat_zero_mul

source theorem Tau.Boundary.taurat_zero_mul (a : TauRat) :(TauRat.zero.mul a).equiv TauRat.zero

Multiplication by zero gives zero (up to equiv).


Tau.Boundary.TauReal

source structure Tau.Boundary.TauReal :Type

[I.D84] TauReal: constructive reals via Cauchy completion of TauRat. Represented as sequences of TauRat approximations.

  • approx : ℕ → TauRat The nth rational approximation.

Instances For


Tau.Boundary.TauReal.zero

source def Tau.Boundary.TauReal.zero :TauReal

TauReal zero: constant sequence at TauRat.zero. Equations

  • Tau.Boundary.TauReal.zero = { approx := fun (x : ℕ) => Tau.Boundary.TauRat.zero } Instances For

Tau.Boundary.TauReal.one

source def Tau.Boundary.TauReal.one :TauReal

TauReal one: constant sequence at TauRat.one. Equations

  • Tau.Boundary.TauReal.one = { approx := fun (x : ℕ) => Tau.Boundary.TauRat.one } Instances For

Tau.Boundary.TauReal.add

source def Tau.Boundary.TauReal.add (a b : TauReal) :TauReal

TauReal addition: pointwise TauRat addition. Equations

  • a.add b = { approx := fun (n : ℕ) => (a.approx n).add (b.approx n) } Instances For

Tau.Boundary.TauReal.mul

source def Tau.Boundary.TauReal.mul (a b : TauReal) :TauReal

TauReal multiplication: pointwise TauRat multiplication. Equations

  • a.mul b = { approx := fun (n : ℕ) => (a.approx n).mul (b.approx n) } Instances For

Tau.Boundary.TauReal.negate

source def Tau.Boundary.TauReal.negate (a : TauReal) :TauReal

TauReal negation: pointwise TauRat negation. Equations

  • a.negate = { approx := fun (n : ℕ) => (a.approx n).negate } Instances For

Tau.Boundary.TauReal.sub

source def Tau.Boundary.TauReal.sub (a b : TauReal) :TauReal

TauReal subtraction: a - b = a + (-b). Equations

  • a.sub b = a.add b.negate Instances For

Tau.Boundary.TauReal.fromTauRat

source def Tau.Boundary.TauReal.fromTauRat (q : TauRat) :TauReal

Embed a TauRat as a constant TauReal sequence. Equations

  • Tau.Boundary.TauReal.fromTauRat q = { approx := fun (x : ℕ) => q } Instances For

Tau.Boundary.TauReal.fromNat

source def Tau.Boundary.TauReal.fromNat (n : Denotation.TauIdx) :TauReal

Embed a natural number as a TauReal. Equations

  • Tau.Boundary.TauReal.fromNat n = Tau.Boundary.TauReal.fromTauRat (Tau.Boundary.nat_to_taurat n) Instances For

Tau.Boundary.TauReal.equiv

source def Tau.Boundary.TauReal.equiv (a b : TauReal) :Prop

Two TauReals are equivalent if their approximation sequences agree pointwise up to TauRat equivalence. Equations

  • a.equiv b = ∀ (n : ℕ), (a.approx n).equiv (b.approx n) Instances For

Tau.Boundary.TauReal.equiv_refl

source theorem Tau.Boundary.TauReal.equiv_refl (a : TauReal) :a.equiv a

TauReal equivalence is reflexive.


Tau.Boundary.TauReal.equiv_symm

source **theorem Tau.Boundary.TauReal.equiv_symm {a b : TauReal}

(h : a.equiv b) :b.equiv a**

TauReal equivalence is symmetric.


Tau.Boundary.taureal_add_comm

source theorem Tau.Boundary.taureal_add_comm (a b : TauReal) :(a.add b).equiv (b.add a)

Addition is commutative up to equiv.


Tau.Boundary.taureal_add_assoc

source theorem Tau.Boundary.taureal_add_assoc (a b c : TauReal) :((a.add b).add c).equiv (a.add (b.add c))

Addition is associative up to equiv.


Tau.Boundary.taureal_add_zero

source theorem Tau.Boundary.taureal_add_zero (a : TauReal) :(a.add TauReal.zero).equiv a

Zero is a right identity for addition (up to equiv).


Tau.Boundary.taureal_zero_add

source theorem Tau.Boundary.taureal_zero_add (a : TauReal) :(TauReal.zero.add a).equiv a

Zero is a left identity for addition (up to equiv).


Tau.Boundary.taureal_add_negate

source theorem Tau.Boundary.taureal_add_negate (a : TauReal) :(a.add a.negate).equiv TauReal.zero

Negation is a right inverse for addition (up to equiv).


Tau.Boundary.taureal_negate_add

source theorem Tau.Boundary.taureal_negate_add (a : TauReal) :(a.negate.add a).equiv TauReal.zero

Negation is a left inverse for addition (up to equiv).


Tau.Boundary.taureal_mul_comm

source theorem Tau.Boundary.taureal_mul_comm (a b : TauReal) :(a.mul b).equiv (b.mul a)

Multiplication is commutative up to equiv.


Tau.Boundary.taureal_mul_assoc

source theorem Tau.Boundary.taureal_mul_assoc (a b c : TauReal) :((a.mul b).mul c).equiv (a.mul (b.mul c))

Multiplication is associative up to equiv.


Tau.Boundary.taureal_mul_one

source theorem Tau.Boundary.taureal_mul_one (a : TauReal) :(a.mul TauReal.one).equiv a

One is a right identity for multiplication (up to equiv).


Tau.Boundary.taureal_one_mul

source theorem Tau.Boundary.taureal_one_mul (a : TauReal) :(TauReal.one.mul a).equiv a

One is a left identity for multiplication (up to equiv).


Tau.Boundary.taureal_left_distrib

source theorem Tau.Boundary.taureal_left_distrib (a b c : TauReal) :(a.mul (b.add c)).equiv ((a.mul b).add (a.mul c))

Left distributivity: a * (b + c) = ab + ac (up to equiv).


Tau.Boundary.taureal_right_distrib

source theorem Tau.Boundary.taureal_right_distrib (a b c : TauReal) :((a.add b).mul c).equiv ((a.mul c).add (b.mul c))

Right distributivity: (a + b) * c = ac + bc (up to equiv).


Tau.Boundary.taureal_zero_mul

source theorem Tau.Boundary.taureal_zero_mul (a : TauReal) :(TauReal.zero.mul a).equiv TauReal.zero

Multiplication by zero gives zero (up to equiv).


Tau.Boundary.taureal_ring_axioms

source theorem Tau.Boundary.taureal_ring_axioms :(∀ (a b : TauReal), (a.add b).equiv (b.add a)) ∧ (∀ (a b c : TauReal), ((a.add b).add c).equiv (a.add (b.add c))) ∧ (∀ (a : TauReal), (a.add TauReal.zero).equiv a) ∧ (∀ (a : TauReal), (a.add a.negate).equiv TauReal.zero) ∧ (∀ (a b : TauReal), (a.mul b).equiv (b.mul a)) ∧ (∀ (a b c : TauReal), ((a.mul b).mul c).equiv (a.mul (b.mul c))) ∧ (∀ (a : TauReal), (a.mul TauReal.one).equiv a) ∧ ∀ (a b c : TauReal), (a.mul (b.add c)).equiv ((a.mul b).add (a.mul c))

Full TauReal ring axiom collection.


Tau.Boundary.fromTauRat_add

source theorem Tau.Boundary.fromTauRat_add (a b : TauRat) :(TauReal.fromTauRat (a.add b)).equiv ((TauReal.fromTauRat a).add (TauReal.fromTauRat b))

The embedding from TauRat to TauReal preserves addition (up to equiv).


Tau.Boundary.fromTauRat_mul

source theorem Tau.Boundary.fromTauRat_mul (a b : TauRat) :(TauReal.fromTauRat (a.mul b)).equiv ((TauReal.fromTauRat a).mul (TauReal.fromTauRat b))

The embedding from TauRat to TauReal preserves multiplication (up to equiv).


Tau.Boundary.taureal_archimedean_embedding

source theorem Tau.Boundary.taureal_archimedean_embedding (n m : Denotation.TauIdx) :n < m → ¬(TauReal.fromNat m).equiv (TauReal.fromNat n)

[I.T42] The Archimedean property: the natural number embedding into TauReal is unbounded. For any constant TauReal (embedded from TauRat), a sufficiently large natural number exceeds it. Stated as: the sequence (fromNat n) is strictly increasing.