Transform an external declaration.
(copy-fn-ext-declon extdecl target-fn new-fn) → (mv found extdecls)
Function:
(defun copy-fn-ext-declon (extdecl target-fn new-fn) (declare (xargs :guard (and (ext-declonp extdecl) (identp target-fn) (identp new-fn)))) (declare (xargs :guard (ext-declon-annop extdecl))) (let ((__function__ 'copy-fn-ext-declon)) (declare (ignorable __function__)) (ext-declon-case extdecl :fundef (b* ((fundef? (copy-fn-fundef extdecl.fundef target-fn new-fn))) (if fundef? (mv t (list (ext-declon-fix extdecl) (ext-declon-fundef fundef?))) (mv nil (list (ext-declon-fix extdecl))))) :declon (mv nil (list (ext-declon-fix extdecl))) :empty (mv nil (list (ext-declon-fix extdecl))) :asm (mv nil (list (ext-declon-fix extdecl))))))
Theorem:
(defthm booleanp-of-copy-fn-ext-declon.found (b* (((mv ?found ?extdecls) (copy-fn-ext-declon extdecl target-fn new-fn))) (booleanp found)) :rule-classes :rewrite)
Theorem:
(defthm ext-declon-listp-of-copy-fn-ext-declon.extdecls (b* (((mv ?found ?extdecls) (copy-fn-ext-declon extdecl target-fn new-fn))) (ext-declon-listp extdecls)) :rule-classes :rewrite)