• 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
            • Correctness
              • Unequivocal-accepted-certificates-def-and-init
              • Signer-records
              • Same-committees-def-and-implied
              • Dag-omni-paths
              • Unequivocal-accepted-certificates-next
              • Unequivocal-signed-certificates
              • Nonforking-anchors-def-and-init-and-next
              • Signer-quorum
              • Quorum-intersection
              • Successor-predecessor-intersection
                • Pick-successor/predecessor
                • Cardinality-of-successors+predecessors-bound
                • Pick-successor/predecessor-properties
                • Cardinality-of-successor-predecessor-intersection
                • Cardinality-of-successors+predecessors
                • Successor-predecessor-intersection-not-empty
                • Successors+predecessors-same-round
              • Same-owned-certificates
              • Previous-quorum
              • Last-anchor-voters-def-and-init-and-next
              • Certificates-of-validators
              • Committed-redundant-def-and-init-and-next
              • Nonforking-blockchains-def-and-init
              • Fault-tolerance
              • Rounds-in-committees
              • No-self-messages
              • Blockchain-redundant-def-and-init-and-next
              • Backward-closure
              • Accepted-certificate-committee
              • Nonforking-blockchains-next
              • Anchors-extension
              • No-self-endorsed
              • Last-anchor-present
              • Committees-in-system
              • Last-blockchain-round
              • No-self-buffer
              • Dag-certificate-next
              • Omni-paths-def-and-implied
              • Simultaneous-induction
              • Ordered-even-blocks
              • Last-anchor-def-and-init
              • Same-committees
              • Committed-anchors-sequences
              • Last-anchor-next
              • Unequivocal-accepted-certificates
              • Omni-paths
              • Last-anchor-voters
              • Committed-redundant
              • Nonforking-blockchains
              • Nonforking-anchors
              • Blockchain-redundant
            • Definition
          • Aleobft-arxiv
          • 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 votes (i.e. 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.
Cardinality-of-successors+predecessors-bound
Bound on the cardinality of successors and predecessors.
Pick-successor/predecessor-properties
Key properties of pick-successor/predecessor.
Cardinality-of-successor-predecessor-intersection
Abstract form of the intersection theorem.
Cardinality-of-successors+predecessors
Relation between the number of successor and predecessor certificates and the number of their authors.
Successor-predecessor-intersection-not-empty
The intersection of successors and predecessors is not empty.
Successors+predecessors-same-round
Successors and predecessors have all the same round.