Pub Date : 1999-02-01DOI: 10.1016/S0743-1066(98)10021-3
Iliano Cervesato , Angelo Montanari
We propose a general and uniform modal framework for the Event Calculus (EC) and its skeptical and credulous variants. The resulting temporal formalism, called the Generalized Modal Event Calculus (GMEC), extends considerably the expressive power of EC when information about the ordering of events is incomplete. It provides means of inquiring about the evolution of the maximal validity intervals of properties relative to all possible refinements of the ordering data by allowing a free mix of propositional connectives and modal operators. We first give a semantic definition of GMEC and relate it to known systems of modal logic; then, we propose a declarative encoding of GMEC in the language of hereditary Harrop formulas and prove the soundness and completeness of the resulting logic programs.
{"title":"A general modal framework for the event calculus and its skeptical and credulous variants","authors":"Iliano Cervesato , Angelo Montanari","doi":"10.1016/S0743-1066(98)10021-3","DOIUrl":"10.1016/S0743-1066(98)10021-3","url":null,"abstract":"<div><p>We propose a general and uniform modal framework for the Event Calculus (EC) and its skeptical and credulous variants. The resulting temporal formalism, called the Generalized Modal Event Calculus (GMEC), extends considerably the expressive power of EC when information about the ordering of events is incomplete. It provides means of inquiring about the evolution of the maximal validity intervals of properties relative to all possible refinements of the ordering data by allowing a free mix of propositional connectives and modal operators. We first give a semantic definition of GMEC and relate it to known systems of modal logic; then, we propose a declarative encoding of GMEC in the language of hereditary Harrop formulas and prove the soundness and completeness of the resulting logic programs.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"38 2","pages":"Pages 111-164"},"PeriodicalIF":0.0,"publicationDate":"1999-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10021-3","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80337022","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1999-02-01DOI: 10.1016/S0743-1066(98)10025-0
S. Etalle , A. Bossi , N. Cocco
We study the termination properties of well-moded programs, and we show that, under suitable conditions, for these programs there exists an algebraic characterization-in the style of Apt and Pedreschi, Studies in pure prolog: termination, in: J.W. Lloyd (Ed.), Proceedings of the Simposium in Computational Logic, Springer, Berlin, 1990, pp. 150–176-of the property of being terminating. This characterization enjoys the properties of being compositional and, to some extent, of being easy to check.
我们研究了良模规划的终止性质,并且我们证明,在适当的条件下,对于这些规划存在一个代数表征——在Apt和Pedreschi的风格下,在纯序:终止的研究中,见:J.W. Lloyd (Ed.),计算逻辑研讨会论文集,Springer, Berlin, 1990, pp. 150 - 176——是终止的性质。这种特征具有组成性,在某种程度上也易于检验。
{"title":"Termination of well-moded programs","authors":"S. Etalle , A. Bossi , N. Cocco","doi":"10.1016/S0743-1066(98)10025-0","DOIUrl":"10.1016/S0743-1066(98)10025-0","url":null,"abstract":"<div><p>We study the termination properties of <em>well-moded</em> programs, and we show that, under suitable conditions, for these programs there exists an algebraic characterization-in the style of Apt and Pedreschi, Studies in pure prolog: termination, in: J.W. Lloyd (Ed.), Proceedings of the Simposium in Computational Logic, Springer, Berlin, 1990, pp. 150–176-of the property of being terminating. This characterization enjoys the properties of being compositional and, to some extent, of being easy to check.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"38 2","pages":"Pages 243-257"},"PeriodicalIF":0.0,"publicationDate":"1999-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10025-0","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130398016","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1999-01-01DOI: 10.1016/S0743-1066(98)10016-X
Evelina Lamma , Michela Milano , Paola Mello
Constraint Logic Programming solvers on finite domains (CLP(FD) solvers) use constraints to prune those combinations of assignments which cannot appear in any consistent solution. There are applications, such as temporal reasoning or scheduling, requiring some form of qualitative reasoning where constraints can be changed (restricted) during the computation or even chosen when disjunction occurs. We embed in a (CLP(FD) solver the concept of constraints as first class objects. In the extended language, variables range over finite domains of objects (e.g., integers) and relation variables range over finite domains of relation symbols. We define operations and constraints on the two sorts of variables and one constraint linking the two. We first present the extension as a general framework, then we propose two specializations on finite domains of integers and of sets. Programming examples are given, showing the advantages of the extension proposed from both a knowledge representation and an operational viewpoint.
{"title":"Reasoning on constraints in CLP(FD)","authors":"Evelina Lamma , Michela Milano , Paola Mello","doi":"10.1016/S0743-1066(98)10016-X","DOIUrl":"10.1016/S0743-1066(98)10016-X","url":null,"abstract":"<div><p>Constraint Logic Programming solvers on finite domains (CLP(FD) solvers) use constraints to prune those combinations of assignments which cannot appear in any consistent solution. There are applications, such as temporal reasoning or scheduling, requiring some form of qualitative reasoning where constraints can be changed (restricted) during the computation or even chosen when disjunction occurs. We embed in a (CLP(FD) solver the concept of constraints as first class objects. In the extended language, variables range over finite domains of objects (e.g., integers) and <em>relation variables</em> range over finite domains of relation symbols. We define operations and constraints on the two sorts of variables and one constraint linking the two. We first present the extension as a general framework, then we propose two specializations on finite domains of integers and of sets. Programming examples are given, showing the advantages of the extension proposed from both a knowledge representation and an operational viewpoint.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"38 1","pages":"Pages 93-110"},"PeriodicalIF":0.0,"publicationDate":"1999-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10016-X","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125977456","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1999-01-01DOI: 10.1016/S0743-1066(98)80001-0
Peter A Bigot, Saumya Debray
This paper discusses the interaction between tail call optimization and the placement of output values in functional and logic programming languages. Implementations of such languages typically rely on fixed placement policies: most functional language implementations return output values in registers, while most logic programming systems return outputs via memory. Such fixed placement policies incur unnecessary overheads in many commonly encountered situations: the former are unable to implement many intuitively iterative computations in a truly iterative manner, while the latter incur a performance penalty due to additional memory references. We describe an approach that determines, based on a low-level cost model for an implementation together with an estimated execution profile for a program, whether or not the output of a procedure should be returned in regsters or in memory. This can be seen as realizing in a restricted from of inter-procedural register allocation, and avoids the disadvantages associated with the fixed register and fixed memory output placement policies. Experimental results indicate that it provides good performance improvements compared to existing approaches.
{"title":"Return value placement and tail call optimization in high level languages","authors":"Peter A Bigot, Saumya Debray","doi":"10.1016/S0743-1066(98)80001-0","DOIUrl":"10.1016/S0743-1066(98)80001-0","url":null,"abstract":"<div><p>This paper discusses the interaction between tail call optimization and the placement of output values in functional and logic programming languages. Implementations of such languages typically rely on fixed placement policies: most functional language implementations return output values in registers, while most logic programming systems return outputs via memory. Such fixed placement policies incur unnecessary overheads in many commonly encountered situations: the former are unable to implement many intuitively iterative computations in a truly iterative manner, while the latter incur a performance penalty due to additional memory references. We describe an approach that determines, based on a low-level cost model for an implementation together with an estimated execution profile for a program, whether or not the output of a procedure should be returned in regsters or in memory. This can be seen as realizing in a restricted from of inter-procedural register allocation, and avoids the disadvantages associated with the fixed register and fixed memory output placement policies. Experimental results indicate that it provides good performance improvements compared to existing approaches.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"38 1","pages":"Pages 1-29"},"PeriodicalIF":0.0,"publicationDate":"1999-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)80001-0","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126279954","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1999-01-01DOI: 10.1016/S0743-1066(98)10012-2
Bharat Jayaraman, Devashis Jana
The use of sets in declarative programming has been advocated by several authors in the literature. A representation often chosen for finite sets is that of scons, parallel to the list constructor cons. The logical theory for such constructors is usually tacitly assumed to be some formal system of classical set theory. However, classical set theory is formulated for a general setting, dealing with both finite and infinite sets, and not making any assumptions about particular set constructors. In giving logical-consequence semantics for programs with finite sets, it is important to know exactly what connection exists between sets and set constructors. The main contribution of this paper lies in establishing these connections rigorously. We give a formal system, called SetAx, designed around the scons constructor. We distinguish between two kinds of set constructors, scons(x, y) and dscons(x, y), where both represent {x} ∪ y, but xϵy is possible in the former, while x ∉ y holds in the latter. Both constructors find natural uses in specifying sets in logic programs. The design of SetAx is guided by our choice of scons as a primitive symbol of our theory rather than as a defined one, and by the need to deduce non-membership relations between terms, to enable the use of dscons. After giving the axioms SetAx, we justify it as a suitable theory for finite sets in logic programming by (i) showing that the set constructors indeed behave like finite sets; (ii) providing a framework for establishing the correctness of set unification; and (iii) defining a Herbrand structure and providing a basis for discussing logical consequence semantics for logic programs with finite sets. Together, these results provide a rigorous foundation for the set constructors in the context of logical semantics.
{"title":"Set constructors, finite sets, and logical semantics","authors":"Bharat Jayaraman, Devashis Jana","doi":"10.1016/S0743-1066(98)10012-2","DOIUrl":"10.1016/S0743-1066(98)10012-2","url":null,"abstract":"<div><p>The use of sets in declarative programming has been advocated by several authors in the literature. A representation often chosen for finite sets is that of <em>scons</em>, parallel to the list constructor <em>cons</em>. The logical theory for such constructors is usually tacitly assumed to be some formal system of classical set theory. However, classical set theory is formulated for a general setting, dealing with both finite and infinite sets, and not making any assumptions about particular set constructors. In giving logical-consequence semantics for programs with finite sets, it is important to know exactly what connection exists between sets and set constructors. The main contribution of this paper lies in establishing these connections rigorously. We give a formal system, called <em>SetAx</em>, designed around the <em>scons</em> constructor. We distinguish between two kinds of set constructors, <em>scons(x, y)</em> and <em>dscons(x, y)</em>, where both represent {<em>x</em>} ∪ <em>y</em>, but <em>x</em> <em>ϵ</em> <em>y</em> is possible in the former, while <em>x</em> ∉ <em>y</em> holds in the latter. Both constructors find natural uses in specifying sets in logic programs. The design of <em>SetAx</em> is guided by our choice of <em>scons</em> as a primitive symbol of our theory rather than as a defined one, and by the need to deduce non-membership relations between terms, to enable the use of <em>dscons</em>. After giving the axioms <em>SetAx</em>, we justify it as a suitable theory for finite sets in logic programming by (i) showing that the set constructors indeed behave like finite sets; (ii) providing a framework for establishing the correctness of set unification; and (iii) defining a Herbrand structure and providing a basis for discussing logical consequence semantics for logic programs with finite sets. Together, these results provide a rigorous foundation for the set constructors in the context of logical semantics.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"38 1","pages":"Pages 55-77"},"PeriodicalIF":0.0,"publicationDate":"1999-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10012-2","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121253368","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}