
truth_value(p,1).
truth_value(q,0).





truth_value(neg(A),0) :- truth_value(A,1).
truth_value(neg(A),1) :- truth_value(A,0).

truth_value(and(A,B),0) :- truth_value(A,0).
truth_value(and(A,B),0) :- truth_value(B,0).
truth_value(and(A,B),1) :- truth_value(A,1),truth_value(B,1).

truth_value(or(A,B),X)  :- truth_value(neg(and(neg(A),neg(B))),X).

truth_value(implies(A,B),X)     :- truth_value(or(neg(A),B),X).


