Documentation

CombinatorialGames.Game.Short

Short games #

A combinatorial game is Short if it has only finitely many subpositions. In particular, this means there is a finite set of moves at every point.

We historically defined Short x as data, which we then used to enable some degree of computation on combinatorial games. This functionality is now implemented through the game_cmp tactic instead.

@[irreducible]
Equations
Instances For
    class IGame.Short (x : IGame) :

    A short game is one with finitely many subpositions. That is, the left and right sets are finite, and all of the games in them are short as well.

    Instances
      theorem IGame.short_def {x : IGame} :
      x.Short ∀ (p : Player), (moves p x).Finite ymoves p x, y.Short
      theorem IGame.Short.mk {x : IGame} :
      (∀ (p : Player), (moves p x).Finite ymoves p x, y.Short)x.Short

      Alias of the reverse direction of IGame.short_def.

      theorem IGame.Short.finite_moves (p : Player) (x : IGame) [h : x.Short] :
      theorem IGame.Short.of_mem_moves {x y : IGame} [h : x.Short] {p : Player} (hy : y moves p x) :

      short eagerly adds all possible Short hypotheses.

      Equations
      Instances For
        theorem IGame.Short.isOption {x y : IGame} [x.Short] (h : y.IsOption x) :
        theorem IGame.IsOption.short {x y : IGame} [x.Short] (h : y.IsOption x) :

        Alias of IGame.Short.isOption.

        @[irreducible]
        theorem IGame.Short.subposition {y x : IGame} [x.Short] (h : y.Subposition x) :
        @[simp]
        @[simp]
        @[irreducible]
        instance IGame.Short.neg (x : IGame) [x.Short] :
        (-x).Short
        @[simp]
        @[irreducible]
        instance IGame.Short.add (x y : IGame) [x.Short] [y.Short] :
        (x + y).Short
        instance IGame.Short.sub (x y : IGame) [x.Short] [y.Short] :
        (x - y).Short
        instance IGame.Short.natCast (n : ) :
        (↑n).Short
        instance IGame.Short.intCast (n : ) :
        (↑n).Short
        @[irreducible]
        instance IGame.Short.mul (x y : IGame) [x.Short] [y.Short] :
        (x * y).Short
        instance IGame.Short.mulOption (x y a b : IGame) [x.Short] [y.Short] [a.Short] [b.Short] :
        (mulOption x y a b).Short