奇怪的输出使用ctx简化策略

时间:2013-04-23 10:52:05

标签: z3

下面准备了一个小例子:

(declare-datatypes () ((Type1 a b c d e g h i f k l m n o p q r s t u v w z)))
(declare-const x Type1)
(declare-const y Type1)
(assert (and (= y x) (or (and (not (= x g)) (not (= x a))) (and (or (not (= x g)) (not (= x q))) (not (= x a))))))
(apply ctx-simplify)

输出结果为:

(goals
(goal
  (= y x)
  (or (not and) (not (= x a)))
  :precision precise :depth 1)
)

(or (not and) (not (= x a)))的含义是什么?错误?

谢谢。

1 个答案:

答案 0 :(得分:1)

感谢您指出这一点。 我同意在打印输出中没有参数的“和”看起来很奇怪。 上下文简化器创建一个带有0个参数的连接。 它被打印为简单的“和”。 所以ctx-simplify返回的表达式等价于(not(= x a))。 我将更新ctx-simplify策略以返回没有空连接的表达式。