VR Cycle Blueprint

3 VR-Numbers

3.1 Position

VR-Numbers constructs the integers \(\mathbb {Z}_{\mathrm{VR}}\), rationals \(\mathbb {Q}_{\mathrm{VR}}\), reals \(\mathbb {R}_{\mathrm{VR}}\), and complex numbers \(\mathbb {C}_{\mathrm{VR}}\) as successive operational superstructures over the VR natural numbers \(\mathrm{VRObj}\). Each numerical domain is introduced as a formal language of expressions with an equivalence relation; no level uses ordered pairs as primitive objects. \(\emptyset \) is the base operation, not an ontological primitive; all number systems are operational constructions of increasing depth over it (§ VI.4 of the preprint).

The isomorphisms with mathlib’s Int, Rat, Real, and Complex are proved as explicit structure terms with named fields for bijectivity and operation preservation—the same pattern as VR_PA_iso in Chapter 2. The chapter establishes a structural axiom-profile boundary: \(\mathbb {Z}_{\mathrm{VR}}\) is constructive ([propext, Quot.sound]), while \(\mathbb {Q}_{\mathrm{VR}}\) and all subsequent levels require Classical.choice due to a structural dependency in mathlib’s rational arithmetic.

3.2 Integers \(\mathbb {Z}_{\mathrm{VR}}\)

Definition 36 Formal language of subtraction
#

IntExpr is an inductive type with a single constructor \(\texttt{mk} : \mathrm{VRObj} \to \mathrm{VRObj} \to \mathrm{IntExpr}\), representing the syntactic expression \(a \ominus b\) where \(a, b \in \mathrm{VRObj}\). Access is exclusively via pattern matching; no projections are named (§ VI.5, item 1 of the preprint).

Definition 37 Integer equivalence
#

\(\texttt{intEq}(a \ominus b,\, c \ominus d) \; \Longleftrightarrow \; \texttt{vadd}\, a\, d = \texttt{vadd}\, b\, c\). Equivalence of two subtraction expressions, mirroring the standard integer construction via natural-number pairs.

Theorem 38 intEq is an equivalence relation

Reflexivity uses T1 (commutativity). Symmetry uses T1 and transitivity in \(\mathrm{VRObj}\). Transitivity reduces to right cancellation of vadd, which is an explicit private lemma vadd_cancel (proved by induction on \(c\) using P4_succ_inj).

Definition 39 Operations on IntExpr

\((a \ominus b) \oplus (c \ominus d) := (a{+}c) \ominus (b{+}d)\); \((a \ominus b) \otimes (c \ominus d) := (a{\times }c {+} b{\times }d) \ominus (a{\times }d {+} b{\times }c)\); \(\ominus (a \ominus b) := b \ominus a\); \((a \ominus b) \ominus (c \ominus d) := (a{+}d) \ominus (b{+}c)\). Subtraction is definable as \(e \ominus f = e \oplus \ominus f\) (isub_via_iadd_ineg, by rfl).

Theorem 40 Left distributivity of vmul

\((a + b) \times c = a \times c + b \times c\) for all \(a, b, c : \mathrm{VRObj}\). Proved by induction on \(c\); uses the private shuffle lemma vadd_swap. This is left distributivity, absent from T1–T4 (§ VII of Chapter 2). Its explicit proof is a methodological observation (see Remark 65).

Each of ineg, iadd, imul, isub sends intEq-equivalent inputs to intEq-equivalent outputs. iadd_respects uses vadd_swap; imul_respects chains two private lemmas (imul_left_respects and imul_right_respects).

Definition 42 \(\mathbb {Z}_{\mathrm{VR}}\) and lifted operations

\(\mathbb {Z}_{\mathrm{VR}} := \mathrm{IntExpr} / \texttt{intEq}\) via Quotient. Operations iaddQ, imulQ, inegQ, isubQ are lifted via Quotient.lift₂ using the well-definedness theorems; each lift invokes Quot.sound. The natural number \(n\) embeds as \([n \ominus \emptyset ]\) via embedN.

