• 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
          • Atj
            • Atj-implementation
              • Atj-types
              • 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
                • Atj-test-value
                  • Atj-test-value-fix
                  • Atj-test-value-case
                  • Atj-test-valuep
                  • Atj-test-value-equiv
                  • Atj-test-value-kind
                  • Atj-test-value-ACL2
                  • Atj-test-value-jshort[]
                  • Atj-test-value-jshort
                  • Atj-test-value-jlong[]
                  • Atj-test-value-jlong
                  • Atj-test-value-jint[]
                  • Atj-test-value-jint
                  • Atj-test-value-jchar[]
                  • Atj-test-value-jchar
                  • Atj-test-value-jbyte[]
                  • Atj-test-value-jbyte
                  • Atj-test-value-jboolean[]
                  • Atj-test-value-jboolean
                • Atj-test
                • Atj-test-value-of-type
                • Atj-test-values-of-types
                • Atj-test-value-to-type
                • Atj-test-values-to-types
                • Atj-test-value-ACL2-list
                • Atj-test-value-list
                • Atj-test-list
              • Aij-notions
              • Atj-macro-definition
            • Atj-tutorial
          • Aij
          • Language
        • 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
  • Atj-test-structures

Atj-test-value

Fixtype of values used for inputs and outputs in user-specified ATJ tests.

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

Member Tags → Types
:acl2 → atj-test-value-ACL2
:jboolean → atj-test-value-jboolean
:jchar → atj-test-value-jchar
:jbyte → atj-test-value-jbyte
:jshort → atj-test-value-jshort
:jint → atj-test-value-jint
:jlong → atj-test-value-jlong
:jboolean[] → atj-test-value-jboolean[]
:jchar[] → atj-test-value-jchar[]
:jbyte[] → atj-test-value-jbyte[]
:jshort[] → atj-test-value-jshort[]
:jint[] → atj-test-value-jint[]
:jlong[] → atj-test-value-jlong[]

The Java methods generated by ATJ manipulate three kinds of values:

  1. Objects of the AIJ classes that represent ACL2 values, e.g. Acl2Integer. These correspond to the :acl2 ATJ types, e.g. :ainteger.
  2. Java primitive values, which correspond to the ATJ :jprim types. These values are used only in the shallow embedding with guards.
  3. Java primitive arrays, which correspond to the ATJ :jprimarr types. These arrays are only used in the shallow embedding with guards.

Thus, when generating tests for the generated Java methods, the input and output values of the tests may be of these three different kinds. So we introduce a type for these three kinds of values, with each of the last two kinds having six sub-kinds each. The :acl2 values may be anything, while the j... values are restricted to (our model of) Java primitive values and Java primitive arrays, excluding float and double values and arrays, because we only have an abstract model of those for now and thus ATJ does not support the generation of tests involving float and double.

Subtopics

Atj-test-value-fix
Fixing function for atj-test-value structures.
Atj-test-value-case
Case macro for the different kinds of atj-test-value structures.
Atj-test-valuep
Recognizer for atj-test-value structures.
Atj-test-value-equiv
Basic equivalence relation for atj-test-value structures.
Atj-test-value-kind
Get the kind (tag) of a atj-test-value structure.
Atj-test-value-ACL2
Atj-test-value-jshort[]
Atj-test-value-jshort
Atj-test-value-jlong[]
Atj-test-value-jlong
Atj-test-value-jint[]
Atj-test-value-jint
Atj-test-value-jchar[]
Atj-test-value-jchar
Atj-test-value-jbyte[]
Atj-test-value-jbyte
Atj-test-value-jboolean[]
Atj-test-value-jboolean