• 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
          • Definition
            • Initialization
            • Transitions
            • States
              • Committees
              • System-states
              • Certificates
                • Certificate-set-unequivocalp
                • Certificate-sets-unequivocalp
                • Cert-with-author+round
                • Certs-with-authors+round
                • Certs-with-author
                • Certs-with-round
                • Unequivocal-certs-with-authors+round
                  • Unequivocal-cert-with-author+round
                  • Certificate
                  • Cert-set->author-set
                  • Certificate-option
                  • Cert-set->round-set
                  • Certs-with-authors
                  • Certificate-list-orderedp
                  • Certs-with-signer
                  • Certificate->signers
                  • Certificate-list-evenp
                  • Certificate->transactions
                  • Certificate->previous
                  • Certificate->author
                  • Certificate->round
                  • Certificate-set
                  • Certificate-list
                • Messages
                • Transactions
                • Proposals
                • Validator-states
                • Blocks
                • Addresses
              • Events
              • Reachability
            • 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
    • Certificates

    Unequivocal-certs-with-authors+round

    Properties of certs-with-authors+round when used on unequivocal certificate sets.

    The first theorem says that if certificates with certain authors and a certain round are retrieved from a subset of an unequivocal set of certificates, the same certificates are retrieved from the superset. Note the hypothesis that the given authors are all in the certificates at the given round in the subset. That is, a certificates for each author is in the subset at the round. Otherwise, the superset could have additional certificates at the round, with authors not found in the subset at the round. For the proof, we introduce a local lemma for the membership subgoal that arises from the pick-a-point strategy.

    The second theorem says that if certificates with certain authors and a certain round are retrieved from both of two mutually unequivocal certificate sets, the same certificates are retrieved from both sets. For the proof, we introduce two local lemmas for the two containment membership subgoals from the pick-a-point strategy. The first hypothesis of the first lemma binds the authors and certs1 variables; the first hypothesis of the second lemma binds the authors and certs2 variables.

    Definitions and Theorems

    Theorem: certs-with-authors+round-of-unequivocal-superset

    (defthm certs-with-authors+round-of-unequivocal-superset
     (implies
      (and
        (certificate-setp certs0)
        (certificate-setp certs)
        (subset certs0 certs)
        (certificate-set-unequivocalp certs)
        (posp round)
        (address-setp authors)
        (subset authors
                (cert-set->author-set (certs-with-round round certs0))))
      (equal (certs-with-authors+round authors round certs)
             (certs-with-authors+round authors round certs0))))

    Theorem: certs-with-authors+round-of-unequivocal-sets

    (defthm certs-with-authors+round-of-unequivocal-sets
     (implies
      (and
        (certificate-setp certs1)
        (certificate-setp certs2)
        (certificate-sets-unequivocalp certs1 certs2)
        (posp round)
        (address-setp authors)
        (subset authors
                (cert-set->author-set (certs-with-round round certs1)))
        (subset authors
                (cert-set->author-set (certs-with-round round certs2))))
      (equal (certs-with-authors+round authors round certs1)
             (certs-with-authors+round authors round certs2))))