Elimination of Local Variables from Definite Logic Programs

  • Authors:
  • Javier Álvez;Paqui Lucio

  • Affiliations:
  • Departamento de Lenguajes y Sistemas Informáticos, Universidad del País Vasco, San Sebastián, Spain;Departamento de Lenguajes y Sistemas Informáticos, Universidad del País Vasco, San Sebastián, Spain

  • Venue:
  • Electronic Notes in Theoretical Computer Science (ENTCS)
  • Year:
  • 2005

Quantified Score

Hi-index 0.01

Visualization

Abstract

In logic programming, a variable is said to be local if it occurs in a clause body but not in its head atom. It is well-known that local variables are the main cause of inefficiency (sometimes even incompleteness) in negative goal computation. The problem is twofold. First, the negation of a clause body that contains a local variables is not expressible without universal quantification, whereas the abscence of local variables guarantees that universal quantification can be avoided to compute negation. Second, computation of universal quantification is an intrinsically difficult task. In this paper, we introduce an effective method that takes a definite logic program and transforms it into a local variable free (definite) program. Source and target programs are equivalent w.r.t. three-valued logical consequences of program completion. In further work, we plan to extend our results to normal logic programs.