• 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
            • Unequivocal-dags-def-and-init
            • Same-committees-def-and-implied
            • Dag-omni-paths
              • Dag-omni-paths-round-p-of-next-round
              • Dag-omni-paths-p
              • Dag-omni-paths-round-p
              • Path-from-common-to-cert1-in-dag2
                • Dag-omni-paths-rounds-p
                • Dag-omni-paths-round-p-base-case
                • Path-from-cert2-to-cert1-in-dag2
                • Dag-omni-paths-round-p-step-case
                • Dag-omni-paths-round-p-of-round-delta
                • Dag-omni-paths-p-holds
                • Dag-omni-paths-round-p-holds
              • Signer-records
              • Unequivocal-dags-next
              • Quorum-intersection
              • Dag-previous-quorum-def-and-init-and-next
              • Unequivocal-signed-certificates
              • Signed-previous-quorum
              • Nonforking-anchors-def-and-init-and-next
              • Successor-predecessor-intersection
              • Fault-tolerance
              • Last-anchor-voters-def-and-init-and-next
              • Signer-quorum
              • Committed-redundant-def-and-init-and-next
              • Nonforking-blockchains-def-and-init
              • Blockchain-redundant-def-and-init-and-next
              • No-self-endorsed
              • Last-anchor-present
              • Anchors-extension
              • Nonforking-blockchains-next
              • Backward-closure
              • Last-blockchain-round
              • Dag-certificate-next
              • Omni-paths-def-and-implied
              • Ordered-blockchain
              • Simultaneous-induction
              • System-certificates
              • Last-anchor-def-and-init
              • Last-anchor-next
              • Dag-previous-quorum
              • Signed-certificates
              • Committed-anchor-sequences
              • Omni-paths
              • Last-anchor-voters
              • Unequivocal-dags
              • Nonforking-blockchains
              • Nonforking-anchors
              • Committed-redundant
              • Same-committees
              • Blockchain-redundant
            • Definition
            • 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
    • Dag-omni-paths

    Path-from-common-to-cert1-in-dag2

    There is a path in dag2 from the common certificate in the intersection to cert1 in dag1, which is also in dag2.

    Since the common certificate is a successor of cert1 in dag1, there is a path in dag1 from the common certificate to cert1. But since the common certificate is also in dag2, and the two DAGs are (individually and mutually) unequivocal, the result of path-to-author+round applied to the common certificate (as source) must be the same in the two DAGs, namely cert1. So we have that cert1 is also in dag2 besides dag1.

    Definitions and Theorems

    Theorem: path-from-common-to-cert1-in-dag2

    (defthm path-from-common-to-cert1-in-dag2
     (implies
      (and
       (certificate-setp dag1)
       (certificate-setp dag2)
       (certificate-set-unequivocalp dag1)
       (certificate-set-unequivocalp dag2)
       (certificate-sets-unequivocalp dag1 dag2)
       (dag-closedp dag1)
       (dag-closedp dag2)
       (in cert1 dag1)
       (in cert2 dag2)
       (equal (certificate->round cert2)
              (+ 2 (certificate->round cert1)))
       (dag-has-committees-p dag1 blockchain1)
       (dag-has-committees-p dag2 blockchain2)
       (dag-in-committees-p dag1 blockchain1)
       (dag-in-committees-p dag2 blockchain2)
       (same-active-committees-p blockchain1 blockchain2)
       (dag-predecessor-quorum-p dag2 blockchain2)
       (>
         (committee-members-stake
              (cert-set->author-set (successors cert1 dag1))
              (active-committee-at-round (1+ (certificate->round cert1))
                                         blockchain1))
         (committee-max-faulty-stake
              (active-committee-at-round (1+ (certificate->round cert1))
                                         blockchain1))))
      (and
          (equal (path-to-author+round
                      (pick-successor/predecessor dag1 dag2 cert1 cert2)
                      (certificate->author cert1)
                      (certificate->round cert1)
                      dag2)
                 cert1)
          (in cert1 dag2))))