SMT-Lib 中是否有不等式运算符?

Is there an operator for inequality in SMT-Lib?

我知道我可以用简单的 (not (= a b)) 断言不等式,但我想知道是否有一个运算符可以直接这样做。我已经尝试了所有想到的方法,包括 !=<>\=(这不解析)、/==/=neq 和 none 有效。

是否有专门的功能,或者我是否需要编写相等与否定?

是的。它被称为 distinct,请参阅 https://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2017-07-18.pdf

的第 3.7.1 节

请注意 distinct 可以接受任意数量的参数。例如:

(assert (distinct x y z))

表示:

(assert (and (distinct x y) (distinct x z) (distinct y z)))