Transform an external declaration.
(specialize-ext-declon extdecl target-fn target-param const) → (mv found new-extdecl)
Function:
(defun specialize-ext-declon (extdecl target-fn target-param const) (declare (xargs :guard (and (ext-declonp extdecl) (identp target-fn) (identp target-param) (exprp const)))) (ext-declon-case extdecl :fundef (b* (((mv found fundef) (specialize-fundef extdecl.fundef target-fn target-param const))) (mv found (ext-declon-fundef fundef))) :declon (mv nil (ext-declon-fix extdecl)) :empty (mv nil (ext-declon-fix extdecl)) :asm (mv nil (ext-declon-fix extdecl))))
Theorem:
(defthm booleanp-of-specialize-ext-declon.found (b* (((mv ?found ?new-extdecl) (specialize-ext-declon extdecl target-fn target-param const))) (booleanp found)) :rule-classes :rewrite)
Theorem:
(defthm ext-declonp-of-specialize-ext-declon.new-extdecl (b* (((mv ?found ?new-extdecl) (specialize-ext-declon extdecl target-fn target-param const))) (ext-declonp new-extdecl)) :rule-classes :rewrite)