Theorem 43 Canonical form

Every IntExpr is intEq-equivalent to either \((n \ominus \emptyset )\) (non-negative) or \((\emptyset \ominus n)\) (negative). Proved via the private vadd_comparable lemma (constructive totality of the natural order on VRObj).

Definition 44 Isomorphism type \(\mathbb {Z}_{\mathrm{VR}} \cong \mathbb {Z}\)
#

The structure IntVRIntIso has seven fields: forward (\(\mathbb {Z}_{\mathrm{VR}} \to \mathbb {Z}\)), backward (\(\mathbb {Z} \to \mathbb {Z}_{\mathrm{VR}}\)), bijectivity (right_inv, left_inv), and preservation of iaddQ, imulQ, inegQ.

Theorem 45 Theorem II.6 — \(\mathbb {Z}_{\mathrm{VR}} \cong \mathbb {Z}\)

The term Theorem_II_6_IntVR_Int : IntVRIntIso is constructed with forward mapping \([a \ominus b] \mapsto \texttt{O\_ inv}(a) - \texttt{O\_ inv}(b)\) and backward mapping via Int.ofNat/Int.negSucc branches. Well-definedness: private bridge lemmas O_inv_vadd and O_inv_vmul. Bijectivity: right_inv_int and left_inv_int; the latter splits by by_cases on a decidable inequality (no Classical.choice). Preservation of operations: by push_cast + ring after rewriting with O_inv_vadd/O_inv_vmul.

Axiom profile: [propext, Quot.sound] (no Classical.choice).

3.3 Rationals \(\mathbb {Q}_{\mathrm{VR}}\)

Definition 46 Formal language of division

RatExpr is an inductive type with constructor \(\texttt{mk} : \mathbb {Z}_{\mathrm{VR}} \to \mathbb {Z}_{\mathrm{VR}} \to \mathrm{RatExpr}\), representing \(a \oslash b\). The subtype \(\texttt{NonZeroRatExpr} := \{ e : \mathrm{RatExpr} \mid e.\texttt{snd} \ne 0_{\mathbb {Z}}\} \) restricts to expressions with nonzero denominator. Access via pattern matching only; no named projections in the sense of § VI.5 item 1.

Definition 47 Rational equivalence
#

\(\texttt{ratEq}(a \oslash b,\, c \oslash d) \; \Longleftrightarrow \; \texttt{imulQ}\, a\, d = \texttt{imulQ}\, b\, c\) (cross-multiplication on \(\mathbb {Z}_{\mathrm{VR}}\)). Defined on NonZeroRatExpr.

Theorem 48 ratEq is an equivalence relation

Reflexivity: imulQ_comm. Symmetry: swap and use commutativity. Transitivity: cancel the common factor via the private Int_mul_right_cancel, which avoids mul_right_cancel₀ (the latter pulls Classical.choice through mathlib’s integral domain instance). All three proofs stay in [propext, Quot.sound].

Definition 49 Operations on \(\mathrm{NonZeroRatExpr}\) and \(\mathbb {Q}_{\mathrm{VR}}\)

Addition, multiplication, subtraction, and division on NonZeroRatExpr follow the standard cross-multiplication formulas; denominators are nonzero by imulQ_ne_zero. Division has a junk value \(p / 0_{\mathbb {Q}} := 0_{\mathbb {Q}}\). All four operations lift to \(\mathbb {Q}_{\mathrm{VR}}\) via Quotient.lift₂ using their respective respects theorems.

Definition 50 \(\mathbb {Q}_{\mathrm{VR}}\) and infrastructure

\(\mathbb {Q}_{\mathrm{VR}} := \mathrm{NonZeroRatExpr} / \texttt{ratEq}\). Zero element \(0_{\mathbb {Q}} := [0_{\mathbb {Z}} \oslash 1_{\mathbb {Z}}]\). Nonzero predicate nonZeroQ is defined via Quotient.lift using propext for well-definedness. Integer \(a \in \mathbb {Z}_{\mathrm{VR}}\) embeds as \([a \oslash 1_{\mathbb {Z}}]\) via embedZ. The structure RatVRRatIso has ten fields: bijection, preservation of \(0\), \(1\), addition, multiplication, subtraction, and division.

