Misere combinatorial games.
@[reducible, inline]
The P-free subpredicate of short dead-ending games.
Equations
Instances For
P-free dead-ending games are dead-ending.
P-free dead-ending games are short.
theorem
MisereGames.PFreeDeadEnding.misereGE_of_int_le
(a b : ℤ)
(h1 : a ≥ b)
:
↑b ≥m PFreeDeadEnding↑a
theorem
MisereGames.PFreeDeadEnding.misereGE_of_nat_le
(a b : ℕ)
(h1 : a ≥ b)
:
↑b ≥m PFreeDeadEnding↑a
theorem
MisereGames.PFreeDeadEnding.a_one_pfreeDeadEnding
{a : ℤ}
(h0 : 0 ≤ a)
:
PFreeDeadEnding !{{↑a} | {1}}
theorem
MisereGames.PFreeDeadEnding.misereGE_of_maintenance_proviso
{g h : GameForm}
(hg : IsPFree g)
(hh : IsPFree h)
(h_m_r : Form.Maintenance PFreeDeadEnding g h Player.right)
(h_m_l : Form.Maintenance PFreeDeadEnding g h Player.left)
(h_p_r : Form.IsEnd Player.right g → Form.Misere.Outcome.MisereOutcome h ≠ Outcome.L)
(h_p_l : Form.IsEnd Player.left h → Form.Misere.Outcome.MisereOutcome g ≠ Outcome.R)
:
g ≥m PFreeDeadEnding h
theorem
MisereGames.PFreeDeadEnding.strong_left_of_misereOutcome_L
{A : GameForm → Prop}
[PFree A]
[OutcomeStable A]
{g : GameForm}
(h1 : PFreeSubset A g)
(h2 : Form.Misere.Outcome.MisereOutcome g = Outcome.L)
:
theorem
MisereGames.PFreeDeadEnding.strong_right_of_misereOutcome_R
{A : GameForm → Prop}
[PFree A]
[OutcomeStable A]
{g : GameForm}
(h1 : PFreeSubset A g)
(h2 : Form.Misere.Outcome.MisereOutcome g = Outcome.R)
:
theorem
MisereGames.PFreeDeadEnding.isEnd_exists_intCast_misereEQ
{p : Player}
{g : GameForm}
(h_g : PFreeDeadEnding g)
(h_isEnd : Form.IsEnd p g)
:
∃ (k : ℤ), g =m PFreeDeadEnding↑k
If $G \in \operatorname{pf}(\mathcal{E})$ is an end, then it is equivalent to some integer.
theorem
MisereGames.PFreeDeadEnding.pfreeDeadEnding_ofSets
{L R : Set GameForm}
[Small.{u, u + 1} ↑L]
[Small.{u, u + 1} ↑R]
(h_L_mem : ∀ gl ∈ L, PFreeDeadEnding gl)
(h_R_mem : ∀ gr ∈ R, PFreeDeadEnding gr)
(h_L_nonempty : L.Nonempty)
(h_L_finite : L.Finite)
(h_R_nonempty : R.Nonempty)
(h_R_finite : R.Finite)
(h_outcome_ne_P : Form.Misere.Outcome.MisereOutcome !{L | R} ≠ Outcome.P)
:
PFreeDeadEnding !{L | R}
theorem
MisereGames.PFreeDeadEnding.rightSeparating_of_leftSeparating
{g h : GameForm}
(h_h : Form.IsShort h)
(h_left : Form.AreLeftSeparating PFreeDeadEnding g h)
: