Generate Java code to build an ACL2 string.
In the shallow embedding with guards, we translate ACL2 Strings to Java string expression. This is because, in the shallow embedding with guards, ACL2 strings are represented as Java strings.
In the deep embedding, or in the shallow embedding without guards,
we generate an expression of type
Function:
(defun atj-gen-string (string deep$ guards$) (declare (xargs :guard (and (stringp string) (symbolp deep$) (symbolp guards$)))) (let ((__function__ 'atj-gen-string)) (declare (ignorable __function__)) (if (and (not deep$) guards$) (atj-gen-jstring string) (jexpr-smethod *aij-type-string* "make" (list (atj-gen-jstring string))))))
Theorem:
(defthm jexprp-of-atj-gen-string (b* ((expr (atj-gen-string string deep$ guards$))) (jexprp expr)) :rule-classes :rewrite)