Generate all the events.
(wrap-fn-gen-everything code const-new targets) → (mv er? event)
Function:
(defun wrap-fn-gen-everything (code const-new targets) (declare (xargs :guard (and (code-ensemblep code) (symbolp const-new) (ident-ident-option-mapp targets)))) (declare (xargs :guard (code-ensemble-annop code))) (b* (((reterr) '(_)) (const-new (mbe :logic (acl2::symbol-fix const-new) :exec const-new)) ((erp code) (code-ensemble-wrap-fn-multiple code targets)) (defconst-event (cons 'defconst (cons const-new (cons (cons 'quote (cons code 'nil)) 'nil))))) (retok defconst-event)))
Theorem:
(defthm maybe-msgp-of-wrap-fn-gen-everything.er? (b* (((mv ?er? acl2::?event) (wrap-fn-gen-everything code const-new targets))) (maybe-msgp er?)) :rule-classes :rewrite)
Theorem:
(defthm pseudo-event-formp-of-wrap-fn-gen-everything.event (b* (((mv ?er? acl2::?event) (wrap-fn-gen-everything code const-new targets))) (pseudo-event-formp event)) :rule-classes :rewrite)
Theorem:
(defthm wrap-fn-gen-everything-of-code-ensemble-fix-code (equal (wrap-fn-gen-everything (c$::code-ensemble-fix code) const-new targets) (wrap-fn-gen-everything code const-new targets)))
Theorem:
(defthm wrap-fn-gen-everything-code-ensemble-equiv-congruence-on-code (implies (c$::code-ensemble-equiv code code-equiv) (equal (wrap-fn-gen-everything code const-new targets) (wrap-fn-gen-everything code-equiv const-new targets))) :rule-classes :congruence)
Theorem:
(defthm wrap-fn-gen-everything-of-symbol-fix-const-new (equal (wrap-fn-gen-everything code (acl2::symbol-fix const-new) targets) (wrap-fn-gen-everything code const-new targets)))
Theorem:
(defthm wrap-fn-gen-everything-symbol-equiv-congruence-on-const-new (implies (acl2::symbol-equiv const-new const-new-equiv) (equal (wrap-fn-gen-everything code const-new targets) (wrap-fn-gen-everything code const-new-equiv targets))) :rule-classes :congruence)
Theorem:
(defthm wrap-fn-gen-everything-of-ident-ident-option-map-fix-targets (equal (wrap-fn-gen-everything code const-new (ident-ident-option-map-fix targets)) (wrap-fn-gen-everything code const-new targets)))
Theorem:
(defthm wrap-fn-gen-everything-ident-ident-option-map-equiv-congruence-on-targets (implies (ident-ident-option-map-equiv targets targets-equiv) (equal (wrap-fn-gen-everything code const-new targets) (wrap-fn-gen-everything code const-new targets-equiv))) :rule-classes :congruence)