Dyadic numbers #
Dyadic numbers are obtained by localizing ℤ away from 2. They are the initial object in the category of rings with no 2-torsion.
Dyadic surreal numbers #
We construct dyadic surreal numbers using the canonical map from ℤ[2 ^ {-1}] to surreals.
As we currently do not have a ring structure on surreal we construct this map explicitly. Once we
have the ring structure, this map can be constructed directly by sending 2 ^ {-1} to half.
Embeddings #
The above construction gives us an abelian group embedding of ℤ into surreal. The goal is to
extend this to an embedding of dyadic rationals into surreal and use Cauchy sequences of dyadic
rational numbers to construct an ordered field embedding of ℝ into surreal.
For a natural number n, the pre-game pow_half (n + 1) is recursively defined as
{ 0 | pow_half n }. These are the explicit expressions of powers of half. By definition, we have
pow_half 0 = 0 and pow_half 1 = half and we prove later on that
pow_half (n + 1) + pow_half (n + 1) ≈ pow_half n.
Equations
- pgame.pow_half (n + 1) = pgame.mk punit punit 0 (λ (_x : punit), pgame.pow_half n)
- pgame.pow_half 0 = pgame.mk punit pempty 0 pempty.elim
For all natural numbers n, the pre-games pow_half n are numeric.
The surreal number half.
Equations
Powers of the surreal number half.
Equations
- surreal.pow_half n = ⟦⟨pgame.pow_half n, _⟩⟧
The additive monoid morphism dyadic_map sends ⟦⟨m, 2^n⟩⟧ to m • half ^ n.
Equations
- surreal.dyadic_map = {to_fun := λ (x : localization.away 2), localization.lift_on x (λ (x : ℤ) (y : ↥(submonoid.powers 2)), x • surreal.pow_half (submonoid.log y)) surreal.dyadic_map._proof_1, map_zero' := surreal.dyadic_map._proof_2, map_add' := surreal.dyadic_map._proof_3}
We define dyadic surreals as the range of the map dyadic_map.