Theorem 51 Theorem III.6 — \(\mathbb {Q}_{\mathrm{VR}} \cong \mathbb {Q}\)

The term Theorem_III_6_RatVR_Rat : RatVRRatIso with forwardQ(\([a \oslash b]\)) \(:= \texttt{forward}(a) \mathbin {/\! \! .} \texttt{forward}(b)\) (mathlib’s Rat.divInt) and backwardQ(\(r\)) \(:= [\texttt{backward}(r.\texttt{num}) \oslash \texttt{backward}({\uparrow }r.\texttt{den})]\). Operation preservation uses Rat.divInt_add_divInt, Rat.divInt_mul_divInt, etc.

Axiom profile: [propext, Classical.choice, Quot.sound]. Classical.choice enters here from the target type Rat: Lean 4 Core’s Rat.add normalises via Nat.gcd, whose proof chain depends on Classical.choice. This is structural and unavoidable; see Remark 62.

Theorem 52 Canonical form of \(\mathbb {Q}_{\mathrm{VR}}\)

Every \(q \in \mathbb {Q}_{\mathrm{VR}}\) equals \(\texttt{backwardQ}(\texttt{forwardQ}(q))\), where \(\texttt{forwardQ}(q)\) is already in canonical form as a Rat (denominator positive, numerator and denominator coprime by Rat.reduced). The three canonicity properties from the preprint follow from this equality.

3.4 Reals \(\mathbb {R}_{\mathrm{VR}}\)

Definition 53 Order and absolute value on \(\mathbb {Q}_{\mathrm{VR}}\)

\(p {\lt} q \; \Longleftrightarrow \; \texttt{forwardQ}(p) {\lt} \texttt{forwardQ}(q)\) in \(\mathbb {Q}\). \(|p| := \texttt{backwardQ}(|\texttt{forwardQ}(p)|)\). Both are transferred through the isomorphism; decidability of \({\lt}\) is inherited from DecidableEq on \(\mathbb {Q}\).

Definition 54 Cauchy sequences

\(\texttt{isFundamentalVR}(a)\) holds when for every \(\varepsilon {\gt} 0_{\mathbb {Q}}\) there exists \(N\) such that \(|a(m) - a(n)| {\lt} \varepsilon \) for all \(m, n \ge N\). \(\texttt{cauchyEqVR}(a, b)\): for every \(\varepsilon {\gt} 0_{\mathbb {Q}}\) there exists \(N\) such that \(|a(n) - b(n)| {\lt} \varepsilon \) for all \(n \ge N\). Both are stated directly over \(\mathbb {Q}_{\mathrm{VR}}\) using ltRatVR and absRatVR.

Theorem 55 cauchyEqVR is an equivalence relation

Reflexivity: ratSub_self + absRatVR_zero. Symmetry: absRatVR_sub_comm. Transitivity: triangle inequality via \(\varepsilon /2\)-splitting (half_exists). All proofs lift through forwardQ/forwardQ_right_inv to \(\mathbb {Q}\) identities.

\(\texttt{FundSeqVR}\) is the subtype of isFundamentalVR sequences. \(\mathbb {R}_{\mathrm{VR}} := \texttt{FundSeqVR} / \texttt{cauchyEqVR}\). Operations realAdd, realSub, realMul are lifted via Quotient.lift₂; Cauchy-preservation and well-definedness are private. Division realDiv is noncomputable: defined as \(\texttt{backwardR}(\texttt{forwardR}(p) / \texttt{forwardR}(q))\) through the isomorphism. Every rational \(q \in \mathbb {Q}_{\mathrm{VR}}\) embeds as the constant sequence via embedQ. The structure RealVRRealIso has ten fields: bijection and preservation of \(0\), \(1\), addition, multiplication, subtraction, division.

