let is_equal s x y =
let (x', _) = v s x in
let (y', _) = v s y in
if Term.eq x' y' then
Three.Yes
else if D.is_diseq s.d x' y' then
Three.No
else
try
let (i, _) = c s x'
and (j, _) = c s y' in
if i = Sign.Zero && j = Sign.Zero then
Three.Yes
else if Sign.disjoint i j then
Three.No
else
Three.X
with
Not_found -> Three.X