Documentation

FraudProof.Games.GenericTree

@[reducible, inline]
abbrev Range ( : Type) :
Equations
Instances For
    def all_true (ls : List Bool) :
    Equations
    Instances For
      def leaf_condition_range { : Type} [BEq ] (_k : Unit) (h : ) (hda : × ) :
      Equations
      Instances For
        def mid_condition_range_one_step_forward { : Type} [BEq ] [m : HashMagma ] :
        UnitRange Range Range Bool
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          structure CompTree (α β γ : Type) :
          Instances For
            def simp_tree {α α' β β' γ : Type} (splitter : γβγ × γ) (leafCondition : α'αγWinner) (midCondition : β'βγWinner) (da : CompTree α' β' γ) (reveler : ABTree (Option α) (Option β)) (chooser : ABTree Unit (γβOption ChooserMoves)) :
            Equations
            Instances For
              def reveler_winning_condition_simp_game {α α' β β' γ : Type} (splitter : γβγ × γ) (leafCondition : α'αγWinner) (midCondition : β'βγWinner) (da : CompTree α' β' γ) (reveler : ABTree (Option α) (Option β)) :
              Equations
              Instances For
                theorem simp_game_reveler_wins {α α' β β' γ : Type} (splitter : γβγ × γ) (leafCondition : α'αγWinner) (midCondition : β'βγWinner) (da : CompTree α' β' γ) (reveler : ABTree (Option α) (Option β)) (wProp : reveler_winning_condition_simp_game splitter leafCondition midCondition da reveler) (chooser : ABTree Unit (γβOption ChooserMoves)) :
                simp_tree splitter leafCondition midCondition da reveler chooser = Player.Proposer
                def treeCompArbGame {α α' β γ : Type} (leafCondition : αα'γBool) (midCondition : βγγγBool) (da : CompTree α β γ) (reveler : ABTree (Option α') (Option (γ × γ))) (chooser : ABTree Unit (γ × γ × γOption ChooserMoves)) :
                Equations
                Instances For
                  def tree_comp_winning_conditions {α α' β γ : Type} (leafCondition : αα'γProp) (midCondition : βγγγProp) (da : CompTree α β γ) (player : ABTree (Option α') (Option (γ × γ))) :
                  Equations
                  Instances For
                    def splitter_tree_game {α α' β β' γ γ' : Type} (splitter : γγ'γ × γ) (leafCondition : α'αγWinner) (midCondition : β'βγγγWinner) (da : CompTree α' β' γ) (reveler : ABTree (Option α) (Option (β × γ'))) (chooser : ABTree Unit (γ × β × γ × γOption ChooserMoves)) :
                    Instances For
                      def reveler_winning_condition {α α' β γ : Type} (leafCondition : αα'γBool) (midCondition : βγγγBool) (da : CompTree α β γ) (reveler : ABTree (Option α') (Option (γ × γ))) :
                      Equations
                      Instances For
                        def winning_condition_player {α α' β β' γ : Type} (leafCondition : α'αγProp) (midCondition : β'βγProp) (splitter : γβγ × γ) (da : CompTree α' β' γ) (player : ABTree (Option α) (Option β)) :
                        Equations
                        Instances For
                          def gen_to_fun_chooser {α β γ : Type} [BEq β] :
                          ABTree (Option α) (Option β)ABTree Unit (γβOption ChooserMoves)
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            theorem winning_proposer_wins {α α' β' γ : Type} (leafCondition : α'αγBool) (midCondition : β'γγγBool) (da : CompTree α' β' γ) (reveler : ABTree (Option α) (Option (γ × γ))) (good_reveler : reveler_winning_condition leafCondition midCondition da reveler) (chooser : ABTree Unit (γ × γ × γOption ChooserMoves)) :
                            treeCompArbGame leafCondition midCondition da reveler chooser = Player.Proposer
                            axiom no_challenge_matching_data {α α' β β' γ : Type} {splitter : γβγ × γ} {da : CompTree α' β' γ} {leafCondition : α'αγProp} {midCondition : β'βγProp} {player : ABTree (Option α) (Option β)} (knowing : winning_condition_player leafCondition midCondition splitter da player) {other_player : ABTree (Option α) (Option β)} :
                            winning_condition_player leafCondition midCondition splitter da other_player
                            def Unique_Leaf_Condition2 {α α' γ : Type} (lc : αα'γWinner) :
                            Equations
                            Instances For
                              def top_elem {α β : Type} :
                              ABTree α βα β
                              Equations
                              Instances For
                                def homogeneous_tree_game {pinfo γ : Type} (winning_condition : pinfoγγγWinner) (da : ABTree pinfo pinfo) (rn : γ × γ) (reveler : ABTree (Option γ) (Option γ)) (chooser : ABTree Unit (pinfo × γ × γ × γOption ChooserMoves)) :
                                Equations
                                Instances For
                                  structure ImpTreePath (n : ) (α γ : Type) :
                                  Instances For
                                    def ExpTree (n : ) (α α' β : Type) :
                                    Equations
                                    Instances For
                                      def pathToElem {α γ : Type} {n : } (leafCondition : ImpTreePath 0 α γWinner) (nodeCondition : γ × γ × γWinner) (da : ImpTreePath n α γ) (proposer : Sequence n (Option (PMoves γ))) (chooser : Sequence n (γ × γ × γOption ChooserSmp)) :
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      • pathToElem leafCondition nodeCondition da_2 proposer_2 chooser_2 = leafCondition da_2
                                      Instances For
                                        def optJoin {α : Type} :
                                        Option (Option α)Option α
                                        Equations
                                        Instances For
                                          def skeleton_da_to_tree {lgn : } {γ : Type} (skeleton : ISkeleton (2 ^ lgn.succ - 1)) (res : γ) :
                                          Equations
                                          Instances For
                                            def Unique_Leaf_Condition {α α' γ : Type} (lc : αα'γBool) :
                                            Equations
                                            Instances For
                                              def Unique_Mid_Condition {β γ : Type} (md : βγγγBool) :
                                              Equations
                                              Instances For
                                                theorem chooser_data_availability {α α' β γ : Type} [BEq γ] [LawfulBEq γ] (leafCondition : αα'γBool) (unique_leaf : Unique_Leaf_Condition leafCondition) (midCondition : βγγγBool) (unique_mid : Unique_Mid_Condition midCondition) (data : ABTree α β) (ch_res da_res : γ) (reveler : ABTree (Option α') (Option (γ × γ))) (wise_chooser : ABTree α' (γ × γ)) (win_chooser : tree_comp_winning_conditions (fun (x : α) (y : α') (z : γ) => leafCondition x y z = true) (fun (w : β) (x y z : γ) => midCondition w x y z = true) { data := data, res := ch_res } (ABTree.map some some wise_chooser)) (hneq : ¬ch_res = da_res) :
                                                treeCompArbGame leafCondition midCondition { data := data, res := da_res } reveler (ABTree.map (fun (x : α') => ()) (fun (k : γ × γ) (gargs : γ × γ × γ) => if (k.1 == gargs.2.1 && k.2 == gargs.2.2) = true then some ChooserPrimMoves.Now else if (k.1 != gargs.2.1) = true then some (ChooserPrimMoves.Continue Side.Left) else some (ChooserPrimMoves.Continue Side.Right)) wise_chooser) = Player.Chooser
                                                def leaf_condition_length_one { : Type} [BEq ] [HashMagma ] :
                                                SkElemRange Bool
                                                Equations
                                                Instances For
                                                  def spl_game { : Type} [BEq ] [m : HashMagma ] (da : CompTree SkElem Unit (Range )) (proposer : ABTree (Option ) (Option )) (chooser : ABTree Unit (Range Option ChooserMoves)) :
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    def gen_chooser_opt { : Type} [BEq ] (data : Option ( × )) (proposed : × × ) :
                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For