Check if a declaration matches the target, and create the function wrapper if so.
(declon-wrap-fn-add-wrapper-def declon
target-name wrapper-name? blacklist)
→
(mv er? uid? wrapper? wrapper-name?$)The returned
If
Function:
(defun declon-wrap-fn-add-wrapper-def (declon target-name wrapper-name? blacklist) (declare (xargs :guard (and (declonp declon) (identp target-name) (ident-optionp wrapper-name?) (ident-setp blacklist)))) (declare (xargs :guard (declon-annop declon))) (declon-case declon :declon (init-declor-list-wrap-fn-add-wrapper-def declon.declors target-name wrapper-name? blacklist declon.specs) :otherwise (retok nil nil nil)))
Theorem:
(defthm maybe-msgp-of-declon-wrap-fn-add-wrapper-def.er? (b* (((mv ?er? ?uid? ?wrapper? ?wrapper-name?$) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist))) (maybe-msgp er?)) :rule-classes :rewrite)
Theorem:
(defthm uid-optionp-of-declon-wrap-fn-add-wrapper-def.uid? (b* (((mv ?er? ?uid? ?wrapper? ?wrapper-name?$) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist))) (c$::uid-optionp uid?)) :rule-classes :rewrite)
Theorem:
(defthm fundef-optionp-of-declon-wrap-fn-add-wrapper-def.wrapper? (b* (((mv ?er? ?uid? ?wrapper? ?wrapper-name?$) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist))) (fundef-optionp wrapper?)) :rule-classes :rewrite)
Theorem:
(defthm ident-optionp-of-declon-wrap-fn-add-wrapper-def.wrapper-name?$ (b* (((mv ?er? ?uid? ?wrapper? ?wrapper-name?$) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist))) (ident-optionp wrapper-name?$)) :rule-classes :rewrite)
Theorem:
(defthm fundefp-of-declon-wrap-fn-add-wrapper-def.wrapper?-under-iff (b* (((mv ?er? ?uid? ?wrapper? ?wrapper-name?$) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist))) (iff (fundefp wrapper?) wrapper?)))
Theorem:
(defthm identp-of-declon-wrap-fn-add-wrapper-def.wrapper-name?$ (b* (((mv ?er? ?uid? ?wrapper? ?wrapper-name?$) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist))) (equal (identp wrapper-name?$) (fundefp wrapper?))))
Theorem:
(defthm declon-wrap-fn-add-wrapper-def-of-declon-fix-declon (equal (declon-wrap-fn-add-wrapper-def (declon-fix declon) target-name wrapper-name? blacklist) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist)))
Theorem:
(defthm declon-wrap-fn-add-wrapper-def-declon-equiv-congruence-on-declon (implies (c$::declon-equiv declon declon-equiv) (equal (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist) (declon-wrap-fn-add-wrapper-def declon-equiv target-name wrapper-name? blacklist))) :rule-classes :congruence)
Theorem:
(defthm declon-wrap-fn-add-wrapper-def-of-ident-fix-target-name (equal (declon-wrap-fn-add-wrapper-def declon (ident-fix target-name) wrapper-name? blacklist) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist)))
Theorem:
(defthm declon-wrap-fn-add-wrapper-def-ident-equiv-congruence-on-target-name (implies (c$::ident-equiv target-name target-name-equiv) (equal (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist) (declon-wrap-fn-add-wrapper-def declon target-name-equiv wrapper-name? blacklist))) :rule-classes :congruence)
Theorem:
(defthm declon-wrap-fn-add-wrapper-def-of-ident-option-fix-wrapper-name? (equal (declon-wrap-fn-add-wrapper-def declon target-name (ident-option-fix wrapper-name?) blacklist) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist)))
Theorem:
(defthm declon-wrap-fn-add-wrapper-def-ident-option-equiv-congruence-on-wrapper-name? (implies (c$::ident-option-equiv wrapper-name? wrapper-name?-equiv) (equal (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name?-equiv blacklist))) :rule-classes :congruence)
Theorem:
(defthm declon-wrap-fn-add-wrapper-def-of-ident-set-fix-blacklist (equal (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? (ident-set-fix blacklist)) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist)))
Theorem:
(defthm declon-wrap-fn-add-wrapper-def-ident-set-equiv-congruence-on-blacklist (implies (c$::ident-set-equiv blacklist blacklist-equiv) (equal (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist) (declon-wrap-fn-add-wrapper-def declon target-name wrapper-name? blacklist-equiv))) :rule-classes :congruence)