• 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
          • Program-equivalence
          • Functions
            • Function
            • Function-lookup
            • Function-option
            • Lift-function
            • Lift-function-list
            • Function-set
          • 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
  • ACL2-programming-language

Functions

A formalization of ACL2 defined functions.

Functions are defined via defun in ACL2. Its arguments include a list of formal parameters and a body, among others.

In our formalization, for now we only consider a function's name, parameters, and body. Thus, we introduce a notion of function as consisting of a name (a symbol), a list of parameters (symbols), and a body (a translated term); here we capture the unnormalized body of the function. This notion may be extended in the future as needed, e.g. to include a function's guard.

This is distinct from the notion of translated functions introduced as part of translated terms. Those (see the fixtype tfunction) consist of symbols (i.e. just function names) and lambda expressions (i.e. unnamed functions).

Subtopics

Function
Fixtype of (defined) functions.
Function-lookup
Look up a function in a set, by name.
Function-option
Fixtype of optional functions.
Lift-function
Lift a defined function from the current ACL2 environment to the meta level.
Lift-function-list
Lift a list of functions (specified by symbol) from the current ACL2 environment to the meta level, obtaining a set of functions.
Function-set
Fixtype of finite sets of functions.