Documentation

Mathlib.SetTheory.Game.Birthday

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 #

Todo #

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
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
    theorem SetTheory.PGame.lt_birthday_iff {x : SetTheory.PGame} {o : Ordinal.{u_1}} :
    o < x.birthday (∃ (i : x.LeftMoves), o (x.moveLeft i).birthday) ∃ (i : x.RightMoves), o (x.moveRight i).birthday
    theorem SetTheory.PGame.Relabelling.birthday_congr {x : SetTheory.PGame} {y : SetTheory.PGame} :
    x.Relabelling yx.birthday = y.birthday
    @[simp]
    theorem SetTheory.PGame.birthday_eq_zero {x : SetTheory.PGame} :
    x.birthday = 0 IsEmpty x.LeftMoves IsEmpty x.RightMoves
    @[simp]
    theorem SetTheory.PGame.neg_birthday (x : SetTheory.PGame) :
    (-x).birthday = x.birthday
    @[simp]
    theorem SetTheory.PGame.toPGame_birthday (o : Ordinal.{u_1}) :
    o.toPGame.birthday = o
    theorem SetTheory.PGame.le_birthday (x : SetTheory.PGame) :
    x x.birthday.toPGame
    theorem SetTheory.PGame.neg_birthday_le (x : SetTheory.PGame) :
    -x.birthday.toPGame x
    @[simp]
    theorem SetTheory.PGame.birthday_add (x : SetTheory.PGame) (y : SetTheory.PGame) :
    (x + y).birthday = x.birthday.nadd y.birthday
    theorem SetTheory.PGame.birthday_add_zero (a : SetTheory.PGame) :
    (a + 0).birthday = a.birthday
    theorem SetTheory.PGame.birthday_zero_add (a : SetTheory.PGame) :
    (0 + a).birthday = a.birthday
    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
    @[simp]
    theorem SetTheory.PGame.birthday_natCast (n : ) :
    (n).birthday = n
    theorem SetTheory.PGame.birthday_add_nat (a : SetTheory.PGame) (n : ) :
    (a + n).birthday = a.birthday + n
    theorem SetTheory.PGame.birthday_nat_add (a : SetTheory.PGame) (n : ) :
    (n + a).birthday = a.birthday + n