【演習問題4:パズル``果物箱'' (TPTP/PUZ012-1)】

true-->box(boxa),box(boxb),box(boxc).
true-->fruit(apples),fruit(bananas),fruit(oranges).
true-->n_equal_boxes(boxa,boxb).
true-->n_equal_boxes(boxb,boxc).
true-->n_equal_boxes(boxa,boxc).
true-->n_equal_fruits(apples,bananas).
true-->n_equal_fruits(bananas,oranges).
true-->n_equal_fruits(apples,oranges).
true-->label(boxa,apples).
true-->label(boxb,oranges).
true-->label(boxc,bananas).
true-->contains(boxb,apples).

fruit(A)-->contains(boxa,A);contains(boxb,A);contains(boxc,A).
box(A)-->contains(A,apples);contains(A,bananas);contains(A,oranges).

n_equal_fruits(A,A)-->false.
n_equal_boxes(A,A)-->false.
label(A,B),contains(A,B)-->false.
contains(A,B),contains(A,C),n_equal_fruits(B,C)-->false.
contains(A,B),contains(C,B),n_equal_boxes(A,C)-->false.
contains(boxa,bananas),contains(boxc,oranges)-->false.