Documentation

CombinatorialGames.Game.Small

Small games all around #

A small game is one that's smaller than all positive surreals, but larger than all negative surreals. The only small numeric games are zero, but surprisingly there are other non-numeric small games, such as the nimbers.

We prove that every dicotic game, and hence every impartial game is small. The former of these results is known as the lawnmower theorem.

class IGame.Small (x : IGame) :

Small games lie between all the positive and negative surreals.

  • lt_numeric_of_pos {y : IGame} [y.Numeric] : 0 < y → x < y

    A small game is smaller than any positive numeric game.

  • numeric_lt_of_neg {y : IGame} [y.Numeric] : y < 0 → y < x

    A small game is larger than any negative numeric game.

Instances
    theorem IGame.Small.of_equiv {x y : IGame} (h : x ≈ y) [x.Small] :
    theorem IGame.Small.congr {x y : IGame} (h : x ≈ y) :
    instance IGame.Small.neg (x : IGame) [x.Small] :
    (-x).Small
    instance IGame.Small.add (x y : IGame) [x.Small] [y.Small] :
    (x + y).Small
    instance IGame.Small.sub (x y : IGame) [x.Small] [y.Small] :
    (x - y).Small

    The lawnmower theorem: every dicotic game is small.