Definitions of the alist-map-vals functions and macros, and basic theorems about them.
Function:
(defun alist-map-vals-equal (alist) (declare (xargs :guard (alistp alist))) (cond ((endp alist) nil) (t (let* ((pair (car alist)) (key (car pair)) (val (cdr pair))) (cons val (alist-map-vals-equal (remove-assoc-equal key (cdr alist))))))))
Function:
(defun alist-map-vals-eq-exec$guard-check (alist) (declare (xargs :guard (symbol-alistp alist))) (declare (ignore alist)) t)
Function:
(defun alist-map-vals-eq-exec (alist) (declare (xargs :guard (symbol-alistp alist))) (cond ((endp alist) nil) (t (let* ((pair (car alist)) (key (car pair)) (val (cdr pair))) (cons val (alist-map-vals-eq-exec (remove-assoc-eq key (cdr alist))))))))
Function:
(defun alist-map-vals-eql-exec$guard-check (alist) (declare (xargs :guard (eqlable-alistp alist))) (declare (ignore alist)) t)
Function:
(defun alist-map-vals-eql-exec (alist) (declare (xargs :guard (eqlable-alistp alist))) (cond ((endp alist) nil) (t (let* ((pair (car alist)) (key (car pair)) (val (cdr pair))) (cons val (alist-map-vals-eql-exec (remove-assoc-eql-exec key (cdr alist))))))))
Theorem:
(defthm alist-map-vals-eq-exec-is-alist-map-vals-equal (equal (alist-map-vals-eq-exec alist) (alist-map-vals-equal alist)))
Theorem:
(defthm alist-map-vals-eql-exec-is-alist-map-vals-equal (equal (alist-map-vals-eql-exec alist) (alist-map-vals-equal alist)))