Mechanism for custom suppression of multidrive warnings.
We use this at Centaur to suppress multidrive warnings within certain modules that we know are not RTL designs.
This is an attachable function that should return
This suppression is done in addition to the default heuristics. That is, your function can focus just on the additional rules you want to add, and doesn't have to recreate the default heuristics.
Theorem:
(defthm booleanp-of-vl-custom-suppress-multidrive-p (booleanp (vl-custom-suppress-multidrive-p ss item set)) :rule-classes :type-prescription)
Function:
(defun vl-custom-suppress-multidrive-p-default (ss item set) (declare (xargs :guard (and (vl-scopestack-p ss) (or (vl-paramdecl-p item) (vl-vardecl-p item)) (vl-lucidocclist-p set)))) (declare (ignorable ss item set)) (let ((__function__ 'vl-custom-suppress-multidrive-p-default)) (declare (ignorable __function__)) nil))
Theorem:
(defthm vl-custom-suppress-multidrive-p-default-of-vl-scopestack-fix-ss (equal (vl-custom-suppress-multidrive-p-default (vl-scopestack-fix ss) item set) (vl-custom-suppress-multidrive-p-default ss item set)))
Theorem:
(defthm vl-custom-suppress-multidrive-p-default-vl-scopestack-equiv-congruence-on-ss (implies (vl-scopestack-equiv ss ss-equiv) (equal (vl-custom-suppress-multidrive-p-default ss item set) (vl-custom-suppress-multidrive-p-default ss-equiv item set))) :rule-classes :congruence)
Theorem:
(defthm vl-custom-suppress-multidrive-p-default-of-vl-lucidocclist-fix-set (equal (vl-custom-suppress-multidrive-p-default ss item (vl-lucidocclist-fix set)) (vl-custom-suppress-multidrive-p-default ss item set)))
Theorem:
(defthm vl-custom-suppress-multidrive-p-default-vl-lucidocclist-equiv-congruence-on-set (implies (vl-lucidocclist-equiv set set-equiv) (equal (vl-custom-suppress-multidrive-p-default ss item set) (vl-custom-suppress-multidrive-p-default ss item set-equiv))) :rule-classes :congruence)