Representation with Logic


In [50]:
%pdb


Automatic pdb calling has been turned ON

In [51]:
from aima import *

import pprint

sp.init_printing(use_latex='mathjax')


  File "/home/xmn/anaconda3/lib/python3.5/site-packages/aima/utils.py", line 568
    def distance((ax, ay), (bx, by)):
                 ^
SyntaxError: invalid syntax

Propositional Logic


In [47]:
def evaluate(expr: str):
    """
    EVALUATE SATISFIABILITY THE LOGICAL EXPRESSION
    
    """
    r = satisfiable(eval(expr))
    print('\n%s:' % expr)
    print(str(r))

In [45]:
P, Q = symbols('P Q')
FOOD, DRINK, PARTY = symbols('FOOD DRINK PARTY')

evaluate('P | ~P')
evaluate('P & ~P')
evaluate('P | Q | Equivalent(P, Q)')
evaluate('(P >> Q) | (Q >> P)')
evaluate('((FOOD >> PARTY) | (DRINK >> PARTY)) >> ((FOOD & DRINK) >> PARTY)')


P | ~P:
{P: False}

P & ~P:
False

P | Q | Equivalent(P, Q):
{P: True, Q: True}

(P >> Q) | (Q >> P):
{True: True}

((FOOD >> PARTY) | (DRINK >> PARTY)) >> ((FOOD & DRINK) >> PARTY):
{DRINK: False, PARTY: True, FOOD: False}