Documentation

LeanPool.MisereGames.Misere.PFree

Misere combinatorial games.

@[irreducible]
def MisereGames.IsPFree {G : Type (u + 1)} [Form G] (g : G) :

A form is P-free if it and all of its options avoid outcome P.

Equations
Instances For
    class MisereGames.PFree {G : Type (u + 1)} [Form G] (A : GProp) :

    A predicate whose members are P-free forms.

    • pfree {g : G} (h1 : A g) : IsPFree g
    Instances
      theorem MisereGames.isPFree_of_mem_moves {G : Type (u + 1)} [Form G] {g h : G} {p : Player} (h1 : IsPFree g) (h2 : h Moves.moves p g) :
      theorem MisereGames.isPFree_of_isOption {G : Type (u + 1)} [Form G] {g g' : G} (h1 : IsPFree g) (h2 : Moves.IsOption g' g) :
      @[simp]
      theorem MisereGames.isPFree_zero {G : Type (u + 1)} [Form G] :
      @[simp]
      theorem MisereGames.isPFree_natCast {G : Type (u + 1)} [Form G] (n : ) :
      IsPFree n
      @[simp]
      theorem MisereGames.isPFree_intCast {G : Type (u + 1)} [Form G] (k : ) :
      IsPFree k
      theorem MisereGames.isPFree_add_natCast {g : GameForm} (h1 : IsPFree g) (n : ) :
      IsPFree (g + n)
      theorem MisereGames.isPFree_natCast_add {g : GameForm} (h1 : IsPFree g) (n : ) :
      IsPFree (n + g)
      theorem MisereGames.isPFree_add_intCast {g : GameForm} (h1 : IsPFree g) (n : ) :
      IsPFree (g + n)
      def MisereGames.PFreeSubset {G : Type (u + 1)} [Form G] (A : GProp) (g : G) :

      The P-free subpredicate of A.

      Equations
      Instances For
        theorem MisereGames.PFreeSubset.mem {G : Type (u + 1)} [Form G] {A : GProp} {g : G} (h : PFreeSubset A g) :
        A g
        theorem MisereGames.PFreeSubset.isPFree {G : Type (u + 1)} [Form G] {A : GProp} {g : G} (h : PFreeSubset A g) :
        theorem MisereGames.PFreeSubset.mk {G : Type (u + 1)} [Form G] {A : GProp} {g : G} (h_mem : A g) (h_isPFree : IsPFree g) :
        theorem MisereGames.pfreeSubset_iff {G : Type (u + 1)} [Form G] {A : GProp} {g : G} :
        instance MisereGames.instPFreePFreeSubset {G : Type (u + 1)} [Form G] {A : GProp} :
        theorem MisereGames.PFree.isPFree_ofMoves {A : GameFormProp} [PFree A] {g gp : GameForm} {p : Player} (h1 : A g) (h2 : gp Moves.moves p g) :