• 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
        • Primitive-functions
        • Translated-terms
        • Values
          • Value
            • Valuep
            • Value-case
            • Value-fix
            • Value-equiv
            • Value-count
            • Value-cons
            • Value-symbol
            • Value-string
            • Value-number
            • Value-character
            • Value-kind
          • 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
      • Json
      • Jfkr
      • Equational
      • Cryptography
      • Poseidon
      • Where-do-i-place-my-book
      • Axe
      • Bigmems
      • Builtins
      • Execloader
      • Aleo
      • Solidity
      • Paco
      • Concurrent-programs
      • Bls12-377-curves
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • Values

Value

Fixtype of values.

This is a tagged union type, introduced by fty::deftagsum.

Member Tags → Types
:number → value-number
:character → value-character
:string → value-string
:symbol → value-symbol
:cons → value-cons

The ACL2 values of the evaluation semantics are numbers, characters, strings, symbols, and cons pairs. See the discussion in symbol-value for why we do not use the built-in ACL2 symbols here.

The ACL2 logical semantics also allows additional values called `bad atoms', and consequently cons pairs that may contain them directly or indirectly. However, such values cannot be constructed in evaluation, and therefore are not formalized here, where we are only concerned with the ACL2 programming language, not the ACL2 logic.

Note that the constructors value-number, value-character, and value-string lift ACL2 numbers, characters, and symbols to the meta level, analogously to lift-symbol for symbols. Note also that the accessors value-number->get, value-character->get, and value-string->get do the opposite, i.e. they lower numbers, characters, and strings from the meta level, analogously to lower-symbol.

On the other hand, the constructor value-cons does not lift a cons pair to the meta level, because it operates on two meta-level values. See lift-value instead.

Subtopics

Valuep
Recognizer for value structures.
Value-case
Case macro for the different kinds of value structures.
Value-fix
Fixing function for value structures.
Value-equiv
Basic equivalence relation for value structures.
Value-count
Measure for recurring over value structures.
Value-cons
Value-symbol
Value-string
Value-number
Value-character
Value-kind
Get the kind (tag) of a value structure.