私はSympyとブール式の等価性を決定しようとしてきたが、それは、より複雑な式Pythonで2つのシンボリックブール式が等しいかどうかを判断する方法はありますか?
from sympy.abc import x, y
from sympy.logic.boolalg import *
print(Equivalent(x, x))
print(Equivalent(x, x & True))
print(Equivalent(x | y, y | x))
print(Equivalent(x | (x & y), x | y))
print(Equivalent(~x & ~y, ~(x | y)))
結果の等価性を検出しないようだ。
>>>True
>>>True
>>>True
>>>Equivalent(Or(x, y), Or(And(x, y), x))
>>>Equivalent(Not(Or(x, y)), And(Not(x), Not(y)))
を決定する方法はあります2つのシンボリックブール式がPythonで等しいかどうか
これは一般的に必要以上に多くの作業を行います。あなたは本当に 'Equivalent'の否定が充足可能かどうかを知りたいだけです(' '充足可能な(not(等価(a、b))')。 – asmeurer
@asmeurerこれを示す回答を投稿して、これを振り返ってみてください。x |〜yは意味がありません。 –
@ Wrzlprmftの答えと同じだったので、私は答えを投稿しませんでした。 – asmeurer