Recognizer for vl-moditem.
(vl-moditem-p x) → *
Function:
(defun vl-moditem-p (x) (declare (xargs :guard t)) (let ((__function__ 'vl-moditem-p)) (declare (ignorable __function__)) (common-lisp::case (tag 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)) (otherwise (vl-gateinst-p x)))))
Theorem:
(defthm consp-when-vl-moditem-p (implies (vl-moditem-p x) (consp x)) :rule-classes :compound-recognizer)
Theorem:
(defthm vl-moditem-p-when-vl-vardecl-p (implies (vl-vardecl-p x) (vl-moditem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-moditem-p-when-vl-paramdecl-p (implies (vl-paramdecl-p x) (vl-moditem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-moditem-p-when-vl-fundecl-p (implies (vl-fundecl-p x) (vl-moditem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-moditem-p-when-vl-taskdecl-p (implies (vl-taskdecl-p x) (vl-moditem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-moditem-p-when-vl-modinst-p (implies (vl-modinst-p x) (vl-moditem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-moditem-p-when-vl-gateinst-p (implies (vl-gateinst-p x) (vl-moditem-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-vardecl-p-by-tag-when-vl-moditem-p (implies (and (or (equal (tag x) :vl-vardecl)) (vl-moditem-p x)) (vl-vardecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-paramdecl-p-by-tag-when-vl-moditem-p (implies (and (or (equal (tag x) :vl-paramdecl)) (vl-moditem-p x)) (vl-paramdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-fundecl-p-by-tag-when-vl-moditem-p (implies (and (or (equal (tag x) :vl-fundecl)) (vl-moditem-p x)) (vl-fundecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-taskdecl-p-by-tag-when-vl-moditem-p (implies (and (or (equal (tag x) :vl-taskdecl)) (vl-moditem-p x)) (vl-taskdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-modinst-p-by-tag-when-vl-moditem-p (implies (and (or (equal (tag x) :vl-modinst)) (vl-moditem-p x)) (vl-modinst-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-gateinst-p-by-tag-when-vl-moditem-p (implies (and (or (equal (tag x) :vl-gateinst)) (vl-moditem-p x)) (vl-gateinst-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-moditem-p-when-invalid-tag (implies (and (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 (vl-moditem-p x))) :rule-classes ((:rewrite :backchain-limit-lst 0)))
Theorem:
(defthm tag-when-vl-moditem-p-forward (implies (vl-moditem-p x) (or (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))) :rule-classes ((:forward-chaining)))