• 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
          • Syntax-for-tools
          • Atc
            • Atc-implementation
              • Atc-abstract-syntax
              • Atc-pretty-printer
              • Atc-event-and-code-generation
              • Fty-pseudo-term-utilities
              • Atc-term-recognizers
                • Atc-stmt-noncval-termp
                • Atc-pure-c-valued-termp
                • Atc-c-valued-termp
                • Atc-boolean-termp
                • *atc-op-type1-type2-fns*
                • *atc-type1-from-type2-fns*
                • *atc-type-base-const-fns*
                • *atc-op-type-fns*
                • *atc-boolean-from-type-fns*
              • Atc-input-processing
              • Atc-shallow-embedding
              • Atc-process-inputs-and-gen-everything
              • Atc-table
              • Atc-fn
              • Atc-pretty-printing-options
              • Atc-types
              • Atc-macro-definition
            • Atc-tutorial
          • Language
          • Representation
          • Transformation-tools
          • Insertion-sort
          • Pack
        • Bv
        • Imp-language
        • Event-macros
        • Java
        • Bitcoin
        • Ethereum
        • Yul
        • Zcash
        • ACL2-programming-language
        • 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
  • Atc-implementation

Atc-term-recognizers

Recognizers of ACL2 terms for ATC.

The user documentation of ATC defines various kinds of ACL2 terms that represent various C constructs. ATC checks these various kinds of terms as part of translating them to C.

Here we provide utilities to recognize these terms. While these utilities are not needed, and are not part of, ATC's C code generation code, they may be useful for external tools, such as APT transformations that work in synergy with ATC.

For now we provide shallow recognizers, which do not thoroughly check the terms and their subterms, but that suffice to distinguish the various kinds of terms. We only provide these recognizers for some kinds of terms for now.

Subtopics

Atc-stmt-noncval-termp
Recognize statement terms that are not expression terms returning C values.
Atc-pure-c-valued-termp
Recognize pure expression terms returning C values terms.
Atc-c-valued-termp
Recognize expression terms returning C values.
Atc-boolean-termp
Recognize expression terms returning booleans.
*atc-op-type1-type2-fns*
List of the <op>-<type1>-<type2> functions described in the user documentation.
*atc-type1-from-type2-fns*
List of the <type1>-from-<type2> functions described in the user documentation.
*atc-type-base-const-fns*
List of the <type>-<base>-const functions described in the user documentation.
*atc-op-type-fns*
List of the <op>-<type> functions described in the user documentation.
*atc-boolean-from-type-fns*
List of the boolean-from-<type> functions described in the user documentation.