Transform an external declaration.
Function:
(defun simpadd0-extdecl (extdecl gin) (declare (xargs :guard (and (extdeclp extdecl) (ginp gin)))) (declare (xargs :guard (and (extdecl-unambp extdecl) (extdecl-annop extdecl)))) (let ((__function__ 'simpadd0-extdecl)) (declare (ignorable __function__)) (b* (((gin gin) gin)) (extdecl-case extdecl :fundef (b* (((mv new-fundef (gout gout-fundef)) (simpadd0-fundef extdecl.fundef gin)) (gin (gin-update gin gout-fundef))) (mv (extdecl-fundef new-fundef) (change-gout (gout-no-thm gin) :vartys gout-fundef.vartys))) :decl (b* (((mv new-decl (gout gout-decl)) (simpadd0-decl extdecl.decl gin)) (gin (gin-update gin gout-decl))) (mv (extdecl-decl new-decl) (change-gout (gout-no-thm gin) :vartys gout-decl.vartys))) :empty (mv (extdecl-empty) (gout-no-thm gin)) :asm (mv (extdecl-fix extdecl) (gout-no-thm gin))))))
Theorem:
(defthm extdeclp-of-simpadd0-extdecl.new-extdecl (b* (((mv ?new-extdecl ?gout) (simpadd0-extdecl extdecl gin))) (extdeclp new-extdecl)) :rule-classes :rewrite)
Theorem:
(defthm goutp-of-simpadd0-extdecl.gout (b* (((mv ?new-extdecl ?gout) (simpadd0-extdecl extdecl gin))) (goutp gout)) :rule-classes :rewrite)
Theorem:
(defthm extdecl-unambp-of-simpadd0-extdecl (b* (((mv ?new-extdecl ?gout) (simpadd0-extdecl extdecl gin))) (extdecl-unambp new-extdecl)))
Theorem:
(defthm extdecl-annop-of-simpadd0-extdecl (implies (and (extdecl-unambp extdecl) (extdecl-annop extdecl)) (b* (((mv ?new-extdecl ?gout) (simpadd0-extdecl extdecl gin))) (extdecl-annop new-extdecl))))
Theorem:
(defthm extdecl-aidentp-of-simpadd0-extdecl (implies (and (extdecl-unambp extdecl) (extdecl-aidentp extdecl gcc)) (b* (((mv ?new-extdecl ?gout) (simpadd0-extdecl extdecl gin))) (extdecl-aidentp new-extdecl gcc))))
Theorem:
(defthm simpadd0-extdecl-of-extdecl-fix-extdecl (equal (simpadd0-extdecl (extdecl-fix extdecl) gin) (simpadd0-extdecl extdecl gin)))
Theorem:
(defthm simpadd0-extdecl-extdecl-equiv-congruence-on-extdecl (implies (c$::extdecl-equiv extdecl extdecl-equiv) (equal (simpadd0-extdecl extdecl gin) (simpadd0-extdecl extdecl-equiv gin))) :rule-classes :congruence)
Theorem:
(defthm simpadd0-extdecl-of-gin-fix-gin (equal (simpadd0-extdecl extdecl (gin-fix gin)) (simpadd0-extdecl extdecl gin)))
Theorem:
(defthm simpadd0-extdecl-gin-equiv-congruence-on-gin (implies (gin-equiv gin gin-equiv) (equal (simpadd0-extdecl extdecl gin) (simpadd0-extdecl extdecl gin-equiv))) :rule-classes :congruence)