Override the locations of characters.
(vl-change-echarlist-locations x loc) → ans
(vl-change-echarlist-locations x loc) is given a list of extended
characters,
This funny operation is used in the preprocessor to make
Function:
(defun vl-change-echarlist-locations (x loc) (declare (xargs :guard (and (vl-echarlist-p x) (vl-location-p loc)))) (let ((__function__ 'vl-change-echarlist-locations)) (declare (ignorable __function__)) (if (consp x) (cons (change-vl-echar (car x) :loc loc) (vl-change-echarlist-locations (cdr x) loc)) nil)))
Theorem:
(defthm vl-echarlist-p-of-vl-change-echarlist-locations (b* ((ans (vl-change-echarlist-locations x loc))) (vl-echarlist-p ans)) :rule-classes :rewrite)
Theorem:
(defthm vl-change-echarlist-locations-of-vl-echarlist-fix-x (equal (vl-change-echarlist-locations (vl-echarlist-fix x) loc) (vl-change-echarlist-locations x loc)))
Theorem:
(defthm vl-change-echarlist-locations-vl-echarlist-equiv-congruence-on-x (implies (vl-echarlist-equiv x x-equiv) (equal (vl-change-echarlist-locations x loc) (vl-change-echarlist-locations x-equiv loc))) :rule-classes :congruence)
Theorem:
(defthm vl-change-echarlist-locations-of-vl-location-fix-loc (equal (vl-change-echarlist-locations x (vl-location-fix loc)) (vl-change-echarlist-locations x loc)))
Theorem:
(defthm vl-change-echarlist-locations-vl-location-equiv-congruence-on-loc (implies (vl-location-equiv loc loc-equiv) (equal (vl-change-echarlist-locations x loc) (vl-change-echarlist-locations x loc-equiv))) :rule-classes :congruence)