(vl-lucid-dissect-var-main ss item used set genp) → warnings
Function:
(defun vl-lucid-dissect-var-main (ss item used set genp) (declare (xargs :guard (and (vl-scopestack-p ss) (or (vl-paramdecl-p item) (vl-vardecl-p item)) (vl-lucidocclist-p used) (vl-lucidocclist-p set) (booleanp genp)))) (let ((__function__ 'vl-lucid-dissect-var-main)) (declare (ignorable __function__)) (b* ((used (vl-lucidocclist-fix used)) (set (vl-lucidocclist-fix set)) (name (if (eq (tag item) :vl-vardecl) (vl-vardecl->name item) (vl-paramdecl->name item))) (warnings (vl-lucid-multidrive-detect ss item set genp)) ((when (and (atom used) (atom set))) (warn :type :vl-lucid-spurious :msg "~w0 is never used or set anywhere. (~s1)" :args (list name (with-local-ps (vl-pp-scopestack-path ss))))) (used-solop (vl-lucid-some-solo-occp used)) (set-solop (vl-lucid-some-solo-occp set)) ((when (and used-solop set-solop)) warnings) ((mv simplep valid-bits) (vl-lucid-valid-bits-for-decl item ss)) (warnings (b* (((when (atom used)) (warn :type :vl-lucid-unused :msg "~w0 is set but is never used. (~s1)" :args (list name (with-local-ps (vl-pp-scopestack-path ss))))) ((when used-solop) warnings) ((unless (and simplep (vl-lucid-all-slices-p used) (vl-lucid-all-slices-resolved-p used))) warnings) (used-bits (vl-lucid-resolved-slices->bits used)) (unused-bits (difference valid-bits used-bits)) ((unless unused-bits) warnings)) (warn :type :vl-lucid-unused :msg "~w0 has some bits that are never used: ~s1. (~s2)" :args (list name (vl-lucid-summarize-bits unused-bits) (with-local-ps (vl-pp-scopestack-path ss)))))) (warnings (b* (((when (atom set)) (warn :type :vl-lucid-unset :msg "~w0 is used but is never initialized. (~s1)" :args (list name (with-local-ps (vl-pp-scopestack-path ss))))) ((when set-solop) warnings) ((unless (and simplep (vl-lucid-all-slices-p set) (vl-lucid-all-slices-resolved-p set))) warnings) (set-bits (vl-lucid-resolved-slices->bits set)) (unset-bits (difference valid-bits set-bits)) ((unless unset-bits) warnings)) (warn :type :vl-lucid-unset :msg "~w0 has some bits that are never set: ~s1. (~s2)" :args (list name (vl-lucid-summarize-bits unset-bits) (with-local-ps (vl-pp-scopestack-path ss))))))) warnings)))
Theorem:
(defthm vl-warninglist-p-of-vl-lucid-dissect-var-main (b* ((warnings (vl-lucid-dissect-var-main ss item used set genp))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-lucid-dissect-var-main-of-vl-scopestack-fix-ss (equal (vl-lucid-dissect-var-main (vl-scopestack-fix ss) item used set genp) (vl-lucid-dissect-var-main ss item used set genp)))
Theorem:
(defthm vl-lucid-dissect-var-main-vl-scopestack-equiv-congruence-on-ss (implies (vl-scopestack-equiv ss ss-equiv) (equal (vl-lucid-dissect-var-main ss item used set genp) (vl-lucid-dissect-var-main ss-equiv item used set genp))) :rule-classes :congruence)
Theorem:
(defthm vl-lucid-dissect-var-main-of-vl-lucidocclist-fix-used (equal (vl-lucid-dissect-var-main ss item (vl-lucidocclist-fix used) set genp) (vl-lucid-dissect-var-main ss item used set genp)))
Theorem:
(defthm vl-lucid-dissect-var-main-vl-lucidocclist-equiv-congruence-on-used (implies (vl-lucidocclist-equiv used used-equiv) (equal (vl-lucid-dissect-var-main ss item used set genp) (vl-lucid-dissect-var-main ss item used-equiv set genp))) :rule-classes :congruence)
Theorem:
(defthm vl-lucid-dissect-var-main-of-vl-lucidocclist-fix-set (equal (vl-lucid-dissect-var-main ss item used (vl-lucidocclist-fix set) genp) (vl-lucid-dissect-var-main ss item used set genp)))
Theorem:
(defthm vl-lucid-dissect-var-main-vl-lucidocclist-equiv-congruence-on-set (implies (vl-lucidocclist-equiv set set-equiv) (equal (vl-lucid-dissect-var-main ss item used set genp) (vl-lucid-dissect-var-main ss item used set-equiv genp))) :rule-classes :congruence)
Theorem:
(defthm vl-lucid-dissect-var-main-of-bool-fix-genp (equal (vl-lucid-dissect-var-main ss item used set (acl2::bool-fix genp)) (vl-lucid-dissect-var-main ss item used set genp)))
Theorem:
(defthm vl-lucid-dissect-var-main-iff-congruence-on-genp (implies (iff genp genp-equiv) (equal (vl-lucid-dissect-var-main ss item used set genp) (vl-lucid-dissect-var-main ss item used set genp-equiv))) :rule-classes :congruence)