Documentation

FMMidgard.ProofProtocol.MerkleTrees

Abstract Idea of Merkle Trees #

We provide minimal structure to model Merkle Trees specific to the proof protocol.

For a more complete definition check DataStructures.MerkleTree.Definitions.

    Instances For
      axiom MerkleAxioms.same_tree {α : Type} (ls rs : List α) :
      list_tree ls = list_tree rs → ls = rs
      Instances For
        @[reducible, inline]
        Equations
        Instances For
          axiom MerkleAxioms.is_valid_path {α : Type} (v : α) (path : Path) (m : MerkleTree) :
          axiom MerkleAxioms.pathMem {α : Type} (v : α) (ls : List α) (p : Path) :
          is_valid_path v p (list_tree ls) = true → v ∈ ls
          inductive FullDataTree.BinHTree (α : Type) :
          Instances For
            Instances For
              theorem ListSimulation.validProof {α : Type} [DecidableEq α] (v : α) (p : Path) (ls : List α) :
              (check_valid_path v p ls == true) = true → v ∈ ls
              theorem ListSimulation.validProof' {α : Type} [DecidableEq α] {v : α} {ls : List α} (vin : v ∈ ls) :
              ∃ (p : Path), (check_valid_path v p ls == true) = true
              Equations
              Instances For
                Equations
                Instances For
                  Instances For
                    def ListSimulation.check_non_membership {α : Type} [LinearOrder α] (wit : NonMemProof α) (elem : α) (ls : List α) (_ls_non_empty : ¬ls = []) :
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      axiom ListSimulation.validProofNonMem {α : Type} [LinearOrder α] {wit : NonMemProof α} {e : α} {ls : List α} (ls_nempty : ¬ls = []) (lsS : List.Sorted (fun (x1 x2 : α) => x1 < x2) ls) (mem : (check_non_membership wit e ls ls_nempty == true) = true) :
                      e ∉ ls
                      axiom ListSimulation.validProofNonMem' {α : Type} [t : LinearOrder α] {e : α} {ls : List α} (ls_nempty : ¬ls = []) (lsS : List.Sorted (fun (x1 x2 : α) => x1 < x2) ls) (ein : e ∉ ls) :
                      ∃ (wit : NonMemProof α), (check_non_membership wit e ls ls_nempty == true) = true
                      Equations
                      Instances For