LeanPool.AFormalizationOfBorelDeterminacyInLean.Proof.One.Lift #
Auxiliary declarations for the Borel determinacy formalization.
noncomputable def
GaleStewartGame.BorelDet.One.Lift'.extension
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
:
Auxiliary declaration for the Borel determinacy formalization.
Instances For
noncomputable def
GaleStewartGame.BorelDet.One.Lift'.extensionMap
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
:
Auxiliary declaration for the Borel determinacy formalization.
Equations
- H.extensionMap hp R = Descriptive.Tree.ExtensionsAt.map (GaleStewartGame.BorelDet.treeHom hyp) ⋯ (H.extension hp R)
Instances For
@[simp]
theorem
GaleStewartGame.BorelDet.One.Lift'.extension_take
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
:
@[simp]
theorem
GaleStewartGame.BorelDet.One.Lift'.extensionMap_take
{A : Type u_1}
{G : Game A}
{k n : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
(h : n ≤ (↑H.x).length)
:
noncomputable def
GaleStewartGame.BorelDet.One.Lift'.extensionLift
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
:
Lift hyp
Auxiliary declaration for the Borel determinacy formalization.
Equations
- H.extensionLift hp R = { x := (H.extensionMap hp R).valT', hlvl := ⋯, R := H.R, liftTree := H.liftTree, htree := ⋯ }
Instances For
@[simp]
theorem
GaleStewartGame.BorelDet.One.Lift'.extensionLift_liftTree
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
:
@[simp]
theorem
GaleStewartGame.BorelDet.One.Lift'.extensionLift_x
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
:
@[simp]
theorem
GaleStewartGame.BorelDet.One.Lift'.extensionLift_R
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
:
@[simp]
theorem
GaleStewartGame.BorelDet.One.Lift'.extensionLift_take
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
:
@[simp]
theorem
GaleStewartGame.BorelDet.One.Lift'.extensionLift_liftShort
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
:
@[simp]
theorem
GaleStewartGame.BorelDet.One.Lift'.extensionLift_wonPos
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
:
noncomputable def
GaleStewartGame.BorelDet.One.Lift'.extensionLift'
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
(hR : ResStrategy.res ⋯ R = H.R)
:
Lift' hyp
Auxiliary declaration for the Borel determinacy formalization.
Equations
- H.extensionLift' hp R hR = { toLift := H.extensionLift hp R, con := ⋯ }
Instances For
@[simp]
theorem
GaleStewartGame.BorelDet.One.Lift'.extensionLift'_toLift
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
(hR : ResStrategy.res ⋯ R = H.R)
:
theorem
GaleStewartGame.BorelDet.One.Lift'.extensionLift'_game
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
(hR : ResStrategy.res ⋯ R = H.R)
:
@[simp]
theorem
GaleStewartGame.BorelDet.One.Lift'.extensionLift'_take
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : Lift' hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
(hR : ResStrategy.res ⋯ R = H.R)
:
structure
GaleStewartGame.BorelDet.One.PreLift.LLift
{A : Type u_1}
{G : Game A}
{k : ℕ}
(hyp : Hyp G k)
extends GaleStewartGame.BorelDet.One.PreLift hyp :
Type u_1
Auxiliary declaration for the Borel determinacy formalization.
- R : ResStrategy (gameAsTrees hyp) Player.one (2 * k + 1)
- los : self.Losable'
Instances For
theorem
GaleStewartGame.BorelDet.One.PreLift.LLift.concat_mem_tree
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : LLift hyp)
{y : List A}
{a : A}
(hp : IsPosition y Player.zero)
(ha : List.take (2 * k + 1) ↑H.x ++ (↑H.toLift.liftShort)[2 * k + 1].1 :: (y ++ [a]) ∈ G.tree)
(hy : y ∈ getTree' hyp ↑H.toLift.liftShort)
(hw : ¬H.game.WinningPosition ((↑H.toLift.liftShort)[2 * k + 1].1 :: y ++ [a]))
:
structure
GaleStewartGame.BorelDet.One.PreLift.WLift
{A : Type u_1}
{G : Game A}
{k : ℕ}
(hyp : Hyp G k)
extends GaleStewartGame.BorelDet.One.PreLift hyp :
Type u_1
Auxiliary declaration for the Borel determinacy formalization.
- R : ResStrategy (gameAsTrees hyp) Player.one (2 * k + 1)
- won : self.Won
Instances For
noncomputable def
GaleStewartGame.BorelDet.One.PreLift.WLift.S
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : WLift hyp)
:
QuasiStrategy (Descriptive.Tree.subAt G.tree (List.take (2 * k + 1) ↑H.x)) Player.one
Auxiliary declaration for the Borel determinacy formalization.
Equations
- H.S = Exists.choose ⋯
Instances For
noncomputable def
GaleStewartGame.BorelDet.One.PreLift.Winnable.a
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
{H : PreLift hyp}
(h : H.Winnable)
(hp : IsPosition (↑H.x) Player.one)
:
Auxiliary declaration for the Borel determinacy formalization.
Equations
- h.a hp = GaleStewartGame.PreStrategy.WinningPrefix.strat h h.x' ⋯
Instances For
noncomputable def
GaleStewartGame.BorelDet.One.PreLift.Winnable.extension
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
{H : PreLift hyp}
(h : H.Winnable)
(hp : IsPosition (↑H.x) Player.one)
:
Auxiliary declaration for the Borel determinacy formalization.
Instances For
noncomputable def
GaleStewartGame.BorelDet.One.PreLift.extension
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
(H : PreLift hyp)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
:
Auxiliary declaration for the Borel determinacy formalization.
Equations
- H.extension hp R = if h : H.Won then h.lift'.extensionMap hp R else if h : H.Winnable then h.extension hp else if h : H.Losable then h.lift'.extensionMap hp R else Classical.choice ⋯
Instances For
theorem
GaleStewartGame.BorelDet.One.PreLift.extension_losable
{A : Type u_1}
{G : Game A}
{k : ℕ}
{hyp : Hyp G k}
{H : PreLift hyp}
(h : H.Losable)
(hp : IsPosition (↑H.x) Player.one)
(R : ResStrategy (gameAsTrees hyp) Player.one (↑H.x).length)
: