An alias for EQUAL. Useful if you want to prove an equality in FGL using a particular strategy.
(top-level-equal x y) → *
Sometimes if you're proving an equivalence of two objects using
FGL/SAT/bitblasting, it's advantageous to use a strategy other than just
checking satisfiability of the negation of the top-level equivalence. For
example, in proving the correctness of SIMD implementations where you're
proving equivalence of two wide integers composed of packed arithmetic results,
you might want to instead prove each of the lanes separately. We can use an
FGL rewrite rule to rewrite the top-lvel
The hint will replace only the
Function:
(defun top-level-equal (x y) (declare (xargs :guard t)) (equal x y))