问题:有两个布尔公式,我们需要说明它们是否具有相同的真值表
例如:(x1 v x2)∧(¬x1 v x3)
和(¬x1 ∧ x2) v (x1 ∧ x3)
对于(x1,x2,x3)的所有组合具有相同的值
我有一些想法:这个问题可能至少与重言式问题一样困难。
可能更容易证明“否”答案的正确性,而不是“是”答案(Co-NP),但我不知道如何证明它。 另外,这里的证书是什么?答案是“是”还是“否”?
有什么想法吗?感谢。
答案 0 :(得分:1)
让我们说A == B
表示A
和B
总是在给定任意(布尔)变量x_i
的赋值的情况下计算相同的布尔表达式。 / p>
布尔表达式等价问题是,A
和B
表示是否A == B
。
给定A
时,布尔重言式问题是,对于所有可能的自由(布尔)变量赋值x_i
,A
的计算结果为真。
A==B
与(A and B) or ((not A) and (not B))
相同。因此,可以将布尔等价问题的实例减少为重言式问题的实例。相反,给定A
,A == T
是将重言式问题简化为布尔表达式等价问题。
所以布尔表达式等价是co-NP,实际上它是co-NP完成的,因为它等同于布尔重言式的共同NP问题。
您要求获得共同等同性问题的证书。这是A != B
的证据。这只是一个自由变量(x_i)
的赋值,这样两个布尔公式可以计算出不同的结果。您可以通过评估两个表达式来检查多项式时间。