(4vmasklist-subsumes x y) checks whether the masks in the list
(4vmasklist-subsumes x y) → *
Function:
(defun 4vmasklist-subsumes (x y) (declare (xargs :guard (and (4vmasklist-p x) (4vmasklist-p y)))) (let ((__function__ '4vmasklist-subsumes)) (declare (ignorable __function__)) (if (and (atom x) (atom y)) t (and (4vmask-subsumes (if (consp x) (car x) -1) (if (consp y) (car y) -1)) (4vmasklist-subsumes (cdr x) (cdr y))))))
Theorem:
(defthm 4vmasklist-subsumes-of-4vmasklist-fix-x (equal (4vmasklist-subsumes (4vmasklist-fix x) y) (4vmasklist-subsumes x y)))
Theorem:
(defthm 4vmasklist-subsumes-4vmasklist-equiv-congruence-on-x (implies (4vmasklist-equiv x x-equiv) (equal (4vmasklist-subsumes x y) (4vmasklist-subsumes x-equiv y))) :rule-classes :congruence)
Theorem:
(defthm 4vmasklist-subsumes-of-4vmasklist-fix-y (equal (4vmasklist-subsumes x (4vmasklist-fix y)) (4vmasklist-subsumes x y)))
Theorem:
(defthm 4vmasklist-subsumes-4vmasklist-equiv-congruence-on-y (implies (4vmasklist-equiv y y-equiv) (equal (4vmasklist-subsumes x y) (4vmasklist-subsumes x y-equiv))) :rule-classes :congruence)
Theorem:
(defthm 4vmasklist-subsumes-implies-masks-equal (implies (and (4vmasklist-subsumes m1 m2) (equal (4veclist-mask m1 x) (4veclist-mask m1 y))) (equal (equal (4veclist-mask m2 x) (4veclist-mask m2 y)) t)))
Theorem:
(defthm 4vmasklist-subsumes-self (4vmasklist-subsumes x x))