3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-12 12:08:18 +00:00

add custom coercion for floats. fix #6482

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2022-12-07 09:07:13 -08:00
parent c45c40e782
commit 4a451b10d8

View file

@ -1194,7 +1194,7 @@ def _coerce_expr_merge(s, a):
else: else:
if z3_debug(): if z3_debug():
_z3_assert(s1.ctx == s.ctx, "context mismatch") _z3_assert(s1.ctx == s.ctx, "context mismatch")
_z3_assert(False, "sort mismatch") _z3_assert(False, "sort mismatch")
else: else:
return s return s
@ -1207,6 +1207,11 @@ def _coerce_exprs(a, b, ctx=None):
a = StringVal(a, b.ctx) a = StringVal(a, b.ctx)
if isinstance(b, str) and isinstance(a, SeqRef): if isinstance(b, str) and isinstance(a, SeqRef):
b = StringVal(b, a.ctx) b = StringVal(b, a.ctx)
if isinstance(a, float) and isinstance(b, ArithRef):
a = RealVal(a, b.ctx)
if isinstance(b, float) and isinstance(a, ArithRef):
b = RealVal(b, a.ctx)
s = None s = None
s = _coerce_expr_merge(s, a) s = _coerce_expr_merge(s, a)
s = _coerce_expr_merge(s, b) s = _coerce_expr_merge(s, b)