Function:
(defun svtv-mod-alias-guard (modidx moddb aliases) (declare (xargs :stobjs (moddb aliases))) (declare (xargs :guard (and (natp modidx) (moddb-ok moddb)))) (let ((__function__ 'svtv-mod-alias-guard)) (declare (ignorable __function__)) (flet ((fn (modidx moddb aliases) (and (< (lnfix modidx) (lnfix (moddb->nmods moddb))) (<= (stobj-let ((elab-mod (moddb->modsi modidx moddb))) (nwires) (elab-mod->totalwires elab-mod) nwires) (aliass-length aliases))))) (mbe :logic (non-exec (let ((moddb (moddb-fix moddb))) (fn modidx moddb aliases))) :exec (fn modidx moddb aliases)))))
Theorem:
(defthm svtv-mod-alias-guard-of-nfix-modidx (equal (svtv-mod-alias-guard (nfix modidx) moddb aliases) (svtv-mod-alias-guard modidx moddb aliases)))
Theorem:
(defthm svtv-mod-alias-guard-nat-equiv-congruence-on-modidx (implies (nat-equiv modidx modidx-equiv) (equal (svtv-mod-alias-guard modidx moddb aliases) (svtv-mod-alias-guard modidx-equiv moddb aliases))) :rule-classes :congruence)
Theorem:
(defthm svtv-mod-alias-guard-of-moddb-fix-moddb (equal (svtv-mod-alias-guard modidx (moddb-fix moddb) aliases) (svtv-mod-alias-guard modidx moddb aliases)))
Theorem:
(defthm svtv-mod-alias-guard-moddb-equiv-congruence-on-moddb (implies (moddb-equiv moddb moddb-equiv) (equal (svtv-mod-alias-guard modidx moddb aliases) (svtv-mod-alias-guard modidx moddb-equiv aliases))) :rule-classes :congruence)
Theorem:
(defthm svtv-mod-alias-guard-of-lhslist-fix-aliases (equal (svtv-mod-alias-guard modidx moddb (lhslist-fix aliases)) (svtv-mod-alias-guard modidx moddb aliases)))
Theorem:
(defthm svtv-mod-alias-guard-lhslist-equiv-congruence-on-aliases (implies (lhslist-equiv aliases aliases-equiv) (equal (svtv-mod-alias-guard modidx moddb aliases) (svtv-mod-alias-guard modidx moddb aliases-equiv))) :rule-classes :congruence)