Generate the hints to verify the guards of the new function,
when non-recursive and when
(expdata-gen-new-fn-verify-guards-hints-pred-nonrec appcond-thm-names old$ arg-surjmaps wrld) → hints
This is according to the design notes.
Function:
(defun expdata-gen-new-fn-verify-guards-hints-pred-nonrec (appcond-thm-names old$ arg-surjmaps wrld) (declare (xargs :guard (and (symbol-symbol-alistp appcond-thm-names) (symbolp old$) (expdata-symbol-surjmap-alistp arg-surjmaps) (plist-worldp wrld)))) (let ((__function__ 'expdata-gen-new-fn-verify-guards-hints-pred-nonrec)) (declare (ignorable __function__)) (b* ((old-guard-pred (cdr (assoc-eq :old-guard-pred appcond-thm-names))) (instance-guard-thm-old (expdata-gen-lemma-instance-x1...xn-to-back-of-x1...xn (cons ':guard-theorem (cons old$ 'nil)) old$ arg-surjmaps wrld)) (instances-newp-guard (expdata-gen-newp-guard-instances-to-x1...xn arg-surjmaps wrld)) (instances-back-guard (expdata-gen-back-guard-instances-to-x1...xn arg-surjmaps wrld)) (instances-back-image (expdata-gen-back-image-instances-to-x1...xn arg-surjmaps wrld)) (instance-old-guard-pred (expdata-gen-lemma-instance-x1...xn-to-back-of-x1...xn old-guard-pred old$ arg-surjmaps wrld))) (cons (cons '"Goal" (cons ':in-theory (cons 'nil (cons ':use (cons (cons instance-guard-thm-old (append instances-newp-guard (append instances-back-guard (cons instance-old-guard-pred instances-back-image)))) 'nil))))) 'nil))))
Theorem:
(defthm true-listp-of-expdata-gen-new-fn-verify-guards-hints-pred-nonrec (b* ((hints (expdata-gen-new-fn-verify-guards-hints-pred-nonrec appcond-thm-names old$ arg-surjmaps wrld))) (true-listp hints)) :rule-classes :rewrite)