Birthdays of games #
The birthday of a game is an ordinal that represents at which "step" the game was constructed. We define it recursively as the least ordinal larger than the birthdays of its left and right games. We prove the basic properties about these.
Main declarations #
SetTheory.PGame.birthday
: The birthday of a pre-game.
Todo #
- Define the birthdays of
SetTheory.Game
s andSurreal
s. - Characterize the birthdays of 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
theorem
SetTheory.PGame.birthday_def
(x : SetTheory.PGame)
:
x.birthday = max (Ordinal.lsub fun (i : x.LeftMoves) => (x.moveLeft i).birthday)
(Ordinal.lsub fun (i : x.RightMoves) => (x.moveRight i).birthday)
theorem
SetTheory.PGame.birthday_moveLeft_lt
{x : SetTheory.PGame}
(i : x.LeftMoves)
:
(x.moveLeft i).birthday < x.birthday
theorem
SetTheory.PGame.birthday_moveRight_lt
{x : SetTheory.PGame}
(i : x.RightMoves)
:
(x.moveRight i).birthday < x.birthday
@[irreducible]
theorem
SetTheory.PGame.Relabelling.birthday_congr
{x : SetTheory.PGame}
{y : SetTheory.PGame}
:
x.Relabelling y → x.birthday = y.birthday
@[simp]
@[simp]
@[simp, irreducible]
theorem
SetTheory.PGame.birthday_add_one
(a : SetTheory.PGame)
:
(a + 1).birthday = Order.succ a.birthday
theorem
SetTheory.PGame.birthday_one_add
(a : SetTheory.PGame)
:
(1 + a).birthday = Order.succ a.birthday
@[deprecated SetTheory.PGame.birthday_natCast]
Alias of SetTheory.PGame.birthday_natCast
.