(vl-collect-resolved-exprs x) → sub-x
Function:
(defun vl-collect-resolved-exprs (x) (declare (xargs :guard (vl-exprlist-p x))) (let ((__function__ 'vl-collect-resolved-exprs)) (declare (ignorable __function__)) (if (atom x) nil (if (vl-expr-resolved-p (car x)) (cons (vl-expr-fix (car x)) (vl-collect-resolved-exprs (cdr x))) (vl-collect-resolved-exprs (cdr x))))))
Theorem:
(defthm vl-exprlist-p-of-vl-collect-resolved-exprs (b* ((sub-x (vl-collect-resolved-exprs x))) (vl-exprlist-p sub-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-exprlist-resolved-p-of-vl-collect-resolved-exprs (b* ((?sub-x (vl-collect-resolved-exprs x))) (vl-exprlist-resolved-p sub-x)))
Theorem:
(defthm vl-collect-resolved-exprs-of-vl-exprlist-fix-x (equal (vl-collect-resolved-exprs (vl-exprlist-fix x)) (vl-collect-resolved-exprs x)))
Theorem:
(defthm vl-collect-resolved-exprs-vl-exprlist-equiv-congruence-on-x (implies (vl-exprlist-equiv x x-equiv) (equal (vl-collect-resolved-exprs x) (vl-collect-resolved-exprs x-equiv))) :rule-classes :congruence)