Birthdays of games #
There are two related but distinct notions of a birthday within combinatorial game theory. One is the birthday of a pre-game, which represents the "step" at which it is constructed. We define it recursively as the least ordinal larger than the birthdays of its left and right options. On the other hand, the birthday of a game is the smallest birthday among all pre-games that quotient to it.
The birthday of a pre-game can be understood as representing the depth of its game tree. On the
other hand, the birthday of a game more closely matches Conway's original description. The lemma
SetTheory.Game.birthday_eq_pGameBirthday
links both definitions together.
Main declarations #
SetTheory.PGame.birthday
: The birthday of a pre-game.SetTheory.Game.birthday
: The birthday of a game.
Todo #
- Characterize the birthdays of other basic arithmetical operations.
The birthday of a pre-game is inductively defined as the least strict upper bound of the birthdays of its left and right games. It may be thought as the "step" in which a certain game is constructed.
Equations
- (SetTheory.PGame.mk α β xL xR).birthday = max (Ordinal.lsub fun (i : α) => (xL i).birthday) (Ordinal.lsub fun (i : β) => (xR i).birthday)
Instances For
The birthday of a game is defined as the least birthday among all pre-games that define it.
Equations
- x.birthday = sInf (SetTheory.PGame.birthday '' (Quotient.mk' ⁻¹' {x}))