What is the problem
You’ll be given:
- a bunch of facts
(e.g, A, B, and C) - a set of implication rules
(e.g., R1: if A and B and C, then D) - a goal
(e.g., I)
and asked to prove the goal I.
Below is an example,

Before you begin
- write down every rule, but using logic symbols, and underline the target.
- Add the facts below them.
Strategy
Using Forward Chaining
- choose a rule that its entire L.H.S is present within your facts.
- applying it should add the R.H.S (D) to the facts list, indicate that by writing the newly added fact, followed by the relation that formed it (R1(A, B, C)).
- keep doing steps 1 and 2 with the facts list that keeps growing, until u add the conclusion as a fact, or reach a dead end.
You may also represent this process in the following visual form,
Using Backward Chaining
Observe the L.H.S (F, G, H) of the rule that produces the goal (I), they must all be added to the facts list.
- Write down the event that u currently need to be added to the facts list (I), and add the relation that produces it to the very right of the page.
Indicate that it can not be added unless all its L.H.S events are there first.
(I use a ”?” to do this).
- start by the first L.H.S event (F) and do step 1 for it.
F needs D and E to be in the list…
D needs A, B, and C in the list; they’re all there already.
D then is marked as satisfied and we move on to the next L.H.S of its parent (F), (E).
E needs A. A is in the list, E is marked as satisfied.
Since D and E were both added to the list, F can now be marked as satisfied. - we continue in this fashion, until every L.H.S in the relationship of our goal (I) gets added to the list.
The visual form of this process is the exact horizontal mirror image of the forward one.