LeanPool.AFormalizationOfBorelDeterminacyInLean.Game.Games #
Auxiliary declarations for the Borel determinacy formalization.
a Gale-Stewart game is given by a tree of valid plays (usually pruned) and a payoff set
specifying the winner of an infinite play a : player 0 wins if and only if a ∈ G.payoff
- tree : ↥(Descriptive.tree A)
Auxiliary declaration for the Borel determinacy formalization.
- payoff : Set ↑(Descriptive.Tree.body self.tree)
Auxiliary declaration for the Borel determinacy formalization.
Instances For
theorem
GaleStewartGame.Game.ext'
{A : Type u_1}
{G G' : Game A}
(ht : G.tree = G'.tree)
(hp : Subtype.val '' G.payoff = Subtype.val '' G'.payoff)
:
The residual game starting in position x
Equations
Instances For
@[simp]
@[reducible, inline]
abbrev
GaleStewartGame.PreStrategy.subgame
{A : Type u_1}
{p : Player}
{G : Game A}
(S : PreStrategy G.tree p)
:
Game A
Auxiliary declaration for the Borel determinacy formalization.
Equations
- S.subgame = { tree := S.subtree, payoff := Subtype.val ⁻¹' Subtype.val '' G.payoff }
Instances For
def
GaleStewartGame.Player.payoff
{A : Type u_1}
(p : Player)
(G : Game A)
:
Set ↑(Descriptive.Tree.body G.tree)
player p wins if and only if the resulting play lies in p.payoff G
Equations
Instances For
@[reducible, inline]
abbrev
GaleStewartGame.PreStrategy.IsWinning
{A : Type u_1}
{p : Player}
{G : Game A}
(s : PreStrategy G.tree p)
:
a PreStrategy is winning if all compatible plays are won
Equations
- s.IsWinning = (Descriptive.Tree.body s.subtree ⊆ Subtype.val '' p.payoff G)
Instances For
theorem
GaleStewartGame.PreStrategy.sub_winning
{A : Type u_1}
{p : Player}
{G : Game A}
{s t : PreStrategy G.tree p}
(h : s ≤ t)
(h' : t.IsWinning)
:
whether a winning strategy exists for player p
Equations
- G.ExistsWinning p = ∃ (S : GaleStewartGame.Strategy G.tree p), S.pre.IsWinning
Instances For
theorem
GaleStewartGame.Game.ExistsWinning.pruned
{A : Type u_1}
{p : Player}
{G : Game A}
(hW : G.ExistsWinning p)
(hW' : G.ExistsWinning p.swap)
:
theorem
GaleStewartGame.Game.ExistsWinning.not_both_winning
{A : Type u_1}
{p : Player}
{G : Game A}
(hW : G.ExistsWinning p)
(hNe : [] ∈ G.tree)
:
¬G.ExistsWinning p.swap
theorem
GaleStewartGame.Game.AllWinning.residual
{A : Type u_1}
{p : Player}
{G : Game A}
(hW : G.AllWinning p)
(x : List A)
:
(G.residual x).AllWinning (Player.residual x p)
a game is determined if some player has a winning strategy
Equations
- G.IsDetermined = ∃ (p : GaleStewartGame.Player), G.ExistsWinning p