【发布时间】:2016-05-03 01:00:51
【问题描述】:
我研究了一个 5 值命题逻辑,其中存在五个而不是只有两个真值,我想使用 Z3 来推理这个逻辑。
为简单起见,假设真值是集合{0,...,4} 的元素(这实际上是一种简化,但应该足以说明我的问题),它配备了这些元素的自然顺序。由于此逻辑不再是二元的,因此显然需要对运算符进行不同的定义。运算符示例如下:
a and b = min{a, b}a or b = max{a, b}not a = 4 - a
现在,我想使用 Z3 来推理此逻辑中的(无量词)公式,例如 a or (not b)。但是,我不知道(a)最简单和(b)最有效的方法是教Z3这个。
我想一个直接的解决方案是使用 枚举排序(虽然我还没有设法在没有出错的情况下定义它们)来建模真值和宏来定义运算符。那是要走的路吗?
【问题讨论】: