
true(G, A)
   :-
   member(A, G).

true(G, t).

true(G, and(A, B))
   :-
   true(G, A),
   true(G, B).

true(G, or(A, B))
   :-
   true(G, A).

true(G, or(A, B))
   :-
   true(G, B).

true(G, imp(A, B))
   :- true([A | G], B).
   

true(G, A)
   :-
   true(G, and(A, B)).

true(G, B)
   :-
   true(G, and(A, B)).

true(G, C)
   :-
   true(G, or(A, B)),
   true([A | G], C),
   true([B | G], C).

true(G, B)
   :-
   true(G, imp(A, B)),
   true(G, A).

true(G, C)
   :-
   true(G, f).
