Declarative Rule-Based Constraint Programming

The focus of this research is on the area of declarative rulebased constraint programming, in particular on answer set programming. Answer set programming (ASP) is an approach to rule-based constraint programming that has received increasing attention over the last few years. Rulebased programming seems like a natural way to represent specifications for several problems. The aim is to develop automated tools that enable solving hard mathematical and engineering problems declaratively. On a general level the goal is to obtain a deeper understanding of program development in ASP. In particular, the idea is to develop answer set programming into a more module-oriented direction in which ASP programs would consist of modules that are combined through suitable interfaces. 1. BACKGROUND AND MOTIVATION Answer set programming [16, 17] is an approach to declarative rule-based constraint programming that has received increasing attention over the last few years. In answer set programming (ASP) the problem at hand is solved declaratively by writing a logic program whose answer sets correspond to the solutions of the problem, and computing the answer sets of the program using a special purpose search engine. The growing interest towards ASP is mostly due to efficient search engines such as dlv [12], smodels [20], and GnT [8] available today. Consequently, a variety of interesting applications of ASP has emerged. Currently ASP has applications in many areas, e.g., planning [17], product configuration [21], computer aided verification [5], wire routing in VLSI design [2] and logical cryptanalysis [6], just to mention few. The standard syntax of logic programs is that of normal logic programs [15] with Clark’s negation as failure in the bodies of rules. There are many generalizations to the basic syntax, e.g., disjunctive rules [7], and weight rules [20]. The semantics of the resulting classes of logic programs is determined by generalizations of the stable model semantics [3] that has settled as a leading semantics in ASP. Despite the declarative nature of ASP, the development of programs resembles that of programs in conventional programming. That is, a programmer often develops a series of programs for a particular problem, e.g., when optimizing the execution time and space. As a consequence, there is a need to ensure that subsequent programs which differ in performance yield the same output. This gives rise to the question in what circumstances different formulations are to be considered equivalent. In [9], we develop a method for verifying the equivalence of weight constraint programs supported by the smodels system [20]. In [19, 18] we extend the same approach to a more general class of disjunctive logic programs. Our tools [11] enable automated verification of equivalence of these rather general classes of logic programs. There are also other notions of equivalence proposed, e.g., strong equivalence by Lifschitz et al. [14] and uniform equivalence by Eiter and Fink [1]. However, none of the current notions of equivalence has all properties desirable, so more work on the subject is still needed. The aim of this research on a general level is to obtain a deeper understanding of program development in ASP, in particular to develop answer set programming into a more module-oriented direction in which ASP programs would consist of modules that are combined through suitable interfaces. Program optimization would thus involve optimization at the module level and therefore, for example, the concept of equivalence of logic programs should also be brought to the module level. Module-based logic programming would also enable the use of programs consisting of modules using different semantics. Such programs could be handled if suitable translations between different semantics were defined.