Inference is a basic part of human reasoning. For example given that all men are mortal and that Socrates is a man, it is a trivial step to infer that Socrates is mortal. We might express these symbolically:
man(X) => mortal(X). man(socrates).("if X is a man then X is mortal" and "Socrates is a man"). Here, "man", "mortal" and "socrates" are just arbitrary symbols which the computer manipulates without reference to or knowledge of their external meaning. A forward chaining system (a production system) could use these to infer the new fact
mortal(socrates).simply by matching the left-hand-side of the implication against the fact and substituting socrates for the variable X.