Lift atj-gen-shallow-pkg-class to lists.
(atj-gen-shallow-pkg-classes pkgs fields-by-pkg methods-by-pkg pkg-class-names verbose$) → classes
If the class for a package has an empty body, we skip it.
Function:
(defun atj-gen-shallow-pkg-classes (pkgs fields-by-pkg methods-by-pkg pkg-class-names verbose$) (declare (xargs :guard (and (string-listp pkgs) (string-jfieldlist-alistp fields-by-pkg) (string-jmethodlist-alistp methods-by-pkg) (string-string-alistp pkg-class-names) (booleanp verbose$)))) (let ((__function__ 'atj-gen-shallow-pkg-classes)) (declare (ignorable __function__)) (b* (((when (endp pkgs)) nil) (class (atj-gen-shallow-pkg-class (car pkgs) fields-by-pkg methods-by-pkg pkg-class-names verbose$)) (classes (atj-gen-shallow-pkg-classes (cdr pkgs) fields-by-pkg methods-by-pkg pkg-class-names verbose$))) (if (null (jclass->body class)) classes (cons class classes)))))
Theorem:
(defthm jclass-listp-of-atj-gen-shallow-pkg-classes (b* ((classes (atj-gen-shallow-pkg-classes pkgs fields-by-pkg methods-by-pkg pkg-class-names verbose$))) (jclass-listp classes)) :rule-classes :rewrite)