• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Error-checking
        • Apt
        • Abnf
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Prime-field-constraint-systems
        • Soft
        • Bv
        • Imp-language
        • Event-macros
        • Bitcoin
        • Ethereum
        • Yul
        • Zcash
        • ACL2-programming-language
          • Primitive-functions
          • Translated-terms
          • Values
            • Value
            • Symbol-value
              • Symbol-value-fix
              • Symbol-value-equiv
              • Symbol-valuep
              • Make-symbol-value
              • Symbol-value->package
              • Symbol-value->name
              • Change-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
            • Value-list-of
            • Lower-value
            • Value-list
            • Symbol-value-list
            • Symbol-value-set
            • Value-nil
            • Value-t
          • Evaluation
          • Program-equivalence
          • Functions
          • Packages
          • Programs
          • Interpreter
          • Evaluation-states
        • Prime-fields
        • Java
        • C
        • Syntheto
        • Number-theory
        • Cryptography
        • Lists-light
        • File-io-light
        • Json
        • Built-ins
        • Solidity
        • Axe
        • Std-extensions
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Execloader
      • Axe
    • Testing-utilities
    • Math
  • Values

Symbol-value

Fixtype of symbol values.

This is a product type introduced by fty::defprod.

Fields
package — stringp
name — stringp

Conceptually, a symbol consists of a package name and a (symbol) name.

We do not use the fixtype of the ACL2 symbols here (i.e. the fixtype for the built-in recognizer symbolp), because that type only contains symbols with known package names. Here instead we are formalizing the ACL2 programming language at the meta level, and therefore we must be able to talk about all possible symbols for different collections of known packages.

We use any strings as package names, even though there are restrictions on package names (see defpkg). These restrictions may be formalized elsewhere.

Subtopics

Symbol-value-fix
Fixing function for symbol-value structures.
Symbol-value-equiv
Basic equivalence relation for symbol-value structures.
Symbol-valuep
Recognizer for symbol-value structures.
Make-symbol-value
Basic constructor macro for symbol-value structures.
Symbol-value->package
Get the package field from a symbol-value.
Symbol-value->name
Get the name field from a symbol-value.
Change-symbol-value
Modifying constructor for symbol-value structures.