• 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
            • 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
              • Last-anchor-voters-p-of-next
              • Validator-last-anchor-voters-p
              • Last-anchor-voters-p
              • Last-anchor-voters-p-when-init
            • 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
  • Correctness

Last-anchor-voters-def-and-init-and-next

Invariant that the last committed anchor has at least a certain stake of successors: definition, establishment, and preservation.

When the last committed round is not 0, there is always an anchor at that round: see last-anchor-present. Furthermore, that anchor always has successors whose total stake is more than f, where f is introduced in max-faulty-for-total. This total stake provides the votes that are in fact necessary to commit that anchor.

Initially the last committed round is 0, so the invariant holds trivially. The only kind of events that changes the last committed anchor is commit, whose preconditions establish the invariant. The only kinds of events that may change the successors are create and accept, which may add a certificate to the DAG: the added certificate may or may not be a successor, but if it is, it can only increase the voting stake, never decrease it.

Here we define the invariant, we prove that it holds in all initial states, and we prove that it is preserved by all transitions. Elsewhere we prove that the invariant holds in every reachable state.

Subtopics

Last-anchor-voters-p-of-next
Preservation of the invariant: if the invariant holds in a system state, it also holds in the next system state.
Validator-last-anchor-voters-p
Check if a validator state satisfies the invariant.
Last-anchor-voters-p
Definition of the invariant: for each correct validator, if the last committed round is not 0, the last committed anchor has at least f+1 successors, where f is the maximum number of faulty validators in the committee active at the round just after the last committed one.
Last-anchor-voters-p-when-init
Establishment of the invariant: the invariant holds in any initial state.