代数实数:z3在漂亮打印时会进行舍入吗?

时间:2012-04-24 17:10:21

标签: z3

如果我发出:

(set-option :pp-decimal true)
(set-option :pp-decimal-precision 10)

Z3是否在实数的第10位后进行任何舍入?或者它只是删除剩余的数字而没有任何舍入?

1 个答案:

答案 0 :(得分:1)

在Z3 4.0中,使用单变量多项式alpha和两个二元有理数plower表示代数数upper。二元有理数是a/2^k形式的有理数,其中a是整数,k是自然数。我们alpha是区间p(lower, upper)的唯一根。选项时

  

(set-option:pp-decimal true)

     

(set-option:pp-decimal-precision N)

提供。首先,我将间隔(lower, upper)挤压/细化到upper - lower < 1/10^N。然后,我查看上限(这是一个二元有理数)并通过在第N个数字后斩波以十进制显示它。更确切地说,细化实际执行到upper - lower < 1/16^N

我意识到这不是一个理想的解决方案,但对于大多数用途来说它已经足够了。