(svexarr-vars svexarr) → vars
Function:
(defun svexarr-vars (svexarr) (declare (xargs :stobjs (svexarr))) (declare (xargs :guard t)) (let ((__function__ 'svexarr-vars)) (declare (ignorable __function__)) (svexarr-vars-aux (svexs-length svexarr) svexarr)))
Theorem:
(defthm svarlist-p-of-svexarr-vars (b* ((vars (svexarr-vars svexarr))) (svarlist-p vars)) :rule-classes :rewrite)
Theorem:
(defthm vars-of-get-svex (implies (not (member v (svexarr-vars svexarr))) (not (member v (svex-vars (nth n svexarr))))))
Function:
(defun svexarr-vars-witness (v svexarr) (declare (xargs :stobjs (svexarr))) (declare (xargs :guard t)) (let ((__function__ 'svexarr-vars-witness)) (declare (ignorable __function__)) (svexarr-vars-witness-aux v (svexs-length svexarr) svexarr)))
Theorem:
(defthm return-type-of-svexarr-vars-witness (b* ((idx (svexarr-vars-witness v svexarr))) (iff (natp idx) idx)) :rule-classes :rewrite)
Theorem:
(defthm type-of-svexarr-vars-witness (or (not (svexarr-vars-witness v svexarr)) (natp (svexarr-vars-witness v svexarr))) :rule-classes :type-prescription)
Theorem:
(defthm type-of-svexarr-vars-witness2 (implies (svexarr-vars-witness v svexarr) (natp (svexarr-vars-witness v svexarr))))
Theorem:
(defthm bound-of-svexarr-vars-witness (implies (svexarr-vars-witness v svexarr) (< (svexarr-vars-witness v svexarr) (len svexarr))) :rule-classes ((:rewrite :corollary (implies (and (svexarr-vars-witness v svexarr) (equal y (len svexarr))) (< (svexarr-vars-witness v svexarr) y)))))
Theorem:
(defthm svexarr-vars-witness-under-iff (implies (not (member v (svex-vars (nth (svexarr-vars-witness v svexarr) svexarr)))) (not (svexarr-vars-witness v svexarr))))
Theorem:
(defthm member-svexarr-vars (implies (not (svexarr-vars-witness v svexarr)) (not (member v (svexarr-vars svexarr)))))