Transform a translation unit ensemble.
(transunit-ensemble-wrap-fn transunits target-name wrapper-name?) → (mv er? transunits$)
Function:
(defun transunit-ensemble-wrap-fn (transunits target-name wrapper-name?) (declare (xargs :guard (and (transunit-ensemblep transunits) (identp target-name) (ident-optionp wrapper-name?)))) (declare (xargs :guard (transunit-ensemble-annop transunits))) (b* (((reterr) (c$::transunit-ensemble-fix transunits)) ((transunit-ensemble transunits) transunits) (blacklist (filepath-transunit-map-collect-idents transunits.units)) ((erp any-foundp map) (filepath-transunit-map-wrap-fn transunits.units target-name wrapper-name? blacklist)) (- (if any-foundp nil (cw "Warning: No declaration found for ~x0.~%" (ident->unwrap target-name))))) (retok (c$::change-transunit-ensemble transunits :units map))))
Theorem:
(defthm maybe-msgp-of-transunit-ensemble-wrap-fn.er? (b* (((mv ?er? ?transunits$) (transunit-ensemble-wrap-fn transunits target-name wrapper-name?))) (maybe-msgp er?)) :rule-classes :rewrite)
Theorem:
(defthm transunit-ensemblep-of-transunit-ensemble-wrap-fn.transunits$ (b* (((mv ?er? ?transunits$) (transunit-ensemble-wrap-fn transunits target-name wrapper-name?))) (transunit-ensemblep transunits$)) :rule-classes :rewrite)
Theorem:
(defthm transunit-ensemble-wrap-fn-of-transunit-ensemble-fix-transunits (equal (transunit-ensemble-wrap-fn (c$::transunit-ensemble-fix transunits) target-name wrapper-name?) (transunit-ensemble-wrap-fn transunits target-name wrapper-name?)))
Theorem:
(defthm transunit-ensemble-wrap-fn-transunit-ensemble-equiv-congruence-on-transunits (implies (c$::transunit-ensemble-equiv transunits transunits-equiv) (equal (transunit-ensemble-wrap-fn transunits target-name wrapper-name?) (transunit-ensemble-wrap-fn transunits-equiv target-name wrapper-name?))) :rule-classes :congruence)
Theorem:
(defthm transunit-ensemble-wrap-fn-of-ident-fix-target-name (equal (transunit-ensemble-wrap-fn transunits (ident-fix target-name) wrapper-name?) (transunit-ensemble-wrap-fn transunits target-name wrapper-name?)))
Theorem:
(defthm transunit-ensemble-wrap-fn-ident-equiv-congruence-on-target-name (implies (c$::ident-equiv target-name target-name-equiv) (equal (transunit-ensemble-wrap-fn transunits target-name wrapper-name?) (transunit-ensemble-wrap-fn transunits target-name-equiv wrapper-name?))) :rule-classes :congruence)
Theorem:
(defthm transunit-ensemble-wrap-fn-of-ident-option-fix-wrapper-name? (equal (transunit-ensemble-wrap-fn transunits target-name (ident-option-fix wrapper-name?)) (transunit-ensemble-wrap-fn transunits target-name wrapper-name?)))
Theorem:
(defthm transunit-ensemble-wrap-fn-ident-option-equiv-congruence-on-wrapper-name? (implies (c$::ident-option-equiv wrapper-name? wrapper-name?-equiv) (equal (transunit-ensemble-wrap-fn transunits target-name wrapper-name?) (transunit-ensemble-wrap-fn transunits target-name wrapper-name?-equiv))) :rule-classes :congruence)