nIdea: work backwards from the query q:
nto prove q by BC,
ncheck if q is known
already, or
nprove by BC all premises of some rule
concluding q
n
nAvoid loops: check if new
subgoal is already on the goal stack
n
nAvoid repeated work: check if new
subgoal
1.has already been proved true, or
2.has already failed