(qv i) constructs a UBDD which evaluates to true exactly when the
Function:
(defun qv (i) (declare (xargs :guard t)) (if (posp i) (let ((prev (qv (1- i)))) (hons prev prev)) (hons t nil)))
Theorem:
(defthm ubddp-qv (ubddp (qv i)))
Theorem:
(defthm eval-bdd-of-qv-and-nil (not (eval-bdd (qv i) nil)))
Theorem:
(defthm eval-bdd-of-qv (equal (eval-bdd (qv i) lst) (if (nth i lst) t nil)))
Theorem:
(defthm qvs-equal (equal (equal (qv i) (qv j)) (equal (nfix i) (nfix j))))