下面准备了一个小例子:
(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)))
的含义是什么?错误?
谢谢。
答案 0 :(得分:1)
感谢您指出这一点。 我同意在打印输出中没有参数的“和”看起来很奇怪。 上下文简化器创建一个带有0个参数的连接。 它被打印为简单的“和”。 所以ctx-simplify返回的表达式等价于(not(= x a))。 我将更新ctx-simplify策略以返回没有空连接的表达式。