• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
      • Legacy-defrstobj
      • Proof-checker-array
      • Soft
      • C
      • Farray
      • Rp-rewriter
      • Riscv
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Leftist-trees
      • Java
      • Taspi
      • Bitcoin
      • Des
      • Ethereum
      • X86isa
      • Sha-2
      • Yul
      • Zcash
      • Proof-checker-itp13
      • Regex
      • ACL2-programming-language
      • Json
      • Jfkr
      • Equational
      • Cryptography
      • Poseidon
      • Where-do-i-place-my-book
      • Axe
      • Bigmems
      • Builtins
      • Execloader
      • Aleo
        • Aleobft
          • Aleobft-static
          • Aleobft-dynamic
          • Aleobft-arxiv
            • Correctness
              • Unequivocal-dags-def-and-init
              • Same-committees-def-and-implied
              • Dag-omni-paths
              • 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
                • Pick-successor/predecessor
                • Pick-successor/predecessor-properties
                • Not-empty-successor-predecessor-author-intersection
                • Not-empty-successor-predecessor-intersection
                • Successors+predecessors-same-round
              • 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-even-blocks
              • 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
          • Aleobft-stake
          • Aleobft-proposals
          • Library-extensions
        • Leo
      • Solidity
      • Paco
      • Concurrent-programs
      • Bls12-377-curves
    • Debugging
    • Std
    • Proof-automation
    • Community
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • Correctness

Successor-predecessor-intersection

Intersection of successors and predecessors.

This is the second key intersection argument for the correctness of AleoBFT, besides quorum intersection. However, this second argument is very different: it has nothing to do with correct and faulty validators; it only has to do with paths in DAGs. When an anchor A at a round r has enough voting stake from the successors at round r+1, then if there is a certificate C at round r+2 then there must be a certificate B at round r+1 that is both a successor (i.e. voter) of A and a predecessor of C. This actually also applies across differnt DAGs: A is in DAG 1, C is in DAG 2, and B is in both DAG 1 and DAG 2. The case in which DAGs 1 and 2 are the same is a special case.

Here we prove the non-emptiness of the intersection, and we introduce a function to pick a common certificate from the intersection. This is then used in further proofs.

Here we talk about successors and predecessors, not specifically voters and anchors, because the argument is more general.

Subtopics

Pick-successor/predecessor
Pick a certificate in the successor-predecessor intersection.
Pick-successor/predecessor-properties
Key properties of pick-successor/predecessor.
Not-empty-successor-predecessor-author-intersection
Non-empty intersection of successor and predecessor authors.
Not-empty-successor-predecessor-intersection
Non-empty intersection of successors and predecessors
Successors+predecessors-same-round
Successors and predecessors have all the same round.