let is_included m1 m2 =
let new_ = try
is_included_exn m1 m2; true
with Is_not_included -> false
in
assert
(let n = succ !check_is_included_assert in
check_is_included_assert := n;
n land 63 <> 0 ||
(let mee = meet m1 m2 in
let eq = equal mee m1 in
if (eq <> new_)
then begin
Format.printf "Map_Lattice.is_included is wrong. Args: %a(h=%d) %a(h=%d) resultnew = %b meet = %a(h=%d)@."
pretty m1
(match m1 with Map m -> M.hash_debug m | _ -> 0)
pretty m2
(match m2 with Map m -> M.hash_debug m | _ -> 0)
new_
pretty mee
(match mee with Map m -> M.hash_debug m | _ -> 0);
false
end
else true));
new_