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 ℍ] :
        Unit → Range ℍ → 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 ℍ] :
                                                SkElem → ℍ → Range ℍ → 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