Documentation

FraudProof.Games.LogProof

def comb_tree_heterogeneous {α β : Type} (lf : α → β) (f : β → β → β) (p q : ABTree α β) :
ABTree α β
Equations
Instances For
    def comb_tree_homogeneous {α : Type} (f : α → α → α) (p q : ABTree α α) :
    ABTree α α
    Equations
    Instances For
      def game_arena {lgn : ℕ} (skl : Sequence (2 ^ lgn) SkElem) :
      Equations
      Instances For
        def get_spine {α : Type} (side : SkElem) (e : α × α) :
        α
        Equations
        Instances For
          def get_sibling {α : Type} (side : SkElem) (e : α × α) :
          α
          Equations
          Instances For
            def extract_intermed_hashes {ℍ : Type} {n : ℕ} (skl : Sequence n SkElem) (prop : Sequence n (ℍ × ℍ)) :
            Sequence n ℍ
            Equations
            Instances For
              def extract_sibling_hashes {ℍ : Type} {n : ℕ} (skl : Sequence n SkElem) (prop : Sequence n (ℍ × ℍ)) :
              Sequence n ℍ
              Equations
              Instances For
                def backward_proposer_to_tree {α : Type} {n : ℕ} (sides : Sequence (2 ^ n) SkElem) (prop : Sequence (2 ^ n) (α × α)) :
                ABTree α α
                Equations
                Instances For
                  def forward_proposer_to_tree {α : Type} {n : ℕ} (prop : Sequence (2 ^ n) (α × α)) :
                  ABTree α α
                  Equations
                  Instances For
                    theorem proposer_winning_conditions {ℍ : Type} {lgn : ℕ} [BEq ℍ] [LawfulBEq ℍ] [m : HashMagma ℍ] {da : ElemInTreeH (2 ^ lgn) ℍ} {proposer : Sequence (2 ^ lgn) (ℍ × ℍ)} (wProp : elem_in_reveler_winning_condition_backward da proposer) :
                    reveler_winning_condition_simp_game (fun (x : Range ℍ) (c : ℍ) => match x with | (a, b) => ((a, c), c, b)) (fun (s : SkElem) (h : ℍ) (rh : Range ℍ) => winning_proposer (leaf_condition_length_one s h rh)) (fun (x : Unit) (x : ℍ) (x : Range ℍ) => Player.Proposer) { data := built_up_arena_backward da.data, res := da.mtree } (ABTree.map some some (backward_proposer_to_tree da.data proposer))
                    theorem proposer_winning_mod {ℍ : Type} {lgn : ℕ} [BEq ℍ] [LawfulBEq ℍ] [HashMagma ℍ] (da : ElemInTreeH (2 ^ lgn) ℍ) (proposer : Sequence (2 ^ lgn) (ℍ × ℍ)) (wProp : elem_in_reveler_winning_condition_backward da proposer) (chooser : ABTree Unit (Range ℍ → ℍ → Option ChooserMoves)) :
                    theorem proposer_winning_mod_forward {ℍ : Type} {lgn : ℕ} [BEq ℍ] [LawfulBEq ℍ] [HashMagma ℍ] (da : ElemInTreeH (2 ^ lgn) ℍ) (proposer : Sequence (2 ^ lgn) (ℍ × ℍ)) (wProp : elem_in_reveler_winning_condition_forward da proposer) (chooser : ABTree Unit (Range ℍ → ℍ → Option ChooserMoves)) :