Return summary data from a clause-processor function
For relevant background, see clause-processor. Here we
discuss the value
[3+] ((CL-PROC cl hint st_1 ... st_k) => (mv erp cl-list st_i1 ... st_in d))
The purpose of
(defevaluator evl evl-list ...) (defun strengthen-cl2 (cl term state) (declare (xargs :stobjs state)) (cond ((null term) ; then no change (mv nil (list cl) state nil)) ... ((pseudo-termp term) (mv nil (list (cons (list 'not term) cl) (list term)) state (make-summary-data :runes '((:rewrite car-cons) (:rewrite cdr-cons) (:rewrite car-cons)) :use-names '(nth binary-append) :by-names '(nthcdr) :clause-processor-fns '(note-fact-clause-processor)))) (t ..))) (defthm correctness-of-strengthen-cl2 (implies (and (pseudo-term-listp cl) (alistp a) (evl (conjoin-clauses (clauses-result (strengthen-cl2 cl term state))) a)) (evl (disjoin cl) a)) :rule-classes :clause-processor) (defthm test-strengthen-cl2 (equal y y) :hints (("Goal" :instructions ((:prove :hints (("Goal" :clause-processor (strengthen-cl2 clause '(equal x x) state))))))) :rule-classes nil)
Evaluation of the final
Summary Form: ( DEFTHM TEST-STRENGTHEN-CL2 ...) Rules: ((:FAKE-RUNE-FOR-TYPE-SET NIL) (:REWRITE CAR-CONS) (:REWRITE CDR-CONS)) Hint-events: ((:BY NTHCDR) (:CLAUSE-PROCESSOR NOTE-FACT-CLAUSE-PROCESSOR) (:CLAUSE-PROCESSOR STRENGTHEN-CL2) (:USE BINARY-APPEND) (:USE NTH)) Time: 0.00 seconds (prove: 0.00, print: 0.00, other: 0.00)
Note that each keyword is optional; in particular, the form
Duplicates are allowed in the list, for each argument of
Finally, note that the summary information from
(assert-event (equal (sort-symbol-listp (car (global-val 'proof-supporters-alist (w state)))) '(BINARY-APPEND CAR-CONS CDR-CONS NOTE-FACT-CLAUSE-PROCESSOR NTH NTHCDR STRENGTHEN-CL2 TEST-STRENGTHEN-CL2)))