Skip to content

Commit 3e75041

Browse files
committed
Remove assert from normalize_eq_or_ne
1 parent 073e17d commit 3e75041

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

src/smtml/expr.ml

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -305,22 +305,24 @@ let raw_unop ty op hte = make (Unop (ty, op, hte)) [@@inline]
305305

306306
let normalize_eq_or_ne op (ty', e1, e2) =
307307
let make_relop lhs rhs = Relop (ty', op, lhs, rhs) in
308-
let ty, ty2 = (ty e1, ty e2) in
309-
assert (Ty.equal ty ty2);
310-
match ty with
311-
| Ty_bitv m ->
312-
let binop = make (Binop (ty, Sub, e1, e2)) in
313-
let zero = make (Val (Bitv (Bitvector.make Z.zero m))) in
314-
make_relop binop zero
315-
| Ty_int ->
316-
let binop = make (Binop (ty, Sub, e1, e2)) in
317-
let zero = make (Val (Int Int.zero)) in
318-
make_relop binop zero
319-
| Ty_real ->
320-
let binop = make (Binop (ty, Sub, e1, e2)) in
321-
let zero = make (Val (Real 0.)) in
322-
make_relop binop zero
323-
| _ -> make_relop e1 e2
308+
let ty1, ty2 = (ty e1, ty e2) in
309+
if not (Ty.equal ty1 ty2) then make_relop e1 e2
310+
else begin
311+
match ty1 with
312+
| Ty_bitv m ->
313+
let binop = make (Binop (ty1, Sub, e1, e2)) in
314+
let zero = make (Val (Bitv (Bitvector.make Z.zero m))) in
315+
make_relop binop zero
316+
| Ty_int ->
317+
let binop = make (Binop (ty1, Sub, e1, e2)) in
318+
let zero = make (Val (Int Int.zero)) in
319+
make_relop binop zero
320+
| Ty_real ->
321+
let binop = make (Binop (ty1, Sub, e1, e2)) in
322+
let zero = make (Val (Real 0.)) in
323+
make_relop binop zero
324+
| _ -> make_relop e1 e2
325+
end
324326

325327
let negate_relop (hte : t) : t =
326328
let e =

0 commit comments

Comments
 (0)