Create a list of event forms to
(install-not-normalized-event-lst fns local names-to-avoid wrld) → (mv events names updated-names-to-avoid)
Ensure that the names of the theorems are not already in use
and are not among a list of names to avoid.
Start with the default names
(i.e. the concatenation of
the names of each function suffixed with
Function:
(defun install-not-normalized-event-lst (fns local names-to-avoid wrld) (declare (xargs :guard (and (symbol-listp fns) (booleanp local) (symbol-listp names-to-avoid) (plist-worldp wrld)))) (let ((__function__ 'install-not-normalized-event-lst)) (declare (ignorable __function__)) (cond ((endp fns) (mv nil nil names-to-avoid)) (t (mv-let (event name names-to-avoid) (install-not-normalized-event (car fns) local names-to-avoid wrld) (mv-let (rest-events rest-names names-to-avoid) (install-not-normalized-event-lst (cdr fns) local names-to-avoid wrld) (mv (cons event rest-events) (cons name rest-names) names-to-avoid)))))))
Theorem:
(defthm pseudo-event-form-listp-of-install-not-normalized-event-lst.events (b* (((mv ?events ?names ?updated-names-to-avoid) (install-not-normalized-event-lst fns local names-to-avoid wrld))) (pseudo-event-form-listp events)) :rule-classes :rewrite)
Theorem:
(defthm symbol-listp-of-install-not-normalized-event-lst.names (b* (((mv ?events ?names ?updated-names-to-avoid) (install-not-normalized-event-lst fns local names-to-avoid wrld))) (symbol-listp names)) :rule-classes :rewrite)
Theorem:
(defthm symbol-listp-of-install-not-normalized-event-lst.updated-names-to-avoid (implies (symbol-listp names-to-avoid) (b* (((mv ?events ?names ?updated-names-to-avoid) (install-not-normalized-event-lst fns local names-to-avoid wrld))) (symbol-listp updated-names-to-avoid))) :rule-classes :rewrite)