• 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
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Leftist-trees
      • Java
      • Taspi
      • Bitcoin
      • Riscv
      • 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-stake2
            • 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
              • 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
                • Backward-closed-p-of-next
                • Backward-closed-p
                • Backward-closed-p-when-init
                • Backward-closed-p-when-reachable
                • Backward-closed-p-of-events-next
              • 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-anchors-sequences
              • Omni-paths
              • Last-anchor-voters
              • Unequivocal-dag
              • Nonforking-blockchains
              • Nonforking-anchors
              • Committed-redundant
              • Same-committees
              • Blockchain-redundant
            • Definition
          • Aleobft-dynamic
          • Aleobft-stake
          • Aleobft-proposals
          • Library-extensions
        • Leo
      • Solidity
      • Paco
      • Concurrent-programs
      • Bls12-377-curves
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • Correctness

Backward-closure

Invariant that DAGs are backward-closed.

A validator's DAG is extended via two kinds of events, namely create and accept.

A create event may only occur if the certificate's author has all the previous certificates in its DAG.

An accept event may only occur if the DAG has all the previous certificates as well.

This means that DAGs are always backward-closed: there are no dangling edges. Recall that edges always point backwards (from a round to the round just before it), which justifies the `backward' in `backward-closed'.

Subtopics

Backward-closed-p-of-next
Preservation of the invariant: if the invariant holds in a system state, it also holds in the next system state.
Backward-closed-p
Definition of the invariant: the DAG of each correct validator is backward-closed.
Backward-closed-p-when-init
Establishment of the invariant: the invariant holds in any initial system state.
Backward-closed-p-when-reachable
The invariant holds in every reachable state.
Backward-closed-p-of-events-next
Preservation of the invariant by multiple transitions.