Theorem 57 Theorem IV.7 — \(\mathbb {R}_{\mathrm{VR}} \cong \mathbb {R}\)

The term Theorem_IV_7_RealVR_Real : RealVRRealIso with forwardR(\(\llbracket a \rrbracket \)) \(:= \texttt{Real.mk}(\texttt{forwardQ} \circ a)\) and backwardR(\(r\)) \(:= \llbracket \texttt{backwardQ} \circ r.\texttt{cauchy} \rrbracket \). Well-definedness: private bridge lemmas translating between IsCauSeq (mathlib) and isFundamentalVR. Operation preservation: mk_eq_of_pointwise + Real.mk_add/mul/neg.

Axiom profile: [propext, Classical.choice, Quot.sound] (inherited from \(\mathbb {Q}_{\mathrm{VR}}\)).

Remark 58 \(\mathbb {R}_{\mathrm{VR}}\) and computable reals
#

The preprint (§ IV.1) restricts Cauchy sequences to those with finite algorithmic descriptions. Lean 4 does not distinguish computable from non-computable functions at the type level: the type \(\mathbb {N} \to \mathbb {Q}_{\mathrm{VR}}\) includes all total functions. The operational restriction is a metatheoretic claim, not expressible as a Lean type predicate. The formal isomorphism Theorem_IV_7_RealVR_Real is proved without this restriction; the computable-reals interpretation is the operational reading of the same structure.

3.5 Complex \(\mathbb {C}_{\mathrm{VR}}\)

Definition 59 \(\mathbb {C}_{\mathrm{VR}}\)
#

\(\texttt{ComplexVR}\) is a structure with two fields \(\texttt{fst} : \mathbb {R}_{\mathrm{VR}}\) (the real component) and \(\texttt{snd} : \mathbb {R}_{\mathrm{VR}}\) (the imaginary component).

\((a \oplus b\mathbf{i}) \oplus _{\mathbb {C}} (c \oplus d\mathbf{i}) := (a + c) \oplus (b + d)\mathbf{i}\) (cadd). \((a \oplus b\mathbf{i}) \otimes _{\mathbb {C}} (c \oplus d\mathbf{i}) := (a{\times }c \ominus b{\times }d) \oplus (a{\times }d \oplus b{\times }c)\mathbf{i}\) (cmul; the term \(\ominus (b {\times } d)\) encodes \(i \otimes i = \ominus 1\)). Conjugation: \(\overline{a \oplus b\mathbf{i}} := a \oplus (\ominus b)\mathbf{i}\) (cconj). Modulus cabs and division cdiv are noncomputable, defined via forwardC and real/complex arithmetic in mathlib. The structure ComplexVRComplexIso has nine fields: bijection and preservation of \(0\), \(1\), addition, multiplication, conjugation.

Theorem 61 Theorem V.8 — \(\mathbb {C}_{\mathrm{VR}} \cong \mathbb {C}\)

The term Theorem_V_8_ComplexVR_Complex : ComplexVRComplexIso with forwardC(\(p\)) \(:= \langle \texttt{forwardR}(p.\texttt{fst}),\, \texttt{forwardR}(p.\texttt{snd}) \rangle \) (no quotient: ComplexVR is a plain structure). Multiplication preservation: two applications of fR_sub/fR_mul. Conjugation preservation: Complex.star_def + fR_zero for the sign-flip in the imaginary component.

Axiom profile: [propext, Classical.choice, Quot.sound] (inherited from \(\mathbb {R}_{\mathrm{VR}}\)).

3.6 Axiom profile boundary

Remark 62 Classical.choice enters at \(\mathbb {Q}\)
#

The classical-free boundary in VR-Numbers lies between \(\mathbb {Z}_{\mathrm{VR}}\) and \(\mathbb {Q}_{\mathrm{VR}}\):

  • \(\mathbb {Z}_{\mathrm{VR}}\) (§ II – § III, objects through Theorem_II_6_IntVR_Int): Axiom profile: [propext, Quot.sound].

  • \(\mathbb {Q}_{\mathrm{VR}}\) and all subsequent levels: Axiom profile: [propext, Classical.choice, Quot.sound].

