<!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>The Heterogeneous Tool Set</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Till Mossakowski</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christian Maeder</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Klaus L u¨ttich</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DFKI Lab Bremen and Department of Computer Science, University of Bremen</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>SFB/TR 8 and Department of Computer Science, University of Bremen</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>119</fpage>
      <lpage>135</lpage>
      <abstract>
        <p>Heterogeneous specification becomes more and more important because complex systems are often specified using multiple viewpoints, involving multiple formalisms. Moreover, a formal software development process may lead to a change of formalism during the development. However, current research in integrated formal methods only deals with ad-hoc integrations of different formalisms. The heterogeneous tool set (HETS) is a parsing, static analysis and proof management tool combining various such tools for individual specification languages, thus providing a tool for heterogeneous multi-logic specification. HETS is based on a graph of logics and languages (formalized as so-called institutions), their tools, and their translations. This provides a clean semantics of heterogeneous specifications, as well as a corresponding proof calculus. For proof management, the calculus of development graphs (known from other large-scale proof management systems) has been adapted to heterogeneous specification. Development graphs provide an overview of the (heterogeneous) specification module hierarchy and the current proof state, and thus may be used for monitoring the overall correctness of a heterogeneous development. We illustrate the approach with a sample heterogeneous proof proving the correctness of the composition table of a qualitative spatial calculus. The proof involves two different provers and logics: an automated first-order prover solving the vast majority of the goals, and an interactive higherorder prover used to prove a few bridge lemmas.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        “As can be seen, a plethora of formalisms for the verification of programs, and, in particular, for the
verification of concurrent programs has been proposed. . . . there are good reasons to consider all the
mentioned formalisms, and to use whichever one best suits the problem.” [
        <xref ref-type="bibr" rid="ref43">43</xref>
        ] (italics in the original)
      </p>
      <p>
        Indeed, at present, it is not imaginable that a combination of all these (and other)
logics would be feasible or even desirable — even if it existed, the combined
formalism would lack manageability, if not become inconsistent. Often, even if a combined
logic exists, for efficiency reasons, it is desirable to single out sublogics and study
translations between these (cf. e.g. [
        <xref ref-type="bibr" rid="ref43">43</xref>
        ]). Moreover, the occasional use of a more
complex formalism should not destroy the benefits of mainly using a simpler
formalism.
      </p>
      <p>This means that for the specification of large systems, heterogeneous multi-logic
specifications are needed, since complex problems have different aspects that are best
specified in different logics. Moreover, heterogeneous specifications additionally have
the benefit that different approaches being developed at different sites can be related,
i.e. there is a formal interoperability among languages and tools. In many cases,
specialized languages and tools often have their strengths in particular aspects. Using
heterogeneous specification, these strengths can be combined with comparably small
effort.</p>
      <p>
        Current heterogeneous languages and tools do not meet these requirements. The
heterogeneous language UML [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] deliberately has no formal semantics, and hence
is not a formal method or logic in the sense of the present work. (However, UML
could be integrated in the Heterogeneous Tool Sets as a formalism without semantics,
while the different formal semantics that have been developed for UML would be
represented as logic translations.) Likewise, languages for mathematical knowledge
management like OpenMath and OMDoc [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] are deliberately only semi-formal.
Service integration approaches like MathWeb [
        <xref ref-type="bibr" rid="ref48">48</xref>
        ] are either informal, or based on a
fixed formalism. Moreover, there are many bi- or trilateral combinations of different
formalisms; consider e.g. the integrated formal methods conference series [
        <xref ref-type="bibr" rid="ref41">41</xref>
        ].
Integrations of multiple decision procedures and model checkers into theorem provers,
like in the PROSPER toolkit [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], provide a more systematic approach. Still, these
approaches are uni-lateral in the sense that there is one logic (and one theorem prover,
like the HOL prover) which serves as the central integration device, such that the
user is forced to use this central logic, even if this may not be needed for a particular
application (or the user may prefer to work with a different main logic).
      </p>
      <p>
        By contrast, the heterogeneous tool set (HETS) is a both flexible, multi-lateral and
