About
139
Publications
3,138
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,742
Citations
Publications
Publications (139)
Types-and-effects are type systems, which allow one to express general
semantic properties and to statically reason about program's execution. They
have been widely exploited to specify static analyses, for example to track
computational side effects, exceptions and communications in concurrent
programs. In this paper we adopt abstract interpretati...
We first define a new fixpoint semantics which correctly models finite failure and is and-compositional. We then consider
the problem of verification w.r.t.; finite failure and we show how Ferrand’s approach, using both a least fixpoint and greatest
fixpoint semantics, can be adapted to finite failure. The verification method is not effective. Ther...
This paper is an introduction to the problem of defining the semantics of concurrency in logic programming. The standard semantics of logic programming languages is treated in the first two sections. The unique features of logic programming are then discussed on some examples in typical applications areas. The process interpretation of logic progra...
We present a new semantics for a language in the family of concurrent constraint logic languages. The semantics can be based on a notion of clause unfolding, since the language is closed under this transformation. The unfolding semantics is obtained as limit of an infinite unfolding process. Unfolding is also used to define an immediate consequence...
The paper describes SNARK, a new pattern matching language which was specifically designed with the aim of extending programming languages with a new and effective control mechanism (pattern directed procedure call). SNARK features a powerful and extensible pattern language and an efficient pattern retrieval mechanism. SNARK pattern language interp...
Our debugging method applies to positive logic programs, under the leftmost selection rule. All our results can easily be extended to local selection rules [27].
A more interesting extension is related to the overall PROLOG computation rule, including the depth-first search based on the clause ordering. Abstract debugging can be based on a PROLOG v...
The paper is a general overview of our approach to the semantics of logic programs whose aim is finding notions of models which really capture the operational semantics, and are therefore useful for defining program equivalences and for semantics-based program analysis. The approach leads to the introduction of extended interpretations which are mo...
Linear refinement is a technique for systematically constructing more precise abstract domains for program analysis starting from the basic domain which represents just the property of interest. We use here linear refinement to construct a domain for pair-independence and freeness analysis of logic programs which is strictly more precise than Jacob...
In a previous paper [7], we have developed a type abstract interpreter which was shown to be more precise then the classical ML type inference algorithm
in inferring monomorphic types, represented as Herbrand terms with variables à la Hindley. In order to deal with recursive
functions, we introduce a new abstract fixpoint operator which generalizes...
In a previous paper [7], we have developed a type abstract interpreter which was shown to be more precise then the classical ML type inference algorithm in inferring monomorphic types, represented as Herbrand terms with variables a la Hindley. In order to deal with recursive functions, we introduce a new abstract xpoint operator which generalizes t...
This paper describes an experiment in the de nition of tools for type inference and type veri cation of ML-like functional languages, using abstract interpretation techniques. We rst show that by extending the Damas-Milner type inference algorithm, with a (bounded) xpoint computation (as suggested by the abstract interpretation view, i.e. by a slig...
This paper describes an experiment in the definition of tools for type inference and type verification of ML-like functional
languages, using abstract interpretation techniques.We first show that by extending the Damas-Milner type inference algorithm,
with a (bounded) fixpoint computation (as suggested by the abstract interpretation view, i.e. by a...
In this paper we push forward the idea of applying the abstract interpretation concepts to the problem of verification of programs. We consider the theory of abstract verification as proposed in [M. Comini et al., Electron. Notes Theor. Comput. Sci. 30, No. 1, 17 p. (1999; Zbl 0966.68034)] and we show how it is possible to transform static analyzer...
We present simple and powerful generalized algebraic semantics for constraint logic programs that are parameterized with respect to the underlying constraint system. The idea is to abstract away from standard semantic objects by focusing on the general properties of any—possibly nonstandard—semantic definition. In constraint logic programming, this...
The goal of this paper is to construct a semantic basis for the abstract interpretation of Prolog programs. Prolog is a well-known
logic programming language which applies a depth-first search strategy in order to provide a practical approximation of Horn
clause logic. While pure logic programming has clean fixpoint, model-theoretic and operational...
Because of synchronization based on blocking ask, some of the most important techniques for data flow analysis of (sequential) constraint logic programs (clp) are no longer applicable to cc languages. In particular, the generalized approach to the semantics, intended to factorize the (standard) semantics so as to make explicit the domain-dependent...
We define a semantic framework to reason about properties of abstractions of SLD-derivations. The framework allows us to address problems such as the relation between the (top-down) operational semantics and the (bottom-up) denotational semantics, the existence of a denotation for a set of definite clauses and their properties (compositionality w.r...
In this paper we define a new verification method based on an assertion language able to express properties defined by the user through a logic program. We first apply the verification framework defined in [3] to derive sufficient inductive conditions to prove partial correctness. Then we show how the resulting conditions can be proved using progra...
Constraint logic programming (CLP) is a generalization of the pure logic programming paradigm, having similar model-theoretic, fixpoint and operational semantics [9]. Since the basic operational step in program execution is a test for solvability of constraints in a given algebraic structure, CLP has in addition an algebraic semantics. CLP is then...
The talk is an overview of our results on the application of abstract interpretation concepts to various problems related to the verification of logic programs. These include the systematic design of semantics modeling various proof methods and the characterization of assertions as abstract domains.
domains . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.2 Lattices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.3 Specification of analyses . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.4 Semantic correctness . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.5 Solving systems of equations . . . . ....
In the field of logic languages, we try to reconcile the proof theoretic tradition, characterized by the concept of uniform
proof, with the classic approach based on fixpoint semantics. Hence, we propose a treatment of sequent calculi similar in
spirit to the treatment of Horn clauses in logic programming. We have three different semantic styles (o...
We study some properties of SLD-trees related to nite failure. The main results are a theorem stating that the non-ground nite failure set is a correct and fully abstract semantics wrt nite failure and a second theorem stating that the complement of non ground nite failure is andcompositional, i.e. that the nite failure behaviour of conjunctive goa...
We suggest a new formalization of the existential termination problem of logic programs under the PROLOG leftmost selection rule and depth-first computation rule. First of all, we give a characterization of the problem in terms of occurrence sets, by proving that a hprogram; goali existentially terminates if and only if there exists a finite correc...
This paper is an overview of our results on the application of abstract interpretation concepts to the derivation of a verification method for logic programs. These include the systematic design of semantics modeling various proof methods and the characterization of assertions as abstract domains. We first apply the verification framework defined i...
This paper is an overview of our results on the application of abstract interpretation concepts to various problems related to the verification of logic programs. These include the systematic design of semantics modeling various proof methods and the characterization of assertions as abstract domains.
Linear refinement is a technique for systematically constructing abstract domains for program analysis directly from a basic domain representing just the property of interest. This paper uses linear refinement to construct a domain for non pair-sharing and freeness analysis. The resulting domain is strictly more precise than the domain for sharing...
We apply the methodology of domain renement to systematically derive domains for type analysis. Domains are built by iterative application of the Heyting completion operator to a given set of basic types. We give a condition on the type system which assures that two steps of iteration are sucient to reach the xpoint. Moreover, we provide a general...
Linear refinement is a technique for systematically constructing abstract domains for program analysis directly from a basic domain representing just the property of interest. This paper uses linear refinement to construct a domain for non pair-sharing and freeness analysis. The resulting domain is strictly more precise than the domain for sharing...
We show how declarative diagnosis techniques can be extended to cope with verification of operational properties, such as computed and correct answers, and of abstract properties, such as depth(k) answers and groundness dependencies. The extension is achieved by using a simple semantic framework, based on abstract interpretation. The resulting tech...
This paper is an overview of our results on the application of abstract interpretation concepts to various problems related to the verification of logic programs. These include the systematic design of semantics modeling various proof methods and the characterization of assertions as abstract domains. We derive an assertion based verification metho...
We extend the declarative diagnosis methods to the diagnosis w.r.t. computed answers. We show that absence of uncovered atoms implies completeness for a large class of programs. We then define a top-down diagnoser, which uses one oracle only, does not require to determine in advance the symptoms and is driven by a (finite) set of goals. Finally we...
We give an algebraic formalization of SLD-trees and their abstractions (observables) . We can state and prove in the framework several useful theorems (AND-compositionality, correctness and full abstraction of the denotation, equivalent top-down and bottom-up constructions) about semantic properties of various observables. Observables are represent...
We define a semantic framework to reason about compositional properties of SLD-derivations and their abstractions (observables). The framework allows us to address problems such as the relation between the (top-down) operational semantics and the (bottom-up) denotational semantics, the existence of a denotation for a set of definite clauses and the...
In this paper we propose a denotational semantics for Prolog and an approach to the abstract interpretation of Prolog programs; we deal with the control rules of Prolog and the cut operator. Moreover, we get a simple denotation for negation as finite failure. The abstract analysis is proposed both for computed answers analysis and for call patterns...
We show several properties of the abstract interpretation settings regarding relationships between precision of semantic operators and abstract domains composition. Then, we apply these results to the framework for logic programs introduced in [3], extended with the new class of operational observables. We prove that the classes of perfect, denotat...
In this paper we study some first order formulas, called resultants, which can be used to describe in a concise way most of the relevant information associated to SLD-derivations. We first extend to resultants some classical results of logic programming theory. Then we define a fixpoint semantics for Prolog computed resultants, i.e. those formulas...
We first introduce a general semantic scheme for logic programs which provides a uniform framework for defining different compositional semantics parametrically wrt a given notion of observable. The equivalence of the operational (top-down) and fixpoint (bottom-up) costruction of the semantics is ensured by the scheme (provided a congruence propert...
The paper formally shows that the S-semantics is adequate for reasoning about the soundness and completeness of real Prolog metainterpreters, based on the non-ground representation of object-level variables. The paper extends some recent results by De Schreye and Martens, by proving the "equivalence" between the object program and its version metai...
ing Synchronization in Concurrent Constraint Programming ? Enea Zaffanella 1 Roberto Giacobazzi 2 Giorgio Levi 1 1 Dipartimento di Informatica, Universit`a di Pisa Corso Italia 40, 56125 Pisa (zaffanel,levi)@di.unipi.it 2 LIX, Laboratoire d'Informatique, ' Ecole Polytechnique 91128 Palaiseau cedex giaco@lix.polytechnique.fr Abstract. Because of syn...
We define a "logical denotational semantics" for pure PROLOG programs, and prove it correct and complete wrt an operational one. Our semantics is given as an instance of a generalized semantics for CLP and is naturally oriented towards abstract interpretation. The key feature is that prolog control strategy is modeled inside the constraint system,...
INTRODUCTION A semantics is compositional wrt a (syntactic) program composition operator ffi when the semantics of the compound construct C 1 ffi C 2 can be obtained by (semantically) composing the semantics of the constituents C 1 and C 2 . Compositionality is a desirable property since it allows to define in a modular way and incrementally the se...
The paper is a general overview of an approach to the semantics of logic programs whose aim is finding notions of models which really capture the operational semantics, and are therefore useful for defining program equivalences and for semantics-based program analysis. The approach leads to the introduction of extended interpretations which are mor...
In this paper we define a compositional semantics for a generalized composition operator on logic programs. Static and dynamic inheritance as well as composition by union of clauses can all be obtained by specializing the general operator. The semantics is based on the notion of differential programs, logic programs annotated with declarations that...
In this paper we define a new compilative version of constructive negation (intensional negation) in CLP and we prove its (non-ground) correctness and completeness wrt the 3-valued completion. We show that intensional negation is essentially equivalent to constructive negation and that it is indeed more efficient, as one would expect from the fact...
In this paper we define a new compilative version of constructive negation (intensional negation) in CLP and we prove its (non-ground) correctness and completeness wrt the 3-valued completion. We show that intensional negation is essentially equivalent to constructive negation and that it is indeed more efficient, as one would expect from the fact...
We study the application of abstract interpretation to the design of inductive methods for verifying properties of logic programs.
We give a unified view of inductive assertion-based proof methods for logic programs, by systematically deriving them in a
uniform way using Abstract Interpretation. The resulting verification framework allows us to rec...
The purpose of this paper is to make a contribution towards the integration of Object-Orientation and logic programming. We introduce the notion of differential programs, logic programs annotated to make their external interfaces explicit. Similarly to classes in the O-O paradigm, differential programs can be organized in isa hierarchies. The isa-c...
interpretation based on Alexander templates. The Journal of Logic Programming, 15(1 & 2):31--54, January 1993. [14] T. Kanamori and T. Kawamura. Abstract interpretation based on oldt resolution. The Journal of Logic Programming, 15(1 & 2):1--30, January 1993. [15] H.-P. Ko, D. McAllester, and M. E. Nadel. Lower bounds for the lengths of refutations...
We define a new fixpoint semantics for pure PROLOG, which is obtained as an instance of the generalized semantics of CLP and is oriented towards abstract interpretation. The concrete semantics is obtained by attaching to goals and constraints a history component that remembers the sequence of choices made during the derivation, and resorting to the...
We show how declarative diagnosis techniques can be extended to cope with verification of operational properties, such as computed answers, and of abstract properties, such as types and groundness dependencies. The extension is achieved by using a simple semantic framework, based on abstract interpretation. The resulting technique (abstract diagnos...
In this paper we are concerned with an instance of the Constraint Logic Programming (CLP) scheme specialized in solving equations with respect to a Horn equational theory . The intended structure is given by the finest partition induced by on the Herbrand universe over a finite one sorted alphabet. This work deals with the description of an increme...
Debugging of Logic ProgramsMarco Comini, Giorgio LeviDipartimento di Informatica, Universit`a di Pisa,Corso Italia 40, 56125 Pisa, Italyfcomini,levig@di.unipi.itGiuliana VitielloDipartimento di Informatica ed Applicazioni,Universit`a di Salerno,Baronissi (Salerno), Italygiuvit@udsab.dia.unisa.itAbstractAbstract debugging of logic programs is an ext...
The constraint logic programming paradigm CLP(X) (CLP for short) has been proposed by Jaffar and Lassez in order to integrate a generic computational mechanism based on constraints with the logic programming framework. This paradigm retains the semantic properties of logic languages, namely the existence of equivalent operational, model theoretic a...
We consider the Constraint Logic Programming paradigm CLP(X ), as defined by Jaffar and Lassez [29, 28]. CLP(X ) integrates a generic computational mechanism based on constraints within the logic programming framework. The paradigm retains the semantic properties of pure logic programs, namely the existence of equivalent operational, model-theoreti...
We first introduce a general semantic scheme for logic programs which provides a uniform framework for defining different compositional semantics parametrically wrt a given notion of observability. The equivalence of the operational (top-down) and fixpoint (bottom-up) construction of the semantics is ensured by the scheme (provided a congruence pro...
We give an algebraic formalization of SLD-trees and their abstractions (observables). We can state and prove in the framework several useful theorems (lifting, AND-compositionality, correctness and full abstraction of the denotation, equivalent top-down and bottom-up constructions) about semantic properties of various observables. Observables are r...
This paper considers open logic programs originally as a tool to build an OR-compositional semantics of logic programs. We extend the original semantic definitions in the framework of the general approach to the semantics of logic programs described by Gabbrielli and Levi (1991). We first define an operational semantics which models computed answer...
Logic programming has emerged over the last 15 years as one of most promising new programming paradigms and as a very active research area. The PROGLOG experience has shown that relevant problems in areas such as expert systems, deductive databases, knowledge representation, and rapid prototyping can profitably be tackled by logic programming techn...
s are available from the same host in the directory /pub/TR/UBLCS/ABSTRACTS in plain text format. All local authors can be reached via e-mail at the address last-name@cs.unibo.it. UBLCS Technical Report Series 92-1 Mapping Parallel Computations onto Distributed Systems in Paralex, by O. Babao glu, L. Alvisi, A. Amoroso and R. Davoli, January 1992....
The optimized compilation of constraint logic programming (CLP)
languages can give rise to impressive performance improvements in terms
of run time. The authors consider the integration of approximate
inference techniques, well known in the field of artificial intelligence
(AI), with an appropriate framework for the definition of nonstandard
semant...
In this paper we define a new notion or truth on Herbrand interpretations extended with variables which allows us to capture, by means of suitable models, various observable properties, such as the ground success set, the set of atomic consequences, and the computed answer substitutions. The notion of truth extends the classical one to account for...
The theory of abstract interpretation provides a formal framework to develop advanced dataflow analysis tools. The idea is to define a nonstandard semantics which is able to compute, in finite time, an approximated model of the program. In this paper, we define an abstract interpretation framework based on a fixpoint approach to the semantics. This...
The use of standard instances of the CLP framework (e.g. CLP(Bool) and CLP (R)) for non-standard (possibly abstract) interpretations, weakens the distinction between concrete and abstract computations in semantics and analysis. We formalize this idea by applying the well known approximation techniques (e.g. the standard theory of closure operators)...
The evaluation of a goal for a logic program can be viewed as the search for an answer, written in the constraints language, that correctly implies the goal. We propose a small set of inference rules, correct w.r.t. the completion of a program and the Clark equational theory, which is strong enough to compute a complete set of answers for extended...
We show how functional (i.e. equational) and logic programming can be integrated within the Constraint Logic Programming paradigm. The resulting language CLP(H/E) is specialized in solving equations with respect to a Horn equational theory. CLP(H/E) inherits all the semantic properties of the CLP scheme, including a new semantics which models answe...
We analyze programs with negation by transforming them in order to infer constrained atoms which are regarded as basic semantic objects. Two steps are performed. Step I refers to the positive fragment of the program and unfolds all positive literals so that only atoms and conditional atoms remain. Step II refers to the stratified fragment and repla...
The paper is a general overview of our approach to the semantics of logic programs. We introduce new notions and modify the classical semantics, i.e. we use new tools to model those logic programs aspects which really capture their operational semantics, and are therefore useful for defining program equivalences and for semantics-based program anal...
We present a simple and powerful generalized algebraic semantics for constraint logic programs that is parameterized with respect to the underlying constraint system. “Generalized semantics” abstract away from standard semantics objects, by focusing on the general properties of any (possibly nonstandard) semantics definition. In constraint logic pr...
We consider the problem of defining a solved form for ask and tell equalities over the Herbrand universe used as semantic domain of concurrent constraint programs. We give a solved form which is unique up to renaming for equivalent constraints, and we show an algorithm to compute it. The solved form and the related algorithm are extended to reactiv...
Kernel-LEAF is a logic plus functional language based on the flattening technique. It differs from other similar languages because it is able to cope with partial (undefined or non-terminating) functions. This is achieved by introducing the distinction between data structures and (functional) term structures, and by using two kinds of equality. The...
This paper investigates some semantic properties of concurrent logic languages. Concurrent logic languages with a commit operator differ from pure logic languages in the finite failure set. Since the new finite failure set depends on the computation rule, we define an operational semantics based on a parallel computation rule and a fair search rule...
This paper defines a new concurrent logic language, Nested Guarded Horn Clauses (NGHC). The main new feature of the language is its concept of guard. In fact, an NGHC clause has several layers of (standard) guards. This syntactic innovation allows the definition of a complete (i.e. always applicable) set of unfolding rules and therefore of an unfol...
We present a new semantics for a language in the family of concurrent constraint logic languages. The semantics can be based on a notion of clause unfolding, since the language is closed under this transformation. The unfolding semantics is obtained as a limit of an infinite unfolding process. Unfolding is also used to define an immediate consequen...
The paper defines a new declarative semantics for logic programs, which is based on interpretations containing (possibly) non-ground atoms. Two different interpretations are introduced and the corresponding models are defined and compared. The classical results on the Herbrand model semantics of logic programs are shown to hold in the new models to...
The paper defines a new declarative semantics for logic programs, which is based on interpretations containing (possibly) non-ground atoms. Two different interpretations are introduced and the corresponding models are defined and compared. The classical results on the Herbrand model semantics of logic programs are shown to hold in the new models to...
This paper describes a partial evaluation system specifically designed to be used as an automatic compilation tool for metaprograms
in a KBMS (EPSILON) based on Prolog. EPSILON main underlying concepts are the extension of Prolog with theories (“multiple
worlds”) and the use of metaprogramming as the basic technique to define new inference engines...
Logic perpetual processes (logic programs with infinite data structures) have been given several formal (operational and fixpoint) semantics. In this paper, we compare the various semantics and define a formal characterization of a least fixpoint semantics, which is based on a modified version of the logic programs and which is satisfactory for a l...
This paper presents an approach to the integration of two declarative programming styles, namely logic programming, as supported by the Prolog language, and higher-order functional programming, as available in languages like ML, Miranda, and LISP. The integration is obtained by adopting, as a high level intermediate language, a well founded first o...