• 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
      • Riscv
      • 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
      • 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
            • 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
              • Last-anchor-present-p-of-next
              • Last-anchor-present-p
                • Last-anchor-present-p-when-init
                • Last-anchor-present-p-of-events-next
                • Last-anchor-present-p-when-reachable
              • 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
    • Last-anchor-present

    Last-anchor-present-p

    Definition of the invariant: for each correct validator, if the last committed round is not 0, there is an anchor at that round.

    This predicate implicitly requires that the validator can calculate the active committee at the last committed round (if not 0), because otherwise last-anchor returns nil.

    Definitions and Theorems

    Theorem: last-anchor-present-p-necc

    (defthm last-anchor-present-p-necc
     (implies
          (last-anchor-present-p systate)
          (implies (in val (correct-addresses systate))
                   (b* ((vstate (get-validator-state val systate)))
                     (implies (not (equal (validator-state->last vstate)
                                          0))
                              (last-anchor vstate))))))

    Theorem: booleanp-of-last-anchor-present-p

    (defthm booleanp-of-last-anchor-present-p
      (b* ((yes/no (last-anchor-present-p systate)))
        (booleanp yes/no))
      :rule-classes :rewrite)

    Theorem: last-anchor-present-p-of-system-state-fix-systate

    (defthm last-anchor-present-p-of-system-state-fix-systate
      (equal (last-anchor-present-p (system-state-fix systate))
             (last-anchor-present-p systate)))

    Theorem: last-anchor-present-p-system-state-equiv-congruence-on-systate

    (defthm
         last-anchor-present-p-system-state-equiv-congruence-on-systate
      (implies (system-state-equiv systate systate-equiv)
               (equal (last-anchor-present-p systate)
                      (last-anchor-present-p systate-equiv)))
      :rule-classes :congruence)