Recognizer for vl-scopeitem.
(vl-scopeitem-p x) → *
Function:
(defun vl-scopeitem-p (x) (declare (xargs :guard t)) (let ((__function__ 'vl-scopeitem-p)) (declare (ignorable __function__)) (common-lisp::case (tag x) ((:vl-modinst) (vl-modinst-p x)) ((:vl-gateinst) (vl-gateinst-p x)) ((:vl-genvar) (vl-genvar-p x)) ((:vl-genbase :vl-genbegin :vl-genif :vl-gencase :vl-genloop :vl-genarray) (vl-genelement-p x)) ((:vl-interfaceport) (vl-interfaceport-p x)) ((:vl-modport) (vl-modport-p x)) ((:vl-paramdecl) (vl-paramdecl-p x)) ((:vl-vardecl) (vl-vardecl-p x)) ((:vl-fundecl) (vl-fundecl-p x)) ((:vl-taskdecl) (vl-taskdecl-p x)) ((:vl-typedef) (vl-typedef-p x)) (otherwise (vl-dpiimport-p x)))))
Theorem:
(defthm consp-when-vl-scopeitem-p (implies (vl-scopeitem-p x) (consp x)) :rule-classes :compound-recognizer)
Theorem:
(defthm vl-scopeitem-p-when-vl-modinst-p (implies (vl-modinst-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-vl-gateinst-p (implies (vl-gateinst-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-vl-genvar-p (implies (vl-genvar-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-vl-genelement-p (implies (vl-genelement-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-vl-interfaceport-p (implies (vl-interfaceport-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-vl-modport-p (implies (vl-modport-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-vl-paramdecl-p (implies (vl-paramdecl-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-vl-vardecl-p (implies (vl-vardecl-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-vl-fundecl-p (implies (vl-fundecl-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-vl-taskdecl-p (implies (vl-taskdecl-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-vl-typedef-p (implies (vl-typedef-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-vl-dpiimport-p (implies (vl-dpiimport-p x) (vl-scopeitem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modinst-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-modinst)) (vl-scopeitem-p x)) (vl-modinst-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-gateinst-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-gateinst)) (vl-scopeitem-p x)) (vl-gateinst-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-genvar-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-genvar)) (vl-scopeitem-p x)) (vl-genvar-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-genelement-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-genbase) (equal (tag x) :vl-genbegin) (equal (tag x) :vl-genif) (equal (tag x) :vl-gencase) (equal (tag x) :vl-genloop) (equal (tag x) :vl-genarray)) (vl-scopeitem-p x)) (vl-genelement-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-interfaceport-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-interfaceport)) (vl-scopeitem-p x)) (vl-interfaceport-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modport-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-modport)) (vl-scopeitem-p x)) (vl-modport-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-paramdecl-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-paramdecl)) (vl-scopeitem-p x)) (vl-paramdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-vardecl-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-vardecl)) (vl-scopeitem-p x)) (vl-vardecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-fundecl-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-fundecl)) (vl-scopeitem-p x)) (vl-fundecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-taskdecl-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-taskdecl)) (vl-scopeitem-p x)) (vl-taskdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-typedef-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-typedef)) (vl-scopeitem-p x)) (vl-typedef-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-dpiimport-p-by-tag-when-vl-scopeitem-p (implies (and (or (equal (tag x) :vl-dpiimport)) (vl-scopeitem-p x)) (vl-dpiimport-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-scopeitem-p-when-invalid-tag (implies (and (not (equal (tag x) :vl-modinst)) (not (equal (tag x) :vl-gateinst)) (not (equal (tag x) :vl-genvar)) (not (equal (tag x) :vl-genbase)) (not (equal (tag x) :vl-genbegin)) (not (equal (tag x) :vl-genif)) (not (equal (tag x) :vl-gencase)) (not (equal (tag x) :vl-genloop)) (not (equal (tag x) :vl-genarray)) (not (equal (tag x) :vl-interfaceport)) (not (equal (tag x) :vl-modport)) (not (equal (tag x) :vl-paramdecl)) (not (equal (tag x) :vl-vardecl)) (not (equal (tag x) :vl-fundecl)) (not (equal (tag x) :vl-taskdecl)) (not (equal (tag x) :vl-typedef)) (not (equal (tag x) :vl-dpiimport))) (not (vl-scopeitem-p x))) :rule-classes ((:rewrite :backchain-limit-lst 0)))
Theorem:
(defthm tag-when-vl-scopeitem-p-forward (implies (vl-scopeitem-p x) (or (equal (tag x) :vl-modinst) (equal (tag x) :vl-gateinst) (equal (tag x) :vl-genvar) (equal (tag x) :vl-genbase) (equal (tag x) :vl-genbegin) (equal (tag x) :vl-genif) (equal (tag x) :vl-gencase) (equal (tag x) :vl-genloop) (equal (tag x) :vl-genarray) (equal (tag x) :vl-interfaceport) (equal (tag x) :vl-modport) (equal (tag x) :vl-paramdecl) (equal (tag x) :vl-vardecl) (equal (tag x) :vl-fundecl) (equal (tag x) :vl-taskdecl) (equal (tag x) :vl-typedef) (equal (tag x) :vl-dpiimport))) :rule-classes ((:forward-chaining)))