如何更改get-model或get-value输出以打印小数而不是分数

时间:2014-07-10 15:29:54

标签: z3

使用SMTLIB2文件解决时,如果我调用get-model或get-value,则所有内容都将打印为分数。是否有一种简单的方法可以让Z3打印小数值?

例如,(get-value t)可能会输出((t (/ 1.0 2.0))),而我更喜欢((t 0.5))之类的内容。

1 个答案:

答案 0 :(得分:4)

请使用命令

(set-option :pp.decimal true)

请查看以下示例

(declare-const t Real)
(assert (= t (/ 1.0 2.0)))
(check-sat)
(set-option :pp.decimal true)
(get-model)
(get-value (t))

,相应的输出是

sat (model (define-fun t () Real 0.5) )
((t 0.5))