LeanPool.AFormalizationOfBorelDeterminacyInLean.Proof.One.Strat #
Auxiliary declarations for the Borel determinacy formalization.
noncomputable def
GaleStewartGame.BorelDet.One.stratMap
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(lvl : ℕ)
(R : ResStrategy (gameAsTrees hyp) Player.one lvl)
:
ResStrategy (oldAsTrees hyp) Player.one lvl
Auxiliary declaration for the Borel determinacy formalization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
GaleStewartGame.BorelDet.One.stratMap'
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(R : Strategy (gameTree hyp) Player.one)
:
Auxiliary declaration for the Borel determinacy formalization.
Equations
- GaleStewartGame.BorelDet.One.stratMap' R x hp = GaleStewartGame.BorelDet.One.stratMap (↑x).length ((GaleStewartGame.strategyEquivSystem R).str (↑x).length) x hp ⋯
Instances For
theorem
GaleStewartGame.BorelDet.One.stratMap'_short
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(R : Strategy (gameTree hyp) Player.one)
(x : ↥G.tree)
(hp : IsPosition (↑x) Player.one)
(hx : (↑x).length ≤ 2 * k)
:
stratMap' R x hp = ResStrategy.fromMap (treeHom hyp) ⋯ ((strategyEquivSystem R).str (↑x).length) x hp ⋯
structure
GaleStewartGame.BorelDet.One.TreeLift
{A : Type u_1}
{G : Game A}
{k : ℕ}
(hyp : Hyp G k)
:
Type u_1
Auxiliary declaration for the Borel determinacy formalization.
- R : Strategy (gameTree hyp) Player.one
Auxiliary declaration for the Borel determinacy formalization.
Auxiliary declaration for the Borel determinacy formalization.
Instances For
def
GaleStewartGame.BorelDet.One.TreeLift.preLift
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : TreeLift hyp)
:
PreLift hyp
Auxiliary declaration for the Borel determinacy formalization.
Equations
- H.preLift = { x := (GaleStewartGame.BorelDet.One.stratMap' H.R).pre.subtreeIncl H.x, hlvl := ⋯, R := (GaleStewartGame.strategyEquivSystem H.R).str (2 * k + 1) }
Instances For
noncomputable def
GaleStewartGame.BorelDet.One.TreeLift.extension
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : TreeLift hyp)
(hp : IsPosition (↑H.preLift.x) Player.one)
:
Auxiliary declaration for the Borel determinacy formalization.
Equations
Instances For
theorem
GaleStewartGame.BorelDet.One.TreeLift.extension_val_congr
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
{H H' : TreeLift hyp}
(h : H = H')
{hp : IsPosition (↑H.preLift.x) Player.one}
:
theorem
GaleStewartGame.BorelDet.One.TreeLift.pInv_fixing
{A : Type u_1}
{G : Game A}
{k n : ℕ}
{hyp : Hyp G k}
(H : TreeLift hyp)
(h : n ≤ 2 * k)
:
Descriptive.Tree.Fixing (↑((stratMap' H.R).pre.subtreeIncl (Descriptive.Tree.take n H.x))).length (treeHom hyp)
theorem
GaleStewartGame.BorelDet.One.TreeLift.pInv_isPosition
{A : Type u_1}
{G : Game A}
{k n : ℕ}
{hyp : Hyp G k}
(H : TreeLift hyp)
(h : n ≤ 2 * k)
{p : Player}
(hp : IsPosition (List.take n ↑H.x) p)
:
IsPosition (↑(Descriptive.Tree.pInv (treeHom hyp) ((stratMap' H.R).pre.subtreeIncl (Descriptive.Tree.take n H.x)) ⋯)) p
theorem
GaleStewartGame.BorelDet.One.TreeLift.pInv_fixing_short
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : TreeLift hyp)
:
Descriptive.Tree.Fixing (↑(Descriptive.Tree.take (2 * k) ((stratMap' H.R).pre.subtreeIncl H.x))).length (treeHom hyp)
theorem
GaleStewartGame.BorelDet.One.TreeLift.x_mem_tree_short'
{A : Type u_1}
{G : Game A}
{k n : ℕ}
{hyp : Hyp G k}
(H : TreeLift hyp)
(h : n < 2 * k)
(hp : IsPosition (List.take n ↑H.x) Player.one)
:
Descriptive.Tree.take (n + 1)
(Descriptive.Tree.pInv (treeHom hyp) (Descriptive.Tree.take (2 * k) ((stratMap' H.R).pre.subtreeIncl H.x)) ⋯) = (H.R (Descriptive.Tree.pInv (treeHom hyp) ((stratMap' H.R).pre.subtreeIncl (Descriptive.Tree.take n H.x)) ⋯) ⋯).valT'
theorem
GaleStewartGame.BorelDet.One.TreeLift.x_mem_tree_short
{A : Type u_1}
{G : Game A}
{k n : ℕ}
{hyp : Hyp G k}
(H : TreeLift hyp)
(h : n < 2 * k)
(hp : IsPosition (List.take n ↑H.x) Player.one)
:
(pInvTreeHomMap hyp (List.take (2 * k) ↑H.x))[n] = ↑(H.R (Descriptive.Tree.pInv (treeHom hyp) ((stratMap' H.R).pre.subtreeIncl (Descriptive.Tree.take n H.x)) ⋯) ⋯)
theorem
GaleStewartGame.BorelDet.One.TreeLift.winnable_subtree
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : TreeLift hyp)
(hL : H.preLift.Winnable)
(hnL : ¬∃ (h : 2 * k + 2 ≤ (↑H.x).length), (H.dropLast h).preLift.Won)
:
List.drop (2 * k + 1 + PreStrategy.WinningPrefix.num hL) ↑H.x ∈ (PreStrategy.WinningPrefix.strat hL).pre.subtree
def
GaleStewartGame.BorelDet.One.bodyTake
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
{R : Strategy (gameAsTrees hyp).snd Player.one}
(y : ↑(Descriptive.Tree.body (stratMap' R).pre.subtree))
(n : ℕ)
:
TreeLift hyp
Auxiliary declaration for the Borel determinacy formalization.
Equations
- GaleStewartGame.BorelDet.One.bodyTake y n = { R := R, x := Descriptive.Tree.body.take (2 * k + 1 + n) y, hlvl := ⋯ }
Instances For
@[simp]
theorem
GaleStewartGame.BorelDet.One.bodyTake_x
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
{R : Strategy (gameAsTrees hyp).snd Player.one}
(y : ↑(Descriptive.Tree.body (stratMap' R).pre.subtree))
(n : ℕ)
:
@[simp]
theorem
GaleStewartGame.BorelDet.One.bodyTake_R
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
{R : Strategy (gameAsTrees hyp).snd Player.one}
(y : ↑(Descriptive.Tree.body (stratMap' R).pre.subtree))
(n : ℕ)
:
@[simp]
noncomputable def
GaleStewartGame.BorelDet.One.wonLift
{A : Type u_1}
{G : Game A}
{k n : ℕ}
{hyp : Hyp G k}
{R : Strategy (gameAsTrees hyp).snd Player.one}
(y : ↑(Descriptive.Tree.body (stratMap' R).pre.subtree))
(h : (bodyTake y n).preLift.Won)
:
Auxiliary declaration for the Borel determinacy formalization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
GaleStewartGame.BorelDet.One.wonLift_map
{A : Type u_1}
{G : Game A}
{k n : ℕ}
{hyp : Hyp G k}
{R : Strategy (gameAsTrees hyp).snd Player.one}
(y : ↑(Descriptive.Tree.body (stratMap' R).pre.subtree))
(h : (bodyTake y n).preLift.Won)
:
↑((CategoryTheory.ConcreteCategory.hom (Descriptive.Tree.bodyFunctor.map π)) ⟨↑(wonLift y h), ⋯⟩) = ↑y
noncomputable def
GaleStewartGame.BorelDet.One.lostLift
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
{R : Strategy (gameAsTrees hyp).snd Player.one}
(y : ↑(Descriptive.Tree.body (stratMap' R).pre.subtree))
(h : ∀ (n : ℕ), (bodyTake y n).preLift.Losable)
:
Auxiliary declaration for the Borel determinacy formalization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
GaleStewartGame.BorelDet.One.lostLift_map
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
{R : Strategy (gameAsTrees hyp).snd Player.one}
(y : ↑(Descriptive.Tree.body (stratMap' R).pre.subtree))
(h : ∀ (n : ℕ), (bodyTake y n).preLift.Losable)
:
↑((CategoryTheory.ConcreteCategory.hom (Descriptive.Tree.bodyFunctor.map π)) ⟨↑(lostLift y h), ⋯⟩) = ↑y
theorem
GaleStewartGame.BorelDet.One.body_stratMap
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
{R : Strategy (gameAsTrees hyp).snd Player.one}
(y : ↑(Descriptive.Tree.body (stratMap' R).pre.subtree))
:
∃ (x : ↑(Descriptive.Tree.body R.pre.subtree)),
↑((CategoryTheory.ConcreteCategory.hom (Descriptive.Tree.bodyFunctor.map π)) ⟨↑x, ⋯⟩) = ↑y