<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Una fruttuosa esperienza in Logica Computazionale A valuable experience in Computational Logic</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Annalisa Bossi</string-name>
          <email>bossi@dsi.unive.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nicoletta Cocco</string-name>
          <email>cocco@dsi.unive.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Informatica, Universita` Ca' Foscari di Venezia</institution>
          ,
          <addr-line>via Torino 155, 30172, Venezia</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <fpage>65</fpage>
      <lpage>69</lpage>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Illustriamo qui brevemente la nostra esperienza nel campo
della verifica e delle trasformazioni dei programmi logici.
Pur occupandoci ora di tematiche completamente diverse,
verifica di proprieta` di sicurezza da un lato e analisi di
sistemi biologici dall’altro, continuiamo ad utilizzare
proficuamente la nostra precedente esperienza.
In this paper, we briefly describe our esperience in the field
of verification and transformation of logic programming.
Though now we are working in a completely different field,
verification of security properties on one hand and
biosystems analysis on the other, our previous experience
continues to be a valuable guide.</p>
      <p>Keywords: logic programming, termination verification,
program transformation
1</p>
    </sec>
    <sec id="sec-2">
      <title>Introduction</title>
      <p>It is very pleasant to remember the time we spent in
working on Logic Programming. The friendship and warmth
of the people we met, the enthusiasm and interest in
research, the curiosity and joy of young researchers, have
been strong reasons for working in this field and to be
happy with it.</p>
      <p>Our main interest, since the beginning, was analysis and
verification of logic programs and program transformation.
After more than fifteen years of happy and satisfactory
research, we felt the need to enlarge our research field and
we tried to export our expertise in Computational Logic to
different research topics.</p>
      <p>In the following section we briefly resume our main
results in the field of logic programming and then we give a
brief account of our present research interests.</p>
    </sec>
    <sec id="sec-3">
      <title>Our contribution to Logic Programming</title>
      <p>Programming methodology imposes to focus first on the
correctness of a program and only later on its efficiency.
This is necessary also in logic programming and it requires
both program verification and program optimization tools.
Our research in LP has been motivated by these needs,
dealing mainly with transformation systems and with
analysis techniques.</p>
      <p>Analysis techniques.</p>
      <p>
        Logic programs are declarative in essence, and this is a
