Documentation

FraudProof.Games.ElemInTree

structure ElemInMTree (α ℍ : Type) :
Instances For
    def implicit_element_in_tree {α ℍ : Type} [m : Hash α ℍ] [mag : HashMagma ℍ] (computation : ElemInMTree α ℍ) (missing_data : List ℍ) :
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def leaf_condition {α ℍ : Type} [BEq ℍ] [o : Hash α ℍ] (a : α) (h : ℍ) :
      Equations
      Instances For
        def mid_condition {ℍ : Type} [BEq ℍ] [mag : HashMagma ℍ] (p : PMoves ℍ) (h : ℍ) :
        Equations
        Instances For
          @[irreducible]
          def arbElem {α ℍ : Type} (pos : Skeleton) [BEq ℍ] [o : Hash α ℍ] [m : HashMagma ℍ] (da : ElemInMTree α ℍ) (proposer : Skeleton → Option (PMoves ℍ)) (chooser : Skeleton → PMoves ℍ → Option ChooserSmp) :
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def arbElemInit {α ℍ : Type} [BEq ℍ] [Hash α ℍ] [HashMagma ℍ] (da : ElemInMTree α ℍ) (proposer : Skeleton → Option (PMoves ℍ)) (chooser : Skeleton → PMoves ℍ → Option ChooserSmp) :
            Equations
            Instances For
              structure ElemInTreeN (n : ℕ) (α ℍ : Type) :
              Instances For
                def SingleLastStep {α ℍ : Type} [BEq ℍ] [h : Hash α ℍ] (data : ElemInTreeN 0 α ℍ) :
                Equations
                Instances For
                  def SingleMidStep {ℍ : Type} [BEq ℍ] [m : HashMagma ℍ] (data : ℍ × ℍ × ℍ) :
                  Equations
                  Instances For
                    def elemInHGame {α ℍ : Type} [BEq ℍ] [Hash α ℍ] [HashMagma ℍ] {n : ℕ} (da : ElemInTreeN n α ℍ) (proposer : Sequence n (Option (PMoves ℍ))) (chooser : Sequence n (ℍ × ℍ × ℍ → Option ChooserSmp)) :
                    Equations
                    Instances For
                      structure ElemInTreeH (n : ℕ) (ℍ : Type) :
                      Instances For
                        def SingleLastStepH {ℍ : Type} [BEq ℍ] (data : ElemInTreeH 0 ℍ) :
                        Equations
                        Instances For
                          def elem_in_tree_backward {ℍ : Type} [BEq ℍ] [HashMagma ℍ] {n : ℕ} (da : ElemInTreeH n ℍ) (proposer : Sequence n (Option (PMoves ℍ))) (chooser : Sequence n (ℍ × ℍ × ℍ → Option ChooserSmp)) :
                          Equations
                          Instances For
                            def forward_mid_step_condition {ℍ : Type} [BEq ℍ] [m : HashMagma ℍ] (side : SkElem) (data : ℍ × ℍ) (res : ℍ) :
                            Equations
                            Instances For
                              def elem_in_tree_forward {ℍ : Type} [BEq ℍ] [HashMagma ℍ] {n : ℕ} (da : ElemInTreeH n ℍ) (proposer : Sequence n (Option (PMoves ℍ))) (chooser : Sequence n (ℍ × ℍ × ℍ → Option ChooserSmp)) :
                              Equations
                              Instances For
                                def elem_in_forward {α ℍ : Type} {n : ℕ} [BEq ℍ] [o : Hash α ℍ] [m : HashMagma ℍ] (path : ISkeleton n) (elem : α) (top : ℍ) (proposer : Sequence n (Option (ℍ × ℍ))) (chooser : Sequence n (ℍ × ℍ × ℍ → Option ChooserSmp)) :
                                Equations
                                Instances For
                                  def elem_in_backward_rev {α ℍ : Type} {n : ℕ} [BEq ℍ] [o : Hash α ℍ] [m : HashMagma ℍ] (path : ISkeleton n) (top : ℍ) (proposer : Sequence n (Option (ℍ × ℍ)) × Option α) (chooser : Sequence n (ℍ × ℍ × ℍ → Option ChooserSmp)) :
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    def naive_lin_forward_test {ℍ : Type} [m : HashMagma ℍ] [BEq ℍ] :
                                    ℍ × ℍ × ℍ → Option ChooserSmp
                                    Equations
                                    Instances For
                                      def naive_lin_forward {ℍ : Type} {n : ℕ} [HashMagma ℍ] [BEq ℍ] :
                                      Sequence n (ℍ × ℍ × ℍ → Option ChooserSmp)
                                      Equations
                                      Instances For
                                        theorem elem_back_rev_honest_two {α ℍ : Type} {n : ℕ} [DecidableEq α] [BEq ℍ] [LawfulBEq ℍ] [H : Hash α ℍ] [Mag : HashMagma ℍ] [injH : InjectiveHash α ℍ] [injM : InjectiveMagma ℍ] {ph : ISkeleton n} {mk : ℍ} {e : α} (proposer : Sequence n (Option (ℍ × ℍ)) × Option α) {data : BTree α} (HMkTree : data.hash_BTree = mk) (HElem : ABTree.iaccess data ph = some (Sum.inl e)) :
                                        def elem_in_reveler_winning_condition_backward {ℍ : Type} [BEq ℍ] [HashMagma ℍ] {n : ℕ} (da : ElemInTreeH n ℍ) (proposer : Sequence n (PMoves ℍ)) :
                                        Equations
                                        Instances For
                                          def elem_in_reveler_winning_condition_forward {ℍ : Type} [BEq ℍ] [HashMagma ℍ] {n : ℕ} (da : ElemInTreeH n ℍ) (proposer : Sequence n (ℍ × ℍ)) :
                                          Equations
                                          Instances For
                                            def spine_forward {ℍ : Type} {n : ℕ} :
                                            Sequence n (PMoves ℍ) → Sequence n ℍ
                                            Equations
                                            Instances For
                                              def sibling_forward {ℍ : Type} {n : ℕ} :
                                              Sequence n (PMoves ℍ) → Sequence n ℍ
                                              Equations
                                              Instances For
                                                theorem winning_reveler_wins {ℍ : Type} [BEq ℍ] [HashMagma ℍ] {n : ℕ} (da : ElemInTreeH n ℍ) (proposer : Sequence n (PMoves ℍ)) (winning_prop : elem_in_reveler_winning_condition_backward da proposer) (chooser : Sequence n (ℍ × ℍ × ℍ → Option ChooserSmp)) :
                                                theorem winning_reveler_wins_forward {ℍ : Type} [BEq ℍ] [HashMagma ℍ] {n : ℕ} (da : ElemInTreeH n ℍ) (proposer : Sequence n (PMoves ℍ)) (winning_prop : elem_in_reveler_winning_condition_forward da proposer) (chooser : Sequence n (ℍ × ℍ × ℍ → Option ChooserSmp)) :
                                                def last_step {ℍ : Type} [BEq ℍ] [m : HashMagma ℍ] (side : SkElem) (res : ℍ) (data : ℍ × ℍ) :
                                                Equations
                                                Instances For
                                                  def knowing {ℍ : Type} [BEq ℍ] [HashMagma ℍ] (skl : ABTree SkElem Unit) (know : ABTree ℍ ℍ) (i o : ℍ) :
                                                  Equations
                                                  Instances For
                                                    def input_prop {ℍ : Type} (data : ABTree (Option ℍ) (Option ℍ)) (i : ℍ) :
                                                    Equations
                                                    Instances For
                                                      theorem range_chooser_wins {ℍ : Type} [BEq ℍ] [LawfulBEq ℍ] [HashMagma ℍ] [hash_props : SLawFulHash ℍ] (comp_skeleton : ABTree SkElem Unit) (input_rev input_ch output : ℍ) (hneq : ¬input_rev = input_ch) (reveler : ABTree (Option ℍ) (Option ℍ)) (chooser : ABTree ℍ ℍ) (chooser_wise : knowing comp_skeleton chooser input_ch output) :
                                                      spl_game { data := comp_skeleton, res := (input_rev, output) } reveler (gen_to_fun_chooser (ABTree.map some some chooser)) = Player.Chooser