• 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
          • Aleobft-dynamic
            • Correctness
            • Definition
              • Initialization
              • Transitions
              • States
                • Committees
                • System-states
                  • Update-validator-state
                  • System-state
                  • Validators-state
                  • Update-network-state
                  • Correct-addresses
                  • Get-validator-state
                  • Faulty-addresses
                    • Get-network-state
                    • All-addresses
                  • Certificates
                  • Messages
                  • Validator-states
                  • Transactions
                  • Blocks
                  • Addresses
                • Events
            • 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
    • System-states

    Faulty-addresses

    Set of the addresses of all the faulty validator in the system.

    Signature
    (faulty-addresses systate) → addrs
    Arguments
    systate — Guard (system-statep systate).
    Returns
    addrs — Type (address-setp addrs).

    These are the keys in the map with nil as associated value, or equivalently the difference between the set of all the validator addresses and the set of all the correct validator addresses.

    Definitions and Theorems

    Function: faulty-addresses

    (defun faulty-addresses (systate)
      (declare (xargs :guard (system-statep systate)))
      (let ((__function__ 'faulty-addresses))
        (declare (ignorable __function__))
        (difference (all-addresses systate)
                    (correct-addresses systate))))

    Theorem: address-setp-of-faulty-addresses

    (defthm address-setp-of-faulty-addresses
      (b* ((addrs (faulty-addresses systate)))
        (address-setp addrs))
      :rule-classes :rewrite)

    Theorem: faulty-addresses-of-system-state-fix-systate

    (defthm faulty-addresses-of-system-state-fix-systate
      (equal (faulty-addresses (system-state-fix systate))
             (faulty-addresses systate)))

    Theorem: faulty-addresses-system-state-equiv-congruence-on-systate

    (defthm faulty-addresses-system-state-equiv-congruence-on-systate
      (implies (system-state-equiv systate systate-equiv)
               (equal (faulty-addresses systate)
                      (faulty-addresses systate-equiv)))
      :rule-classes :congruence)