(vl-seltrace-add-to-path x path) → new-path
Function:
(defun vl-seltrace-add-to-path (x path) (declare (xargs :guard (and (vl-seltrace-p x) (sv::path-p path)))) (declare (xargs :guard (equal (vl-seltrace-unres-count x) 0))) (let ((__function__ 'vl-seltrace-add-to-path)) (declare (ignorable __function__)) (if (atom x) (sv::path-fix path) (vl-seltrace-add-to-path (cdr x) (sv::make-path-scope :namespace (vl-selstep->svex-name (car x)) :subpath path)))))
Theorem:
(defthm path-p-of-vl-seltrace-add-to-path (b* ((new-path (vl-seltrace-add-to-path x path))) (sv::path-p new-path)) :rule-classes :rewrite)
Theorem:
(defthm vl-seltrace-add-to-path-of-vl-seltrace-fix-x (equal (vl-seltrace-add-to-path (vl-seltrace-fix x) path) (vl-seltrace-add-to-path x path)))
Theorem:
(defthm vl-seltrace-add-to-path-vl-seltrace-equiv-congruence-on-x (implies (vl-seltrace-equiv x x-equiv) (equal (vl-seltrace-add-to-path x path) (vl-seltrace-add-to-path x-equiv path))) :rule-classes :congruence)
Theorem:
(defthm vl-seltrace-add-to-path-of-path-fix-path (equal (vl-seltrace-add-to-path x (sv::path-fix path)) (vl-seltrace-add-to-path x path)))
Theorem:
(defthm vl-seltrace-add-to-path-path-equiv-congruence-on-path (implies (sv::path-equiv path path-equiv) (equal (vl-seltrace-add-to-path x path) (vl-seltrace-add-to-path x path-equiv))) :rule-classes :congruence)