let check_equal handle_error =
  let rec check_equal_rec = function
      Not(p) ->
        check_equal_rec p
    | Equal(Base(Var(_)) as t1, t2)
    | Equal(Prime(Var(_)) as t1, t2) ->
        compare_terms handle_error t2 t1
    | Equal(_) ->
        raise Error
    | _ -> ()
  in
  check_equal_rec