Recognizer for vl-description.
(vl-description-p x) → *
Function:
(defun vl-description-p (x) (declare (xargs :guard t)) (let ((__function__ 'vl-description-p)) (declare (ignorable __function__)) (common-lisp::case (tag x) ((:vl-module) (vl-module-p x)) ((:vl-udp) (vl-udp-p x)) ((:vl-interface) (vl-interface-p x)) ((:vl-package) (vl-package-p x)) ((:vl-program) (vl-program-p x)) ((:vl-config) (vl-config-p x)) ((:vl-taskdecl) (vl-taskdecl-p x)) ((:vl-fundecl) (vl-fundecl-p x)) ((:vl-paramdecl) (vl-paramdecl-p x)) ((:vl-import) (vl-import-p x)) ((:vl-fwdtypedef) (vl-fwdtypedef-p x)) (otherwise (vl-typedef-p x)))))
Theorem:
(defthm consp-when-vl-description-p (implies (vl-description-p x) (consp x)) :rule-classes :compound-recognizer)
Theorem:
(defthm vl-description-p-when-vl-module-p (implies (vl-module-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-vl-udp-p (implies (vl-udp-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-vl-interface-p (implies (vl-interface-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-vl-package-p (implies (vl-package-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-vl-program-p (implies (vl-program-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-vl-config-p (implies (vl-config-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-vl-taskdecl-p (implies (vl-taskdecl-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-vl-fundecl-p (implies (vl-fundecl-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-vl-paramdecl-p (implies (vl-paramdecl-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-vl-import-p (implies (vl-import-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-vl-fwdtypedef-p (implies (vl-fwdtypedef-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-vl-typedef-p (implies (vl-typedef-p x) (vl-description-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-module-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-module)) (vl-description-p x)) (vl-module-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-udp-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-udp)) (vl-description-p x)) (vl-udp-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-interface-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-interface)) (vl-description-p x)) (vl-interface-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-package-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-package)) (vl-description-p x)) (vl-package-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-program-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-program)) (vl-description-p x)) (vl-program-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-config-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-config)) (vl-description-p x)) (vl-config-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-taskdecl-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-taskdecl)) (vl-description-p x)) (vl-taskdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-fundecl-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-fundecl)) (vl-description-p x)) (vl-fundecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-paramdecl-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-paramdecl)) (vl-description-p x)) (vl-paramdecl-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-import-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-import)) (vl-description-p x)) (vl-import-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-fwdtypedef-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-fwdtypedef)) (vl-description-p x)) (vl-fwdtypedef-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-typedef-p-by-tag-when-vl-description-p (implies (and (or (equal (tag x) :vl-typedef)) (vl-description-p x)) (vl-typedef-p x)) :rule-classes ((:rewrite :backchain-limit-lst 1)))
Theorem:
(defthm vl-description-p-when-invalid-tag (implies (and (not (equal (tag x) :vl-module)) (not (equal (tag x) :vl-udp)) (not (equal (tag x) :vl-interface)) (not (equal (tag x) :vl-package)) (not (equal (tag x) :vl-program)) (not (equal (tag x) :vl-config)) (not (equal (tag x) :vl-taskdecl)) (not (equal (tag x) :vl-fundecl)) (not (equal (tag x) :vl-paramdecl)) (not (equal (tag x) :vl-import)) (not (equal (tag x) :vl-fwdtypedef)) (not (equal (tag x) :vl-typedef))) (not (vl-description-p x))) :rule-classes ((:rewrite :backchain-limit-lst 0)))
Theorem:
(defthm tag-when-vl-description-p-forward (implies (vl-description-p x) (or (equal (tag x) :vl-module) (equal (tag x) :vl-udp) (equal (tag x) :vl-interface) (equal (tag x) :vl-package) (equal (tag x) :vl-program) (equal (tag x) :vl-config) (equal (tag x) :vl-taskdecl) (equal (tag x) :vl-fundecl) (equal (tag x) :vl-paramdecl) (equal (tag x) :vl-import) (equal (tag x) :vl-fwdtypedef) (equal (tag x) :vl-typedef))) :rule-classes ((:forward-chaining)))