Function:
(defun vl-convert-dollarsign-to-expr (x dollar-expr) (declare (xargs :guard (and (vl-expr-p x) (vl-expr-p dollar-expr)))) (let ((__function__ 'vl-convert-dollarsign-to-expr)) (declare (ignorable __function__)) (b* ((x (vl-expr-fix x)) (dollar-expr (vl-expr-fix dollar-expr))) (vl-expr-case x :vl-special (if (vl-specialkey-equiv x.key :vl-$) dollar-expr x) :otherwise x))))
Theorem:
(defthm vl-expr-p-of-vl-convert-dollarsign-to-expr (b* ((new-x (vl-convert-dollarsign-to-expr x dollar-expr))) (vl-expr-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-expr-count-of-convert-dollarsign-to-expr (b* ((?new-x (vl-convert-dollarsign-to-expr x dollar-expr))) (< (vl-expr-count new-x) (+ (vl-expr-count dollar-expr) (vl-expr-count x)))) :rule-classes :linear)
Theorem:
(defthm vl-convert-dollarsign-to-expr-of-vl-expr-fix-x (equal (vl-convert-dollarsign-to-expr (vl-expr-fix x) dollar-expr) (vl-convert-dollarsign-to-expr x dollar-expr)))
Theorem:
(defthm vl-convert-dollarsign-to-expr-vl-expr-equiv-congruence-on-x (implies (vl-expr-equiv x x-equiv) (equal (vl-convert-dollarsign-to-expr x dollar-expr) (vl-convert-dollarsign-to-expr x-equiv dollar-expr))) :rule-classes :congruence)
Theorem:
(defthm vl-convert-dollarsign-to-expr-of-vl-expr-fix-dollar-expr (equal (vl-convert-dollarsign-to-expr x (vl-expr-fix dollar-expr)) (vl-convert-dollarsign-to-expr x dollar-expr)))
Theorem:
(defthm vl-convert-dollarsign-to-expr-vl-expr-equiv-congruence-on-dollar-expr (implies (vl-expr-equiv dollar-expr dollar-expr-equiv) (equal (vl-convert-dollarsign-to-expr x dollar-expr) (vl-convert-dollarsign-to-expr x dollar-expr-equiv))) :rule-classes :congruence)