@[irreducible]
Equations
- Form.IsDeadEnd p g = (Form.IsEnd p g ∧ ∀ gp ∈ Moves.moves (-p) g, Form.IsDeadEnd p gp)
Instances For
@[simp]
@[simp]
@[simp]
@[irreducible]
Equations
- Form.IsDeadEnding g = ((∀ (p : Player), Form.IsEnd p g → Form.IsDeadEnd p g) ∧ ∀ (p : Player), ∀ gp ∈ Moves.moves p g, Form.IsDeadEnding gp)
Instances For
@[simp]
theorem
Form.isDeadEnd_of_isDeadEnding
{G : Type (u + 1)}
[Form G]
{g : G}
{p : Player}
(h1 : IsDeadEnding g)
(h2 : IsEnd p g)
:
IsDeadEnd p g
theorem
Form.isDeadEnding_of_mem_moves
{G : Type (u + 1)}
[Form G]
{g h : G}
{p : Player}
(h1 : IsDeadEnding g)
(h2 : h ∈ moves p g)
:
theorem
Form.isDeadEnding_of_isOption
{G : Type (u + 1)}
[Form G]
{g g' : G}
(h1 : IsDeadEnding g)
(h2 : IsOption g' g)
:
IsDeadEnding g'
Instances
@[simp, irreducible]
theorem
Form.DeadEnding.IsDeadEnding.add
{G : Type (u + 1)}
[Form G]
{g h : G}
(h1 : IsDeadEnding g)
(h2 : IsDeadEnding h)
:
IsDeadEnding (g + h)
@[simp]
@[simp]
- short : IsShort g
- dead_ending : IsDeadEnding g
Instances For
theorem
GameForm.DeadEnding.isDeadEnd_left_misereOutcome_L
(g : GameForm)
(h1 : g ≠ 0)
(h2 : Form.IsDeadEnd Player.left g)
:
This is Milley, Renault (Lemma 3 on p. 5).
theorem
GameForm.DeadEnding.isDeadEnd_right_misereOutcome_R
(g : GameForm)
(h1 : g ≠ 0)
(h2 : Form.IsDeadEnd Player.right g)
:
This is Milley, Renault (Lemma 3 on p. 5).
theorem
GameForm.DeadEnding.eq_zero_of_misereOutcome
{g : GameForm}
(hg : Form.IsDeadEnding g)
(hN : Form.Misere.Outcome.MisereOutcome g = Outcome.N)
(h_left_end : Form.IsEnd Player.left g)
:
theorem
Form.misereGE_iff_strong_of_isDeadEnd_left
{G : Type (u + 1)}
[Form G]
{A IsAmbient : G → Prop}
(h_promain : Promain IsAmbient A)
{g h : G}
(h_g_dead : IsDeadEnd Player.left g)
(h_h_dead : IsDeadEnd Player.left h)
(h_g : IsAmbient g)
(h_h : IsAmbient h)
:
g ≥m A h ↔ (IsEndLike Player.right g → Strong A h Player.right) ∧ ∀ gr ∈ moves Player.right g, ∃ hr ∈ moves Player.right h, gr ≥m A hr
For Left dead ends g and h (with A promain), comparison g ≥m A h
reduces to the Right proviso plus maintenance of Right's moves.
theorem
Form.misereGE_iff_isEndLike_of_isDeadEnd_left
{G : Type (u + 1)}
[Form G]
{A IsAmbient : G → Prop}
(h_promain : Promain IsAmbient A)
(hA_end : ∃ (x : G), A x ∧ IsEnd Player.left x ∧ IsEnd Player.right x)
{g h : G}
(h_g_dead : IsDeadEnd Player.left g)
(h_h_dead : IsDeadEnd Player.left h)
(h_g : IsAmbient g)
(h_h : IsAmbient h)
:
g ≥m A h ↔ (IsEndLike Player.right g → IsEndLike Player.right h) ∧ ∀ gr ∈ moves Player.right g, ∃ hr ∈ moves Player.right h, gr ≥m A hr
For Left dead ends, if A has a form that is an end for both players (such as
0), the Right proviso simplifies to Right end-like positions being preserved.
@[irreducible]
theorem
Form.isDeadEnd_strongTest_winsGoingFirst
{p : Player}
{x g : GameForm}
(hxd : IsDeadEnd p x)
(h_test : IsStrongTest p g)
:
Misere.Outcome.WinsGoingFirst p (g + x)
@[irreducible]
theorem
Form.isDeadEnd_strongTest_not_winsGoingFirst
{p : Player}
{x g : GameForm}
(h_isDeadEnd : IsDeadEnd p x)
(h_outcome : Misere.Outcome.MisereOutcome g = Outcome.ofPlayer p)
(h_test : IsStrongTest p g)
(h_gr : ∀ gr ∈ moves (-p) g, IsStrongTest p gr)
:
¬Misere.Outcome.WinsGoingFirst (-p) (g + x)
theorem
Form.IsStrongTest.deadEnding_strong
{p : Player}
{A : GameForm → Prop}
[DeadEnding A]
{g : GameForm}
(h_test : IsStrongTest p g)
:
Strong A g p
This is one direction specialized to dead-ending of Davies, Milley (Theorem 3.1 on p. 7)
theorem
Form.PFree.strong_iff_misereOutcome
{p : Player}
{A : GameForm → Prop}
[DeadEnding A]
[HasZero A]
{g : GameForm}
(h_isPFree : IsPFree g)
: