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 : x ∉ G.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