• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • Soft
        • C
        • Bv
        • Imp-language
        • Event-macros
        • Java
        • Bitcoin
        • Ethereum
        • Yul
        • Zcash
        • ACL2-programming-language
          • Primitive-functions
          • Translated-terms
          • Values
          • Evaluation
            • Step-from-trans
            • Call-primitive-function
            • Step-from-init
            • Put-leftmost-nonconst
            • Exec-outcome
            • Stepn
            • Step
            • Terminatingp
            • Get-leftmost-nonconst
            • Exec-call
              • Step*
            • Program-equivalence
            • Functions
            • Packages
            • Programs
            • Interpreter
            • Evaluation-states
          • Prime-fields
          • Json
          • Syntheto
          • File-io-light
          • Cryptography
          • Number-theory
          • Lists-light
          • Axe
          • Builtins
          • Solidity
          • Helpers
          • Htclient
          • Typed-lists-light
          • Arithmetic-light
        • X86isa
        • Axe
        • Execloader
      • Math
      • Testing-utilities
    • Evaluation

    Exec-call

    Execute a call of a function on a list of arguments.

    Signature
    (exec-call function arguments program) → outcome
    Arguments
    function — Guard (symbol-valuep function).
    arguments — Guard (value-listp arguments).
    program — Guard (programp program).
    Returns
    outcome — Type (exec-outcome-p outcome).

    We create an initial state with the function (symbol) and the arguments, and we attempt to exhaustively perform execution steps. We return the execution outcome.

    This function is not executable.

    Definitions and Theorems

    Function: exec-call

    (defun exec-call (function arguments program)
      (declare (xargs :guard (and (symbol-valuep function)
                                  (value-listp arguments)
                                  (programp program))))
      (let ((__function__ 'exec-call))
        (declare (ignorable __function__))
        (b* ((start-estate (eval-state-init function arguments)))
          (step* start-estate program))))

    Theorem: exec-outcome-p-of-exec-call

    (defthm exec-outcome-p-of-exec-call
      (b* ((outcome (exec-call function arguments program)))
        (exec-outcome-p outcome))
      :rule-classes :rewrite)