Documentation

LeanPool.AFormalizationOfBorelDeterminacyInLean.Proof.WinAsap

LeanPool.AFormalizationOfBorelDeterminacyInLean.Proof.WinAsap #

Auxiliary declarations for the Borel determinacy formalization.

theorem choose_eq {α : Type u_1} {p q : αProp} (hpq : ∀ (a : α), p a q a) (h : ∃ (a : α), p a) :
theorem choose_eq' {α β : Type u} {p : αProp} {q : βProp} (hab : α = β) (hpq : ∀ (a : α), p a q (cast hab a)) (h : ∃ (a : α), p a) :
def GaleStewartGame.PreStrategy.WinningPrefix {A : Type u_1} (G : Game A) (p : Player) (x : List A) :

whether there exists a prefix of x that is a winning position for p

Equations
Instances For
    theorem GaleStewartGame.PreStrategy.winningPrefix_of_notMem {A : Type u_1} (G : Game A) (p : Player) {x : List A} (h : xG.tree) :
    noncomputable def GaleStewartGame.PreStrategy.WinningPrefix.num {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) :

    the length of the shortest prefix of x that is winning for p

    Equations
    Instances For
      @[simp]
      theorem GaleStewartGame.PreStrategy.WinningPrefix.take_num {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) {y : List A} :
      theorem GaleStewartGame.PreStrategy.WinningPrefix.extend {A : Type u_1} {G : Game A} {p : Player} {x : List A} (y : List A) (h : WinningPrefix G p x) :
      WinningPrefix G p (x ++ y)
      theorem GaleStewartGame.PreStrategy.WinningPrefix.of_take {A : Type u_1} {G : Game A} {p : Player} {x : List A} {n : } (h : WinningPrefix G p (List.take n x)) :
      theorem GaleStewartGame.PreStrategy.WinningPrefix.of_prefix {A : Type u_1} {G : Game A} {p : Player} {x y : List A} (xy : x <+: y) (h : WinningPrefix G p x) :
      theorem GaleStewartGame.PreStrategy.WinningPrefix.of_prefix' {A : Type u_1} {G : Game A} {p : Player} {x : List A} {G' : Game A} {p' : Player} {y : List A} (xy : x <+: y) (hG : G = G') (hp : p = p') (h : WinningPrefix G p x) :
      theorem GaleStewartGame.PreStrategy.WinningPrefix.extend_num {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) (y : List A) :
      .num = h.num
      theorem GaleStewartGame.PreStrategy.WinningPrefix.prefix_num {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) {G' : Game A} {p' : Player} {y : List A} (xy : x <+: y) (hG : G = G') (hp : p = p') :
      .num = h.num
      noncomputable def GaleStewartGame.PreStrategy.WinningPrefix.strat {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) :

      the winning strategy chosen for the shortest winning prefix of x

      Equations
      Instances For
        theorem GaleStewartGame.PreStrategy.WinningPrefix.extracted_2 {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) {y : List A} (a : Strategy (G.residual (List.take .num (x ++ y))).tree (Player.residual (List.take .num (x ++ y)) p)) :
        theorem GaleStewartGame.PreStrategy.WinningPrefix.extend_strat {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) (y : List A) :
        theorem GaleStewartGame.PreStrategy.WinningPrefix.prefix_strat_subtree {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) {G' : Game A} {p' : Player} {y : List A} (xy : x <+: y) (hG : G = G') (hp : p = p') :
        theorem GaleStewartGame.PreStrategy.WinningPrefix.strat_eval_val_congr {A : Type u_1} {p p' : Player} (U U' : (Descriptive.tree A)) (hU : U = U') (hep : p = p') (S : Strategy U p) (S' : Strategy U' p') (h : S S') (x : U) (hp : IsPosition (↑x) p) :
        (S x hp) = (S' x, )
        theorem GaleStewartGame.PreStrategy.WinningPrefix.prefix_strat_apply {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) {G' : Game A} {p' : Player} {y : List A} (xy : x <+: y) (hG : G = G') (hp : p = p') {a : (G'.residual (List.take .num y)).tree} (hpa : IsPosition (↑a) (Player.residual (List.take .num y) p')) :
        have xy' := ; (.strat a hpa) = (h.strat a, )
        theorem GaleStewartGame.PreStrategy.WinningPrefix.prefix_strat_apply' {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) {G' : Game A} {p' : Player} {y : List A} (xy : x <+: y) (hG : G = G') (hp : p = p') {a : (G'.residual (List.take .num y)).tree} {a' : (G.residual (List.take h.num x)).tree} (ha : a = a') (hpa : IsPosition (↑a) (Player.residual (List.take .num y) p')) :
        have xy' := ; (.strat a hpa) = (h.strat a' )
        theorem GaleStewartGame.PreStrategy.WinningPrefix.shrink {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) :

        Auxiliary declaration for the Borel determinacy formalization.

        theorem GaleStewartGame.PreStrategy.WinningPrefix.shrink_num {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) :
        .num = h.num
        theorem GaleStewartGame.PreStrategy.WinningPrefix.lem1 {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) {y : List A} :
        theorem GaleStewartGame.PreStrategy.WinningPrefix.lem2 {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) {y : List A} :
        List.drop .num (List.take h.num x ++ y) = y
        theorem GaleStewartGame.PreStrategy.WinningPrefix.val_cast {A : Type u_1} {x : List A} {T : (Descriptive.tree A)} {y : List A} (h : x = y) (a : (Descriptive.Tree.subAt T x)) (b : (Descriptive.Tree.subAt T y)) :
        cast a = b a = b
        theorem GaleStewartGame.PreStrategy.WinningPrefix.val_cast' {A : Type u_1} {T T' : (Descriptive.tree A)} {b : T} {b' : T'} (hT : T = T') (h : b = cast b') (x : Descriptive.Tree.ExtensionsAt b) (y : Descriptive.Tree.ExtensionsAt b') :
        cast x = y x = y
        theorem GaleStewartGame.PreStrategy.WinningPrefix.cast_val {A : Type u_1} {x : List A} {T : (Descriptive.tree A)} {y : List A} (h : x = y) (a : (Descriptive.Tree.subAt T x)) :
        (cast a) = a
        theorem GaleStewartGame.PreStrategy.WinningPrefix.congr_2_heq {α α' : Sort u_2} {β : αProp} {γ : αType u} {β' : αProp} {γ' : αType u} {a : α} {a' : α'} (ha : a a') (f : (a : α) → β aγ a) (f' : (a'' : α') → β' (cast a'')γ' (cast a'')) (b : β a) (b' : β' (cast a')) (hb : β = β') (hct : γ = γ') (hf : f f') :
        f a b f' a' b'
        theorem GaleStewartGame.PreStrategy.WinningPrefix.congr_2_heq' {α α' : Sort u_2} {β : αProp} {γ : αType u} {β' : α'Prop} {γ' : α'Type u} {a : α} {a' : α'} (ha : a a') (f : (a : α) → β aγ a) (f' : (a' : α') → β' a'γ' a') (b : β a) (b' : β' (cast a')) (hB : β β') (hC : γ γ') (hf : f f') :
        f a b f' a' b'
        theorem GaleStewartGame.PreStrategy.WinningPrefix.extend_strat_apply {A : Type u_1} {G : Game A} {p : Player} {x : List A} (h : WinningPrefix G p x) {y : List A} {a : (G.residual (List.take .num (List.take h.num x ++ y))).tree} {a' : (G.residual (List.take h.num x)).tree} (ha : a a') {hpa : IsPosition (↑a) (Player.residual (List.take .num (List.take h.num x ++ y)) p)} {hpa' : IsPosition (↑a') (Player.residual (List.take h.num x) p)} :
        (.strat a hpa) = (h.strat a' hpa')
        noncomputable def GaleStewartGame.PreStrategy.winAsap {A : Type u_1} (G : Game A) (p : Player) :

        Auxiliary declaration for the Borel determinacy formalization.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem GaleStewartGame.PreStrategy.mem_winAsap_subtree_of_no_prefix {A : Type u_1} (G : Game A) (p : Player) {x : List A} {a : A} (h : ¬WinningPrefix G p x) (ha : x ++ [a] G.tree) :
          theorem GaleStewartGame.PreStrategy.winAsap_body {A : Type u_1} (G : Game A) (p : Player) (x : (Descriptive.Tree.body (winAsap G p).subtree)) (h : ∃ (n : ), WinningPrefix G p (Stream'.take n x)) :
          x, p.payoff G
          theorem GaleStewartGame.PreStrategy.winAsap_body' {A : Type u_1} (G : Game A) (p : Player) (x : (Descriptive.Tree.body (winAsap G p).followUntilWon.subtree)) (h : ∃ (n : ), WinningPrefix G p (Stream'.take n x)) :
          x, p.payoff G