Variable renaming relation over computation states.
The underlying local states must be related.
Function:
(defun cstate-renamevarp (old new ren) (declare (xargs :guard (and (cstatep old) (cstatep new) (renamingp ren)))) (let ((__function__ 'cstate-renamevarp)) (declare (ignorable __function__)) (lstate-renamevarp (cstate->local old) (cstate->local new) ren)))
Theorem:
(defthm booleanp-of-cstate-renamevarp (b* ((yes/no (cstate-renamevarp old new ren))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm cstate-renamevarp-of-nil (cstate-renamevarp (change-cstate old-cstate :local nil) (change-cstate new-cstate :local nil) (renaming nil)))
Theorem:
(defthm cstate-renamevarp-of-cstate-fix-old (equal (cstate-renamevarp (cstate-fix old) new ren) (cstate-renamevarp old new ren)))
Theorem:
(defthm cstate-renamevarp-cstate-equiv-congruence-on-old (implies (cstate-equiv old old-equiv) (equal (cstate-renamevarp old new ren) (cstate-renamevarp old-equiv new ren))) :rule-classes :congruence)
Theorem:
(defthm cstate-renamevarp-of-cstate-fix-new (equal (cstate-renamevarp old (cstate-fix new) ren) (cstate-renamevarp old new ren)))
Theorem:
(defthm cstate-renamevarp-cstate-equiv-congruence-on-new (implies (cstate-equiv new new-equiv) (equal (cstate-renamevarp old new ren) (cstate-renamevarp old new-equiv ren))) :rule-classes :congruence)
Theorem:
(defthm cstate-renamevarp-of-renaming-fix-ren (equal (cstate-renamevarp old new (renaming-fix ren)) (cstate-renamevarp old new ren)))
Theorem:
(defthm cstate-renamevarp-renaming-equiv-congruence-on-ren (implies (renaming-equiv ren ren-equiv) (equal (cstate-renamevarp old new ren) (cstate-renamevarp old new ren-equiv))) :rule-classes :congruence)