val(a,true). val(b,false). val(c,true). val(d,true). and(a,b,e). and(c,d,f). not(A,B),val(A,true) :> val(B,false). not(A,B),val(A,false) :> val(B,true). not(e,g). not(f,h). or(A,B,L),val(A,true),val(B,true) :> val(L,true). or(A,B,L),val(A,false),val(B,true) :> val(L,true). or(A,B,L),val(A,true),val(B,false) :> val(L,true). or(A,B,L),val(A,false),val(B,false) :> val(L,false). and(A,B,L),val(A,true),val(B,true) :> val(L,true). and(A,B,L),val(A,false),val(B,true) :> val(L,false). and(A,B,L),val(A,true),val(B,false) :> val(L,false). and(A,B,L),val(A,false),val(B,false) :> val(L,false). or(g,h,i). or(a,b,j). and(e,f,k).