Execute the
(defisar-qed name formula events facts disable rule-classes) → new-events
Function:
(defun defisar-qed (name formula events facts disable rule-classes) (declare (xargs :guard (and (symbolp name) (pseudo-event-form-listp events) (keyword-fact-info-alistp facts) (booleanp disable)))) (let ((__function__ 'defisar-qed)) (declare (ignorable __function__)) (b* ((fact-infos (strip-cdrs facts)) (fact-thm-names (fact-info-list->thm-name-list fact-infos)) (hints (cons (cons '"Goal" (cons ':in-theory (cons 'nil (cons ':use (cons fact-thm-names 'nil))))) 'nil)) (defthm/defthmd (if disable 'defthmd 'defthm)) (local-thm (cons 'local (cons (cons defthm/defthmd (cons name (cons formula (cons ':hints (cons hints (cons ':rule-classes (cons rule-classes 'nil))))))) 'nil))) (local-thm (restore-output local-thm)) (exported-thm (cons defthm/defthmd (cons name (cons formula (cons ':rule-classes (cons rule-classes 'nil)))))) (print-event '(cw-event "~%~%~%~s0~%~x1~%~%" "****************************************" '(:qed))) (events (list* exported-thm local-thm print-event events))) events)))
Theorem:
(defthm pseudo-event-form-listp-of-defisar-qed (implies (pseudo-event-form-listp events) (b* ((new-events (defisar-qed name formula events facts disable rule-classes))) (pseudo-event-form-listp new-events))) :rule-classes :rewrite)