(moddb-add-module elab-mod moddb) → (mv elab-mod moddb)
Function:
(defun moddb-add-module (elab-mod moddb) (declare (xargs :stobjs (elab-mod moddb))) (declare (xargs :guard (moddbp moddb))) (declare (xargs :guard (and (moddb-ok moddb) (not (moddb-modname-get-index (elab-mod->name elab-mod) moddb))))) (let ((__function__ 'moddb-add-module)) (declare (ignorable __function__)) (b* ((moddb (moddb-maybe-grow moddb))) (moddb-add-module1 elab-mod moddb))))
Theorem:
(defthm moddb-add-module-of-elab-mod$a-fix-elab-mod (equal (moddb-add-module (elab-mod$a-fix elab-mod) moddb) (moddb-add-module elab-mod moddb)))
Theorem:
(defthm moddb-add-module-elab-mod$a-equiv-congruence-on-elab-mod (implies (elab-mod$a-equiv elab-mod elab-mod-equiv) (equal (moddb-add-module elab-mod moddb) (moddb-add-module elab-mod-equiv moddb))) :rule-classes :congruence)
Theorem:
(defthm moddb-add-module-of-moddb-fix-moddb (equal (moddb-add-module elab-mod (moddb-fix moddb)) (moddb-add-module elab-mod moddb)))
Theorem:
(defthm moddb-add-module-moddb-equiv-congruence-on-moddb (implies (moddb-equiv moddb moddb-equiv) (equal (moddb-add-module elab-mod moddb) (moddb-add-module elab-mod moddb-equiv))) :rule-classes :congruence)