• 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
            • Value
            • Symbol-value
            • Lower-symbol
            • Lift-symbol-list
            • Symbol-value-option
            • Value-option
            • Lift-value
            • Lift-symbol
              • Value-rational->get
              • Value-integer->get
              • Value-case-rational
              • Value-case-integer
              • Value-symbol-list
              • Lower-value
              • Value-list-of
              • Value-list
              • Symbol-value-list
              • Symbol-value-set
              • Value-t
              • Value-nil
            • Evaluation
            • 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
    • Values

    Lift-symbol

    Lift an ACL2 symbol to a symbol value.

    Signature
    (lift-symbol sym) → symval
    Arguments
    sym — Guard (symbolp sym).
    Returns
    symval — Type (symbol-valuep symval).

    This function lifts an ACL2 symbol to the meta level, i.e. to our formalization of ACL2 symbols.

    We extract package name and symbol name from the ACL2 symbol, and we build a symbol value that represents that symbol at the meta level.

    Definitions and Theorems

    Function: lift-symbol

    (defun lift-symbol (sym)
      (declare (xargs :guard (symbolp sym)))
      (let ((__function__ 'lift-symbol))
        (declare (ignorable __function__))
        (b* ((package (symbol-package-name sym))
             (name (symbol-name sym)))
          (make-symbol-value :package package
                             :name name))))

    Theorem: symbol-valuep-of-lift-symbol

    (defthm symbol-valuep-of-lift-symbol
      (b* ((symval (lift-symbol sym)))
        (symbol-valuep symval))
      :rule-classes :rewrite)