We print the elements of
(print-flat-objs x config eviscp acc) → new-acc
See the discussion in pflat-p:
Function:
(defun print-flat-objs (x config eviscp acc) (declare (xargs :guard (and (printconfig-p config) (booleanp eviscp)))) (let ((acl2::__function__ 'print-flat-objs)) (declare (ignorable acl2::__function__)) (cond ((not x) acc) ((or (atom x) (and eviscp (evisceratedp x))) (b* ((acc (cons #\. acc)) (acc (cons #\Space acc))) (print-flat x config eviscp acc))) (t (b* ((acc (print-flat (car x) config eviscp acc)) ((unless (cdr x)) acc) (acc (cons #\Space acc))) (print-flat-objs (cdr x) config eviscp acc))))))
Theorem:
(defthm character-listp-of-print-flat-objs (implies (character-listp acc) (b* ((new-acc (print-flat-objs x config eviscp acc))) (character-listp new-acc))) :rule-classes :rewrite)