(/_-fn xs) → concatenation
Function:
(defun /_-fn (xs) (declare (xargs :guard (repetition/element/rulename/charstring-listp xs))) (cond ((endp xs) nil) (t (b* ((x (car xs)) (range1 (make-repeat-range :min 1 :max (nati-finite 1))) (repetition (cond ((elementp x) (make-repetition :range range1 :element x)) ((rulenamep x) (make-repetition :range range1 :element (element-rulename x))) ((common-lisp::stringp x) (make-repetition :range range1 :element (element-char-val (char-val-insensitive nil x)))) (t (repetition-fix x))))) (cons repetition (/_-fn (cdr xs)))))))
Theorem:
(defthm concatenationp-of-/_-fn (b* ((concatenation (/_-fn xs))) (concatenationp concatenation)) :rule-classes :rewrite)