Equivalence up to tree-fix.
(tree-equiv x y) → *
Function:
(defun tree-equiv$inline (x y) (declare (xargs :guard (and (binary-tree-p x) (binary-tree-p y)))) (declare (xargs :type-prescription (booleanp (tree-equiv x y)))) (equal (tree-fix x) (tree-fix y)))
Theorem:
(defthm tree-equiv-is-an-equivalence (and (booleanp (tree-equiv x y)) (tree-equiv x x) (implies (tree-equiv x y) (tree-equiv y x)) (implies (and (tree-equiv x y) (tree-equiv y z)) (tree-equiv x z))) :rule-classes (:equivalence))