Give
(local (do-not generalize fertilize)) (defthm thm1 ...) (defthm thm2 ...) ...
is roughly equivalent to:
(defthm thm1 ... :hints (("Goal" :do-not '(generalize fertilize)))) (defthm thm2 ... :hints (("Goal" :do-not '(generalize fertilize))))
except that the
The
The arguments to
Function:
(defun do-not-hint (world stable-under-simplificationp state) (declare (xargs :stobjs state)) (b* (((unless stable-under-simplificationp) nil) (tbl (table-alist 'do-not-table world)) (things (cdr (assoc 'things-not-to-be-done tbl))) (inductp (cdr (assoc 'do-not-inductp tbl))) ((when (and (atom things) (not inductp))) nil) (- (or (gag-mode) (cw "~%;; do-not-hint: prohibiting ~x0.~|" (if inductp (cons 'induct things) things)))) (hint (if inductp '(:do-not-induct t) nil)) (hint (if (consp things) (append (cons ':do-not (cons (cons 'quote (cons things 'nil)) 'nil)) hint) hint))) hint))