text: Deductive reasoning in logic is the process of proving a new 
  statement (conclusion) from other statements that are given and assumed to be true (the premises).[81] 
  Proofs can be structured as proof trees, in which nodes are labelled by sentences, and children nodes are 
  connected to parent nodes by inference rules. 
  
  Given a problem and a set of premises, problem-solving reduces to searching for a proof tree whose root 
  node is labelled by a solution of the problem and whose leaf nodes are labelled by premises or axioms. In 
  the case of Horn clauses, problem-solving search can be performed by reasoning forwards from the 
  premises or backwards from the problem.[82] In the more general case of the clausal form of first-order 
  logic, resolution is a single, axiom-free rule of inference, in which a problem is solved by proving a 
  contradiction from premises that include the negation of the problem to be solved.[83] 
  
  Inference in both Horn clause logic and first-order logic is undecidable, and therefore intractable. 
  However, backward reasoning with Horn clauses, which underpins computation in the logic 
  programming language Prolog, is Turing complete. Moreover, its efficiency is competitive with 
  computation in other symbolic programming languages.[84] 