Z3 使用ctx简化策略的奇怪输出
下面是一个小例子:Z3 使用ctx简化策略的奇怪输出,z3,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)))))
(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)
)
(或(非和)(非(=xa))是什么意思?臭虫
谢谢。谢谢你指出这一点。
我同意打印输出中的“and”不带参数看起来很奇怪。
上下文简化器创建一个带有0个参数的连接。
它被打印为简单的“和”。
因此,ctx simplify返回的表达式等价于(而不是(=xa))。
我将更新ctx simplify策略,以返回不带空连词的表达式