Foundation of logic historically dates back to the times of Aristotle, who pioneered the concept of truth/falsehood paradigm in reasoning. Mathematical logic of propositions and predicates, which are based on the classical models of Aristotle, underwent a dramatic evolution during the last 50 years for its increasing applications in automated reasoning on digital computers. The subject of Logic Programming is concerned with automated reasoning with facts and knowledge to answer a user’s query following the syntax and semantics of the logic of propositions/predicates. The credit of automated reasoning by logic programs goes to Professor Robinson for his well-known resolution theorem that provides a general scheme to select two program clauses for deriving an inference. Until now Robinson’s theorem is being used in PROLOG/DATALOG compilers to automatically build a Select Linear Definite (SLD) clause based resolution tree for answering a user’s query. The SLD-tree based scheme for reasoning undoubtedly opened a new era in logic programming for its simplicity in implementation in the compilers. In fact, SLD-tree construction suffices the need for users with a limited set of program clauses. But with increase in the number of program clauses, the execution time of the program also increases linearly by the SLD-tree based approach. An inspection of a large number of logic programs, however, reveals that more than one pair of program clauses can be resolved simultaneously without violating the syntax and the semantics of logic programming. This book employs this principle to speed up the execution time of logic programs.