(aig-countones-aux x) → res
Function:
(defun aig-countones-aux (x) (declare (xargs :guard (true-listp x))) (let ((__function__ 'aig-countones-aux)) (declare (ignorable __function__)) (if (atom x) nil (b* ((rest (aig-countones-aux (cdr x)))) (aig-+-ss (car x) nil rest)))))
Theorem:
(defthm true-listp-of-aig-countones-aux (b* ((res (aig-countones-aux x))) (true-listp res)) :rule-classes :rewrite)
Theorem:
(defthm aig-countones-aux-correct (b* nil (equal (aig-list->s (aig-countones-aux x) env) (logcount (aig-list->u x env)))))
Theorem:
(defthm aig-countones-aux-of-list-fix-x (equal (aig-countones-aux (list-fix x)) (aig-countones-aux x)))
Theorem:
(defthm aig-countones-aux-list-equiv-congruence-on-x (implies (list-equiv x x-equiv) (equal (aig-countones-aux x) (aig-countones-aux x-equiv))) :rule-classes :congruence)