概要
sympyが、魔法なので、paizaで、やってみた。
練習問題、やってみた。
問題
~((AUB)n(~AU~B)) と等価な集合はどれか。ここで,Uは和集合,nは積集合,~xはxの補集合を表す。
(~AUB)∩(AU~B)
(~AU~B)∩(AUB)
(~A∩B)U(A∩~B)
(~A∩~B)∩(AUB)
from sympy.abc import A, B
from sympy.logic.boolalg import *
import sympy
print (~((A | B) & (~A | ~B)) == (~A | B) & (A | ~B))
print (~((A | B) & (~A | ~B)) == (~A | ~B) & (A | B))
print (~((A | B) & (~A | ~B)) == (~A & B) | (A & ~B))
print (~((A | B) & (~A | ~B)) == (~A & ~B) & (A | B))
結果
おかしい、すべて、FALSE
False
False
False
False
simplify_logicを使う。
from sympy.abc import A, B
from sympy.logic.boolalg import *
import sympy
print (sympy.simplify_logic(Equivalent(Not(And(Or(A, B), Or(~A, ~B))) == (~A | B) & (A | ~B))))
print (sympy.simplify_logic(Equivalent(~((A | B) & (~A | ~B)) == (~A | B) & (A | ~B))))
結果
True
True
以上。