• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • ACL2
    • Macro-libraries
    • 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-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-deep-term-fns
                  • Atj-gen-deep-test-code
                  • Atj-gen-deep-fndef-method
                  • Atj-gen-deep-fnapp
                  • Atj-gen-deep-env-class
                  • Atj-gen-deep-env-cunit
                  • Atj-gen-deep-lambda
                  • Atj-gen-deep-qconst
                  • Atj-gen-deep-main-class
                  • Atj-gen-deep-term
                  • Atj-gen-deep-terms
                  • Atj-gen-deep-build-method
                    • Atj-gen-deep-call-method
                    • Atj-gen-deep-main-cunit
                    • Atj-gen-deep-fndef-method-name
                    • Atj-gen-deep-fndef-methods
                    • Atj-gen-deep-fndefs
                    • Atj-gen-deep-formals
                    • Atj-gen-deep-var
                  • 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
          • 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-deep-code-generation

    Atj-gen-deep-build-method

    Generate the method to build the ACL2 environment, in the deep embedding approach.

    Signature
    (atj-gen-deep-build-method pkgs fns) → method
    Arguments
    pkgs — Guard (string-listp pkgs).
    fns — Guard (symbol-listp fns).
    Returns
    method — Type (jmethodp method).

    This is a package-private static method in the environment Java class. This method is called by the static initializer of the main Java class.

    This method builds the Java representation of the ACL2 packages and functions.

    Definitions and Theorems

    Function: atj-gen-deep-build-method

    (defun atj-gen-deep-build-method (pkgs fns)
     (declare (xargs :guard (and (string-listp pkgs)
                                 (symbol-listp fns))))
     (let ((__function__ 'atj-gen-deep-build-method))
      (declare (ignorable __function__))
      (b*
       ((body (append (atj-gen-pkgs pkgs)
                      (atj-gen-deep-fndefs fns)
                      (jblock-smethod *aij-type-named-fn*
                                      "validateAllFunctionCalls" nil))))
       (make-jmethod :access (jaccess-default)
                     :abstract? nil
                     :static? t
                     :final? nil
                     :synchronized? nil
                     :native? nil
                     :strictfp? nil
                     :result (jresult-void)
                     :name "build"
                     :params nil
                     :throws nil
                     :body body))))

    Theorem: jmethodp-of-atj-gen-deep-build-method

    (defthm jmethodp-of-atj-gen-deep-build-method
      (b* ((method (atj-gen-deep-build-method pkgs fns)))
        (jmethodp method))
      :rule-classes :rewrite)