• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • 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
        • C
        • Soft
        • Bv
        • Imp-language
        • Ethereum
        • Event-macros
        • Java
          • Atj
            • Atj-implementation
              • Atj-types
                • Atj-type-<=
                • Atj-function-type
                • Atj-type-to-jitype
                • Atj-type
                  • Atj-typep
                  • Atj-type-case
                  • Atj-type-fix
                  • Atj-type-equiv
                  • Atj-type-jprimarr
                  • Atj-type-jprim
                  • Atj-type-ACL2
                  • Atj-type-kind
                • Atj-function-type-of-min-input-types
                • Atj-type-top-join
                • Atj-atype
                • Atj-type-bottom-meet
                • Atj-type-bottom-<=
                • Atj-type-top-<=
                • Atj-type-top-list-join
                • Atj-type-bottom-list-<=
                • Atj-type-top-list-<=
                • Atj-type-bottom-list-meet
                • Atj-type-list-<=
                • Atj-type-to-pred
                • Atj-maybe-function-type-info
                • Atj-atype-<=
                • Atj-maybe-function-type
                • Atj-maybe-type
                • Atj-type-to-keyword
                • Atj-function-type-info
                • Atj-type-list-join
                • Atj-type-list-to-type
                • Atj-type-list-<
                • Atj-type-list-meet
                • Atj-type-from-keyword
                • Atj-function-type-of-min-input-types-aux
                • Atj-type-<
                • Atj-type-list-to-type-list-list
                • Atj-number-of-results
                • Atj-function-type-info-default
                • Atj-type-to-pred-gen-mono-thms-2
                • Atj-get-function-type-info-from-table
                • Atj-get-function-type-info
                • Atj-type-to-pred-gen-mono-thms-1
                • Atj-type-to-pred-gen-mono-thm
                • Atj-type-meet
                • Atj-type-to-type-list
                • Atj-type-list-to-jitype-list
                • Atj-type-join
                • Atj-type-of-value
                • Atj-type-list-to-keyword-list
                • Atj-type-semilattices
                • Atj-type-to-pred-gen-mono-thms
                • Atj-function-type-info->outputs
                • Atj-function-type-list->outputs
                • Atj-function-type-list->inputs
                • Atj-type-list-from-keyword-list
                • Atj-type-irrelevant
                • Atj-symbol-type-alist
                • Atj-type-list
                • Atj-function-type-list
                • Atj-type-list-list
                • Atj-maybe-type-list
                • Atj-function-type-info-table
                • *atj-function-type-info-table-name*
              • Atj-java-primitive-array-model
              • Atj-java-abstract-syntax
              • Atj-input-processing
              • Atj-java-pretty-printer
              • Atj-code-generation
              • Atj-java-primitives
              • Atj-java-primitive-arrays
              • Atj-type-macros
              • Atj-java-syntax-operations
              • Atj-fn
              • Atj-library-extensions
              • Atj-java-input-types
              • Atj-test-structures
              • Aij-notions
              • Atj-macro-definition
            • Atj-tutorial
          • Aij
          • Language
        • Riscv
        • Bitcoin
        • Zcash
        • Yul
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Axe
        • Lists-light
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Atj-types

Atj-type

Fixtype of all the ATJ types.

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

Member Tags → Types
:acl2 → atj-type-ACL2
:jprim → atj-type-jprim
:jprimarr → atj-type-jprimarr

These are used for code generation, as explained in atj-types.

Currently ATJ uses types for:

  • ACL2 integers, rationals, numbers, characters, strings, symbols, booleans cons pairs, and all values, whose fixtype is atj-atype. With the exception of the type of booleans, these all correspond to the AIJ public class types for ACL2 values.
  • Java primitive values and arrays.

More types may be added in the future.

Each ATJ type denotes (i) an ACL2 predicate (see atj-type-to-pred) and (ii) a Java type (see atj-type-to-jitype). It is not the case that just the :acl2 types denote ACL2 types and just the :jprim and :jprimarr types denote Java types: each type denotes both an ACL2 type and a Java type. The distinction is just that the :acl2 types denote built-in ACL2 types, which are therefore independent from Java (even though they have a Java representation, in AIJ), while the :jprim and :jprimarr types are Java-specific.

Subtopics

Atj-typep
Recognizer for atj-type structures.
Atj-type-case
Case macro for the different kinds of atj-type structures.
Atj-type-fix
Fixing function for atj-type structures.
Atj-type-equiv
Basic equivalence relation for atj-type structures.
Atj-type-jprimarr
Atj-type-jprim
Atj-type-ACL2
Atj-type-kind
Get the kind (tag) of a atj-type structure.