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