Generate Java code to build an ACL2 symbol.
In the shallow embedding with guards,
for the symbols
In all other cases,
we generate an expression of type
Function:
(defun atj-gen-symbol (symbol deep$ guards$) (declare (xargs :guard (and (symbolp symbol) (symbolp deep$) (symbolp guards$)))) (let ((__function__ 'atj-gen-symbol)) (declare (ignorable __function__)) (if (and (booleanp symbol) (not deep$) guards$) (if symbol (jexpr-literal-true) (jexpr-literal-false)) (b* ((pair (assoc-eq symbol *aij-symbol-constants*))) (if pair (jexpr-name (str::cat "Acl2Symbol." (cdr pair))) (jexpr-smethod *aij-type-symbol* "make" (list (atj-gen-jstring (symbol-package-name symbol)) (atj-gen-jstring (symbol-name symbol)))))))))
Theorem:
(defthm jexprp-of-atj-gen-symbol (b* ((expr (atj-gen-symbol symbol deep$ guards$))) (jexprp expr)) :rule-classes :rewrite)