role(robot)
base(p)
base(q)
base(r)
base(step(1))
base(step(2))
base(step(3))
base(step(4))
base(step(5))
base(step(6))
base(step(7))
input(robot,a)
input(robot,b)
input(robot,c)
init(step(1))
legal(robot,a)
legal(robot,b)
legal(robot,c)
next(p) :- does(robot,a) & ~true(p)
next(p) :- does(robot,b) & true(q)
next(p) :- does(robot,c) & true(p)
next(q) :- does(robot,a) & true(q)
next(q) :- does(robot,b) & true(p)
next(q) :- does(robot,c) & true(r)
next(r) :- does(robot,a) & true(r)
next(r) :- does(robot,b) & true(r)
next(r) :- does(robot,c) & true(q)
next(step(N)) :- true(step(M)) & successor(M,N)
goal(robot,100) :- true(p) & true(q) & true(r)
goal(robot,0) :- ~true(p)
goal(robot,0) :- ~true(q)
goal(robot,0) :- ~true(r)
terminal :- true(p) & true(q) & true(r)
terminal :- true(step(7))
successor(1,2)
successor(2,3)
successor(3,4)
successor(4,5)
successor(5,6)
successor(6,7)
