from utils import *
from logic import *
from notebook import psource
c = PropKB()
c.tell(expr('A & B'))
c.clauses
c.ask_if_true(expr('A <=> B'))
d=PropKB()
d.tell(expr('A <=> B'))
d.clauses
d.ask_if_true(expr('A | B'))
e = PropKB()
e.tell(expr('A <=> B'))
e.clauses
e.ask_if_true(expr('~A | B'))
f = PropKB()
f.tell(expr('(A | B) ==> C'))
f.clauses
f.ask_if_true(expr('(A ==> C) | (B ==> C)'))
g = PropKB()
g.tell(expr('C | (~A & ~B)'))
g.clauses
kb3.clauses
g.ask_if_true(expr('(A ==> C) & (B ==> C)'))
h = PropKB()
h.tell(expr('(A | B) & (~C | ~D | E)'))
h.clauses
h.ask_if_true(expr('A | B'))
i = PropKB()
i.tell(expr('(A | B) & (~C | ~D | E)'))
i.clauses
i.ask_if_true(expr('(A | B) & (~D | E)'))
ukb = PropKB()
ukb.tell(expr('Mythical ==> Immortal'))
ukb.tell(expr('~Mythical ==> (~Immortal & Mammal)'))
ukb.tell(expr('(Immortal | Mammal) ==> Horned'))
ukb.tell(expr('Horned ==> Magical'))
ukb.clauses
ukb.ask_if_true(expr('Mythical'))
ukb.ask_if_true(expr('~Mythical'))
ukb.ask_if_true(expr('Magical'))
ukb.ask_if_true(expr('Horned'))