The cause is structural: Lean 4 Core’s Rat.add normalises via Nat.gcd coprimality, whose proof chain depends on Classical.choice. Confirmed via #print axioms Theorem_III_6_RatVR_Rat.

This dependency is in the target type Rat, not in any VR-Numbers proof technique: replacing individual lemmas or tactics cannot remove it. The boundary is a structural fact about how mathlib encodes rational arithmetic, not a defect of the VR construction.

3.7 The § VI.5 list of non-primitive objects

Remark 63 Six objects not introduced as primitive objects
#

Following § VI.5 of the preprint, the following objects are absent as independent objects: (1) ordered pairs (both IntExpr.mk and RatExpr.mk are formal binary operators accessed via pattern matching only); (2) negative numbers (classes of \(a \ominus b\), not a distinct primitive); (3) fractions (classes of \(a \oslash b\) with \(b \ne 0\)); (4) real numbers (equivalence classes of Cauchy sequences of rationals); (5) complex numbers (pairs of reals, but not primitive pairs—a plain Lean structure whose fields are real components); (6) zero (emerges as the class \([0_{\mathbb {Z}} \oslash 1_{\mathbb {Z}}]\) or as the constant sequence at \(0_{\mathbb {Q}}\), not as a primitive object). Each level is an operational construction of increasing depth over \(\emptyset \).

3.8 Methodological observations

The following twelve remarks document observations from the formalisation that sharpen or extend the claims of the preprint (Part VIII, v1.0.2).

Remark 64 O1 — vadd_cancel as explicit lemma
#

Transitivity of intEq reduces to right cancellation of vadd: if \(\texttt{vadd}\, a\, c = \texttt{vadd}\, b\, c\) then \(a = b\). This cancellation law (vadd_cancel, private) is proved by induction on \(c\) using P4_succ_inj. The preprint’s “direct verification” conceals this dependency; the formalisation makes it explicit.

Remark 65 O2 — Left distributivity not in T1–T4
#

T3 (T3_vmul_distrib) gives right distributivity \(a \times (b + c) = a \times b + a \times c\). Left distributivity \((a + b) \times c = a \times c + b \times c\) requires a separate inductive argument (vmul_distrib_right). Its absence from T1–T4 is a formalization finding parallel to Remark O1.

Remark 66 O3 — Quot.sound first appears at \(\mathbb {Z}_{\mathrm{VR}}\)
#

Quot.sound is the only axiom beyond Part I’s axiom-free profile that enters VR-Numbers. It appears at the first quotient construction (IntVR) and is unavoidable: without it, equivalence classes would be distinguishable as terms, destroying the mathematical content of the quotient. Quot.sound is not Classical.choice and does not break computability.

Remark 67 O4 — propext from Setoid API
#

propext appears in \(\mathbb {Z}_{\mathrm{VR}}\) (profile [propext, Quot.sound]) because Lean’s Setoid API uses it internally. It is not invoked as an inference principle in any VR proof; it surfaces as a kernel-level dependency of the quotient infrastructure.

Remark 68 O5 — by_cases without Classical.choice
#

The left-inverse proof (left_inv_int) splits on whether \(\texttt{O\_ inv}(b) \le \texttt{O\_ inv}(a)\) using by_cases. This is a decidable inequality on Nat (via instDecidableNatLe) and does not invoke Classical.choice. The [propext, Quot.sound] profile of Theorem_II_6_IntVR_Int is preserved.

Remark 69 O6 — Int_mul_right_cancel avoids Classical.choice
#

Transitivity of ratEq requires right cancellation in \(\mathbb {Z}\). The standard mathlib lemma mul_right_cancel₀ pulls Classical.choice via the integral domain instance. The private Int_mul_right_cancel avoids this by the route \((a - b) \times c = 0 \Rightarrow \texttt{natAbs}(a - b) \times \texttt{natAbs}(c) = 0 \Rightarrow a = b\), using only core lemmas Int.natAbs_mul, Int.natAbs_eq_zero, Nat.mul_eq_zero, and sub_eq_zero. Profile: [propext, Quot.sound].

