Function:
(defun vl-rhs-strip (x) (declare (xargs :guard (vl-rhs-p x))) (let ((__function__ 'vl-rhs-strip)) (declare (ignorable __function__)) (vl-rhs-case x :vl-rhsexpr (b* ((guts (vl-expr-strip x.guts))) (change-vl-rhsexpr x :guts guts)) :vl-rhsnew (b* ((arrsize (vl-maybe-expr-strip x.arrsize)) (args (vl-exprlist-strip x.args))) (change-vl-rhsnew x :arrsize arrsize :args args)))))
Theorem:
(defthm vl-rhs-p-of-vl-rhs-strip (b* ((new-x (vl-rhs-strip x))) (vl-rhs-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-rhs-strip-of-vl-rhs-fix-x (equal (vl-rhs-strip (vl-rhs-fix x)) (vl-rhs-strip x)))
Theorem:
(defthm vl-rhs-strip-vl-rhs-equiv-congruence-on-x (implies (vl-rhs-equiv x x-equiv) (equal (vl-rhs-strip x) (vl-rhs-strip x-equiv))) :rule-classes :congruence)