Generate the declaration of the environment Java class, in the deep embedding approach.
(atj-gen-deep-env-class pkgs fns-to-translate guards$ java-class$ verbose$ wrld) → class
This is a package-private class,
whose purpose is to build the ACL2 environment.
It starts with the
We remove any natively implemented function from
Function:
(defun atj-gen-deep-env-class (pkgs fns-to-translate guards$ java-class$ verbose$ wrld) (declare (xargs :guard (and (string-listp pkgs) (symbol-listp fns-to-translate) (booleanp guards$) (stringp java-class$) (booleanp verbose$) (plist-worldp wrld)))) (let ((__function__ 'atj-gen-deep-env-class)) (declare (ignorable __function__)) (b* (((run-when verbose$) (cw "~%Generate the Java methods to build the ACL2 packages:~%")) (pkg-methods (atj-gen-pkg-methods pkgs verbose$)) (pkg-methods (mergesort-jmethods pkg-methods)) (fns (set-difference-eq fns-to-translate *aij-natives*)) ((run-when verbose$) (cw "~%Generate the Java methods to build the ACL2 functions:~%")) (fn-methods (atj-gen-deep-fndef-methods fns guards$ verbose$ wrld)) (fn-methods (mergesort-jmethods fn-methods)) ((run-when verbose$) (cw "~%Generate the Java class to build the ACL2 environment.~%")) (build-method (atj-gen-deep-build-method pkgs fns)) (body-class (append (list (jcbody-element-member (jcmember-method build-method))) (jmethods-to-jcbody-elements pkg-methods) (jmethods-to-jcbody-elements fn-methods)))) (make-jclass :access (jaccess-default) :abstract? nil :static? nil :final? t :strictfp? nil :name (str::cat java-class$ "Environment") :superclass? nil :superinterfaces nil :body body-class))))
Theorem:
(defthm jclassp-of-atj-gen-deep-env-class (b* ((class (atj-gen-deep-env-class pkgs fns-to-translate guards$ java-class$ verbose$ wrld))) (jclassp class)) :rule-classes :rewrite)