Remark 70 O7 — Classical.choice structural in Rat.add
#

Classical.choice in \(\mathbb {Q}_{\mathrm{VR}}\) is inherited from the target type Rat, not introduced by any VR tactic or lemma. Confirmed by #print axioms Rat.add (no mathlib import needed). No rewriting of individual lemmas in VR-Numbers can remove it.

Remark 71 O8 — Mathlib used as black box
#

Each isomorphism theorem targets mathlib’s Int, Rat, Real, Complex as destinations, not re-derived structures. VR-Numbers is built on mathlib, not parallel to it. The isomorphisms provide the operational superstructure; mathlib provides the classical substrate.

Remark 72 O9 — Pairs absent as primitive objects (§ VI.5)
#

Neither IntExpr nor RatExpr has named accessor functions corresponding to “first” and “second” components. Lean projections (.1, .2) exist but are not used; all access is via pattern matching. The constructors .mk denote syntactic juxtaposition under a binary operator (\(\ominus \), \(\oslash \)), not ordered-pair structure.

Remark 73 O10 — Operational depth (§ VI.4)
#

The VR-Numbers hierarchy has three operational depths above \(\emptyset \): depth 1 (IntExpr: formal subtractions of VRObj); depth 2 (RatExpr: formal divisions of \(\mathbb {Z}_{\mathrm{VR}}\)); depth 3 (FundSeqVR: sequences of \(\mathbb {Q}_{\mathrm{VR}}\) values). \(\mathbb {C}_{\mathrm{VR}}\) is depth 3 (a plain structure of two \(\mathbb {R}_{\mathrm{VR}}\) values, no additional quotienting).

Remark 74 O11 — Computable reals: metatheoretic restriction
#

The preprint restricts Cauchy sequences in \(\mathbb {R}_{\mathrm{VR}}\) to those with finite algorithmic descriptions (§ IV.1). This restriction cannot be expressed as a Lean 4 type predicate: the type \(\mathbb {N} \to \mathbb {Q}_{\mathrm{VR}}\) includes all total functions. Theorem_IV_7_RealVR_Real proves the structural isomorphism without this restriction. The computable-reals reading is the operational interpretation of the isomorphism, verified at the metatheoretic level.

Remark 75 O12 — Two-dimensionality and the joining rule are separate
#

The two-dimensionality of \(\mathbb {C}_{\mathrm{VR}}\) is carried by its two real components fst, snd, not by posited ordered pairs. The algebraic coupling between the components—the joining rule \(i \otimes i := \ominus 1\)—is an independent postulate encoded in cmul via the term \(\ominus (b \times d)\) in the real part. Without cmul, \(\mathbb {C}_{\mathrm{VR}}\) is two independent copies of \(\mathbb {R}_{\mathrm{VR}}\); cmul makes it a field. The preprint (§ V.9) distinguishes these two contributions explicitly.

3.9 Axiom profile

Axiom profile: [propext, Quot.sound] for \(\mathbb {Z}_{\mathrm{VR}}\) and all objects through Theorem_II_6_IntVR_Int. Axiom profile: [propext, Classical.choice, Quot.sound] for \(\mathbb {Q}_{\mathrm{VR}}\) and all objects through Theorem_V_8_ComplexVR_Complex.

The boundary is structural: it lies in Lean 4 Core’s Rat.add, not in any VR construction choice. The proof techniques of VR-Numbers (quotient lifting, bijection via O/O_inv, operation preservation via ring/omega) do not introduce Classical.choice independently.

3.10 References

The preprint for this chapter is VR-Numbers, v1.0.2 (23 May 2026).

The Lean 4 formalisation is archived at VR-Numbers Lean, v1.0.0 (23 May 2026), git tag v1.1-vr-numbers.