TauLib · API Book I

TauLib.BookI.Orbit.Countability

TauLib.Orbit.Countability

Each orbit ray is countable (bijection with Nat), and Obj(τ) is countable.

Registry Cross-References

  • [I.P04] Orbit Countability — orbit_countable, tauObj_countable

Mathematical Content

Each orbit ray O_g is in bijection with Nat via the map n ↦ ⟨g, n⟩. The full universe Obj(τ) is countable: we construct an injection TauObj → Nat.


Tau.Orbit.orbitEnumerate

source **def Tau.Orbit.orbitEnumerate (g : Kernel.Generator)

(_hg : g ≠ Kernel.Generator.omega)

(n : Nat) :Kernel.TauObj**

Canonical enumeration of orbit ray O_g: n ↦ ⟨g, n⟩. Equations

  • Tau.Orbit.orbitEnumerate g _hg n = { seed := g, depth := n } Instances For

Tau.Orbit.orbit_enumerate_injective

source **theorem Tau.Orbit.orbit_enumerate_injective (g : Kernel.Generator)

(hg : g ≠ Kernel.Generator.omega)

(n m : Nat)

(h : orbitEnumerate g hg n = orbitEnumerate g hg m) :n = m**

[I.P04 part 1] Orbit enumeration is injective.


Tau.Orbit.orbit_enumerate_surjective

source **theorem Tau.Orbit.orbit_enumerate_surjective (g : Kernel.Generator)

(hg : g ≠ Kernel.Generator.omega)

(x : Kernel.TauObj)

(hx : OrbitRay g x) :∃ (n : Nat), orbitEnumerate g hg n = x**

[I.P04 part 2] Orbit enumeration hits every orbit ray element.


Tau.Orbit.orbit_enumerate_in_ray

source **theorem Tau.Orbit.orbit_enumerate_in_ray (g : Kernel.Generator)

(hg : g ≠ Kernel.Generator.omega)

(n : Nat) :OrbitRay g (orbitEnumerate g hg n)**

Orbit enumeration produces elements in the orbit ray.


Tau.Orbit.tauObj_encode

source def Tau.Orbit.tauObj_encode (x : Kernel.TauObj) :Nat

Encode a TauObj as a natural number: 5 * depth + seed_index. This gives a computable injection TauObj → Nat. Equations

  • Tau.Orbit.tauObj_encode x = 5 * x.depth + x.seed.toNat Instances For

Tau.Orbit.tauObj_encode_injective

source **theorem Tau.Orbit.tauObj_encode_injective (x y : Kernel.TauObj)

(h : tauObj_encode x = tauObj_encode y) :x = y**

The encoding is injective: distinct TauObjs yield distinct codes.


Tau.Orbit.tauObj_countable

source theorem Tau.Orbit.tauObj_countable :∃ (f : Kernel.TauObj → Nat), Function.Injective f

[I.P04] Obj(τ) is countable: there exists an injection TauObj → Nat.