1:- include('../ec_test_incl').    2
    3/*
    4
    5%   Formulae for the shopping example from Russell and Norvig
    6
    7*/
    8
    9%   Here's a test query.
   10
   11   do_test(shopping1) :- abdemo_special(easy,[holds_at(have(drill),t), holds_at(have(milk),t),
   12        holds_at(have(banana),t), holds_at(at(home),t)],R).
   13
   14%   Here's a simpler one.
   15
   16   do_test(shopping2) :- abdemo_special(easy,[holds_at(have(drill),t), holds_at(have(milk),t)],R).
   17
   18
   19
   20axiom(initiates(go(X),at(X),T),[]).
   21
   22axiom(terminates(go(X),at(Y),T),[diff(X,Y)]).
   23
   24axiom(initiates(buy(X),have(X),T),[sells(Y,X), holds_at(at(Y),T)]).
   25
   26axiom(sells(hws,drill),[]).
   27
   28axiom(sells(sm,milk),[]).
   29
   30axiom(sells(sm,banana),[]).
   31
   32
   33
   34/* Abduction policy */
   35
   36abducible(dummy).
   37
   38executable(go(X)).
   39
   40executable(buy(X))