Short games #
A combinatorial game is Short [Conway, ch.9][conway2001] if it has only finitely many positions.
In particular, this means there is a finite set of moves at every point.
We prove that the order relations ≤ and <, and the equivalence relation ≈, are decidable on
short games, although unfortunately in practice decide doesn't seem to be able to
prove anything using these instances.
A short game is a game with a finite set of moves at every turn.
- mk: {α β : Type u} → {L : α → SetTheory.PGame} → {R : β → SetTheory.PGame} → ((i : α) → SetTheory.PGame.Short (L i)) → ((j : β) → SetTheory.PGame.Short (R j)) → [inst : Fintype α] → [inst : Fintype β] → SetTheory.PGame.Short (SetTheory.PGame.mk α β L R)
Instances
Equations
- ⋯ = ⋯
A synonym for Short.mk that specifies the pgame in an implicit argument.
Equations
- SetTheory.PGame.Short.mk' sL sR = Eq.mpr ⋯ (id (SetTheory.PGame.Short.mk sL sR))
Instances For
Extracting the Fintype instance for the indexing type for Left's moves in a short game.
This is an unindexed typeclass, so it can't be made a global instance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Extracting the Fintype instance for the indexing type for Right's moves in a short game.
This is an unindexed typeclass, so it can't be made a global instance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Extracting the Short instance for a move by Left.
This would be a dangerous instance potentially introducing new metavariables
in typeclass search, so we only make it an instance locally.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Extracting the Short instance for a move by Right.
This would be a dangerous instance potentially introducing new metavariables
in typeclass search, so we only make it an instance locally.
Equations
- One or more equations did not get rendered due to their size.
Instances For
This leads to infinite loops if made into an instance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- SetTheory.PGame.short0 = SetTheory.PGame.Short.ofIsEmpty
Equations
- One or more equations did not get rendered due to their size.
Evidence that every PGame in a list is Short.
- nil: SetTheory.PGame.ListShort []
- cons': {hd : SetTheory.PGame} → {tl : List SetTheory.PGame} → SetTheory.PGame.Short hd → SetTheory.PGame.ListShort tl → SetTheory.PGame.ListShort (hd :: tl)
Instances
Equations
- SetTheory.PGame.ListShort.cons hd tl = SetTheory.PGame.ListShort.cons' short_hd short_tl
Equations
- SetTheory.PGame.listShortGet [] n = ⋯.elim
- SetTheory.PGame.listShortGet (head :: tail) { val := 0, isLt := isLt } = S
- SetTheory.PGame.listShortGet (hd :: tl) { val := Nat.succ n, isLt := h } = SetTheory.PGame.listShortGet tl { val := n, isLt := ⋯ }
Equations
- SetTheory.PGame.listShortNthLe L i = Eq.mpr ⋯ (SetTheory.PGame.listShortGet L { val := ↑i, isLt := ⋯ })
Equations
- One or more equations did not get rendered due to their size.
If x is a short game, and y is a relabelling of x, then y is also short.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- SetTheory.PGame.shortNeg (SetTheory.PGame.mk xl xr xL xR) = SetTheory.PGame.Short.mk (fun (i : xr) => SetTheory.PGame.shortNeg (xR i)) fun (i : xl) => SetTheory.PGame.shortNeg (xL i)
Equations
- One or more equations did not get rendered due to their size.
Equations
Equations
Equations
- SetTheory.PGame.shortBit0 x = id inferInstance
Equations
- SetTheory.PGame.shortBit1 x = id inferInstance
Auxiliary construction of decidability instances.
We build Decidable (x ≤ y) and Decidable (x ⧏ y) in a simultaneous induction.
Instances for the two projections separately are provided below.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Equations
- SetTheory.PGame.ltDecidable x y = And.decidable
Equations
- SetTheory.PGame.equivDecidable x y = And.decidable