Recognizer for svtv structures.
(svtv-p x) → *
Function:
(defun svtv-p (x) (declare (xargs :guard t)) (let ((__function__ 'svtv-p)) (declare (ignorable __function__)) (and (true-listp x) (eql (len x) 16) (b* ((name (std::da-nth 0 x)) (outexprs (std::da-nth 1 x)) (nextstate (std::da-nth 2 x)) (states (std::da-nth 3 x)) (inmasks (std::da-nth 4 x)) (outmasks (std::da-nth 5 x)) (inmap (std::da-nth 6 x)) (orig-ins (std::da-nth 7 x)) (orig-overrides (std::da-nth 8 x)) (orig-outs (std::da-nth 9 x)) (orig-internals (std::da-nth 10 x)) (expanded-ins (std::da-nth 11 x)) (expanded-overrides (std::da-nth 12 x)) (nphases (std::da-nth 13 x)) (labels (std::da-nth 14 x)) (?form (std::da-nth 15 x))) (and (symbolp name) (svex-alist-p outexprs) (svex-alist-p nextstate) (svex-alistlist-p states) (svar-boolmasks-p inmasks) (svar-boolmasks-p outmasks) (svtv-inputmap-p inmap) (true-list-listp orig-ins) (true-list-listp orig-overrides) (true-list-listp orig-outs) (true-list-listp orig-internals) (svtv-lines-p expanded-ins) (svtv-lines-p expanded-overrides) (natp nphases) (symbol-listp labels))))))
Theorem:
(defthm acl2::consp-when-svtv-p (implies (svtv-p x) (consp x)) :rule-classes :compound-recognizer)