Outcomes of loopy games #
We define when a loopy game is a win, a draw, or a loss with each player going first (under the normal play convention).
IsRightLoss x
means that right loses x
going first.
- intro (x : LGame) : (∀ y ∈ x.rightMoves, y.IsLeftWin) → x.IsRightLoss
Instances For
IsRightWin x
means that right wins x
going first.
- intro (x y : LGame) : y ∈ x.rightMoves → y.IsLeftLoss → x.IsRightWin
Instances For
IsLeftLoss x
means that left loses x
going first.
- intro (x : LGame) : (∀ y ∈ x.leftMoves, y.IsRightWin) → x.IsLeftLoss
Instances For
A surviving strategy for Left, going second.
This is a set of states, such that for every move Right makes, Left can bring it back to the set.
You can think of this as a nonconstructive version of the more common definition of a strategy, which gives an explicit answer for every reachable state.
Equations
- LGame.IsLeftStrategy s = ∀ y ∈ s, ∀ z ∈ y.rightMoves, ∃ r ∈ z.leftMoves, r ∈ s
Instances For
A surviving strategy for Right, going second.
This is a set of states, such that for every move Left makes, Right can bring it back to the set.
You can think of this as a nonconstructive version of the more common definition of a strategy, which gives an explicit answer for every reachable state.
Equations
- LGame.IsRightStrategy s = ∀ y ∈ s, ∀ z ∈ y.leftMoves, ∃ r ∈ z.rightMoves, r ∈ s
Instances For
IsLeftDraw x
means that left draws x
going first.
Equations
- x.IsLeftDraw = (¬x.IsLeftWin ∧ ¬x.IsLeftLoss)
Instances For
IsRightDraw x
means that right draws x
going first.
Equations
- x.IsRightDraw = (¬x.IsRightWin ∧ ¬x.IsRightLoss)
Instances For
If there is no infinite play starting by from x
with right going second,
then x
cannot end in a draw with right going second.
If there is no infinite play starting from x
with right going first,
then x
cannot end in a draw with right going first.