%%H Ueda <- Very good, especially 16(1) and 18(2) %%H Please check this program through an experiment. :-unknown(P,fail). %23 is_concluded(contract(A,B,C),T):- become_effective(acceptance(B,A,offer(A,B,C)),T). %15(1) become_effective(offer(A,B,C),T1):- reach(offer(A,B,C),B,T1), \+(become_effective(withdrawl(A,B,offer(A,B,C)),B,T2)). %15(2) become_effective(withdrawl(A,B,offer(A,B,C)),B,T2):- reach(withdrawl(A,B,offer(A,B,C)),B,T2), \+((reach(offer(A,B,C),B,T1),T1@