• 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
              • Trim-blocks-for-round
              • Bonded-committee-at-round-loop-to-trim-blocks-for-round
              • Same-bonded-committees-longer-shorter
              • Same-committees-list-extension-equivalences
              • Trim-blocks-for-round-of-shorter
              • Same-active-committees-when-nofork
              • Trim-blocks-for-round-of-longer
              • Same-committees-p
              • Trim-blocks-for-round-of-append-yields-first
                • Bonded-committee-at-round-to-trim-blocks-for-round
                • Trim-blocks-for-round-no-change
                • Same-active-committees-longer-shorter
                • Same-committees-p-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
              • 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
    • Same-committees-def-and-implied

    Trim-blocks-for-round-of-append-yields-first

    Trimming an extended blockchain to the smallest round of the extension yields the shorter blockchain.

    This is used to show that trimming the longer blockchain yields the shorter blockchain. We use the formulation with append, where blocks2 is the shorter blockchain, blocks1 is the extension, and the append is the longer blockchain. The cutoff round is the smallest one of the extension. Here we need to assume that block rounds are ordered (in the longer blockchain, which implies that they are also ordered in the extension and in the smaller blockchain).

    Definitions and Theorems

    Theorem: trim-blocks-for-round-of-append-yields-first

    (defthm trim-blocks-for-round-of-append-yields-first
     (implies
       (and (blocks-orderedp (append blocks1 blocks2))
            (consp blocks1))
       (equal (trim-blocks-for-round (block->round (car (last blocks1)))
                                     (append blocks1 blocks2))
              (block-list-fix blocks2))))