(sv::aig-logext-ns n x) → xx
Function:
(defun sv::aig-logext-ns (n x) (declare (xargs :guard (and (posp n) (true-listp x)))) (let ((__function__ 'sv::aig-logext-ns)) (declare (ignorable __function__)) (b* ((n (lposfix n)) ((mv head tail ?end) (first/rest/end x)) ((when end) (llist-fix x)) ((when (eql n 1)) (sv::aig-sterm head))) (sv::aig-scons head (sv::aig-logext-ns (1- n) tail)))))
Theorem:
(defthm sv::true-listp-of-aig-logext-ns (b* ((xx (sv::aig-logext-ns n x))) (true-listp xx)) :rule-classes :type-prescription)
Theorem:
(defthm sv::aig-logext-ns-correct (b* ((xx (sv::aig-logext-ns n x))) (and (equal (sv::aig-list->s xx env) (logext (pos-fix n) (sv::aig-list->s x env))))))