Extend a slow 4vmask-alist with a new binding.
(4vmask-acons var mask alist) → extended-alist
Function:
(defun 4vmask-acons (var mask alist) (declare (xargs :guard (and (svar-p var) (4vmask-p mask) (4vmask-alist-p alist)))) (let ((__function__ '4vmask-acons)) (declare (ignorable __function__)) (mbe :logic (cons (cons (svar-fix var) (4vmask-fix mask)) (4vmask-alist-fix alist)) :exec (acons var mask alist))))
Theorem:
(defthm 4vmask-alist-p-of-4vmask-acons (b* ((extended-alist (4vmask-acons var mask alist))) (4vmask-alist-p extended-alist)) :rule-classes :rewrite)
Theorem:
(defthm 4vmask-acons-of-svar-fix-var (equal (4vmask-acons (svar-fix var) mask alist) (4vmask-acons var mask alist)))
Theorem:
(defthm 4vmask-acons-svar-equiv-congruence-on-var (implies (svar-equiv var var-equiv) (equal (4vmask-acons var mask alist) (4vmask-acons var-equiv mask alist))) :rule-classes :congruence)
Theorem:
(defthm 4vmask-acons-of-4vmask-fix-mask (equal (4vmask-acons var (4vmask-fix mask) alist) (4vmask-acons var mask alist)))
Theorem:
(defthm 4vmask-acons-4vmask-equiv-congruence-on-mask (implies (4vmask-equiv mask mask-equiv) (equal (4vmask-acons var mask alist) (4vmask-acons var mask-equiv alist))) :rule-classes :congruence)
Theorem:
(defthm 4vmask-acons-of-4vmask-alist-fix-alist (equal (4vmask-acons var mask (4vmask-alist-fix alist)) (4vmask-acons var mask alist)))
Theorem:
(defthm 4vmask-acons-4vmask-alist-equiv-congruence-on-alist (implies (4vmask-alist-equiv alist alist-equiv) (equal (4vmask-acons var mask alist) (4vmask-acons var mask alist-equiv))) :rule-classes :congruence)
Theorem:
(defthm 4vmask-assoc-of-4vmask-acons (equal (4vmask-assoc j (4vmask-acons k v x)) (if (svar-equiv j k) (4vmask-fix v) (4vmask-assoc j x))))