(aig-force-sign-s sign x) → new-x
Function:
(defun aig-force-sign-s (sign x) (declare (xargs :guard (true-listp x))) (let ((__function__ 'aig-force-sign-s)) (declare (ignorable __function__)) (b* (((mv first rest end) (gl::first/rest/end x)) ((when end) (list sign))) (aig-scons first (aig-force-sign-s sign rest)))))
Theorem:
(defthm true-listp-of-aig-force-sign-s (b* ((new-x (aig-force-sign-s sign x))) (true-listp new-x)) :rule-classes :type-prescription)
Theorem:
(defthm aig-force-sign-s-correct (b* nil (implies (equal (aig-eval (aig-sign-s x) env) (aig-eval sign env)) (equal (aig-list->s (aig-force-sign-s sign x) env) (aig-list->s x env)))))
Theorem:
(defthm aig-force-sign-s-of-list-fix-x (equal (aig-force-sign-s sign (list-fix x)) (aig-force-sign-s sign x)))
Theorem:
(defthm aig-force-sign-s-list-equiv-congruence-on-x (implies (list-equiv x x-equiv) (equal (aig-force-sign-s sign x) (aig-force-sign-s sign x-equiv))) :rule-classes :congruence)