A Transformational Semantics of Static Embedded Implications of Normal Logic Programs
There are mainly two approaches for structuring logic programs. The first one is based on defining some notion of program unit or module and on providing a number of composition operators. The second approach consists in enriching logic programming with a mechanism of abstraction and scoping rules that are frequently found, for instance, in procedural programming. More precisely, this approach has been advocated by Miller and others using implications embedded in the goals of the given program as a structuring mechanism. However, as Giordano, Martelli and Rossi pointed out, we can associate two different visibility rules (static and dynamic) to this kind of structuring mechanism where, obviously, the semantics of the given program depends on the chosen rule.
In this paper we consider normal constraint logic programs (with constructive negation á la Drabent as operational semantics) extended with embedded implications with a static visibility rule. This class of programs combines the expressive power of normal programs with the capability to organize and to enhance dinamically their sets of clauses. In particular, first, we introduce an operational semantics based on constructive negation for this class of programs, taking into account the static visibility rule. Then, we present an alternative semantics in terms of a transformation of the given structured program into a flat one. Finally, we prove the adequacy of this transformation by showing that it preserves the computed answers of the given program. Obviously, this transformation semantics can be used as the basis for an implementation of this structuring mechanism.
KeywordsLogic Program Composition Operator Logic Programming Operational Semantic Intuitionistic Logic
Unable to display preview. Download preview PDF.
- 1.Arruabarrena, R., Navarro, M.: On extended logic language supporting program structuring. In: Proc. of the Joint Conference on Declarative Programming, APPIA-GULP-PRODE 1996, pp. 191–203 (1996)Google Scholar
- 4.Bonner, A.J., McCarty, L.T.: Adding negation-as-failure to intuitionistic logic programming. In: Proc. of the North American Conference on Logic Programming, NACLP 1990, pp. 681–703 (1990)Google Scholar
- 16.Monteiro, L., Porto, A.: A language for contextual logic programming. In: Logic Programming Languages: constraints, functions and objects, pp. 115–147. MIT Press, Cambridge (1993)Google Scholar
- 17.Nadathur, G., Miller, D.: Higher–order logic programming. In: Handbook of Logic in Artificial Intelligence and Logic Programming, vol. 5, pp. 499–590. Clarendon Press (1998)Google Scholar
- 18.Navarro, M.: From modular Horn programs to flat ones: a formal proof for the propositional case. In: Proc. of the Second International Symposium on Innovation in Information and Communication Technology, ISIICT (2004) Technical Report UPV-EHU/ LSI/ TR 01-2004. (2004), http://www.sc.ehu.es/marisa