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