(svtv-collect-inmap overridesp x acc) → new-acc
Function:
(defun svtv-collect-inmap (overridesp x acc) (declare (xargs :guard (and (booleanp overridesp) (svtv-lines-p x) (svtv-inputmap-p acc)))) (let ((__function__ 'svtv-collect-inmap)) (declare (ignorable __function__)) (b* (((when (atom x)) (svtv-inputmap-fix acc)) ((svtv-line xf) (car x)) (vars (svtv-entries->vars xf.entries)) (overrideconds (and overridesp (svtv-entries->overrideconds xf.entries)))) (svtv-collect-inmap overridesp (cdr x) (append (pairlis$ vars (replicate (len vars) (if overridesp :override-val :input))) (pairlis$ overrideconds (replicate (len overrideconds) :override-test)) acc)))))
Theorem:
(defthm svtv-inputmap-p-of-svtv-collect-inmap (b* ((new-acc (svtv-collect-inmap overridesp x acc))) (svtv-inputmap-p new-acc)) :rule-classes :rewrite)
Theorem:
(defthm svtv-collect-inmap-of-bool-fix-overridesp (equal (svtv-collect-inmap (bool-fix overridesp) x acc) (svtv-collect-inmap overridesp x acc)))
Theorem:
(defthm svtv-collect-inmap-iff-congruence-on-overridesp (implies (iff overridesp overridesp-equiv) (equal (svtv-collect-inmap overridesp x acc) (svtv-collect-inmap overridesp-equiv x acc))) :rule-classes :congruence)
Theorem:
(defthm svtv-collect-inmap-of-svtv-lines-fix-x (equal (svtv-collect-inmap overridesp (svtv-lines-fix x) acc) (svtv-collect-inmap overridesp x acc)))
Theorem:
(defthm svtv-collect-inmap-svtv-lines-equiv-congruence-on-x (implies (svtv-lines-equiv x x-equiv) (equal (svtv-collect-inmap overridesp x acc) (svtv-collect-inmap overridesp x-equiv acc))) :rule-classes :congruence)
Theorem:
(defthm svtv-collect-inmap-of-svtv-inputmap-fix-acc (equal (svtv-collect-inmap overridesp x (svtv-inputmap-fix acc)) (svtv-collect-inmap overridesp x acc)))
Theorem:
(defthm svtv-collect-inmap-svtv-inputmap-equiv-congruence-on-acc (implies (svtv-inputmap-equiv acc acc-equiv) (equal (svtv-collect-inmap overridesp x acc) (svtv-collect-inmap overridesp x acc-equiv))) :rule-classes :congruence)