Z3JavaAPI中的分区

Z3JavaAPI中的分区,java,z3,division,Java,Z3,Division,我刚刚发现Z3JavaAPI中名为“mkDiv()”的除法是指整数除法,而不是普通除法。例如: ArithExpr a = ctx.mkDiv(ctx.mkInt(3),ctx.mkInt(5)).simplify(); a的结果为“0”,但为“3/5” 在中,除法和整数除法似乎分别是两部分: (断言(=r1(第A4分部));整数除法 (断言(>=b(/c 3.0))) Z3JavaAPI中的划分在哪里?mkDiv将根据其参数做正确的事情。因为您要传递整数,所以它将进行整数除法。要使用实数除法

我刚刚发现Z3JavaAPI中名为“mkDiv()”的除法是指整数除法,而不是普通除法。例如:

ArithExpr a = ctx.mkDiv(ctx.mkInt(3),ctx.mkInt(5)).simplify();
a的结果为“0”,但为“3/5”

在中,除法和整数除法似乎分别是两部分: (断言(=r1(第A4分部));整数除法 (断言(>=b(/c 3.0)))
Z3JavaAPI中的划分在哪里?

mkDiv
将根据其参数做正确的事情。因为您要传递整数,所以它将进行整数除法。要使用实数除法,需要将实数值作为参数传递:

导入com.microsoft.z3.*; 甲级{ 公共静态void main(字符串[]args){ Context ctx=新上下文(); ArithExpr a=ctx.mkDiv(ctx.mkReal(3),ctx.mkReal(5)); System.out.println(a.simplify()); }; }; 这张照片是:

3/5