Dyadic' games #
A combinatorial game that is both Short and Numeric is called dyadic. We show that the dyadic
games are in correspondence with the Dyadic' rationals, in the sense that there exists a map
Dyadic'.toIGame such that:
Dyadic'.toIGame xis always a dyadic game.- For any dyadic game
y, there existsxwithDyadic'.toIGame x ≈ y. - The game
Dyadic'.toGame xis equivalent to theRatCastofx.
Future projects #
Since dyadic rationals are easy to do computations with, there are some projects we could pursue in the future:
- Define the birthday of a dyadic number computably, prove that
x.birthday = x.toIGame.birthday. - Define the simplest dyadic number between two others computably, use that to define
IGame.toDyadic.
Upper and lower dyadic fractions #
For a dyadic number m / n, returns (m - 1) / n.
Equations
- x.lower = Dyadic'.mkRat (x.num - 1) ⋯
Instances For
For a dyadic number m / n, returns (m + 1) / n.
Equations
- x.upper = Dyadic'.mkRat (x.num + 1) ⋯
Instances For
An auxiliary tactic for inducting on the denominator of a Dyadic'.
Equations
- Dyadic'.tacticDyadic_wf = Lean.ParserDescr.node `Dyadic'.tacticDyadic_wf 1024 (Lean.ParserDescr.nonReservedSymbol "dyadic_wf" false)
Instances For
Dyadic' numbers to games #
Equations
- Dyadic'.instCoeIGame = { coe := Dyadic'.toIGame }
theorem
Dyadic'.eq_lower_of_mem_leftMoves_toIGame
{x : Dyadic'}
{y : IGame}
(h : y ∈ IGame.moves Player.left ↑x)
:
theorem
Dyadic'.eq_upper_of_mem_rightMoves_toIGame
{x : Dyadic'}
{y : IGame}
(h : y ∈ IGame.moves Player.right ↑x)
: