Documentation

LeanPool.AFormalizationOfBorelDeterminacyInLean.Proof.CoveringClosedGame

LeanPool.AFormalizationOfBorelDeterminacyInLean.Proof.CoveringClosedGame #

Auxiliary declarations for the Borel determinacy formalization.

structure GaleStewartGame.BorelDet.Hyp {A : Type u_1} (G : Game A) (k : ) :

Auxiliary declaration for the Borel determinacy formalization.

Instances For
    def GaleStewartGame.BorelDet.upA {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) :
    Type u_1

    Auxiliary declaration for the Borel determinacy formalization.

    Equations
    Instances For
      @[reducible, inline]
      abbrev GaleStewartGame.BorelDet.A' {A : Type u_2} {G : Game A} {k : } {hyp : Hyp G k} :
      Type u_2

      Auxiliary declaration for the Borel determinacy formalization.

      Equations
      Instances For
        def GaleStewartGame.BorelDet.getTree' {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) (x : List (upA hyp)) :

        Auxiliary declaration for the Borel determinacy formalization.

        Equations
        Instances For
          @[reducible, inline]
          abbrev GaleStewartGame.BorelDet.getTree {A : Type u_2} {G : Game A} {k : } {hyp : Hyp G k} (x : List A') :

          Auxiliary declaration for the Borel determinacy formalization.

          Equations
          Instances For
            @[simp]
            theorem GaleStewartGame.BorelDet.getTree_nil {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} :
            @[simp]
            theorem GaleStewartGame.BorelDet.getTree_concat {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : List (upA hyp)) (a : upA hyp) :
            getTree' hyp (x ++ [a]) = a.2
            def GaleStewartGame.BorelDet.LosingCondition {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : List (upA hyp)) (h : x.length = 2 * k + 2) :

            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.LosingCondition.of_concat {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : List (upA hyp)} {a : upA hyp} {h : (x ++ [a]).length = 2 * k + 2} (H : LosingCondition (x ++ [a]) h) :
              def GaleStewartGame.BorelDet.WinningCondition {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : List (upA hyp)) (h : x.length = 2 * k + 2) :

              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.cast_subtree {A : Type u_2} {T T' : (Descriptive.tree A)} {p p' : Player} (hT : T = T') (hp : p = p') (S : QuasiStrategy T p) :
                theorem GaleStewartGame.BorelDet.WinningCondition.of_concat {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : List (upA hyp)} {a : upA hyp} {h : (x ++ [a]).length = 2 * k + 2} (H : WinningCondition (x ++ [a]) h) :
                def GaleStewartGame.BorelDet.ValidExt {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : List (upA hyp)) (a : upA hyp) :

                Auxiliary declaration for the Borel determinacy formalization.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem GaleStewartGame.BorelDet.validExt_zero {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : List (upA hyp)} {a : upA hyp} (h : x.length = 2 * k) :
                  @[simp]
                  theorem GaleStewartGame.BorelDet.validExt_one {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : List (upA hyp)} {a : upA hyp} (h : x.length = 2 * k + 1) :
                  @[simp]
                  theorem GaleStewartGame.BorelDet.validExt_short {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : List (upA hyp)} {a : upA hyp} (h : x.length < 2 * k) :
                  @[simp]
                  theorem GaleStewartGame.BorelDet.validExt_long {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : List (upA hyp)} {a : upA hyp} (h : 2 * k + 2 x.length) :
                  def GaleStewartGame.BorelDet.gameTree {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) :

                  the tree of the unraveled game of a closed game

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    Auxiliary declaration for the Borel determinacy formalization.

                    Equations
                    Instances For
                      @[simp]
                      theorem GaleStewartGame.BorelDet.oldAsTrees_snd {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) :
                      @[simp]
                      theorem GaleStewartGame.BorelDet.oldAsTrees_fst {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) :
                      (oldAsTrees hyp).fst = A

                      Auxiliary declaration for the Borel determinacy formalization.

                      Equations
                      Instances For
                        @[simp]
                        theorem GaleStewartGame.BorelDet.gameAsTrees_fst {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) :
                        (gameAsTrees hyp).fst = upA hyp
                        @[simp]
                        theorem GaleStewartGame.BorelDet.gameAsTrees_snd {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) :
                        @[reducible, inline]
                        abbrev GaleStewartGame.BorelDet.T {A : Type u_2} {G : Game A} :

                        Auxiliary declaration for the Borel determinacy formalization.

                        Equations
                        Instances For
                          @[reducible, inline]
                          abbrev GaleStewartGame.BorelDet.T' {A : Type u_2} {G : Game A} {k : } {hyp : Hyp G k} :

                          Auxiliary declaration for the Borel determinacy formalization.

                          Equations
                          Instances For
                            theorem GaleStewartGame.BorelDet.gameTree_ne {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} :
                            @[simp]
                            theorem GaleStewartGame.BorelDet.gameTree_concat {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : List (upA hyp)) (a : upA hyp) :
                            theorem GaleStewartGame.BorelDet.getTree_sub {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : (gameTree hyp)) :
                            theorem GaleStewartGame.BorelDet.getTree_ne_and_pruned {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : (gameTree hyp)) :
                            noncomputable def GaleStewartGame.BorelDet.LosingCondition.y {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : (gameTree hyp)} {h : (↑x).length = 2 * k + 2} (H : LosingCondition (↑x) h) :
                            (getTree' hyp x)

                            Auxiliary declaration for the Borel determinacy formalization.

                            Equations
                            Instances For
                              theorem GaleStewartGame.BorelDet.LosingCondition.y_spec {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : (gameTree hyp)} {h : (↑x).length = 2 * k + 2} (H : LosingCondition (↑x) h) :
                              noncomputable def GaleStewartGame.BorelDet.WinningCondition.S {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : (gameTree hyp)} {h : (↑x).length = 2 * k + 2} (H : WinningCondition (↑x) h) :

                              Auxiliary declaration for the Borel determinacy formalization.

                              Equations
                              Instances For
                                theorem GaleStewartGame.BorelDet.WinningCondition.S_spec {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : (gameTree hyp)} {h : (↑x).length = 2 * k + 2} (H : WinningCondition (↑x) h) :
                                getTree' hyp x = H.S.fst.subtree
                                theorem GaleStewartGame.BorelDet.lose_or_win {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : (gameTree hyp)) (h : (↑x).length = 2 * k + 2) :
                                @[simp]
                                theorem GaleStewartGame.BorelDet.not_winning {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : (gameTree hyp)} {h : (↑x).length = 2 * k + 2} :
                                @[simp]
                                theorem GaleStewartGame.BorelDet.not_losing {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : (gameTree hyp)} {h : (↑x).length = 2 * k + 2} :
                                def GaleStewartGame.BorelDet.treeHom {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) :

                                Auxiliary declaration for the Borel determinacy formalization.

                                Equations
                                Instances For
                                  @[reducible, inline]
                                  abbrev GaleStewartGame.BorelDet.π {A : Type u_2} {G : Game A} {k : } {hyp : Hyp G k} :

                                  Auxiliary declaration for the Borel determinacy formalization.

                                  Equations
                                  Instances For
                                    def GaleStewartGame.BorelDet.pInvTreeHomMap {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) (x : List A) :
                                    List (upA hyp)

                                    Auxiliary declaration for the Borel determinacy formalization.

                                    Equations
                                    Instances For
                                      theorem GaleStewartGame.BorelDet.treeHom_val {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : (fun (S : Descriptive.Tree.Trees) => S.snd) (gameAsTrees hyp)) :
                                      theorem GaleStewartGame.BorelDet.T'_snd_small' {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : (gameTree hyp)) (h : (↑x).length 2 * k) :
                                      theorem GaleStewartGame.BorelDet.T'_snd_small {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : List (upA hyp)} {a : upA hyp} (h : x ++ [a] gameTree hyp) (h' : x.length < 2 * k) :
                                      @[simp]
                                      theorem GaleStewartGame.BorelDet.pInvTreeHomMap_nil {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} :
                                      @[simp]
                                      theorem GaleStewartGame.BorelDet.pInvTreeHomMap_concat {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : List A) (a : A) :
                                      @[simp]
                                      theorem GaleStewartGame.BorelDet.pInvTreeHomMap_len {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : List A) :
                                      @[simp]
                                      theorem GaleStewartGame.BorelDet.getTree_pInvTreeHomMap {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : List A) :

                                      Auxiliary declaration for the Borel determinacy formalization.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        @[simp]
                                        theorem GaleStewartGame.BorelDet.pInvTreeHom_val {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) (x : ((Descriptive.Tree.res (2 * k)).obj A, G.tree).snd) :
                                        def GaleStewartGame.BorelDet.treeHomRes {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) :

                                        Auxiliary declaration for the Borel determinacy formalization.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          instance GaleStewartGame.BorelDet.treeHom_fixing {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) :
                                          @[simp]
                                          theorem GaleStewartGame.BorelDet.pInv_treeHom_val {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) (x : (oldAsTrees hyp).snd) (h : (↑x).length 2 * k) :
                                          (Descriptive.Tree.pInv (treeHom hyp) x ) = pInvTreeHomMap hyp x
                                          def GaleStewartGame.BorelDet.game {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) :
                                          Game (upA hyp)

                                          Auxiliary declaration for the Borel determinacy formalization.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            @[simp]
                                            theorem GaleStewartGame.BorelDet.game_tree {A : Type u_1} {G : Game A} {k : } (hyp : Hyp G k) :
                                            (game hyp).tree = gameTree hyp
                                            @[reducible, inline]
                                            abbrev GaleStewartGame.BorelDet.G' {A : Type u_2} {G : Game A} {k : } {hyp : Hyp G k} :
                                            Game (upA hyp)

                                            Auxiliary declaration for the Borel determinacy formalization.

                                            Equations
                                            Instances For
                                              theorem GaleStewartGame.BorelDet.getTree_eq' {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : List (upA hyp)) (h : x gameTree hyp) :
                                              theorem GaleStewartGame.BorelDet.getTree_eq {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : (gameTree hyp)) :
                                              getTree' hyp x = Descriptive.Tree.subAt (getTree' hyp (List.take (2 * k + 2) x)) (List.map Prod.fst (List.drop (2 * k + 2) x))
                                              theorem GaleStewartGame.BorelDet.mem_getTree {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : (gameTree hyp)) :
                                              theorem GaleStewartGame.BorelDet.wins_iff_answer {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : (Descriptive.Tree.body (game hyp).tree)) :
                                              x (game hyp).payoff WinningCondition (Stream'.take (2 * k + 2) x)
                                              instance GaleStewartGame.BorelDet.instDiscreteTopologyUpA {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} :
                                              theorem GaleStewartGame.BorelDet.payoff_clopen {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} :
                                              theorem GaleStewartGame.BorelDet.T'_snd_medium' {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} (x : (gameTree hyp)) (h : (↑x).length = 2 * k + 1) :
                                              @[simp]
                                              theorem GaleStewartGame.BorelDet.treeHom_extensions_val {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : (gameAsTrees hyp).snd} (a : Descriptive.Tree.ExtensionsAt x) {y : (fun (S : Descriptive.Tree.Trees) => S.snd) (oldAsTrees hyp)} (h : (CategoryTheory.ConcreteCategory.hom (treeHom hyp)) x = y) :
                                              theorem GaleStewartGame.BorelDet.extensionsAt_ext_fst {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : (game hyp).tree} (a b : Descriptive.Tree.ExtensionsAt x) (hx : 2 * k + 2 (↑x).length) (h : (↑a).1 = (↑b).1) :
                                              a = b
                                              theorem GaleStewartGame.BorelDet.getTree_lost {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : (game hyp).tree} (y : (game hyp).tree) (h : x <+: y) (hxl : (↑x).length = 2 * k + 2) (hL : G.WonPosition (List.map Prod.fst y) (Player.residual (↑y) Player.one)) :
                                              LosingCondition (↑x) hxl
                                              theorem GaleStewartGame.BorelDet.LosingCondition.not_lost_short {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : (game hyp).tree} (hxl : 2 * k + 2 (↑x).length) (H : LosingCondition (Descriptive.Tree.take (2 * k + 2) x) ) (hnL : ¬G.WonPosition (List.map Prod.fst x) (Player.residual (↑x) Player.one)) :
                                              (↑x).length + 1 2 * k + 2 + (↑H.y).length
                                              theorem GaleStewartGame.BorelDet.extensionsAt_eq_of_lost {A : Type u_1} {G : Game A} {k : } {hyp : Hyp G k} {x : (game hyp).tree} (y : (game hyp).tree) (h : x <+: y) (hxl : 2 * k + 2 (↑x).length) (hnL : ¬G.WonPosition (List.map Prod.fst x) (Player.residual (↑x) Player.one)) (hL : G.WonPosition (List.map Prod.fst y) (Player.residual (↑y) Player.one)) {a b : Descriptive.Tree.ExtensionsAt x} :
                                              a = b