Documentation

LeanPool.MisereGames.Form.Misere.Outcome

Misere combinatorial games.

@[irreducible]

In misère play, p can force a win when moving first from g.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem MisereGames.Form.Misere.Outcome.winsGoingFirst_iff {G : Type (u + 1)} [Form G] (g : G) (p : Player) :
    WinsGoingFirst p g IsEndLike p g g'moves p g, ¬WinsGoingFirst (-p) g'
    @[simp]
    @[simp]
    theorem MisereGames.Form.Misere.Outcome.winsGoingFirst_of_isEnd {G : Type (u + 1)} [Form G] {g : G} {p : Player} (h1 : IsEnd p g) :
    theorem MisereGames.Form.Misere.Outcome.winsGoingFirst_of_moves {G : Type (u + 1)} [Form G] {g : G} {p : Player} (h1 : g'moves p g, ¬WinsGoingFirst (-p) g') :
    noncomputable def MisereGames.Form.Misere.Outcome.MiserePlayerOutcome {G : Type (u + 1)} [Form G] :
    GPlayerPlayer

    The winning player when p starts from g.

    Equations
    Instances For
      noncomputable def MisereGames.Form.Misere.Outcome.MisereOutcome {G : Type (u + 1)} [Form G] :
      GOutcome

      The four-outcome misère outcome of a form.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        If o(x) ≥ N then Left wins going first on x.

        theorem MisereGames.Form.Misere.Outcome.winsGoingFirst_add_of_isEndLike {G : Type (u + 1)} [Form G] {g h : G} {p : Player} (h1 : IsEndLike p g) (h2 : IsEndLike p h) :
        theorem MisereGames.Form.Misere.Outcome.winsGoingFirst_add_of_isEnd {G : Type (u + 1)} [Form G] {g h : G} {p : Player} (h1 : IsEnd p g) (h2 : IsEnd p h) :
        def MisereGames.Form.Misere.Outcome.MisereEQ {G : Type (u + 1)} [Form G] (A : GProp) (g h : G) :

        Restricted misère equivalence, working modulo a set A.

        Conventions for notations in identifiers:

        • The recommended spelling of =m in identifiers is misereEQ.
        Equations
        Instances For

          Restricted misère equivalence, working modulo a set A.

          Conventions for notations in identifiers:

          • The recommended spelling of =m in identifiers is misereEQ.
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Delaborator for restricted misère equivalence notation.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem MisereGames.Form.Misere.Outcome.MisereEQ.symm {G : Type (u + 1)} [Form G] {A : GProp} {g h : G} (h1 : g =m A h) :
              h =m A g
              theorem MisereGames.Form.Misere.Outcome.MisereEQ.trans {G : Type (u + 1)} [Form G] {A : GProp} {g h k : G} (h1 : g =m A h) (h2 : h =m A k) :
              g =m A k
              def MisereGames.Form.Misere.Outcome.MisereGE {G : Type (u + 1)} [Form G] (A : GProp) (g h : G) :

              The restricted misère preorder, working modulo a set A.

              Conventions for notations in identifiers:

              • The recommended spelling of ≥m in identifiers is misereGE.
              Equations
              Instances For

                The restricted misère preorder, working modulo a set A.

                Conventions for notations in identifiers:

                • The recommended spelling of ≥m in identifiers is misereGE.
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  Delaborator for restricted misère preorder notation.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem MisereGames.Form.Misere.Outcome.MisereEq.of_antisymm {G : Type (u + 1)} [Form G] {A : GProp} {g h : G} (h1 : g ≥m A h) (h2 : h ≥m A g) :
                    g =m A h
                    theorem MisereGames.Form.Misere.Outcome.MisereGE.trans {G : Type (u + 1)} [Form G] {A : GProp} {g h k : G} (h1 : g ≥m A h) (h2 : h ≥m A k) :
                    g ≥m A k
                    theorem MisereGames.Form.Misere.Outcome.misereGE_rw_left {G : Type (u + 1)} [Form G] {A : GProp} {a b c : G} (h2 : b =m A c) (h1 : b ≥m A a) :
                    c ≥m A a
                    theorem MisereGames.Form.Misere.Outcome.misereGE_rw_right {G : Type (u + 1)} [Form G] {A : GProp} {a b c : G} (h2 : b =m A c) (h1 : a ≥m A c) :
                    a ≥m A b
                    theorem MisereGames.Form.Misere.Outcome.misereGE_of_misereEQ {G : Type (u + 1)} [Form G] {A : GProp} {g h : G} (h1 : g =m A h) :
                    g ≥m A h
                    theorem MisereGames.Form.Misere.Outcome.misereGE_of_subset {G : Type (u + 1)} [Form G] (U : GProp) {V : GProp} (h_v_subset_u : ∀ (g : G), V gU g) (g h : G) (h2 : g ≥m U h) :
                    g ≥m V h
                    theorem MisereGames.Form.Misere.Outcome.misereGE_add_right {G : Type (u + 1)} [Form G] {A : GProp} [ClosedUnderAdd A] {g h c : G} (hc : A c) (h1 : g ≥m A h) :
                    (g + c) ≥m A h + c

                    Adding a fixed element c ∈ A on the right preserves the restricted misère inequality.

                    theorem MisereGames.Form.Misere.Outcome.misereEQ_add_right {G : Type (u + 1)} [Form G] {A : GProp} [ClosedUnderAdd A] {g h c : G} (hc : A c) (h1 : g =m A h) :
                    (g + c) =m A h + c

                    Adding a fixed element c ∈ A on the right preserves the restricted misère equivalence.

                    theorem MisereGames.Form.Misere.Outcome.misereEQ_add_left {G : Type (u + 1)} [Form G] {A : GProp} [ClosedUnderAdd A] {g h c : G} (hc : A c) (h1 : g =m A h) :
                    (c + g) =m A c + h

                    Adding a fixed element c ∈ A on the left preserves the restricted misère equivalence.

                    @[simp]
                    theorem MisereGames.Form.Misere.Outcome.MisereGE.refl {G : Type (u + 1)} [Form G] {A : GProp} (g : G) :
                    g ≥m A g
                    theorem MisereGames.Form.Misere.Outcome.not_misereEQ_of_not_misereGE {G : Type (u + 1)} [Form G] {A : GProp} {g h : G} (h1 : ¬g ≥m A h) :
                    ¬g =m A h
                    @[simp]
                    theorem MisereGames.Form.Misere.Outcome.ClosedUnderNeg.neg_ge_neg_iff {G : Type (u + 1)} [Form G] {A : GProp} [ClosedUnderNeg A] (g h : G) :
                    (-h) ≥m A-g g ≥m A h
                    theorem MisereGames.Form.Misere.Outcome.misereEQ_neg_iff {G : Type (u + 1)} [Form G] {A : GProp} [ClosedUnderNeg A] {g h : G} :
                    (-g) =m A-h g =m A h