great advantage for programs prototyping and
development. Nevertheless, there are properties which are not
directly expressed by the program itself and have to be
proved. We proposed a technique for verifying
correctness and completeness of a logic program with respect to
a Pre/Post declarative specification of data properties [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
This can be used to guarantee both the correspondence of
the program to its intended meaning and the
applicability of program transformations. We considered also the
operational property on having successes, or finite
failures, which is relevant for query correctness and efficiency
[
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ]. Besides, the property of not having finite failures
can be used to simplify applicability conditions of program
transformation operations.
      </p>
      <p>Techniques for verifying termination.</p>
      <p>Termination is an essential property of programs. We
considered the problem of verifying universal termination of
logic programs. This is a rather strong requirement for a
query, namely to have only finite LD-derivations1. All the
methods to solve this problem, if effective, can only
provide sufficient criteria for termination. In our works we
developed various methods for the analysis of universal
termination by considering different classes of programs
which can be verified.</p>
      <p>
        We introduced a class of functions to weight the terms
occurring in a program (semilinear norms) [
        <xref ref-type="bibr" rid="ref16 ref18">16, 18</xref>
        ]. The
norms in this class provide a syntactical characterization
1SLD-derivations build with the leftmost selection rule.
of rigid terms, i.e. terms whose weight does not change
under substitution. The notion of rigid term generalizes
the notion of ground term. We defined a proof method for
universal termination, based on Pre/Post conditions which
deal with the rigidity of terms and can be derived by the
mode and type properties of atoms. In [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] we
generalized our previous work by considering also terms with a
specified structure by means of typed norms. Besides, we
studied how mode and type information can be used for
characterizing termination properties. We defined the class
of well-moded programs [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], namely programs which
are inductively ”well-formed” with respect to a specified
input-output functionality. This allowed us to define and
characterize well-terminating programs, namely programs
for which all well-moded queries have only finite
LDderivations. We proposed also a termination property for
general logic programs (programs with negation) [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. A
general program is typed-terminating if it terminates for
any well-typed query. These definitions lead to sufficient
conditions for termination which are compositional and
simple to verify.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] we completed our work on the verification of
termination properties, by proposing a modular proof
technique applicable to hierarchical general programs.
Besides, by using mode or type information, it is possible to
verify termination incrementally.
      </p>
      <p>Trasformations on logic and Prolog programs.
Program transformations are applied both in program
synthesis and in program optimization. For logic programs
the “logic” component makes transformations very natural
and easy to be studied formally. But, when we move to
Prolog programs, non-declarative properties, like
termination, cannot be ignored.</p>
      <p>
        At first we focused on program specialization, which
consists in restricting the applicability of the original
program while optimizing it: the specialized program deals
with fewer cases but in a more efficient way. Some parts
of the computation become redundant, other parts can be
pre-computed (partial evaluation). Specialization seems to
fit very well logic programs in order to pass from a
relational definition to some specific functionalities. We
proposed a methodology for specializing a logic program [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
and studied a set of basic transformation operations which
allow one (i) to associate a new application domain to the
query by means of constraints, and (ii) to propagate them
through the program for optimizing it. The set of basic
operations includes:
      </p>
      <p>- new definition, it defines a new predicate in terms of
other predicates already available in the program;
- unfold, it substitutes an atom in a clause body with all
its definitions;</p>
      <p>- fold, it substitutes a set of atoms in a clause body with
an equivalent atom;
- prune, it removes a redundant clause from the program;
- thin, it removes a redundant literal from a clause body;
- fatten, it adds further literals in a clause body whenever
this allows for simplifications;</p>
      <p>- replace, it substitutes a set of literals in a clause body
for another set of literals; it is a generalization of the thin
and fatten operations.</p>
      <p>
        Each operation must produce a program which is
equivalent to the original one, but more efficient. Program
equivalence depends on the semantics we consider. Hence,
we studied these transformation operations with respect to
different program semantics. Our effort has been to
determine sufficient conditions, simple to verify, for the
various operations and semantics. We considered the classic
semantics given by the minimal Herbrand model [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and
the semantics given by computed answers substitutions [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
Moreover, in [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ] we considered general programs (with
negation) and some semantics for them, such as Fitting’s
semantics, Kunen’s semantics, and the Well-founded
semantics.
      </p>
      <p>
        Besides basic transformation operations, we defined
simultaneous replacement and we studies it with respect to
the three-valued completion of a logic program [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>Any transformation system is a source-to-source
rewriting methodology devised to improve the efficiency of a
program. Any such transformation should preserve the
main properties of the initial program. The
transformation operations defined for logic programs do not consider
operational properties, among them, termination. These
properties become relevant for Prolog programs. To deal
with that we followed two approaches.</p>
      <p>
        On one hand, we considered acyclic programs, namely
programs which terminate for each ground query and any
selection rule, and acceptable programs, namely programs
which terminate for each ground query and leftmost
selection rule. For both of them we identified the subclasses of
programs closed under unfold and fold operations [
        <xref ref-type="bibr" rid="ref11 ref20">20, 11</xref>
        ].
      </p>
      <p>
        In order to be applicable most of the transformations
require to reorder the atoms in clause bodies, then in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] we
extended the previous work by considering also a switch
operation which allows one to reorder consecutive atoms.
      </p>
      <p>
        On the other hand, in [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ] we followed a more
operational approach and we defined a non-increasing property
for a transformation. It is a very strong property which
guarantees that the transformation is both preserving
universal termination and optimizing, since it cannot increase
the depth of the derivation tree associated to a query.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] we considered and analyzed the main systems for
transforming logic and Prolog programs. In particular we
discuss if they preserve non-declarative properties of the
original program and specifically termination properties.
Semantics for logic programs.
      </p>
      <p>
        Our work on the semantics of logic programming is ruled
by the convincement that a semantics should help in
understanding the meaning of programs by providing
useful notions of observable program equivalences. The
ssemantic approach (see [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]) provides a methodology to
define semantics which enjoy this property. Each
semantics in the approach captures some observable properties
of logic programs and allows us to detect when two
programs are undistinguishable by observing their behaviors,
thus providing a suitable base for program analysis and
transformation. Following this approach, we defined the
Ω- semantics, a compositional semantics for positive logic
programs. It provides a refined notion of observational
equivalence which takes into account both computed
answers and program composition by union of clauses [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
      </p>
      <p>
        Most logic programming languages offer some kind
of dynamic scheduling to increase the expressive power
and to control execution. But the presence of dynamic
scheduling makes more complex the programs behaviour
and more difficult the description of the semantics. Input
consuming derivations have been introduced and studied
in [
        <xref ref-type="bibr" rid="ref21 ref22 ref23">21, 22, 23</xref>
        ] to describe dynamic scheduling while
abstracting from the technical details. In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] we reviewed
and compared the different proposals given for dynamic
scheduling and in particular for the denotational semantics
of programs with input consuming derivations. We also
show how they can be applied to termination analysis.
3
      </p>
    </sec>
    <sec id="sec-4">
      <title>Present Research</title>
      <p>Verification of security properties.</p>
      <p>In the recent years, security has gained more and more
importance. In this field, our research focus on information
flow properties, i.e., security properties that allow one to
express constraints on how information should flow among
different groups of entities. An interesting feature of these
kind of properties, is that they protect the system even
against internal attacks performed by, e.g., viruses or
Trojan horses.</p>
      <p>
        We study different classes of security properties and
conditions to ensure global properties by means of local
unwinding conditions [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. Locality allows us to define a
proof system which provides a very efficient technique for
the development and verification of secure processes [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
      </p>
      <p>
        For many practical applications the requirement of
a complete absence of any information flow could be
stronger than necessary when some knowledge about the
environment (context) in which the process is going to run
is available. To relax this requirement we introduce a
general notion of secure contexts for a process [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. In [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]
we moved from a process algebra setting to a standard
programming environment. We present a general
unwinding framework for the definition of information flow
security properties of concurrent programs, described in a
standard imperative language, admitting parallel executions on
a shared memory.
      </p>
      <p>Biosystems analysis.</p>
      <p>Computational biology is a recent field combining
computer science and molecular biology to study living beings.
We focus our attention on two areas, pattern discovery and
system biology.</p>
      <p>
        Pattern discovery. Many biological problems require to
blindly search into DNA or protein sequences for
relevant signals. Often we may assume that strings which
appears ”strangely often” or ”strangely rarely” in such
sequences have an associated functional purpose. We
studied the techniques for finding such signals and for giving
them a compact representation as patterns. In particular
we define maximal patterns [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], which correspond to the
largest subsets of strings which can be grouped together.
The set of maximal patterns is unique and very readable,
intuitively it represents all possible ”most abstract views”
of the strings we are interested in. We propose two
different algorithms for computing the set of maximal patterns.
Systems biology is a rather new field studying complex
interactions in biological systems. The aim is to model such
systems, to formally analyze their properties and to
simulate their behaviour. This would make possible to do in
silico experiments instead of in vivo experiments, which
may be difficult, or even impossible, to perform on
biological systems. Computational logic and formal techniques
to specify and analyze concurrent processes can be applied
to this field.
4
      </p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgements</title>
      <p>Our thanks to Matteo Baldoni and Cristina Baroglio for
organizing this collection in honour of Alberto Martelli, a
dear friend and one of the most attracting personality for
the Italian Computational Logic community.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          .
          <article-title>Verifying Correctness of Logic Programs</article-title>
          . In J. Diaz and F. Orejas, editors,
          <source>Proceedings TAPSOFT '89</source>
          ,
          <string-name>
            <surname>Barcelona</surname>
          </string-name>
          , Spain, LNCS
          <volume>352</volume>
          , pp.
          <fpage>96</fpage>
          -
          <lpage>110</lpage>
          , Springer-Verlag,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          , e
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          .
          <article-title>Basic Transformation Operations which preserve Computed Answer Substitutions of Logic Programs</article-title>
          .
          <source>Journal of Logic Programming</source>
          ,
          <volume>16</volume>
          :
          <fpage>47</fpage>
          -
          <lpage>87</lpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          .
          <article-title>Preserving universal termination through unfold/fold</article-title>
          . In G. Levi and
          <string-name>
            <given-names>M.</given-names>
            <surname>Rodr´</surname>
          </string-name>
          ıguez-Artalejo, editors,
          <source>Proceedings ALP'94, LNCS 850</source>
          , pp.
          <fpage>269</fpage>
          -
          <lpage>286</lpage>
          , Springer-Verlag,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          .
          <article-title>Replacement Can Preserve Termination</article-title>
          . In J. Gallagher, editor,
          <source>Proceedings LOPSTR'96, LNCS 1207</source>
          , pp.
          <fpage>104</fpage>
          -
          <lpage>129</lpage>
          , SpringerVerlag,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          .
          <article-title>Programs without Failures</article-title>
          . In N. Fuchs, editor,
          <source>Proceedings LOPSTR'97, LNCS 1463</source>
          , pp.
          <fpage>28</fpage>
          -
          <lpage>48</lpage>
          , Springer-Verlag,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          .
          <article-title>Successes in Logic Programs</article-title>
          . In P. Flener, editor,
          <source>Proceedings LOPSTR'98, LNCS 1559</source>
          , pp.
          <fpage>219</fpage>
          -
          <lpage>239</lpage>
          , Springer-Verlag,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , e
          <string-name>
            <given-names>S.</given-names>
            <surname>Dulli</surname>
          </string-name>
          .
          <article-title>A Method for Specializing Logic Programs</article-title>
          .
          <source>ACM Transactions on Programming Languages and Systems</source>
          ,
          <volume>12</volume>
          (
          <issue>2</issue>
          ):
          <fpage>253</fpage>
          -
          <lpage>302</lpage>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , e
          <string-name>
            <given-names>S.</given-names>
            <surname>Etalle</surname>
          </string-name>
          .
          <article-title>On Safe Folding</article-title>
          . In M. Bruynooghe and M. Wirsing, editors,
          <source>Proceedings PLILP'92</source>
          ,
          <string-name>
            <surname>Leuven</surname>
          </string-name>
          , Belgium, LNCS
          <volume>631</volume>
          , pp.
          <fpage>172</fpage>
          -
          <lpage>186</lpage>
          , Springer-Verlag,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , e
          <string-name>
            <given-names>S.</given-names>
            <surname>Etalle</surname>
          </string-name>
          .
          <article-title>Transforming Normal Programs by Replacement</article-title>
          . In A. Pettorossi, editor,
          <source>Proceedings META'92</source>
          ,
          <string-name>
            <surname>Uppsala</surname>
          </string-name>
          , Sweden, LNCS
          <volume>649</volume>
          , pp.
          <fpage>265</fpage>
          -
          <lpage>279</lpage>
          , Springer-Verlag,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Etalle</surname>
          </string-name>
          .
          <article-title>Transformation of Left Terminating Programs: the Reordering Problem</article-title>
          . In M. Proietti, editor,
          <source>Proceedings LOPSTR'95, LNCS 1048</source>
          , pp.
          <fpage>33</fpage>
          -
          <lpage>45</lpage>
          , Springer-Verlag,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , e
          <string-name>
            <given-names>S.</given-names>
            <surname>Etalle</surname>
          </string-name>
          .
          <article-title>Simultaneous Replacement in Normal Programs</article-title>
          .
          <source>Journal of Logic and Computation</source>
          ,
          <volume>6</volume>
          (
          <issue>1</issue>
          ):
          <fpage>79</fpage>
          -
          <lpage>120</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , e
          <string-name>
            <given-names>S.</given-names>
            <surname>Etalle</surname>
          </string-name>
          .
          <article-title>Transformation of Left Terminating Programs</article-title>
          . In A. Bossi editor,
          <source>Proceedings of LOPSTR'99</source>
          ,
          <string-name>
            <surname>Venezia</surname>
            , Italy,
            <given-names>LNCS</given-names>
          </string-name>
          <year>1817</year>
          , pp.
          <fpage>156</fpage>
          -
          <lpage>175</lpage>
          , Springer-Verlag,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          , N. Cocco e
          <string-name>
            <given-names>S.</given-names>
            <surname>Etalle</surname>
          </string-name>
          .
          <article-title>Transformation Systems and Nondeclarative Properties</article-title>
          . In A. Kakas and F. Sadri editors, Computational Logic:
          <article-title>Logic Programming and Beyond (Essays in honour of Robert A. Kowalski)</article-title>
          .
          <source>LNAI 2407</source>
          , pp.
          <fpage>162</fpage>
          -
          <lpage>186</lpage>
          , Springer-Verlag,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. Etalle N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>On Modular Termination Proofs of General Logic Programs</article-title>
          .
          <source>Theory and Practice of Logic Programming</source>
          ,
          <volume>2</volume>
          (
          <issue>3</issue>
          ):
          <fpage>263</fpage>
          -
          <lpage>291</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. Etalle N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Declarative Semantics of Input-Consuming Logic Programs</article-title>
          . In M. Bruynooghe, K. Lau editors,
          <source>Program Development in Computational Logic - A Decade of Research Advances in Logic-Based Program Development. LNCS 3049</source>
          , Springer-Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Fabris</surname>
          </string-name>
          .
          <article-title>Proving termination of logic programs by exploiting term properties</article-title>
          . In S. Abramsky and T.S.E. Maibaum, editors,
          <source>Proceedings CCPSD-TAPSOFT'91, LNCS 494</source>
          , pp.
          <fpage>153</fpage>
          -
          <lpage>180</lpage>
          , Springer-Verlag,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Fabris</surname>
          </string-name>
          . Typed Norms. In Krieg-Bruckner, editor,
          <source>Proceedings ESOP'92</source>
          ,
          <string-name>
            <surname>Rennes</surname>
          </string-name>
          , France, LNCS
          <volume>582</volume>
          , pp.
          <fpage>73</fpage>
          -
          <lpage>92</lpage>
          . SpringerVerlag,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Fabris</surname>
          </string-name>
          .
          <article-title>Norms on terms and their use in proving universal termination of a logic program</article-title>
          .
          <source>Theoretical Computer Science</source>
          ,
          <volume>124</volume>
          :
          <fpage>297</fpage>
          -
          <lpage>328</lpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Termination of Well-Typed Logic Programs</article-title>
          . In H. Sondergaard editor,
          <source>Proceedings PPDP'01</source>
          ,
          <string-name>
            <surname>Firenze</surname>
          </string-name>
          , Italy, pp.
          <fpage>73</fpage>
          -
          <lpage>81</lpage>
          , ACM Press,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Etalle</surname>
          </string-name>
          .
          <article-title>Transforming Acyclic Programs</article-title>
          .
          <source>ACM Transactions on Programming Languages and Systems</source>
          ,
          <volume>16</volume>
          (
          <issue>4</issue>
          ):
          <fpage>1081</fpage>
          -
          <lpage>1096</lpage>
          ,
          <year>July 1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Etalle</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Semantics of wellmoded input-consuming logic programs</article-title>
          .
          <source>Computer Languages</source>
          ,
          <volume>26</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>25</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Etalle</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Properties of inputconsuming derivations</article-title>
          .
          <source>Theory and Practice of Logic Programming</source>
          ,
          <volume>2</volume>
          (
          <issue>2</issue>
          ):
          <fpage>125</fpage>
          -
          <lpage>154</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Etalle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rossi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.-G.</given-names>
            <surname>Smaus</surname>
          </string-name>
          .
          <article-title>Termination of simply-moded logic programs with dynamic scheduling</article-title>
          .
          <source>ACM Transactions on Computational Logic (TOCL)</source>
          ,
          <volume>5</volume>
          (
          <issue>3</issue>
          ):
          <fpage>470</fpage>
          -
          <lpage>507</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Focardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Piazza</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>A proof system for information flow security</article-title>
          . M. Leuschel, editor,
          <source>Proceedings LOPSTR'02, LNCS 2664</source>
          , pp.
          <fpage>2199</fpage>
          -
          <lpage>218</lpage>
          , Springer-Verlag,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Focardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Piazza</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Verifying persistent security properties</article-title>
          .
          <source>Computer Languages, Systems and Structures</source>
          ,
          <volume>30</volume>
          (
          <issue>3-4</issue>
          ):
          <fpage>231</fpage>
          -
          <lpage>258</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gabrielli</surname>
          </string-name>
          , G. Levi, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Martelli</surname>
          </string-name>
          .
          <article-title>The S-semantics approach: Theory and applications</article-title>
          .
          <source>The Journal of Logic Programming</source>
          ,
          <volume>19</volume>
          &amp;
          <fpage>20</fpage>
          :
          <fpage>149</fpage>
          -
          <lpage>198</lpage>
          , May
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gabbrielli</surname>
          </string-name>
          , G. Levi, and
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Meo</surname>
          </string-name>
          .
          <article-title>A compositional semantics for logic programs</article-title>
          .
          <source>Theoretical Computer Science</source>
          ,
          <volume>122</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>3</fpage>
          -
          <lpage>47</lpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Macedonio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Piazza</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Information flow in secure contexts</article-title>
          .
          <source>Journal of Computer Security</source>
          ,
          <volume>13</volume>
          (
          <issue>3</issue>
          ):
          <fpage>391</fpage>
          -
          <lpage>422</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Piazza</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Compositional information flow security for concurrent programs</article-title>
          .
          <source>Journal of Computer Security</source>
          ,
          <volume>15</volume>
          (
          <issue>3</issue>
          ):
          <fpage>373</fpage>
          -
          <lpage>413</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Simeoni</surname>
          </string-name>
          ,
          <article-title>Maximal abstraction of strings</article-title>
          .
          <source>Dipartimento di Informatica</source>
          , Universita` Ca' Foscari di Venezia,
          <source>Rapporto di ricerca CS-2007-2</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>S.</given-names>
            <surname>Etalle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bossi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Cocco</surname>
          </string-name>
          .
          <article-title>Termination of well-moded programs</article-title>
          .
          <source>Journal of Logic Programming</source>
          ,
          <volume>38</volume>
          (
          <issue>2</issue>
          ):
          <fpage>243</fpage>
          -
          <lpage>257</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>