• 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
            • Correctness
            • Definition
              • Initialization
                • System-init
                • System-init-loop
                • Validator-init
                • System-initp
                  • System-validators-initp
                • Transitions
                • States
                • Events
                • Reachability
            • Aleobft-dynamic
            • 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
    • Initialization

    System-initp

    Check if a system state is an initial one.

    Signature
    (system-initp systate) → yes/no
    Arguments
    systate — Guard (system-statep systate).
    Returns
    yes/no — Type (booleanp yes/no).

    Every correct validator must be in the initial state, and the network must be empty (no messages have been sent yet).

    Furthermore, the network is initially empty.

    Definitions and Theorems

    Function: system-initp

    (defun system-initp (systate)
      (declare (xargs :guard (system-statep systate)))
      (let ((__function__ 'system-initp))
        (declare (ignorable __function__))
        (and (system-validators-initp systate)
             (emptyp (get-network-state systate)))))

    Theorem: booleanp-of-system-initp

    (defthm booleanp-of-system-initp
      (b* ((yes/no (system-initp systate)))
        (booleanp yes/no))
      :rule-classes :rewrite)

    Theorem: system-initp-of-system-state-fix-systate

    (defthm system-initp-of-system-state-fix-systate
      (equal (system-initp (system-state-fix systate))
             (system-initp systate)))

    Theorem: system-initp-system-state-equiv-congruence-on-systate

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