• 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
        • 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-gen-test-method
                • Atj-shallow-code-generation
                • Atj-common-code-generation
                  • Atj-gen-value
                  • Atj-chars-to-jhexcodes
                  • Atj-gen-test-value
                  • Atj-gen-test-main-method
                  • Atj-gen-value-flat
                  • Atj-gen-test-values
                    • Atj-gen-jlocvar-indexed
                    • Atj-gen-pkg-method
                    • Atj-gen-symbol
                    • Atj-gen-jstring
                    • Atj-gen-init-method
                    • Atj-gen-char
                    • Atj-gen-string
                    • Atj-gen-pkg-name
                    • Atj-gen-integer
                    • Atj-gen-test-method-name
                    • Atj-gen-paramlist
                    • Atj-gen-pkg-method-name
                    • Atj-gen-run-tests
                    • Atj-gen-jshort-array
                    • Atj-gen-jboolean-array
                    • Atj-gen-test-failures-field
                    • Atj-gen-pkgs
                    • Atj-gen-jlong-array
                    • Atj-gen-jint-array
                    • Atj-gen-jchar-array
                    • Atj-gen-jchar
                    • Atj-gen-jbyte-array
                    • Atj-char-to-jhexcode
                    • Atj-gen-pkg-methods
                    • Atj-gen-number
                    • Atj-gen-symbols
                    • Atj-gen-static-initializer
                    • Atj-gen-rational
                    • Atj-gen-jlong
                    • Atj-gen-jboolean
                    • Atj-gen-jbigint
                    • Atj-gen-jshort
                    • Atj-gen-jint
                    • Atj-gen-jbyte
                    • *atj-gen-pkg-name-alist*
                  • Atj-shallow-quoted-constant-generation
                  • Atj-pre-translation
                  • Atj-gen-everything
                  • Atj-name-translation
                  • Atj-gen-test-cunit
                  • Atj-gen-test-class
                  • Atj-gen-main-file
                  • Atj-post-translation
                  • Atj-deep-code-generation
                  • Atj-gen-test-methods
                  • Atj-gen-test-file
                  • Atj-gen-env-file
                  • Atj-gen-output-subdir
                • 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
          • 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-common-code-generation

    Atj-gen-test-values

    Lift atj-gen-test-value to lists.

    Signature
    (atj-gen-test-values tvalues jvar-value-base 
                         jvar-value-index deep$ guards$) 
     
      → 
    (mv block exprs types new-jvar-value-index)
    Arguments
    tvalues — Guard (atj-test-value-listp tvalues).
    jvar-value-base — Guard (stringp jvar-value-base).
    jvar-value-index — Guard (posp jvar-value-index).
    deep$ — Guard (booleanp deep$).
    guards$ — Guard (booleanp guards$).
    Returns
    block — Type (jblockp block).
    exprs — Type (jexpr-listp exprs).
    types — Type (atj-type-listp types).
    new-jvar-value-index — Type (posp new-jvar-value-index), given (posp jvar-value-index).

    Definitions and Theorems

    Function: atj-gen-test-values

    (defun atj-gen-test-values (tvalues jvar-value-base
                                        jvar-value-index deep$ guards$)
      (declare (xargs :guard (and (atj-test-value-listp tvalues)
                                  (stringp jvar-value-base)
                                  (posp jvar-value-index)
                                  (booleanp deep$)
                                  (booleanp guards$))))
      (let ((__function__ 'atj-gen-test-values))
        (declare (ignorable __function__))
        (b* (((when (endp tvalues))
              (mv nil nil nil jvar-value-index))
             ((mv first-block
                  first-expr first-type jvar-value-index)
              (atj-gen-test-value (car tvalues)
                                  jvar-value-base
                                  jvar-value-index deep$ guards$))
             ((mv rest-block
                  rest-exprs rest-types jvar-value-index)
              (atj-gen-test-values (cdr tvalues)
                                   jvar-value-base
                                   jvar-value-index deep$ guards$)))
          (mv (append first-block rest-block)
              (cons first-expr rest-exprs)
              (cons first-type rest-types)
              jvar-value-index))))

    Theorem: jblockp-of-atj-gen-test-values.block

    (defthm jblockp-of-atj-gen-test-values.block
      (b* (((mv common-lisp::?block
                ?exprs ?types ?new-jvar-value-index)
            (atj-gen-test-values tvalues jvar-value-base
                                 jvar-value-index deep$ guards$)))
        (jblockp block))
      :rule-classes :rewrite)

    Theorem: jexpr-listp-of-atj-gen-test-values.exprs

    (defthm jexpr-listp-of-atj-gen-test-values.exprs
      (b* (((mv common-lisp::?block
                ?exprs ?types ?new-jvar-value-index)
            (atj-gen-test-values tvalues jvar-value-base
                                 jvar-value-index deep$ guards$)))
        (jexpr-listp exprs))
      :rule-classes :rewrite)

    Theorem: atj-type-listp-of-atj-gen-test-values.types

    (defthm atj-type-listp-of-atj-gen-test-values.types
      (b* (((mv common-lisp::?block
                ?exprs ?types ?new-jvar-value-index)
            (atj-gen-test-values tvalues jvar-value-base
                                 jvar-value-index deep$ guards$)))
        (atj-type-listp types))
      :rule-classes :rewrite)

    Theorem: posp-of-atj-gen-test-values.new-jvar-value-index

    (defthm posp-of-atj-gen-test-values.new-jvar-value-index
      (implies
           (posp jvar-value-index)
           (b* (((mv common-lisp::?block
                     ?exprs ?types ?new-jvar-value-index)
                 (atj-gen-test-values tvalues jvar-value-base
                                      jvar-value-index deep$ guards$)))
             (posp new-jvar-value-index)))
      :rule-classes :rewrite)

    Theorem: len-of-atj-gen-test-values.exprs

    (defthm len-of-atj-gen-test-values.exprs
      (b* (((mv common-lisp::?block
                ?exprs ?types ?new-jvar-value-index)
            (atj-gen-test-values tvalues jvar-value-base
                                 jvar-value-index deep$ guards$)))
        (equal (len exprs) (len tvalues))))

    Theorem: len-of-atj-gen-test-values.types

    (defthm len-of-atj-gen-test-values.types
      (b* (((mv common-lisp::?block
                ?exprs ?types ?new-jvar-value-index)
            (atj-gen-test-values tvalues jvar-value-base
                                 jvar-value-index deep$ guards$)))
        (equal (len types) (len tvalues))))

    Theorem: consp-of-atj-gen-test-values.exprs

    (defthm consp-of-atj-gen-test-values.exprs
      (b* (((mv common-lisp::?block
                ?exprs ?types ?new-jvar-value-index)
            (atj-gen-test-values tvalues jvar-value-base
                                 jvar-value-index deep$ guards$)))
        (implies (consp tvalues) (consp exprs)))
      :rule-classes :type-prescription)

    Theorem: consp-of-atj-gen-test-values.types

    (defthm consp-of-atj-gen-test-values.types
      (b* (((mv common-lisp::?block
                ?exprs ?types ?new-jvar-value-index)
            (atj-gen-test-values tvalues jvar-value-base
                                 jvar-value-index deep$ guards$)))
        (implies (consp tvalues) (consp types)))
      :rule-classes :type-prescription)