symbolic inference

The derivation of new facts from known facts and inference rules. This is one of the fundamental operations of artificial intelligence and logic programming languages like Prolog.

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.