formal (i.e. based on a mathematical semantics) integration tool. Unlike other tools,
it treats logic translations (e.g. codings between logics) as first-class citizens. This
can be compared with the treatment of theory morphisms as first-class citizens, which
is a distinctive feature of formalisms like OMDoc [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and tools like Specware [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]
and IMPS [
        <xref ref-type="bibr" rid="ref11 ref12">12, 11</xref>
        ]. A clear referencing of symbols to their theories can distinguish,
for example, the naturals with zero from the naturals without zero, even if they are
denoted with the same symbol Nat. Theory morphisms can relate the two different
theories of naturals. In HETS, both theory morphisms and logic comorphisms are
firstclass citizens. This means that HETS can also distinguish conjunction in Isabelle/HOL
from conjunction in PVS3 (these actually have two different semantics!) and relate the
underlying logics with a comorphism.
      </p>
      <p>3 At least once a logic for PVS has been added.</p>
      <p>The architecture of the heterogeneous tool set is shown in Fig. 2 on page 123. In
the sequel, we will explain the details of this figure.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Heterogeneous Specifications: the Model-Theoretic View</title>
      <p>
        We take a model-theoretic view on specifications [
        <xref ref-type="bibr" rid="ref42">42</xref>
        ]. This means that the notion of
logical theory (i.e. collection of axioms) is considered to be only an auxiliary concept,
and the meaning of a formal specification (of a program module) is given by
– its signature; listing the names of entities that need to be implemented, typically
together with their types, that is, the syntactic interface of the module, and
– its class of models, that is, the set of possible realizations or implementations of
the interface.
      </p>
      <p>This model-theoretic view is even more important when Structure Data Process
moving from homogeneous to heterogeneous specifications:
in general, one cannot expect that different formalisms (say,
a specification and a programming language, or a process
algebra and a temporal logic) are related by translating
theories — it is the models that are used to link different for- Fig. 1: Multiple viewpoints
malisms. This point of view is also expressed by the so-called viewpoint specifications
(see Fig. 1), which use logical theories in different logical formalisms in order to
restrict the model class of an overall system from different viewpoints (while a direct
specification of the model class of the overall system would become unmanageably
complex).</p>
      <p>
        The correct mathematical underpinnings to this are given by the theory of
institutions [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Institutions capture in a very abstract and flexible way the notion of a
logical system, by leaving open the details of signatures, models, sentences (axioms)
and satisfaction (of sentences in models). The only condition governing the behaviour
of institutions is the satisfaction condition, stating that truth is invariant under change
of notation (or enlargement of context):
      </p>
      <p>M′ |=Σ ′ σ (φ ) ⇔ M |σ |=Σ φ
′
Here, σ : Σ −→ Σ ′ is a signature morphism, relating different signatures (or module
interfaces), σ (φ ) is the translation of the Σ -sentence φ along σ , and M′|σ is the
reduction of the Σ ′-model M′ to a Σ -model.</p>
      <p>The importance of the notion of institutions lies in the fact that a whole body of
specification theory (concerning structuring of specifications, module concepts,
parameterization, implementation, refinement, development, proof calculi) can be
developed independently of the underlying institutions — all that is needed is captured
by the satisfaction condition.</p>
      <p>
        Different logical formalisms are related by institution comorphisms [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], which
are again governed by the satisfaction condition, this time expressing that truth is
invariant also under change of notation across different logical formalisms:
      </p>
      <p>M′ |=ΦJ (Σ ) αΣ (φ ) ⇔ βΣ (M′) |=ΣI φ .</p>
      <p>Here, Φ (Σ ) is the translation of signature Σ from institution I to institution J, αΣ (φ )
is the translation of the Σ -sentence φ to a Φ (Σ )-sentence, and βΣ (M′) is the
translation (or perhaps: reduction) of the Φ (Σ )-model M′ to a Σ -model.</p>
      <p>
        Heterogeneous specification is based on some graph of logics and logic
translations, formalized as institutions and comorphisms. The so-called Grothendieck
institution [
        <xref ref-type="bibr" rid="ref10 ref24">10, 24</xref>
        ] is a technical device for giving a semantics to heterogeneous
specifications. This institution is basically a flattening, or disjoint union, of the logic
graph. A signature in the Grothendieck institution consists of a pair (L, Σ ) where
L is a logic (institution) and Σ is a signature in the logic L. Similarly, a Grothendieck
signature morphism (ρ , σ ) : (L1, Σ1) → (L2, Σ2) consists of a logic translation ρ =
(Φ , α , β ) : L1 −→ L2 plus an L2-signature morphism σ : Φ (Σ1) −→ Σ2. Sentences,
models and satisfaction in the Grothendieck institution are defined in a component
wise manner.
      </p>
      <p>The Grothendieck institution can be understood as a flat combination of all of the
involved logics. Here, “flat” means that there is no direct interaction of e.g. logical
connectives from different logics that lead to new sentences; instead, just the disjoint
union of sentences is taken. However, this does not mean that the logics just coexist
without any interaction: they interact through the comorphisms. Comorphisms allow
for translating a logical theory into some other logic, and via this translation to interact
with theories in that logic (e.g. by expressing some refinement relation).</p>
      <p>
        We refer the reader to the literature [
        <xref ref-type="bibr" rid="ref13 ref14 ref23 ref30">14, 13, 23, 30</xref>
        ] for full formal details of
institutions and comorphisms. Subsequently, we use the terms “institution” and “logic”
interchangeably, as well as the terms “institution comorphism” and “logic
translation”.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Implementation of a Logic</title>
      <p>How is a single logic implemented in the Heterogeneous Tool Set? This is depicted
in the left column of Fig. 2.</p>
      <p>The syntactic entities of a logic are represented using types for signatures and
signature morphisms forming a category with functions for identity morphisms and
composition of morphisms as well as for extracting domains and codomains. There
is also a type of sentences as well as a sentence translation function, allowing for
translation of sentences along a signature morphisms.</p>
      <p>In order to model a more verbose and user-friendly input syntax of the logic
we further introduce types for the abstract syntax of basic specifications and
symbol maps.</p>
      <p>Architecture of the heterogeneous tool set Hets</p>
      <sec id="sec-3-1">
        <title>Tools for specific logics</title>
      </sec>
      <sec id="sec-3-2">
        <title>Logic graph</title>
        <p>Text</p>
        <p>Parser
Static Analysis</p>
        <p>Interfaces</p>
        <p>XML, Aterm
(Signature, Sentences)
Theorem provers</p>
        <p>Rewriters
Conservativity and
Model checkers
Haskell
HasCASL
SoftFOL
ModalCASL</p>
        <p>CASL</p>
        <p>Isabelle</p>
        <p>CoCASL
CASL-DL
OWL-DL</p>
      </sec>
      <sec id="sec-3-3">
        <title>Grothendieck logic</title>
        <p>(Flattened logic graph)</p>
      </sec>
      <sec id="sec-3-4">
        <title>Tools for heterogeneous specifications</title>
        <p>Text</p>
        <p>Parser</p>
        <p>Static Analysis
Global Environment</p>
        <p>Interfaces
XML, Aterms WWW, GUI</p>
        <p>Heterogeneous
development graphs
Heterogeneous inference engine
Decomposition of proof obligations
Management of proofs &amp; change</p>
        <p>Heterogeneous proof trees</p>
        <p>Each logic has to provide parsers taking an input string and yielding an abstract
syntax tree of either a basic specifications or a symbol map. Static analysis takes the
abstract syntax of a basic specification to a theory being a signature with a set of
sentences. Actually, an additional parameter of the analysis, a signature called “local
environment”, corresponds to imported parts of a specification and will be initially
the empty signature. The static analysis also takes symbol maps (written concise and
user-friendly) to signature morphisms (corresponding to mathematical objects, as part
of an institution).</p>
        <p>Models are usually mathematical objects, often infinite, and hence usually not
directly represented as syntactical objects. Still, usually it is possible to represent
all finite models and some of the infinite models finitely. We assume that there is
a syntactically recognizable subset of constructive specifications that are guaranteed
to have a model, and use these as descriptions for models.4 We do not require that a
constructive specification has exactly one model; this covers cases where a uniqueness
property would be achievable only with additional effort (such as recursive function
definitions). A model checker evaluates whether a formula holds in a given model, or
more precisely, in all models of a constructive specification.</p>
        <p>
          Proof theory, more specifically, derivability of sentences from other sentences, is
captured by the notion of entailment system [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. In the HETS interface for logics,
this is realized as follows. A theory, where some sentences are marked as axioms
and others as proof goals, can be passed to a (logic-specific) prover which computes
the entailment relation. A prover returns a proof-status answer (proved, disproved or
open), together with a proof tree and further prover-specific information. The proof
tree is expected to give at least the information about which axioms have been used
in the proof. A model finder tries to construct models for a given theory, while a
conservativity checker can check whether a theory extension is conservative (i.e. does
not lead to new theorems).
        </p>
        <p>
          Each logic is realized in the programming language Haskell [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ] by a set of types
and functions, see Fig. 3, where we present a simplified, stripped down version, where
e.g. error handling is ignored. For technical reasons a logic is tagged with a unique
identifier type (lid), which is a singleton type the only purpose of which is to
determine all other type components of the given logic. In Haskell jargon, the interface
is called a multiparameter type class with functional dependencies [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ]. The Haskell
interface for logic translations is realised similarly.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Logics Available in Hets</title>
      <p>
        In this section we give a short overview of the logics available in HETS.
Propositional is classical propositional logic, with the zChaff SAT solver [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
connected to it.
      </p>
      <p>
        CASL extends many sorted first-order logic with partial functions and subsorting. It
also provides induction sentences, expressing the (free) generation of datatypes.
For more details on CASL see [
        <xref ref-type="bibr" rid="ref6 ref8">8, 6</xref>
        ]. We have implemented the CASL logic in such
a way that much of the implementation can be re-used for CASL extensions as
well; this is achieved via “holes” (realized via polymorphic variables) in the types
for signatures, morphisms, abstract syntax etc. This eases integration of CASL
extensions and keeps the effort of integrating CASL extensions quite moderate.
4 If necessary, one can always extend the logic with new sentences leading to constructive specifications.
CoCASL [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ] is a coalgebraic extension of CASL, suited for the specification of
process types and reactive systems. The central proof method is coinduction.
ModalCASL is an extension of CASL with multi-modalities and term modalities. It
allows the specification of modal systems with Kripke’s possible worlds
semantics. It is also possible to express certain forms of dynamic logic.
      </p>
      <p>
        HasCASL [
        <xref ref-type="bibr" rid="ref44">44</xref>
        ] is a higher order extension of CASL allowing polymorphic datatypes
and functions. It is closely related to the programming language Haskell and
allows program constructs to be embedded in the specification.
      </p>
      <p>
        Haskell [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ] is a modern, pure and strongly typed functional programming language.
      </p>
      <p>It simultaneously is the implementation language of HETS, such that in the future,
HETS might be applied to itself.</p>
      <p>
        OWL DL is the Web Ontology Language (OWL) recommended by the World Wide
Web Consortium (W3C, http://www.w3c.org). It is used for knowledge
representation and the Semantic Web [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        CASL-DL [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] is an extension of a restriction of CASL, realizing a strongly typed
variant of OWL DL in CASL syntax.
      </p>
      <p>
        SoftFOL [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] offers three automated theorem proving (ATP) systems for first-order
logic with equality: (1) SPASS [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ]; (2) Vampire [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ]; and (3) MathServ Broker5
[
        <xref ref-type="bibr" rid="ref47">47</xref>
        ]. These together comprise some of the most advanced theorem provers for
first-order logic.
      </p>
      <p>
        Isabelle [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] is an interactive theorem prover for higher-order logic, and (jointly with
others) marks the frontier of current research in interactive higher-order provers.
Propositional, SoftFOL and Isabelle are the only logics coming with a prover. Proof
support for the other logics can be obtained by using logic translations to a
proversupported logic.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Heterogeneous Specification</title>
      <p>Heterogeneous specification is based on some graph of logics and logic translations.
The graph of currently supported logics is shown in Fig. 2. However, syntax and
semantics of heterogeneous specifications as well as their implementation in HETS is
parameterized over an arbitrary such logic graph. Indeed, the HETS modules
implementing the logic graph can be compiled independently of the HETS modules
implementing heterogeneous specification, and this separation of concerns is essential to
keep the tool manageable from a software engineering point of view.</p>
      <p>
        Heterogeneous CASL (HETCASL; see [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]) includes the structuring constructs
of CASL, such as union and translation. A key feature of CASL is that syntax and
semantics of these constructs are formulated over an arbitrary institution (i.e. also
for institutions that are possibly completely different from first-order logic resp. the
CASL institution). HETCASL extends this with constructs for the translation of
specifications along logic translations.
      </p>
      <p>5 which chooses an appropriate ATP upon a classification of the FOL problem
SPEC ::= BASIC-SPEC
| SPEC then SPEC
| SPEC then %implies SPEC
| SPEC with SYMBOL-MAP
| SPEC with logic ID
DEFINITION ::= logic ID
| spec ID = SPEC end
| view ID : SPEC to SPEC = SYMBOL-MAP end
| view ID : SPEC to SPEC = with logic ID end
LIBRARY = DEFINITION*</p>
      <p>The syntax of heterogeneous specifications is given (in very simplified form) in
Fig. 4. A specification either consists of some basic specification in some logic (which
follows the specific syntax of this logic), or an extension of a specification by
another one (written SPEC then SPEC, or, if the extension only adds theorems that
are already implied by the original specification, written SPEC then %implies
SPEC). A translation of a specification along a signature morphism is written SPEC
with SYMBOL-MAP, where the symbol map is logic-specific (usually abbreviatory)
syntax for a signature morphism. A translation along a logic comorphism is written
SPEC with logic ID.</p>
      <p>A specification library consists of a sequence of definitions. A definition may
select the current logic (logic ID), which is then used for parsing and analysing the
subsequent definitions. It may name a specification, and finally it may also declare a
view between two specifications. A view is a kind of refinement relation between two
specifications, expressing that the first specification (when translated along a
signature morphism or a logic comorphism) is implied by the second specification. Indeed,
using the heterogeneous language constructs (including the possibility to add new
logic translations involving e.g. behavioural quotient constructions) it is possible to
capture a large variety of different refinement notions just by heterogeneous views as
explained above.</p>
      <p>It should be stressed that the name “HETCASL” only refers to CASL’s structuring
constructs. The individual logics used in connection with HETCASL and HETS can be
completely orthogonal to CASL. Actually, the capabilities of HETS go even beyond
HETCASL, since HETS also supports other module systems. This enables HETS to
directly read in e.g. OWL files, which use a structuring mechanism that is completely
different from CASL’s. Moreover, support of further structuring languages is planned.</p>
      <p>The Grothendieck logic (see Sect. 2), which is the semantic basis of HETCASL,
can be implemented as a bunch of existential datatypes over the type class Logic.
Usually, existential datatypes are used to realize — in a strongly typed language —
heterogeneous lists, where each element may have a different type. We use lists of
(components of) logics and translations instead. This leads to an implementation of
the Grothendieck institution over a logic graph.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Parsing and Analysis of Heterogeneous Specifications</title>
      <p>Based on the type class Logic, a number of logics and various comorphisms among
these have been implemented for HETS. We now come to the logic-independent
modules in HETS, which can be found in the right half of Fig. 2. These modules comprise
roughly one third of HETS’ 100.000 lines of Haskell code.</p>
      <p>
        The heterogeneous parser transforms a string conforming to the syntax in Fig. 4
to an abstract syntax tree, using the Parsec combinator parser [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Logic and
translation names are looked up in the logic graph — this is necessary to be able to choose
the correct parser for basic specifications. Indeed, the parser has a state that carries
the current logic, and which is updated if an explicit specification of the logic is given,
or if a logic translation is encountered (in the latter case, the state is set to the target
logic of the translation). With this, it is possible to parse basic specifications by just
using the logic-specific parser of the current logic as obtained from the state.
      </p>
      <p>The static analysis is based on the static analysis of basic specifications, and
transforms an abstract syntax tree to a development graph (cf. Sect. 7 below). Starting
with a node corresponding to the empty theory, it successively extends (using the
static analysis of basic specifications) and/or translates (along the intra- and
interlogic translations) the theory, while simultaneously adding nodes and links to the
development graph.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Proof Management with Development Graphs</title>
      <p>
        The central device for structured theorem proving and proof management in HETS is
the formalism of development graphs. Development graphs have been used for large
industrial-scale applications with hundreds of specifications [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. They also support
management of change. The graph structure provides a direct visualization of the
structure of specifications, and it also allows for managing large specifications with
hundreds of sub-specifications.
      </p>
      <p>A development graph (see Fig. 7 for an example) consists of a set of nodes
(corresponding to whole structured specifications or parts thereof), and a set of arrows
called definition links, indicating the dependency of each involved structured
specification on its subparts. Each node is associated with a signature and some set of local
axioms. The axioms of other nodes are inherited via definition links. Definition links
are usually drawn as black solid arrows, denoting an import of another specification.</p>
      <p>Complementary to definition links, which define the theories of related nodes,
theorem links serve for postulating relations between different theories. Theorem links
are the central data structure to represent proof obligations arising in formal
developments. Theorem links can be global (drawn as solid arrows) or local (drawn as dashed
arrows): a global theorem link postulates that all axioms of the source node (including
the inherited ones) hold in the target node, while a local theorem link only postulates
that the local axioms of the source node hold in the target node.</p>
      <p>Both definition and theorem links can be homogeneous, i.e. stay within the same
logic, or heterogeneous, i.e. the logic changes along the arrow. Technically, this is
the case for Grothendieck signature morphisms (ρ , σ ) where ρ 6= id. This case is
indicated with double arrows.</p>
      <p>
        Theorem links are initially displayed in red in the tool. (In Fig. 7, they are
displayed using thin lines and non-filled arrow heads.) The proof calculus for
development graphs [
        <xref ref-type="bibr" rid="ref27 ref28 ref31">28, 31, 27</xref>
        ] is given by rules that allow for proving global theorem
links by decomposing them into simpler (local and global) ones. Theorem links that
have been proved with this calculus are drawn in green. Local theorem links can be
proved by turning them into local proof goals. The latter can be discharged using
a logic-specific calculus as given by an entailment system (see Sect. 3). Open
local proof goals are indicated by marking the corresponding node in the development
graph as red; if all local implications are proved, the node is turned into green. This
implementation ultimately is based on a theorem [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] stating soundness and relative
completeness of the proof calculus for heterogeneous development graphs.
      </p>
      <p>While the semantics of theorem links is explained in entirely model-theoretic
terms, theorem links can ultimately be reduced to local proof obligations (and
conservativity checks) of a proof-theoretic nature, amenable to machine implementation.
Note however, that this approach is quite different from that of logical frameworks.
Suppose that we have a global theorem link σ : N1 −→ N2 between two nodes N1 and
N2 in a development graph. Note that the logics of N1 and N2 may be different. The
logical framework approach assumes that the theories of N1 and N2 are encoded into
some logic that is fixed once and forall. By contrast, in HETS we can rather flexibly
find a logic that is a “common upper bound” of the logics of both N1 and N2 and that
moreover has best possible tool support. This freedom allows us to exploit specialized
tools. This is also complemented by a sublogic analysis, which is required for each of
the logics in HETS, and which allows for an even more fine-grained determination of
available tools.
8</p>
    </sec>
    <sec id="sec-8">
      <title>An Example</title>
      <p>
        In the domain of qualitative constraint reasoning, a subfield of AI which has evolved
in the past 25 years, a large number of calculi for efficient reasoning about spatial and
temporal entities have been developed. A prominent example of that kind are the
various region connection calculi [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ]. In the region connection calculus RCC8, which
also has become a GIS standard, it is possible to express relations between regions
(= regular closed sets) in a metric space. The set of RCC8 base relations consists
of the relations DC (“DisConnected”), EC (“Externally Connected”), PO (“Partially
Overlap”), TPP (“Tangential Proper Part”), NTPP (“Non-Tangential Proper Part”),
the converses of the latter two relations (TPPi and NTPPi, resp.) and EQ (“EQals”)
(see Fig. 5 for a pictorial representation). The RCC5 calculus is similar, but does
not distinguish between tangential and non-tangential parts; it hence has only 5 basic
relations.
      </p>
      <p>X DC Y
X PO Y</p>
      <p>X EC Y</p>
      <p>X TPP Y</p>
      <p>X NTPP Y
X EQ Y</p>
      <p>X TPPi Y</p>
      <p>X NTPPi Y</p>
      <p>For efficiency and feasibility reasons, qualitative spatial and temporal reasoning is
not directly done in a (typically infinite) metric space, but rather at the abstract level of
a (finite) relation algebra, for example, using the so-called path consistency algorithm.
The heart of this approach is the composition table, which captures composition of
relations at the abstract and finitary level of the relation algebra.</p>
      <p>
        Composition tables need to be set up only once and for all. Still, this process
is error-prone, and we already have found errors in published composition tables.
Hence, formal verification of composition tables (w.r.t. their semantic interpretation)
is an important task. In [
        <xref ref-type="bibr" rid="ref46">46</xref>
        ], we present a heterogeneous verification of the RCC8
composition table w.r.t. the interpretation in metric spaces. This verification goal can
be split into two subgoals:
1. Verification that closed discs in a metric (cf. node RCC FO in Fig. 7) satisfy
some of Bennett’s connectedness axioms [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] (cf. node MetricSpace in Fig. 7).
RCC FO consists of very few (actually, 4) theorems, so-called bridge lemmas.
Since MetricSpace is a higher-order theory, they need to be translated to
higherorder logic, and can then be proved using the interactive theorem prover Isabelle.
2. Verification that Bennett’s connectedness axioms imply the standard RCC axioms
(cf. nodes ExtRCCByRCC5Rels and ExtRCCByRCC8Rels in Fig. 7). The
latter are many (actually, 95) first-order theorems, and can be proved using the
automated theorem proving system SPASS.
view RCC FO IN METRICSPACE :
      </p>
      <p>RCC FO to
{EXTMETRICSPACEBYCLOSEDBALLS[METRICSPACE]
then %def
pred</p>
      <p>C : ClosedBall × ClosedBall;
nonempty(x : ClosedBall) ⇔ x C x
∀ x, y : ClosedBall
• x C y ⇔ ∃ s : S • rep x s ∧ rep y s
end
} =
QReg 7→ ClosedBall
%(C def)%
9</p>
    </sec>
    <sec id="sec-9">
      <title>Theorem Proving with HETS</title>
      <p>Fig. 6 contains the heterogeneous refinement expressing the correctness of the RCC8
composition table. After parsing and static analysis of an heterogeneous specification
(see Sect. 6), HETS constructs a heterogeneous development graph, see Fig. 7. This
graph can be inspected, e.g. theories of nodes or signature morphisms of links can be
displayed. Using the calculus mentioned in Sect. 7, the proof obligations in the graph
can be (in most cases automatically) reduced to local proof goals at the individual
nodes. Nodes with local proof goals are marked with a grey color in Fig. 7, while
in the tool, red is used. The thick edges in the development graph are definition links
and the thin ones are theorem links. A double arrow denotes a heterogeneous link (e.g.
between RCC FO and the extension of EXTMETRICSPACEBYCLOSEDBALLS).
Unnamed nodes show intermediate structuring of specifications and box-shaped nodes
are imported from a different specification library, while the round nodes are theories
specified locally.</p>
      <p>The graphical user interface (GUI) for calling a prover is shown in Fig. 8. The list
on the left shows all goal names prefixed with the proof status in square brackets. A
proved goal is indicated by a ‘+’, a ‘-’ indicates a disproved goal and a space denotes
an open goal. Within this list, one can select those goals that should be inspected or
proved. A button ‘Display’ shows the selected goals in the syntax of this theory’s
logic.</p>
      <p>
        The list ‘Pick Theorem Prover:’ lets you choose one of the connected provers.
By pressing ‘Prove’ the selected prover is launched and the theory along with the
selected goals is translated via the shortest possible path of comorphisms into the
prover’s logic. However, the shortest path need not always be the best one. Therefore,
the button ‘More fine grained selection...’ lets you pick a specific path of comorphisms
in the logic graph that leads into a prover supported logic. It is assumed that all
comorphisms are model-expansive, which means that borrowing of entailment systems
along the composite comorphism ρ = (Φ , α , β ) is sound and complete [
        <xref ref-type="bibr" rid="ref27 ref7">7, 27</xref>
        ]:
      </p>
      <p>(Σ ,Γ ) |=ΣI φ iff (Φ (Σ ), α (Γ )) |=J αΣ (φ ).</p>
      <p>
        That is, if the entailment ⊢ generated by the prover captures semantic consequence
|=, we can re-use the prover along the (composite) comorphism. In the terminology
of [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], (Σ ,Γ ) |=ΣI φ in institution I captures the what to prove, while its translation to
institution J captures the how to prove.
      </p>
      <p>
        Additionally, this interface offers to select in detail the axioms and proven
theorems which are included in the theory for the next proof attempt. Among the axioms
theorems imported from other specifications are marked with the prefix ‘(Th)’. This
is particularly useful for large theories with problematic theorems that blow up the
search space of ATP systems. A detailed discussion of using ATPs for CASL can be
found in [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
      <p>
        If an ATP is selected, a new window is opened, which controls the prover calls
(Fig. 9). Here we use the connection to SPASS [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ], for the other ATPs listed
(MathServ Broker and Vampire) see [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Isabelle [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ], a semi automatic theorem prover,
is started with ProofGeneral [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] in a separate Emacs from the GUI.
      </p>
      <p>The ’Close’ button allows for integrating the status of the goals’ list back into the
development graph. If all goals have been proved, this theory’s node turns from red
into green.</p>
      <p>For the example presented in Sect. 8 we successfully used SPASS for proving the
CASL proof obligations in the unnamed grey nodes between the nodes “RCC FO”
and “ExtRCC FO” and below “ExtRCC FO”. To discharge the proof obligations in
the node below “RCC FO” with incoming heterogeneous theorem links on the right
of the center of Fig. 7 the higher-order proof assistance system Isabelle was applied.
The most interesting point here is that we used a first-order specification, namely
RCC FO, to prove as much as possible by the ATP SPASS (thus minimizing the
number of proof obligations to be proven by a semi-automatic reasoner).
10</p>
    </sec>
    <sec id="sec-10">
      <title>Conclusion</title>
      <p>
        The Heterogeneous Tool Set is available at http://www.dfki.de/sks/hets;
some specification libraries and example specifications (including those of this
paper) under http://www.cofi.info/Libraries. A user guide is also
available there. Brief introductions into HETS are given in [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] and [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        There is related work about generic parsers, user interfaces, theorem provers etc.
[
        <xref ref-type="bibr" rid="ref2 ref34">34, 2</xref>
        ]. However, these approaches are mostly limited to genericity, and do not
support real heterogeneity, that is the simultaneous use of different formalisms.
Technically, genericity often is implemented with generic modules that can be instantiated
many times. Here, we deal with a potentially unlimited number of such instantiations,
and also with translations between them.
end
logic CSP-CASL
spec BUFFER =
data LIST
channels read, write : Elem
process let Buf (l : List[Elem]) =
read?x → Buf (cons(x, nil))
if l = nil then STOP
else write!last(l) → Buf (rest(l))
in Buf (nil)
with logic → MODALCASL
then %implies • A G F ∃x : Elem . hwrite.xitrue
      </p>
      <p>Fig. 10. A specification of fair buffers in CASL, CSP-CASL and MODALCASL.</p>
      <p>
        It may appear that HETS just provides a combination of some first-order provers
and Isabelle, and the reader may wonder what the advantage of HETS is when
compared to an ad-hoc combination of Isabelle and such provers, like [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. But already
now, HETS provides proof support for modal logic (via the translation to CASL, and
then further to either SPASS or Isabelle), as well as for COCASL. Hence, it is quite
easy to provide proof support for new logics by just implementing logic translations,
which is at least an order of magnitude simpler than integrating a theorem prover.
Although this can be compared to embedding the new logic in a HOL prover, our
translational approach has the major advantage that several translations may exist in
parallel (think of the standard and functional translations of modal logic), and the best
one may be chosen depending on the theory at hand.
      </p>
      <p>
        Future work will integrate more logics and interface more existing theorem
proving tools with specific institutions in HETS. In [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], we have presented a
heterogeneous specification with more diverse formalisms, namely CSP-CASL [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ] (a
combination of CASL with the process algebra CSP), and a temporal logic (as part of
MODALCASL). An example is shown in Fig. 10. CSP-CASL is used to describe the
system (a buffer implemented as a list), and some temporal logic is used to state
fairness or eventuality properties that go beyond the expressiveness of the process
algebra (here, we express the fairness property that the buffer cannot read infinitely
often without writing).
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] we describe how heterogeneous specification and HETS could be used
for proving a refinement of a specification in CASL into a Haskell-program. Another
challenge is the integration of proof planners into HETS. Finally, there is work in
progress about the meta-level specification of institutions and their comorphisms in
Twelf [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ], which shall lead to correctness proofs for the comorphisms integrated into
HETS.
      </p>
      <p>Acknowledgement
This work has been supported by the project MULTIPLE of the Deutsche
Forschungsgemeinschaft under grant KR 1191/5-2. We thank Katja Abu-Dib, Mihai Codescu,</p>
      <p>Till Mossakowski, Christian Maeder, Klaus L u¨ttich
Carsten Fischer, Jorina Freya Gerken, Rainer Grabbe, Sonja Gr o¨ning, Daniel
Hausmann, Wiebke Herding, Hendrik Iben, Cui “Ken” Jian, Heng Jiang, Anton Kirilov,
Tina Krausser, Martin K u¨hl, Mingyi Liu, Dominik L u¨cke, Maciek Makowski,
Immanuel Normann, Razvan Pascanu, Daniel Pratsch, Felix Reckers, Markus
Roggenbach, Pascal Schmidt, Lutz Schr o¨der, Paolo Torrini, Rene´ Wagner, Jian Chun Wang
and Thiemo Wiedemeyer for help with the implementation of HETS, and Erwin R.
Catesbeiana for testing the consistency checker.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Jean-Raymond Abrial</surname>
            and
            <given-names>Dominique</given-names>
          </string-name>
          <string-name>
            <surname>Cansell</surname>
          </string-name>
          .
          <article-title>Click'n prove: Interactive proofs within set theory</article-title>
          .
          <source>In David A. Basin and Burkhart Wolff</source>
          , editors,
          <source>Theorem Proving in Higher Order Logics</source>
          , 16th International Conference, TPHOLs
          <year>2003</year>
          , Rom, Italy, September 8-
          <issue>12</issue>
          ,
          <year>2003</year>
          , Proceedings, volume
          <volume>2758</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>1</fpage>
          -
          <lpage>24</lpage>
          . Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>David</given-names>
            <surname>Aspinall</surname>
          </string-name>
          .
          <article-title>Proof general: A generic tool for proof development</article-title>
          .
          <source>In Susanne Graf and Michael I. Schwartzbach</source>
          , editors,
          <source>TACAS, LNCS 1785</source>
          , pages
          <fpage>38</fpage>
          -
          <lpage>42</lpage>
          . Springer,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Thomas</given-names>
            <surname>Baar</surname>
          </string-name>
          , Alfred Strohmeier,
          <string-name>
            <surname>Ana M. D. Moreira</surname>
          </string-name>
          , and Stephen J. Mellor, editors.
          <source>UML</source>
          <year>2004</year>
          , LNCS 3273. Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>B.</given-names>
            <surname>Bennett</surname>
          </string-name>
          .
          <source>Logical Representations for Automated Reasoning about Spatial Relationships</source>
          .
          <source>PhD thesis</source>
          , School of Computer Studies, The University of Leeds,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hendler</surname>
          </string-name>
          , and
          <string-name>
            <surname>O. Lassila.</surname>
          </string-name>
          <article-title>The Semantic Web</article-title>
          . Scientific American, May
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>M.</given-names>
            <surname>Bidoit</surname>
          </string-name>
          and
          <string-name>
            <given-names>P. D.</given-names>
            <surname>Mosses</surname>
          </string-name>
          .
          <article-title>CASL User Manual</article-title>
          , volume
          <volume>2900</volume>
          <source>of LNCS</source>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>M.</given-names>
            <surname>Cerioli</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Meseguer</surname>
          </string-name>
          .
          <article-title>May I borrow your logic? (transporting logical structures along maps)</article-title>
          .
          <source>Theoretical Computer Science</source>
          ,
          <volume>173</volume>
          :
          <fpage>311</fpage>
          -
          <lpage>347</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>CoFI (The Common Framework Initiative</surname>
          </string-name>
          <article-title>)</article-title>
          .
          <source>CASL Reference Manual. LNCS 2960 (IFIP Series)</source>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Louise</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Dennis</surname>
            , Graham Collins, Michael Norrish, Richard J. Boulton, Konrad Slind, and
            <given-names>Thomas F.</given-names>
          </string-name>
          <string-name>
            <surname>Melham</surname>
          </string-name>
          .
          <article-title>The prosper toolkit</article-title>
          .
          <source>STTT</source>
          ,
          <volume>4</volume>
          (
          <issue>2</issue>
          ):
          <fpage>189</fpage>
          -
          <lpage>210</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>R.</given-names>
            <surname>Diaconescu</surname>
          </string-name>
          . Grothendieck institutions. Applied categorical structures,
          <volume>10</volume>
          :
          <fpage>383</fpage>
          -
          <lpage>402</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>William</surname>
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Farmer</surname>
          </string-name>
          .
          <article-title>An infrastructure for intertheory reasoning</article-title>
          .
          <source>In Automated Deduction - CADE-17, LNCS</source>
          <year>1831</year>
          , pages
          <fpage>115</fpage>
          -
          <lpage>131</lpage>
          . Springer,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>William M. Farmer</surname>
            ,
            <given-names>Joshua D.</given-names>
          </string-name>
          <string-name>
            <surname>Guttman</surname>
            , and
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Javier</surname>
          </string-name>
          <article-title>Thayer. IMPS: An interactive mathematical proof system</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          ,
          <volume>11</volume>
          (
          <issue>2</issue>
          ):
          <fpage>213</fpage>
          -
          <lpage>248</lpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>J.</given-names>
            <surname>Goguen</surname>
          </string-name>
          and
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Ros¸u. Institution morphisms</article-title>
          .
          <source>Formal aspects of computing</source>
          ,
          <volume>13</volume>
          :
          <fpage>274</fpage>
          -
          <lpage>307</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Goguen</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. M.</given-names>
            <surname>Burstall</surname>
          </string-name>
          . Institutions:
          <article-title>Abstract model theory for specification and programming</article-title>
          .
          <source>Journal of the Association for Computing Machinery</source>
          ,
          <volume>39</volume>
          :
          <fpage>95</fpage>
          -
          <lpage>146</lpage>
          ,
          <year>1992</year>
          . Predecessor in: LNCS
          <volume>164</volume>
          ,
          <fpage>221</fpage>
          -
          <lpage>256</lpage>
          ,
          <year>1984</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>Marc</given-names>
            <surname>Herbstritt</surname>
          </string-name>
          . zChaff:
          <article-title>Modifications and extensions</article-title>
          . report00188,
          <string-name>
            <surname>Institut</surname>
            <given-names>fu</given-names>
          </string-name>
          ¨r Informatik,
          <source>Universita¨t Freiburg, July</source>
          <volume>17</volume>
          2003. Thu,
          <issue>17</issue>
          <year>Jul 2003</year>
          17:
          <issue>11</issue>
          :37 GET.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Dieter</surname>
            <given-names>Hutter</given-names>
          </string-name>
          , Bruno Langenstein, Claus Sengler, Jo¨rg
          <string-name>
            <given-names>H.</given-names>
            <surname>Siekmann</surname>
          </string-name>
          , Werner Stephan, and
          <string-name>
            <surname>Wolpers</surname>
            <given-names>Wolpers</given-names>
          </string-name>
          .
          <article-title>Verification support environment (VSE)</article-title>
          .
          <source>High Integrity Systems</source>
          ,
          <volume>1</volume>
          (
          <issue>6</issue>
          ):
          <fpage>523</fpage>
          -
          <lpage>530</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <source>Kestrel Development Corporation. Specware 4</source>
          .
          <article-title>1 language manual</article-title>
          . http://www.specware.org/.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>Michael</given-names>
            <surname>Kohlhase</surname>
          </string-name>
          .
          <source>OMDoc - An Open Markup Format for Mathematical Documents [version 1.2]. LNCS 4180</source>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>Daan</given-names>
            <surname>Leijen</surname>
          </string-name>
          and
          <string-name>
            <given-names>Erik</given-names>
            <surname>Meijer</surname>
          </string-name>
          . Parsec:
          <article-title>Direct style monadic parser combinators for the real world</article-title>
          .
          <source>Technical report. UU-CS-2001-35.</source>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>K</surname>
            . L u¨ttich, T. Mossakowski, and
            <given-names>B.</given-names>
          </string-name>
          <article-title>Krieg-Bru¨ckner. Ontologies for the Semantic Web in CASL</article-title>
          . In Jose´ Fiadeiro, editor,
          <source>WADT 2004, LNCS 3423</source>
          , pages
          <fpage>106</fpage>
          -
          <lpage>125</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. Klaus L u¨
          <article-title>ttich and Till Mossakowski. Reasoning Support for CASL with Automated Theorem Proving Systems</article-title>
          .
          <source>WADT 2006</source>
          ,
          <string-name>
            <surname>Springer</surname>
            <given-names>LNCS</given-names>
          </string-name>
          , to appear.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Jia</surname>
            <given-names>Meng</given-names>
          </string-name>
          , Claire Quigley, and
          <string-name>
            <surname>Lawrence</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Paulson</surname>
          </string-name>
          .
          <article-title>Automation for interactive proof: First prototype</article-title>
          .
          <source>Inf. Comput</source>
          ,
          <volume>204</volume>
          (
          <issue>10</issue>
          ):
          <fpage>1575</fpage>
          -
          <lpage>1596</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>J.</given-names>
            <surname>Meseguer</surname>
          </string-name>
          .
          <article-title>General logics</article-title>
          .
          <source>In Logic Colloquium</source>
          <volume>87</volume>
          , pages
          <fpage>275</fpage>
          -
          <lpage>329</lpage>
          . North Holland,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mossakowski</surname>
          </string-name>
          .
          <article-title>Comorphism-based Grothendieck logics</article-title>
          . In K. Diks and W. Rytter, editors,
          <source>MFCS, LNCS 2420</source>
          , pages
          <fpage>593</fpage>
          -
          <lpage>604</lpage>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mossakowski</surname>
          </string-name>
          .
          <article-title>Foundations of heterogeneous specification</article-title>
          . In M. Wirsing,
          <string-name>
            <given-names>D.</given-names>
            <surname>Pattinson</surname>
          </string-name>
          , and R. Hennicker, editors,
          <source>WADT</source>
          <year>2002</year>
          , LNCS Vol.
          <volume>2755</volume>
          , pages
          <fpage>359</fpage>
          -
          <lpage>375</lpage>
          . Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26. T. Mossakowski. HetCASL - heterogeneous specification.
          <source>language summary</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mossakowski</surname>
          </string-name>
          .
          <article-title>Heterogeneous specification and the heterogeneous tool set</article-title>
          .
          <source>Habilitation thesis</source>
          , University of Bremen,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mossakowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Autexier</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Hutter</surname>
          </string-name>
          .
          <article-title>Development graphs - proof management for structured specifications</article-title>
          .
          <source>Journal of Logic and Algebraic Programming</source>
          ,
          <volume>67</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>114</fpage>
          -
          <lpage>145</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <given-names>Till</given-names>
            <surname>Mossakowski</surname>
          </string-name>
          .
          <article-title>Institutional 2-cells and Grothendieck institutions</article-title>
          . In K. Futatsugi,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Jouannaud</surname>
          </string-name>
          , and J. Meseguer, editors,
          <source>Algebra, Meaning and Computation. Essays Dedicated to Joseph A. Goguen on the Occasion of His 65th Birthday, LNCS 4060</source>
          , pages
          <fpage>124</fpage>
          -
          <lpage>149</lpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Till</surname>
            <given-names>Mossakowski</given-names>
          </string-name>
          , Joseph Goguen, Razvan Diaconescu, and
          <string-name>
            <given-names>Andrzej</given-names>
            <surname>Tarlecki</surname>
          </string-name>
          .
          <article-title>What is a logic? In Jean-Yves Beziau</article-title>
          , editor,
          <source>Logica Universalis</source>
          , pages
          <fpage>113</fpage>
          -
          <lpage>133</lpage>
          . Birkha¨user,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Till</surname>
            <given-names>Mossakowski</given-names>
          </string-name>
          , Piotr Hoffman, Serge Autexier, and
          <string-name>
            <given-names>Dieter</given-names>
            <surname>Hutter</surname>
          </string-name>
          .
          <article-title>CASL logic</article-title>
          . In Peter D. Mosses, editor,
          <source>CASL Reference Manual, LNCS</source>
          <volume>2960</volume>
          ,
          <string-name>
            <surname>part</surname>
            <given-names>IV</given-names>
          </string-name>
          . Springer Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Till</surname>
            <given-names>Mossakowski</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Christian</given-names>
            <surname>Maeder</surname>
          </string-name>
          , and
          <article-title>Klaus L u¨ttich. The Heterogeneous Tool Set</article-title>
          . In Orna Grumberg and Michael Huth, editors,
          <source>TACAS</source>
          <year>2007</year>
          , volume
          <volume>4424</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>519</fpage>
          -
          <lpage>522</lpage>
          . Springer-Verlag Heidelberg,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Till</surname>
            <given-names>Mossakowski</given-names>
          </string-name>
          , Lutz Schro¨der, Markus Roggenbach, and
          <string-name>
            <given-names>Horst</given-names>
            <surname>Reichel</surname>
          </string-name>
          .
          <article-title>Algebraic-co-algebraic specification in CoCASL</article-title>
          .
          <source>Journal of Logic and Algebraic Programming</source>
          ,
          <volume>67</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>146</fpage>
          -
          <lpage>197</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <given-names>T.</given-names>
            <surname>Nipkow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. C.</given-names>
            <surname>Paulson</surname>
          </string-name>
          , and M. Wenzel. Isabelle/HOL - A
          <article-title>Proof Assistant for Higher-Order Logic</article-title>
          . Springer Verlag,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35. S. Peyton-Jones, editor.
          <source>Haskell 98 Language and Libraries - The Revised Report</source>
          . Cambridge,
          <year>2003</year>
          . also:
          <source>J. Funct. Programming</source>
          <volume>13</volume>
          (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36. Simon Peyton Jones,
          <string-name>
            <given-names>Mark</given-names>
            <surname>Jones</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Erik</given-names>
            <surname>Meijer</surname>
          </string-name>
          .
          <article-title>Type classes: exploring the design space</article-title>
          .
          <source>In Haskell Workshop</source>
          .
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <article-title>Frank Pfenning and Carsten Schu¨rmann. System description: Twelf - a meta-logical framework for deductive systems</article-title>
          . pages
          <fpage>202</fpage>
          -
          <lpage>206</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38.
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Randell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Cui</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. G.</given-names>
            <surname>Cohn</surname>
          </string-name>
          .
          <article-title>A spatial logic based on regions and connection</article-title>
          . In B. Nebel, W. Swartout, and C. Rich, editors,
          <source>Principles of Knowledge Representation and Reasoning: Proceedings of the 3rd International Conference (KR-92)</source>
          , pages
          <fpage>165</fpage>
          -
          <lpage>176</lpage>
          . Morgan Kaufmann,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          39.
          <string-name>
            <given-names>Alexandre</given-names>
            <surname>Riazanov</surname>
          </string-name>
          and
          <string-name>
            <given-names>Andrei</given-names>
            <surname>Voronkov</surname>
          </string-name>
          .
          <article-title>The design and implementation of VAMPIRE</article-title>
          .
          <source>AI Communications</source>
          ,
          <volume>15</volume>
          (
          <issue>2-3</issue>
          ):
          <fpage>91</fpage>
          -
          <lpage>110</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          40.
          <string-name>
            <given-names>Markus</given-names>
            <surname>Roggenbach</surname>
          </string-name>
          .
          <article-title>Csp-casl - a new integration of process algebra and algebraic specification</article-title>
          .
          <source>Theor. Comput. Sci.</source>
          ,
          <volume>354</volume>
          (
          <issue>1</issue>
          ):
          <fpage>42</fpage>
          -
          <lpage>71</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          41.
          <string-name>
            <surname>Judi</surname>
            <given-names>Romijn</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Graeme</given-names>
            <surname>Smith</surname>
          </string-name>
          , and Jaco van de Pol, editors.
          <source>Integrated Formal Methods, 5th International Conference, IFM</source>
          <year>2005</year>
          , Eindhoven,
          <source>The Netherlands, November 29 - December 2</source>
          ,
          <year>2005</year>
          , Proceedings, volume
          <volume>3771</volume>
          of Lecture Notes in Computer Science. Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          42.
          <string-name>
            <given-names>Donald</given-names>
            <surname>Sannella</surname>
          </string-name>
          and
          <string-name>
            <given-names>Andrzej</given-names>
            <surname>Tarlecki</surname>
          </string-name>
          .
          <article-title>Essential concepts of algebraic specification and program development</article-title>
          .
          <source>Formal Aspects of Computing</source>
          ,
          <volume>9</volume>
          :
          <fpage>229</fpage>
          -
          <lpage>269</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          43.
          <string-name>
            <given-names>Klaus</given-names>
            <surname>Schneider</surname>
          </string-name>
          .
          <source>Verification of Reactive Systems</source>
          . Springer Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          44. L. Schro¨der and
          <string-name>
            <given-names>T.</given-names>
            <surname>Mossakowski</surname>
          </string-name>
          .
          <article-title>HasCASL: Towards integrated specification and development of Haskell programs</article-title>
          . In H. Kirchner and C. Reingeissen, editors,
          <source>AMAST</source>
          ,
          <year>2002</year>
          , LNCS
          <volume>2422</volume>
          , pages
          <fpage>99</fpage>
          -
          <lpage>116</lpage>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          45.
          <string-name>
            <surname>C. Weidenbach</surname>
            , U. Brahm,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Hillenbrand</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Keen</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Theobalt</surname>
            , and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Topic</surname>
          </string-name>
          .
          <source>SPASS version 2</source>
          .0. In Andrei Voronkov, editor,
          <source>Automated Deduction - CADE-18, LNCS 2392</source>
          , pages
          <fpage>275</fpage>
          -
          <lpage>279</lpage>
          . Springer-Verlag,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          46. Stefan W o¨lfl, Till Mossakowski, and
          <article-title>Lutz Schro¨der. Qualitative constraint calculi: Heterogeneous verification of composition tables</article-title>
          .
          <source>In 20th International FLAIRS Conference</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          47.
          <string-name>
            <surname>Ju</surname>
          </string-name>
          <article-title>¨rgen Zimmer and Serge Autexier. The MathServe System for Semantic Web Reasoning Services</article-title>
          . In U. Furbach and N. Shankar, editors,
          <source>3rd IJCAR, LNCS 4130</source>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          48.
          <string-name>
            <surname>Ju</surname>
          </string-name>
          <article-title>¨rgen Zimmer and Michael Kohlhase. System description: The mathweb software bus for distributed mathematical reasoning</article-title>
          . In Andrei Voronkov, editor,
          <source>18th CADE, LNCS 2392</source>
          , pages
          <fpage>139</fpage>
          -
          <lpage>143</lpage>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>