Documentation

LeanPool.MisereGames.Misere.Separation

Misere combinatorial games.

Separation and downlinking #

This file defines downlinked and separated pairs of forms, and develops the machinery necessary to prove that $G\ge_\mathcal{U}H$ implies that both Form.Maintenance and Form.Proviso are satisfied.

Here, $G$ and $H$ will always refer to arbitrary forms (possibly augmented, possibly not), $\mathcal{A}$ to an arbitrary set of forms, and $\mathcal{U}$ to a universe (which may or may not be Short).

References #

def MisereGames.Form.Downlinked {G : Type (u + 1)} [Form G] (A : GProp) (g h : G) :

We say $G$ is downlinked to $H$ (with respect to $\mathcal{A}$) if there exists some $T\in\mathcal{A}$ with $\operatorname{o_L}(G+T)=\mathscr{R}$ and $\operatorname{o_R}(H+T)=\mathscr{L}$.

This generalises the definition given by [Siegel (Definition 5.9 on p. 214)][siegel:GeneralDeadendingUniverse:2025], where all forms were short, and the sets were short universes.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def MisereGames.Form.AreSeparating {G : Type (u + 1)} [Form G] (A : GProp) (p : Player) (g h : G) :

    If there exists some $X\in\mathcal{A}$ whereby $\operatorname{o_L}(G+X)=\mathscr{R}$ and $\operatorname{o_L}(H+X)=\mathscr{L}$, then we say that $G$ and $H$ are Left separated (with respect to $\mathcal{A}$). (See LeftSeparating and RightSeparating.)

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[reducible, inline]
      abbrev MisereGames.Form.AreLeftSeparating {G : Type (u + 1)} [Form G] (A : GProp) (g h : G) :

      There exists some $X\in\mathcal{A}$ whereby $\operatorname{o_L}(G+X)=\mathscr{R}$ and $\operatorname{o_L}(H+X)=\mathscr{L}$. (See Separating.)

      Equations
      Instances For
        @[reducible, inline]
        abbrev MisereGames.Form.AreRightSeparating {G : Type (u + 1)} [Form G] (A : GProp) (g h : G) :

        There exists some $X\in\mathcal{A}$ whereby $\operatorname{o_R}(G+X)=\mathscr{R}$ and $\operatorname{o_R}(H+X)=\mathscr{L}$. (See Separating.)

        Equations
        Instances For
          theorem MisereGames.Form.misereGE_iff_not_separating {G : Type (u + 1)} [Form G] {A : GProp} {g h : G} :

          We have g ≥ h modulo A exactly when g and h are neither Left- nor Right-separating.

          theorem MisereGames.Form.not_misereGE_iff_separating {G : Type (u + 1)} [Form G] {A : GProp} {g h : G} :

          Negation of misereGE_iff_not_separating.

          @[reducible, inline]
          abbrev MisereGames.Form.Separation.rightSeparatorLeftSet {G : Type (u + 1)} [Form G] (r h : G) :
          Set G

          Given $H$ and a root $r$, this constructs the set of games $\{r,\operatorname{adj}_r(H^\mathcal{R})\}$, which will act as Left's set of options in the construction of rightSeparatorCandidate. Taking $r=0$ recovers the set $\{0,(H^\mathcal{R})^\circ\}$.

          Equations
          Instances For
            @[reducible, inline]
            noncomputable abbrev MisereGames.Form.Separation.rightSeparatorCandidate {G : Type (u + 1)} [Form G] (r h x : G) :
            G

            $\def\form<#1>[#2]{\left\{#1 \mid #2\right\}}$ Given forms $H$ and $X$ and a root $r$, this constructs the form $\form<r,\operatorname{adj}_r(H^\mathcal{R})>[X]$, which is used by Separating.pair_of_not_misereGE to show that $G$ and $H$ must be both LeftSeparating and RightSeparating whenever $G\ngeq_\mathcal{U}H$.

            Equations
            Instances For
              @[reducible, inline]
              abbrev MisereGames.Form.Separation.leftSeparatorRightSet {G : Type (u + 1)} [Form G] (r g : G) :
              Set G

              Given $G$ and a root $r$, this constructs the set of games $\{r,\operatorname{adj}_r(G^\mathcal{L})\}$, the Left/Right mirror of rightSeparatorLeftSet, which will act as Right's set of options in the construction of leftSeparatorCandidate.

              Equations
              Instances For
                @[reducible, inline]
                noncomputable abbrev MisereGames.Form.Separation.leftSeparatorCandidate {G : Type (u + 1)} [Form G] (r g x : G) :
                G

                $\def\form<#1>[#2]{\left\{#1 \mid #2\right\}}$ Given forms $G$ and $X$ and a root $r$, this constructs the form $\form<X>[r,\operatorname{adj}_r(G^\mathcal{L})]$, the Left/Right mirror of rightSeparatorCandidate.

                Equations
                Instances For

                  The Left separator is the conjugate of a Right separator, with the root conjugated.

                  theorem MisereGames.Form.Separation.rightSeparating_of_leftSeparating_of_rightSeparatorCandidate_mem {G : Type (u + 1)} [Form G] {A IsAmbient : GProp} [Hereditary IsAmbient] {r g h : G} (h_isRoot : Misere.Adjoint.IsRoot IsAmbient r) (hh : IsAmbient h) (h_candidate : ∀ {x : G}, A xA (rightSeparatorCandidate r h x)) (h_left_sep : AreLeftSeparating A g h) :

                  $\def\form<#1>[#2]{\left\{#1 \mid #2\right\}}$ If $G$ and $H$ are LeftSeparating, and $\form<r,\operatorname{adj}_r(H^\mathcal{R})>[X]\in\mathcal{A}$ for every $X\in\mathcal{A}$, then $G$ and $H$ are RightSeparating.

                  theorem MisereGames.Form.Separation.leftSeparating_of_rightSeparating_of_leftSeparatorCandidate_mem {G : Type (u + 1)} [Form G] {A IsAmbient : GProp} [Hereditary IsAmbient] {r g h : G} (h_isRoot : Misere.Adjoint.IsRoot IsAmbient r) (hg : IsAmbient g) (h_candidate : ∀ {x : G}, A xA (leftSeparatorCandidate r g x)) (h_right_sep : AreRightSeparating A g h) :

                  $\def\form<#1>[#2]{\left\{#1 \mid #2\right\}}$ If $G$ and $H$ are RightSeparating, and $\form<X>[r,\operatorname{adj}_r(G^\mathcal{L})]\in\mathcal{A}$ for every $X\in\mathcal{A}$, then $G$ and $H$ are LeftSeparating. The Left/Right mirror of rightSeparating_of_leftSeparating_of_rightSeparatorCandidate_mem.

                  @[reducible, inline]
                  abbrev MisereGames.Form.Separation.downlinkZero {G : Type (u + 1)} [Form G] (r : G) (p : Player) (g h : G) :
                  Set G

                  The optional root contribution to a downlink witness.

                  Equations
                  Instances For
                    @[reducible, inline]
                    abbrev MisereGames.Form.Separation.downlinkOptions {G : Type (u + 1)} [Form G] (r : G) (p : Player) (g h : G) (z : (moves (-p) h)G) :
                    Set G

                    The options used in one side of a downlink witness.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[reducible, inline]
                      abbrev MisereGames.Form.Separation.downlinkLeftSet {G : Type (u + 1)} [Form G] (r g h : G) (y : (moves Player.right h)G) :
                      Set G

                      The Left option set of a downlink witness.

                      Equations
                      Instances For
                        @[reducible, inline]
                        abbrev MisereGames.Form.Separation.downlinkRightSet {G : Type (u + 1)} [Form G] (r g h : G) (x : (moves Player.left g)G) :
                        Set G

                        The Right option set of a downlink witness.

                        Equations
                        Instances For
                          theorem MisereGames.Form.Separation.downlinkOptions_nonempty {G : Type (u + 1)} [Form G] (r : G) (p : Player) (g h : G) (z : (moves (-p) h)G) :
                          @[reducible, inline]
                          noncomputable abbrev MisereGames.Form.Separation.downlinkWitness {G : Type (u + 1)} [Form G] (r g h : G) (x : (moves Player.left g)G) (y : (moves Player.right h)G) [Small.{u, u + 1} (downlinkLeftSet r g h y)] [Small.{u, u + 1} (downlinkRightSet r g h x)] :
                          G

                          $\def\form<#1>[#2]{\left\{#1 \mid #2\right\}}$ This constructs the following game form, which is similar to a construction by [Siegel (Proof of Lemma 5.10 on p. 215)][siegel:GeneralDeadendingUniverse:2025] for short forms: $$ T= \begin{cases} \form<r>[r] & \text{if neither }G\text{ nor }H\text{ has any ordinary options},\\ \form<r>[X_i,\operatorname{adj}_r(H^\mathcal{L})] & \text{if }G,H\text{ are both Right ends but not both Left ends},\\ \form<Y_j,\operatorname{adj}_r(G^\mathcal{R})>[r] & \text{if }G,H\text{ are both Left ends but not both Right ends},\\ \form<Y_j,\operatorname{adj}_r(G^\mathcal{R})>[X_i,\operatorname{adj}_r(H^\mathcal{L})] & \text{otherwise}. \end{cases} $$ Here $r$ is the root; taking $r=0$ recovers Siegel's construction.

                          (Note that the $X_i$ and $Y_j$ are chosen as a function of the Left and Right options of $G$ and $H$ respectively.)

                          Equations
                          Instances For
                            theorem MisereGames.Form.Separation.downlinked_of_downlinkWitness_mem {G : Type (u + 1)} [Form G] {A IsAmbient : GProp} [Hereditary IsAmbient] {r g h : G} {x : (moves Player.left g)G} {y : (moves Player.right h)G} [Small.{u, u + 1} (downlinkLeftSet r g h y)] [Small.{u, u + 1} (downlinkRightSet r g h x)] (h_isRoot : Misere.Adjoint.IsRoot IsAmbient r) (hg : IsAmbient g) (hh : IsAmbient h) (htA : A (downlinkWitness r g h x y)) (hxLose : ∀ (gl : (moves Player.left g)), ¬Misere.Outcome.WinsGoingFirst Player.left (gl + x gl)) (hxWin : ∀ (gl : (moves Player.left g)), Misere.Outcome.WinsGoingFirst Player.left (h + x gl)) (hyWin : ∀ (hr : (moves Player.right h)), Misere.Outcome.WinsGoingFirst Player.right (g + y hr)) (hyLose : ∀ (hr : (moves Player.right h)), ¬Misere.Outcome.WinsGoingFirst Player.right (hr + y hr)) :
                            theorem MisereGames.Form.Separation.leftSeparating_neg_of_rightSeparating {G : Type (u + 1)} [Form G] {A : GProp} [ClosedUnderNeg A] {g h : G} (h_right_sep : AreRightSeparating A g h) :

                            If $G$ and $H$ are RightSeparating, then $\overline{H}$ and $\overline{G}$ must be LeftSeparating.

                            theorem MisereGames.Form.Separation.leftSeparating_of_rightSeparating_neg {G : Type (u + 1)} [Form G] {A : GProp} [ClosedUnderNeg A] {g h : G} (h_right_sep : AreRightSeparating A (-h) (-g)) :

                            If $\overline{H}$ and $\overline{G}$ are RightSeparating, then $G$ and $H$ must be LeftSeparating.