Equivalence relation for combinational-type keywords.
(ctype-equiv x y) → bool
Function:
(defun ctype-equiv (x y) (declare (xargs :guard t)) (let ((__function__ 'ctype-equiv)) (declare (ignorable __function__)) (equal (ctype-fix x) (ctype-fix y))))
Theorem:
(defthm ctype-equiv-is-an-equivalence (and (booleanp (ctype-equiv x y)) (ctype-equiv x x) (implies (ctype-equiv x y) (ctype-equiv y x)) (implies (and (ctype-equiv x y) (ctype-equiv y z)) (ctype-equiv x z))) :rule-classes (:equivalence))
Theorem:
(defthm ctype-equiv-implies-equal-ctype-fix-1 (implies (ctype-equiv x x-equiv) (equal (ctype-fix x) (ctype-fix x-equiv))) :rule-classes (:congruence))
Theorem:
(defthm ctype-fix-under-ctype-equiv (ctype-equiv (ctype-fix x) x))