• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
      • Legacy-defrstobj
      • C
      • Proof-checker-array
      • Soft
      • Farray
      • Rp-rewriter
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Ethereum
      • Leftist-trees
      • Java
      • Riscv
      • Taspi
      • Bitcoin
      • Zcash
      • Des
      • X86isa
      • Sha-2
      • Yul
      • Proof-checker-itp13
      • Regex
      • ACL2-programming-language
      • Json
      • Jfkr
      • Equational
      • Cryptography
      • Axe
      • Poseidon
      • Where-do-i-place-my-book
      • Aleo
        • Aleobft
          • Correctness
          • Definition
            • Initialization
            • Transitions
              • Transitions-accept
              • Transitions-create
              • Dags
                • Path-to-author+round
                • Successors
                • Certificate-causal-history
                • Dag-in-committees-p
                • Paths-in-unequivocal-closed-dags
                • Predecessors
                • Unequivocal-previous-certificates
                • Certificate-previous-in-dag-p
                • Certificates-dag-paths-p
                • Causal-histories-in-unequivocal-closed-dags
                • Dag-predecessor-quorum-p
                • Path-to-previous
                • Dag-has-committees-p
                • Path-to-author+round-set-to-path-to-author+round
                • Dag-closedp
                • Path-to-author+round-transitive
                  • Path-to-author+round-to-cert-with-author+round
                  • In-of-certificate-causal-history
                  • Path-to-predecessor
                  • Path-from-successor
                  • Certificate-causal-history-subset-when-path
                  • Path-to-head-of-predecessors
                  • Dag-no-prodecessors-round-1-p
                • Events-possiblep
                • Elections
                • Events-next
                • Event-next
                • Transitions-commit
                • Event-possiblep
                • Transitions-advance
                • Blockchains
                • Anchors
              • States
              • Events
              • Reachability
            • Library-extensions
          • Aleovm
          • Leo
        • Bigmems
        • Builtins
        • Execloader
        • Solidity
        • Paco
        • Concurrent-programs
        • Bls12-377-curves
      • Debugging
      • Community
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Dags

    Path-to-author+round-transitive

    Transitivity of DAG paths.

    If there is a path from cert to cert1, and a there is a path from cert1 to cert2, then there is a path from cert and cert2. The property is quite intuitive, but note that we have the hypothesis that the DAG is unequivocal. If the DAG were not unequivocal, paths to the same author and round from different certificates could potentially return different certificates.

    Definitions and Theorems

    Theorem: path-to-author+round-transitive

    (defthm path-to-author+round-transitive
     (implies
      (and
          (certificate-setp dag)
          (certificate-set-unequivocalp dag)
          (in cert dag)
          (in cert1 dag)
          (in cert2 dag)
          (equal (path-to-author+round cert (certificate->author cert1)
                                       (certificate->round cert1)
                                       dag)
                 cert1)
          (equal (path-to-author+round cert1 (certificate->author cert2)
                                       (certificate->round cert2)
                                       dag)
                 cert2))
      (equal (path-to-author+round cert (certificate->author cert2)
                                   (certificate->round cert2)
                                   dag)
             cert2)))