Basic equivalence relation for acid4 structures.
Function:
(defun syndef::|acid4-EQUIV$INLINE| (acl2::x acl2::y) (declare (xargs :guard (and (syndef::|acid4-P| acl2::x) (syndef::|acid4-P| acl2::y)))) (equal (syndef::|acid4-FIX| acl2::x) (syndef::|acid4-FIX| acl2::y)))
Theorem:
(defthm syndef::|acid4-EQUIV-IS-AN-EQUIVALENCE| (and (booleanp (syndef::|acid4-EQUIV| syndef::x syndef::y)) (syndef::|acid4-EQUIV| syndef::x syndef::x) (implies (syndef::|acid4-EQUIV| syndef::x syndef::y) (syndef::|acid4-EQUIV| syndef::y syndef::x)) (implies (and (syndef::|acid4-EQUIV| syndef::x syndef::y) (syndef::|acid4-EQUIV| syndef::y syndef::z)) (syndef::|acid4-EQUIV| syndef::x syndef::z))) :rule-classes (:equivalence))
Theorem:
(defthm syndef::|acid4-EQUIV-IMPLIES-EQUAL-acid4-FIX-1| (implies (syndef::|acid4-EQUIV| acl2::x syndef::x-equiv) (equal (syndef::|acid4-FIX| acl2::x) (syndef::|acid4-FIX| syndef::x-equiv))) :rule-classes (:congruence))
Theorem:
(defthm syndef::|acid4-FIX-UNDER-acid4-EQUIV| (syndef::|acid4-EQUIV| (syndef::|acid4-FIX| acl2::x) acl2::x) :rule-classes (:rewrite :rewrite-quoted-constant))
Theorem:
(defthm syndef::|EQUAL-OF-acid4-FIX-1-FORWARD-TO-acid4-EQUIV| (implies (equal (syndef::|acid4-FIX| acl2::x) acl2::y) (syndef::|acid4-EQUIV| acl2::x acl2::y)) :rule-classes :forward-chaining)
Theorem:
(defthm syndef::|EQUAL-OF-acid4-FIX-2-FORWARD-TO-acid4-EQUIV| (implies (equal acl2::x (syndef::|acid4-FIX| acl2::y)) (syndef::|acid4-EQUIV| acl2::x acl2::y)) :rule-classes :forward-chaining)
Theorem:
(defthm syndef::|acid4-EQUIV-OF-acid4-FIX-1-FORWARD| (implies (syndef::|acid4-EQUIV| (syndef::|acid4-FIX| acl2::x) acl2::y) (syndef::|acid4-EQUIV| acl2::x acl2::y)) :rule-classes :forward-chaining)
Theorem:
(defthm syndef::|acid4-EQUIV-OF-acid4-FIX-2-FORWARD| (implies (syndef::|acid4-EQUIV| acl2::x (syndef::|acid4-FIX| acl2::y)) (syndef::|acid4-EQUIV| acl2::x acl2::y)) :rule-classes :forward-chaining)