Note that there is an error with the dependencies we're collecting.
(vl-immdeps-add-error ans &key type msg args fatalp (fn '__function__)) → new-ans
Function:
(defun vl-immdeps-add-error-fn (ans type msg args fatalp fn) (declare (xargs :guard (and (vl-immdeps-p ans) (symbolp type) (stringp msg) (true-listp args) (booleanp fatalp) (symbolp fn)))) (let ((__function__ 'vl-immdeps-add-error)) (declare (ignorable __function__)) (b* ((w (make-vl-warning :type type :msg msg :args args :fn fn :fatalp fatalp))) (change-vl-immdeps ans :all-okp nil :warnings (cons w (vl-immdeps->warnings ans))))))
Theorem:
(defthm vl-immdeps-p-of-vl-immdeps-add-error (b* ((new-ans (vl-immdeps-add-error-fn ans type msg args fatalp fn))) (vl-immdeps-p new-ans)) :rule-classes :rewrite)
Theorem:
(defthm vl-immdeps-add-error-fn-of-vl-immdeps-fix-ans (equal (vl-immdeps-add-error-fn (vl-immdeps-fix ans) type msg args fatalp fn) (vl-immdeps-add-error-fn ans type msg args fatalp fn)))
Theorem:
(defthm vl-immdeps-add-error-fn-vl-immdeps-equiv-congruence-on-ans (implies (vl-immdeps-equiv ans ans-equiv) (equal (vl-immdeps-add-error-fn ans type msg args fatalp fn) (vl-immdeps-add-error-fn ans-equiv type msg args fatalp fn))) :rule-classes :congruence)
Theorem:
(defthm vl-immdeps-add-error-fn-of-symbol-fix-type (equal (vl-immdeps-add-error-fn ans (acl2::symbol-fix type) msg args fatalp fn) (vl-immdeps-add-error-fn ans type msg args fatalp fn)))
Theorem:
(defthm vl-immdeps-add-error-fn-symbol-equiv-congruence-on-type (implies (acl2::symbol-equiv type type-equiv) (equal (vl-immdeps-add-error-fn ans type msg args fatalp fn) (vl-immdeps-add-error-fn ans type-equiv msg args fatalp fn))) :rule-classes :congruence)
Theorem:
(defthm vl-immdeps-add-error-fn-of-str-fix-msg (equal (vl-immdeps-add-error-fn ans type (str-fix msg) args fatalp fn) (vl-immdeps-add-error-fn ans type msg args fatalp fn)))
Theorem:
(defthm vl-immdeps-add-error-fn-streqv-congruence-on-msg (implies (streqv msg msg-equiv) (equal (vl-immdeps-add-error-fn ans type msg args fatalp fn) (vl-immdeps-add-error-fn ans type msg-equiv args fatalp fn))) :rule-classes :congruence)
Theorem:
(defthm vl-immdeps-add-error-fn-of-list-fix-args (equal (vl-immdeps-add-error-fn ans type msg (list-fix args) fatalp fn) (vl-immdeps-add-error-fn ans type msg args fatalp fn)))
Theorem:
(defthm vl-immdeps-add-error-fn-list-equiv-congruence-on-args (implies (list-equiv args args-equiv) (equal (vl-immdeps-add-error-fn ans type msg args fatalp fn) (vl-immdeps-add-error-fn ans type msg args-equiv fatalp fn))) :rule-classes :congruence)
Theorem:
(defthm vl-immdeps-add-error-fn-of-bool-fix-fatalp (equal (vl-immdeps-add-error-fn ans type msg args (acl2::bool-fix fatalp) fn) (vl-immdeps-add-error-fn ans type msg args fatalp fn)))
Theorem:
(defthm vl-immdeps-add-error-fn-iff-congruence-on-fatalp (implies (iff fatalp fatalp-equiv) (equal (vl-immdeps-add-error-fn ans type msg args fatalp fn) (vl-immdeps-add-error-fn ans type msg args fatalp-equiv fn))) :rule-classes :congruence)
Theorem:
(defthm vl-immdeps-add-error-fn-of-symbol-fix-fn (equal (vl-immdeps-add-error-fn ans type msg args fatalp (acl2::symbol-fix fn)) (vl-immdeps-add-error-fn ans type msg args fatalp fn)))
Theorem:
(defthm vl-immdeps-add-error-fn-symbol-equiv-congruence-on-fn (implies (acl2::symbol-equiv fn fn-equiv) (equal (vl-immdeps-add-error-fn ans type msg args fatalp fn) (vl-immdeps-add-error-fn ans type msg args fatalp fn-equiv))) :rule-classes :congruence)