Recognizer for vl-modelement.
(vl-modelement-p x) → *
Function:
(defun vl-modelement-p (x) (declare (xargs :guard t)) (let ((__function__ 'vl-modelement-p)) (declare (ignorable __function__)) (common-lisp::case (tag x) ((:vl-portdecl) (vl-portdecl-p x)) ((:vl-assign) (vl-assign-p x)) ((:vl-alias) (vl-alias-p x)) ((:vl-vardecl) (vl-vardecl-p x)) ((:vl-paramdecl) (vl-paramdecl-p x)) ((:vl-fundecl) (vl-fundecl-p x)) ((:vl-taskdecl) (vl-taskdecl-p x)) ((:vl-modinst) (vl-modinst-p x)) ((:vl-gateinst) (vl-gateinst-p x)) ((:vl-always) (vl-always-p x)) ((:vl-initial) (vl-initial-p x)) ((:vl-final) (vl-final-p x)) ((:vl-typedef) (vl-typedef-p x)) ((:vl-import) (vl-import-p x)) ((:vl-fwdtypedef) (vl-fwdtypedef-p x)) ((:vl-modport) (vl-modport-p x)) ((:vl-genvar) (vl-genvar-p x)) ((:vl-assertion) (vl-assertion-p x)) ((:vl-cassertion) (vl-cassertion-p x)) ((:vl-property) (vl-property-p x)) ((:vl-sequence) (vl-sequence-p x)) ((:vl-clkdecl) (vl-clkdecl-p x)) ((:vl-gclkdecl) (vl-gclkdecl-p x)) ((:vl-defaultdisable) (vl-defaultdisable-p x)) ((:vl-dpiimport) (vl-dpiimport-p x)) ((:vl-dpiexport) (vl-dpiexport-p x)) ((:vl-bind) (vl-bind-p x)) ((:vl-class) (vl-class-p x)) ((:vl-covergroup) (vl-covergroup-p x)) ((:vl-elabtask) (vl-elabtask-p x)) (otherwise (vl-letdecl-p x)))))
Theorem:
(defthm consp-when-vl-modelement-p (implies (vl-modelement-p x) (consp x)) :rule-classes :compound-recognizer)
Theorem:
(defthm vl-modelement-p-when-vl-portdecl-p (implies (vl-portdecl-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-assign-p (implies (vl-assign-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-alias-p (implies (vl-alias-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-vardecl-p (implies (vl-vardecl-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-paramdecl-p (implies (vl-paramdecl-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-fundecl-p (implies (vl-fundecl-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-taskdecl-p (implies (vl-taskdecl-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-modinst-p (implies (vl-modinst-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-gateinst-p (implies (vl-gateinst-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-always-p (implies (vl-always-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-initial-p (implies (vl-initial-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-final-p (implies (vl-final-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-typedef-p (implies (vl-typedef-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-import-p (implies (vl-import-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-fwdtypedef-p (implies (vl-fwdtypedef-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-modport-p (implies (vl-modport-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-genvar-p (implies (vl-genvar-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-assertion-p (implies (vl-assertion-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-cassertion-p (implies (vl-cassertion-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-property-p (implies (vl-property-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-sequence-p (implies (vl-sequence-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-clkdecl-p (implies (vl-clkdecl-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-gclkdecl-p (implies (vl-gclkdecl-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-defaultdisable-p (implies (vl-defaultdisable-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-dpiimport-p (implies (vl-dpiimport-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-dpiexport-p (implies (vl-dpiexport-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-bind-p (implies (vl-bind-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-class-p (implies (vl-class-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-covergroup-p (implies (vl-covergroup-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-elabtask-p (implies (vl-elabtask-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-vl-letdecl-p (implies (vl-letdecl-p x) (vl-modelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-portdecl-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-portdecl)) (vl-modelement-p x)) (vl-portdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-assign-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-assign)) (vl-modelement-p x)) (vl-assign-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-alias-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-alias)) (vl-modelement-p x)) (vl-alias-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-vardecl-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-vardecl)) (vl-modelement-p x)) (vl-vardecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-paramdecl-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-paramdecl)) (vl-modelement-p x)) (vl-paramdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-fundecl-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-fundecl)) (vl-modelement-p x)) (vl-fundecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-taskdecl-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-taskdecl)) (vl-modelement-p x)) (vl-taskdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modinst-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-modinst)) (vl-modelement-p x)) (vl-modinst-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-gateinst-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-gateinst)) (vl-modelement-p x)) (vl-gateinst-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-always-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-always)) (vl-modelement-p x)) (vl-always-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-initial-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-initial)) (vl-modelement-p x)) (vl-initial-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-final-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-final)) (vl-modelement-p x)) (vl-final-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-typedef-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-typedef)) (vl-modelement-p x)) (vl-typedef-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-import-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-import)) (vl-modelement-p x)) (vl-import-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-fwdtypedef-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-fwdtypedef)) (vl-modelement-p x)) (vl-fwdtypedef-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modport-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-modport)) (vl-modelement-p x)) (vl-modport-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-genvar-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-genvar)) (vl-modelement-p x)) (vl-genvar-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-assertion-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-assertion)) (vl-modelement-p x)) (vl-assertion-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-cassertion-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-cassertion)) (vl-modelement-p x)) (vl-cassertion-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-property-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-property)) (vl-modelement-p x)) (vl-property-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-sequence-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-sequence)) (vl-modelement-p x)) (vl-sequence-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-clkdecl-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-clkdecl)) (vl-modelement-p x)) (vl-clkdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-gclkdecl-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-gclkdecl)) (vl-modelement-p x)) (vl-gclkdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-defaultdisable-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-defaultdisable)) (vl-modelement-p x)) (vl-defaultdisable-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-dpiimport-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-dpiimport)) (vl-modelement-p x)) (vl-dpiimport-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-dpiexport-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-dpiexport)) (vl-modelement-p x)) (vl-dpiexport-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-bind-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-bind)) (vl-modelement-p x)) (vl-bind-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-class-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-class)) (vl-modelement-p x)) (vl-class-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-covergroup-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-covergroup)) (vl-modelement-p x)) (vl-covergroup-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-elabtask-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-elabtask)) (vl-modelement-p x)) (vl-elabtask-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-letdecl-p-by-tag-when-vl-modelement-p (implies (and (or (equal (tag x) :vl-letdecl)) (vl-modelement-p x)) (vl-letdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modelement-p-when-invalid-tag (implies (and (not (equal (tag x) :vl-portdecl)) (not (equal (tag x) :vl-assign)) (not (equal (tag x) :vl-alias)) (not (equal (tag x) :vl-vardecl)) (not (equal (tag x) :vl-paramdecl)) (not (equal (tag x) :vl-fundecl)) (not (equal (tag x) :vl-taskdecl)) (not (equal (tag x) :vl-modinst)) (not (equal (tag x) :vl-gateinst)) (not (equal (tag x) :vl-always)) (not (equal (tag x) :vl-initial)) (not (equal (tag x) :vl-final)) (not (equal (tag x) :vl-typedef)) (not (equal (tag x) :vl-import)) (not (equal (tag x) :vl-fwdtypedef)) (not (equal (tag x) :vl-modport)) (not (equal (tag x) :vl-genvar)) (not (equal (tag x) :vl-assertion)) (not (equal (tag x) :vl-cassertion)) (not (equal (tag x) :vl-property)) (not (equal (tag x) :vl-sequence)) (not (equal (tag x) :vl-clkdecl)) (not (equal (tag x) :vl-gclkdecl)) (not (equal (tag x) :vl-defaultdisable)) (not (equal (tag x) :vl-dpiimport)) (not (equal (tag x) :vl-dpiexport)) (not (equal (tag x) :vl-bind)) (not (equal (tag x) :vl-class)) (not (equal (tag x) :vl-covergroup)) (not (equal (tag x) :vl-elabtask)) (not (equal (tag x) :vl-letdecl))) (not (vl-modelement-p x))) :rule-classes ((:rewrite :backchain-limit-lst 0)))
Theorem:
(defthm tag-when-vl-modelement-p-forward (implies (vl-modelement-p x) (or (equal (tag x) :vl-portdecl) (equal (tag x) :vl-assign) (equal (tag x) :vl-alias) (equal (tag x) :vl-vardecl) (equal (tag x) :vl-paramdecl) (equal (tag x) :vl-fundecl) (equal (tag x) :vl-taskdecl) (equal (tag x) :vl-modinst) (equal (tag x) :vl-gateinst) (equal (tag x) :vl-always) (equal (tag x) :vl-initial) (equal (tag x) :vl-final) (equal (tag x) :vl-typedef) (equal (tag x) :vl-import) (equal (tag x) :vl-fwdtypedef) (equal (tag x) :vl-modport) (equal (tag x) :vl-genvar) (equal (tag x) :vl-assertion) (equal (tag x) :vl-cassertion) (equal (tag x) :vl-property) (equal (tag x) :vl-sequence) (equal (tag x) :vl-clkdecl) (equal (tag x) :vl-gclkdecl) (equal (tag x) :vl-defaultdisable) (equal (tag x) :vl-dpiimport) (equal (tag x) :vl-dpiexport) (equal (tag x) :vl-bind) (equal (tag x) :vl-class) (equal (tag x) :vl-covergroup) (equal (tag x) :vl-elabtask) (equal (tag x) :vl-letdecl))) :rule-classes ((:forward-chaining)))