(aig-or-list x) ors together all of the AIGs in the list
(aig-or-list x) → aig
As a dumb attempt at optimization, we try to avoid consing if we
see that there's a
Function:
(defun aig-or-list (x) (declare (xargs :guard t)) (let ((__function__ 'aig-or-list)) (declare (ignorable __function__)) (mbe :logic (if (atom x) nil (aig-or (car x) (aig-or-list (cdr x)))) :exec (cond ((atom x) nil) ((member-eql-without-truelistp t x) t) (t (aig-or-list-aux x))))))
Theorem:
(defthm aig-or-list-aux-removal (equal (aig-or-list-aux x) (aig-or-list x)))