<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">The Heterogeneous Tool Set</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Till</forename><surname>Mossakowski</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="laboratory">DFKI Lab Bremen</orgName>
								<orgName type="institution">University of Bremen</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Christian</forename><surname>Maeder</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="laboratory">DFKI Lab Bremen</orgName>
								<orgName type="institution">University of Bremen</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Klaus</forename><surname>Lüttich</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">SFB/TR</orgName>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff2">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of Bremen</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">The Heterogeneous Tool Set</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">73EC72EE9A4F4316AE29ED918975625D</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T02:02+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><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." <ref type="bibr" target="#b42">[43]</ref> (italics in the original)</p><p>In the area of formal specification and logics used in computer science, numerous logics are in use:</p><p>-logics for specification of datatypes, -process calculi and logics for the description of concurrent and reactive behaviour, -logics for specifying security requirements and policies, -logics for reasoning about space and time, -description logics for knowledge bases in artificial intelligence/the semantic web, -logics capturing the control of name spaces and administrative domains (e.g. the ambient calculus), etc.</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. <ref type="bibr" target="#b42">[43]</ref>). 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 <ref type="bibr" target="#b2">[3]</ref> 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 <ref type="bibr" target="#b17">[18]</ref> are deliberately only semi-formal. Service integration approaches like MathWeb <ref type="bibr" target="#b47">[48]</ref> 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 <ref type="bibr" target="#b40">[41]</ref>. Integrations of multiple decision procedures and model checkers into theorem provers, like in the PROSPER toolkit <ref type="bibr" target="#b8">[9]</ref>, 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 <ref type="bibr" target="#b17">[18]</ref> and tools like Specware <ref type="bibr" target="#b16">[17]</ref> and IMPS <ref type="bibr" target="#b11">[12,</ref><ref type="bibr" target="#b10">11]</ref>. 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 PVS<ref type="foot" target="#foot_0">3</ref> (these actually have two different semantics!) and relate the underlying logics with a comorphism.</p><p>The architecture of the heterogeneous tool set is shown in Fig. <ref type="figure">2</ref> on page 123. In the sequel, we will explain the details of this figure.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Heterogeneous Specifications: the Model-Theoretic View</head><p>We take a model-theoretic view on specifications <ref type="bibr" target="#b41">[42]</ref>. 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 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- malisms. This point of view is also expressed by the so-called viewpoint specifications (see Fig. <ref type="figure" target="#fig_0">1</ref>), 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). The correct mathematical underpinnings to this are given by the theory of institutions <ref type="bibr" target="#b13">[14]</ref>. 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><formula xml:id="formula_0">M ′ |= Σ ′ σ (ϕ) ⇔ M ′ | σ |= Σ ϕ</formula><p>Here, σ : Σ −→ Σ ′ is a signature morphism, relating different signatures (or module interfaces), σ (ϕ) is the translation of the Σ -sentence ϕ along σ , and</p><formula xml:id="formula_1">M ′ | σ is the reduction of the Σ ′ -model M ′ to a Σ -model.</formula><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 <ref type="bibr" target="#b12">[13]</ref>, 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><formula xml:id="formula_2">M ′ |= J Φ(Σ ) α Σ (ϕ) ⇔ β Σ (M ′ ) |= I Σ ϕ.</formula><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. Heterogeneous specification is based on some graph of logics and logic translations, formalized as institutions and comorphisms. The so-called Grothendieck institution <ref type="bibr" target="#b9">[10,</ref><ref type="bibr" target="#b23">24]</ref> 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 (ρ, σ ) :</p><formula xml:id="formula_3">(L 1 , Σ 1 ) → (L 2 , Σ 2 ) consists of a logic translation ρ = (Φ, α, β ) : L 1 −→ L 2 plus an L 2 -signature morphism σ : Φ(Σ 1 ) −→ Σ 2 .</formula><p>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 <ref type="bibr" target="#b13">[14,</ref><ref type="bibr" target="#b12">13,</ref><ref type="bibr" target="#b22">23,</ref><ref type="bibr" target="#b29">30]</ref> 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".</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Implementation of a Logic</head><p>How is a single logic implemented in the Heterogeneous Tool Set? This is depicted in the left column of Fig. <ref type="figure">2</ref>.</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. 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Architecture of the heterogeneous tool set Hets</head><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. <ref type="foot" target="#foot_1">4</ref> 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 <ref type="bibr" target="#b22">[23]</ref>. 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 <ref type="bibr" target="#b34">[35]</ref> by a set of types and functions, see Fig. <ref type="figure">3</ref>, 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 <ref type="bibr" target="#b35">[36]</ref>. The Haskell interface for logic translations is realised similarly.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Logics Available in Hets</head><p>In this section we give a short overview of the logics available in HETS.</p><p>Propositional is classical propositional logic, with the zChaff SAT solver <ref type="bibr" target="#b14">[15]</ref> connected to it. CASL extends many sorted first-order logic with partial functions and subsorting. It also provides induction sentences, expressing the (free) generation of datatypes.</p><p>For more details on CASL see <ref type="bibr" target="#b7">[8,</ref><ref type="bibr" target="#b5">6]</ref>. 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.</p><p>CoCASL <ref type="bibr" target="#b32">[33]</ref> 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. HasCASL <ref type="bibr" target="#b43">[44]</ref> 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. Haskell <ref type="bibr" target="#b34">[35]</ref> 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. 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 <ref type="bibr" target="#b4">[5]</ref>. CASL-DL <ref type="bibr" target="#b19">[20]</ref> is an extension of a restriction of CASL, realizing a strongly typed variant of OWL DL in CASL syntax. SoftFOL <ref type="bibr" target="#b20">[21]</ref> offers three automated theorem proving (ATP) systems for first-order logic with equality: (1) SPASS <ref type="bibr" target="#b44">[45]</ref>; (2) Vampire <ref type="bibr" target="#b38">[39]</ref>; and (3) MathServ Broker<ref type="foot" target="#foot_2">5</ref>  <ref type="bibr" target="#b46">[47]</ref>. These together comprise some of the most advanced theorem provers for first-order logic. Isabelle <ref type="bibr" target="#b33">[34]</ref> is an interactive theorem prover for higher-order logic, and (jointly with others) marks the frontier of current research in interactive higher-order provers.</p><p>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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Heterogeneous Specification</head><p>Heterogeneous specification is based on some graph of logics and logic translations. The graph of currently supported logics is shown in Fig. <ref type="figure">2</ref>. 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. Heterogeneous CASL (HETCASL; see <ref type="bibr" target="#b25">[26]</ref>) 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. The syntax of heterogeneous specifications is given (in very simplified form) in Fig. <ref type="figure" target="#fig_2">4</ref>. 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Parsing and Analysis of Heterogeneous Specifications</head><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. <ref type="figure">2</ref>. 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. <ref type="figure" target="#fig_2">4</ref> to an abstract syntax tree, using the Parsec combinator parser <ref type="bibr" target="#b18">[19]</ref>. 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Proof Management with Development Graphs</head><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 <ref type="bibr" target="#b15">[16]</ref>. 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. <ref type="figure">7</ref> 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 ρ = id. This case is indicated with double arrows.</p><p>Theorem links are initially displayed in red in the tool. (In Fig. <ref type="figure">7</ref>, they are displayed using thin lines and non-filled arrow heads.) The proof calculus for development graphs <ref type="bibr" target="#b27">[28,</ref><ref type="bibr" target="#b30">31,</ref><ref type="bibr" target="#b26">27]</ref> 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 <ref type="bibr" target="#b26">[27]</ref> 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 σ : N 1 −→ N 2 between two nodes N 1 and N 2 in a development graph. Note that the logics of N 1 and N 2 may be different. The logical framework approach assumes that the theories of N 1 and N 2 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 N 1 and N 2 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="8">An Example</head><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 <ref type="bibr" target="#b37">[38]</ref>. 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. <ref type="figure" target="#fig_3">5</ref> 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. 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><formula xml:id="formula_4">X DC Y X EC Y X TPP Y X NTPP Y X PO Y X EQ Y X TPPi Y X NTPPi Y</formula><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 <ref type="bibr" target="#b45">[46]</ref>, 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:</p><p>1. Verification that closed discs in a metric (cf. node RCC FO in Fig. <ref type="figure">7</ref>) satisfy some of Bennett's connectedness axioms <ref type="bibr" target="#b3">[4]</ref> (cf. node MetricSpace in Fig. <ref type="figure">7</ref>). RCC FO consists of very few (actually, 4) theorems, so-called bridge lemmas.</p><p>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. <ref type="figure">7</ref>). The latter are many (actually, 95) first-order theorems, and can be proved using the automated theorem proving system SPASS.  The graphical user interface (GUI) for calling a prover is shown in Fig. <ref type="figure">8</ref>. 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 <ref type="bibr" target="#b6">[7,</ref><ref type="bibr" target="#b26">27]</ref>:</p><formula xml:id="formula_5">(Σ ,Γ ) |= I Σ ϕ iff (Φ(Σ ), α(Γ )) |= J α Σ (ϕ).</formula><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 <ref type="bibr" target="#b0">[1]</ref>, (Σ ,Γ ) |= 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 <ref type="bibr" target="#b20">[21]</ref>.</p><p>If an ATP is selected, a new window is opened, which controls the prover calls (Fig. <ref type="figure">9</ref>). Here we use the connection to SPASS <ref type="bibr" target="#b44">[45]</ref>, for the other ATPs listed (Math-Serv Broker and Vampire) see <ref type="bibr" target="#b20">[21]</ref>. Isabelle <ref type="bibr" target="#b33">[34]</ref>, a semi automatic theorem prover, is started with ProofGeneral <ref type="bibr" target="#b1">[2]</ref> 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. <ref type="figure">7</ref> 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).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="10">Conclusion</head><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 <ref type="bibr" target="#b31">[32]</ref> and <ref type="bibr" target="#b5">[6]</ref>.</p><p>There is related work about generic parsers, user interfaces, theorem provers etc. <ref type="bibr" target="#b33">[34,</ref><ref type="bibr" target="#b1">2]</ref>. 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. 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 <ref type="bibr" target="#b21">[22]</ref>. 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. Future work will integrate more logics and interface more existing theorem proving tools with specific institutions in HETS. In <ref type="bibr" target="#b24">[25]</ref>, we have presented a heterogeneous specification with more diverse formalisms, namely CSP-CASL <ref type="bibr" target="#b39">[40]</ref> (a combination of CASL with the process algebra CSP), and a temporal logic (as part of MODALCASL). An example is shown in Fig. <ref type="figure" target="#fig_5">10</ref>. 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 <ref type="bibr" target="#b28">[29]</ref> 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 <ref type="bibr" target="#b36">[37]</ref>, which shall lead to correctness proofs for the comorphisms integrated into HETS.</p><p>Carsten Fischer, Jorina Freya Gerken, Rainer Grabbe, Sonja Gröning, Daniel Hausmann, Wiebke Herding, Hendrik Iben, Cui "Ken" Jian, Heng Jiang, Anton Kirilov, Tina Krausser, Martin Kühl, Mingyi Liu, Dominik Lücke, Maciek Makowski, Immanuel Normann, Razvan Pascanu, Daniel Pratsch, Felix Reckers, Markus Roggenbach, Pascal Schmidt, Lutz Schröder, Paolo Torrini, René Wagner, Jian Chun Wang and Thiemo Wiedemeyer for help with the implementation of HETS, and Erwin R. Catesbeiana for testing the consistency checker.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 :</head><label>1</label><figDesc>Fig. 1: Multiple viewpoints</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .Fig. 3 .</head><label>23</label><figDesc>Fig. 2. Architecture of the heterogeneous tool set</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 4 .</head><label>4</label><figDesc>Fig.4. Syntax of a simple subset of the heterogeneous specification language. BASIC-SPEC and SYMBOL-MAP have a logic specific syntax, while ID stands for some form of identifiers.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. The RCC-8 relations</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 8 . 9 .</head><label>89</label><figDesc>Fig. 8. Hets Goal and Prover Interface Fig. 9. Interface of the SPASS prover</figDesc><graphic coords="13,96.36,197.27,197.00,262.67" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>logicFig. 10 .</head><label>10</label><figDesc>Fig. 10. A specification of fair buffers in CASL, CSP-CASL and MODALCASL.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>. 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.</figDesc><table><row><cell>view RCC FO IN METRICSPACE :</cell><cell></cell><cell></cell></row><row><cell>RCC FO to</cell><cell></cell><cell></cell></row><row><cell cols="2">{EXTMETRICSPACEBYCLOSEDBALLS[METRICSPACE]</cell><cell></cell></row><row><cell>then %def</cell><cell></cell><cell></cell></row><row><cell cols="2">pred C : ClosedBall × ClosedBall;</cell><cell></cell></row><row><cell cols="2">nonempty(x : ClosedBall) ⇔ x C x</cell><cell></cell></row><row><cell>∀ x, y : ClosedBall</cell><cell></cell><cell></cell></row><row><cell>• x C y ⇔ ∃ s : S • rep x s ∧ rep y s</cell><cell></cell><cell>%(C def)%</cell></row><row><cell>} =</cell><cell></cell><cell></cell></row><row><cell>QReg → ClosedBall</cell><cell></cell><cell></cell></row><row><cell>end</cell><cell></cell><cell></cell></row><row><cell cols="3">Fig. 6. Specification of a heterogeneous refinement expressing correctness of the RCC8 composition table</cell></row><row><cell>RCC_FO</cell><cell>ExtMetricSpaceByClosedBalls</cell><cell>MetricSpace</cell></row><row><cell>ExtRCC_FO</cell><cell></cell><cell></cell></row><row><cell>ExtRCCByRCC5Rels</cell><cell>ExtRCCByRCC8Rels</cell><cell></cell></row><row><cell cols="3">Fig. 7. Development graph for correctness proof of RCC8 composition table in CASL and HASCASL</cell></row><row><cell cols="2">9 Theorem Proving with HETS</cell><cell></cell></row></table><note>Fig</note></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_0">At least once a logic for PVS has been added.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_1">If necessary, one can always extend the logic with new sentences leading to constructive specifications.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_2">which chooses an appropriate ATP upon a classification of the FOL problem</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgement</head><p>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></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Click&apos;n prove: Interactive proofs within set theory</title>
		<author>
			<persName><forename type="first">Jean-Raymond</forename><surname>Abrial</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Dominique</forename><surname>Cansell</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Theorem Proving in Higher Order Logics, 16th International Conference, TPHOLs 2003</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<editor>
			<persName><forename type="first">David</forename><forename type="middle">A</forename><surname>Basin</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Burkhart</forename><surname>Wolff</surname></persName>
		</editor>
		<meeting><address><addrLine>Rom, Italy</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2003">September 8-12, 2003. 2003</date>
			<biblScope unit="volume">2758</biblScope>
			<biblScope unit="page" from="1" to="24" />
		</imprint>
	</monogr>
	<note>Proceedings</note>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Proof general: A generic tool for proof development</title>
		<author>
			<persName><forename type="first">David</forename><surname>Aspinall</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">TACAS, LNCS</title>
				<editor>
			<persName><forename type="first">Susanne</forename><surname>Graf</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Michael</forename><forename type="middle">I</forename><surname>Schwartzbach</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2000">2000</date>
			<biblScope unit="volume">1785</biblScope>
			<biblScope unit="page" from="38" to="42" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<author>
			<persName><forename type="first">Thomas</forename><surname>Baar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alfred</forename><surname>Strohmeier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ana</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">UML 2004</title>
				<editor>
			<persName><forename type="first">M</forename><forename type="middle">D</forename><surname>Moreira</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Stephen</forename><forename type="middle">J</forename><surname>Mellor</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="volume">3273</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Logical Representations for Automated Reasoning about Spatial Relationships</title>
		<author>
			<persName><forename type="first">B</forename><surname>Bennett</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1997">1997</date>
		</imprint>
		<respStmt>
			<orgName>School of Computer Studies, The University of Leeds</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">PhD thesis</note>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">The Semantic Web</title>
		<author>
			<persName><forename type="first">T</forename><surname>Berners-Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hendler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Lassila</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2001-05">May 2001</date>
			<publisher>Scientific American</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">CASL User Manual</title>
		<author>
			<persName><forename type="first">M</forename><surname>Bidoit</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">D</forename><surname>Mosses</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">LNCS</title>
		<imprint>
			<date type="published" when="2004">2900. 2004</date>
			<publisher>Springer</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">May I borrow your logic? (transporting logical structures along maps)</title>
		<author>
			<persName><forename type="first">M</forename><surname>Cerioli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Meseguer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Theoretical Computer Science</title>
		<imprint>
			<biblScope unit="volume">173</biblScope>
			<biblScope unit="page" from="311" to="347" />
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">The Common Framework Initiative)</title>
		<author>
			<persName><surname>Cofi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">LNCS</title>
		<imprint>
			<date type="published" when="2004">2960. 2004</date>
			<publisher>Springer</publisher>
		</imprint>
	</monogr>
	<note>CASL Reference Manual</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">The prosper toolkit</title>
		<author>
			<persName><forename type="first">Louise</forename><forename type="middle">A</forename><surname>Dennis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Graham</forename><surname>Collins</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Michael</forename><surname>Norrish</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Richard</forename><forename type="middle">J</forename><surname>Boulton</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Konrad</forename><surname>Slind</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Thomas</forename><forename type="middle">F</forename><surname>Melham</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">STTT</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="189" to="210" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Grothendieck institutions</title>
		<author>
			<persName><forename type="first">R</forename><surname>Diaconescu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Applied categorical structures</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="page" from="383" to="402" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">An infrastructure for intertheory reasoning</title>
		<author>
			<persName><forename type="first">M</forename><surname>William</surname></persName>
		</author>
		<author>
			<persName><surname>Farmer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Automated Deduction -CADE-17</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2000">2000</date>
			<biblScope unit="volume">1831</biblScope>
			<biblScope unit="page" from="115" to="131" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">IMPS: An interactive mathematical proof system</title>
		<author>
			<persName><forename type="first">M</forename><surname>William</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Joshua</forename><forename type="middle">D</forename><surname>Farmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">Javier</forename><surname>Guttman</surname></persName>
		</author>
		<author>
			<persName><surname>Thayer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Automated Reasoning</title>
		<imprint>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="213" to="248" />
			<date type="published" when="1993">1993</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Institution morphisms</title>
		<author>
			<persName><forename type="first">J</forename><surname>Goguen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G. Ros</forename><surname>¸u</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Formal aspects of computing</title>
		<imprint>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="page" from="274" to="307" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Institutions: Abstract model theory for specification and programming</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Goguen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">M</forename><surname>Burstall</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Predecessor in</title>
				<imprint>
			<date type="published" when="1984">1992. 1984</date>
			<biblScope unit="volume">39</biblScope>
			<biblScope unit="page" from="221" to="256" />
		</imprint>
	</monogr>
	<note>LNCS</note>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<title level="m" type="main">zChaff: Modifications and extensions</title>
		<author>
			<persName><forename type="first">Marc</forename><surname>Herbstritt</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2003-07-17">July 17 2003. Thu, 17 Jul 2003 17:11</date>
			<biblScope unit="page">37</biblScope>
		</imprint>
		<respStmt>
			<orgName>Institut für Informatik, Universität Freiburg</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Verification support environment (VSE)</title>
		<author>
			<persName><forename type="first">Dieter</forename><surname>Hutter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Bruno</forename><surname>Langenstein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Claus</forename><surname>Sengler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Jörg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Werner</forename><surname>Siekmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Wolpers</forename><surname>Stephan</surname></persName>
		</author>
		<author>
			<persName><surname>Wolpers</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">High Integrity Systems</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="523" to="530" />
			<date type="published" when="1996">1996</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<ptr target="http://www.specware.org/" />
		<title level="m">Specware 4.1 language manual</title>
				<imprint>
			<publisher>Kestrel Development Corporation</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">OMDoc -An Open Markup Format for Mathematical Documents</title>
		<author>
			<persName><forename type="first">Michael</forename><surname>Kohlhase</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">LNCS</title>
		<imprint>
			<biblScope unit="volume">4180</biblScope>
			<date type="published" when="2006">2006</date>
			<publisher>Springer</publisher>
		</imprint>
	</monogr>
	<note>version 1.2</note>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">Parsec: Direct style monadic parser combinators for the real world</title>
		<author>
			<persName><forename type="first">Daan</forename><surname>Leijen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Erik</forename><surname>Meijer</surname></persName>
		</author>
		<idno>UU-CS-2001-35</idno>
		<imprint/>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Ontologies for the Semantic Web in CASL</title>
		<author>
			<persName><forename type="first">K</forename><surname>Lüttich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Mossakowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Krieg-Brückner</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">WADT 2004</title>
				<editor>
			<persName><forename type="first">José</forename><surname>Fiadeiro</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="volume">3423</biblScope>
			<biblScope unit="page" from="106" to="125" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Reasoning Support for CASL with Automated Theorem Proving Systems</title>
		<author>
			<persName><forename type="first">Klaus</forename><surname>Lüttich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Till</forename><surname>Mossakowski</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">Springer LNCS</title>
		<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
	<note>to appear</note>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Automation for interactive proof: First prototype</title>
		<author>
			<persName><forename type="first">Jia</forename><surname>Meng</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Claire</forename><surname>Quigley</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Lawrence</forename><forename type="middle">C</forename><surname>Paulson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Inf. Comput</title>
		<imprint>
			<biblScope unit="volume">204</biblScope>
			<biblScope unit="issue">10</biblScope>
			<biblScope unit="page" from="1575" to="1596" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">General logics</title>
		<author>
			<persName><forename type="first">J</forename><surname>Meseguer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Logic Colloquium</title>
				<meeting><address><addrLine>North Holland</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1989">1989</date>
			<biblScope unit="volume">87</biblScope>
			<biblScope unit="page" from="275" to="329" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Comorphism-based Grothendieck logics</title>
		<author>
			<persName><forename type="first">T</forename><surname>Mossakowski</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MFCS, LNCS</title>
				<editor>
			<persName><forename type="first">K</forename><surname>Diks</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">W</forename><surname>Rytter</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2002">2002</date>
			<biblScope unit="volume">2420</biblScope>
			<biblScope unit="page" from="593" to="604" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">Foundations of heterogeneous specification</title>
		<author>
			<persName><forename type="first">T</forename><surname>Mossakowski</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">WADT 2002</title>
				<editor>
			<persName><forename type="first">M</forename><surname>Wirsing</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Pattinson</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">R</forename><surname>Hennicker</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="volume">2755</biblScope>
			<biblScope unit="page" from="359" to="375" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<monogr>
		<title level="m" type="main">HetCASL -heterogeneous specification</title>
		<author>
			<persName><forename type="first">T</forename><surname>Mossakowski</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
	<note>language summary</note>
</biblStruct>

<biblStruct xml:id="b26">
	<monogr>
		<title level="m" type="main">Heterogeneous specification and the heterogeneous tool set</title>
		<author>
			<persName><forename type="first">T</forename><surname>Mossakowski</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
		<respStmt>
			<orgName>University of Bremen</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Habilitation thesis</note>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">Development graphs -proof management for structured specifications</title>
		<author>
			<persName><forename type="first">T</forename><surname>Mossakowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Autexier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Hutter</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Logic and Algebraic Programming</title>
		<imprint>
			<biblScope unit="volume">67</biblScope>
			<biblScope unit="issue">1-2</biblScope>
			<biblScope unit="page" from="114" to="145" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">Institutional 2-cells and Grothendieck institutions</title>
		<author>
			<persName><forename type="first">Till</forename><surname>Mossakowski</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Algebra, Meaning and Computation. Essays Dedicated to Joseph A. Goguen on the Occasion of His 65th Birthday</title>
		<title level="s">LNCS</title>
		<editor>
			<persName><forename type="first">K</forename><surname>Futatsugi</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J.-P</forename><surname>Jouannaud</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Meseguer</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="volume">4060</biblScope>
			<biblScope unit="page" from="124" to="149" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b29">
	<analytic>
		<title level="a" type="main">What is a logic?</title>
		<author>
			<persName><forename type="first">Till</forename><surname>Mossakowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Joseph</forename><surname>Goguen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Razvan</forename><surname>Diaconescu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Andrzej</forename><surname>Tarlecki</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Jean-Yves Beziau</title>
		<title level="s">Logica Universalis</title>
		<imprint>
			<publisher>Birkhäuser</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="113" to="133" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b30">
	<analytic>
		<title level="a" type="main">CASL logic</title>
		<author>
			<persName><forename type="first">Till</forename><surname>Mossakowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Piotr</forename><surname>Hoffman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Serge</forename><surname>Autexier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Dieter</forename><surname>Hutter</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">CASL Reference Manual, LNCS 2960</title>
				<editor>
			<persName><forename type="first">D</forename><surname>Peter</surname></persName>
		</editor>
		<editor>
			<persName><surname>Mosses</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer Verlag</publisher>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
	<note>part IV</note>
</biblStruct>

<biblStruct xml:id="b31">
	<analytic>
		<title level="a" type="main">The Heterogeneous Tool Set</title>
		<author>
			<persName><forename type="first">Till</forename><surname>Mossakowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Christian</forename><surname>Maeder</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Klaus</forename><surname>Lüttich</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">TACAS 2007</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<editor>
			<persName><forename type="first">Orna</forename><surname>Grumberg</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Michael</forename><surname>Huth</surname></persName>
		</editor>
		<meeting><address><addrLine>Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="volume">4424</biblScope>
			<biblScope unit="page" from="519" to="522" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b32">
	<analytic>
		<title level="a" type="main">Algebraic-co-algebraic specification in CoCASL</title>
		<author>
			<persName><forename type="first">Till</forename><surname>Mossakowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Lutz</forename><surname>Schröder</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Markus</forename><surname>Roggenbach</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Horst</forename><surname>Reichel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Logic and Algebraic Programming</title>
		<imprint>
			<biblScope unit="volume">67</biblScope>
			<biblScope unit="issue">1-2</biblScope>
			<biblScope unit="page" from="146" to="197" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b33">
	<monogr>
		<title level="m" type="main">Isabelle/HOL -A Proof Assistant for Higher-Order Logic</title>
		<author>
			<persName><forename type="first">T</forename><surname>Nipkow</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">C</forename><surname>Paulson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Wenzel</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>Springer Verlag</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b34">
	<analytic>
		<title level="a" type="main">Haskell 98 Language and Libraries -The Revised Report</title>
		<author>
			<persName><forename type="first">S</forename><surname>Peyton-Jones</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. Funct. Programming</title>
		<imprint>
			<biblScope unit="volume">13</biblScope>
			<date type="published" when="2003">2003. 2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b35">
	<analytic>
		<title level="a" type="main">Type classes: exploring the design space</title>
		<author>
			<persName><forename type="first">Peyton</forename><surname>Simon</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Mark</forename><surname>Jones</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Erik</forename><surname>Jones</surname></persName>
		</author>
		<author>
			<persName><surname>Meijer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Haskell Workshop</title>
				<imprint>
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b36">
	<monogr>
		<title level="m" type="main">System description: Twelf -a meta-logical framework for deductive systems</title>
		<author>
			<persName><forename type="first">Frank</forename><surname>Pfenning</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Carsten</forename><surname>Schürmann</surname></persName>
		</author>
		<imprint>
			<biblScope unit="page" from="202" to="206" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b37">
	<analytic>
		<title level="a" type="main">A spatial logic based on regions and connection</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">A</forename><surname>Randell</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Cui</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">G</forename><surname>Cohn</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Principles of Knowledge Representation and Reasoning: Proceedings of the 3rd International Conference (KR-92)</title>
				<editor>
			<persName><forename type="first">B</forename><surname>Nebel</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">W</forename><surname>Swartout</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Rich</surname></persName>
		</editor>
		<imprint>
			<publisher>Morgan Kaufmann</publisher>
			<date type="published" when="1992">1992</date>
			<biblScope unit="page" from="165" to="176" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b38">
	<analytic>
		<title level="a" type="main">The design and implementation of VAMPIRE</title>
		<author>
			<persName><forename type="first">Alexandre</forename><surname>Riazanov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Andrei</forename><surname>Voronkov</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">AI Communications</title>
		<imprint>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="issue">2-3</biblScope>
			<biblScope unit="page" from="91" to="110" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b39">
	<analytic>
		<title level="a" type="main">Csp-casl -a new integration of process algebra and algebraic specification</title>
		<author>
			<persName><forename type="first">Markus</forename><surname>Roggenbach</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Theor. Comput. Sci</title>
		<imprint>
			<biblScope unit="volume">354</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="42" to="71" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b40">
	<analytic>
	</analytic>
	<monogr>
		<title level="m">Integrated Formal Methods, 5th International Conference, IFM 2005</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<editor>
			<persName><forename type="first">Judi</forename><surname>Romijn</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Graeme</forename><surname>Smith</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Jaco</forename><surname>Van De Pol</surname></persName>
		</editor>
		<meeting><address><addrLine>Eindhoven, The Netherlands</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005-12-02">November 29 -December 2, 2005. 2005</date>
			<biblScope unit="volume">3771</biblScope>
		</imprint>
	</monogr>
	<note>Proceedings</note>
</biblStruct>

<biblStruct xml:id="b41">
	<analytic>
		<title level="a" type="main">Essential concepts of algebraic specification and program development</title>
		<author>
			<persName><forename type="first">Donald</forename><surname>Sannella</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Andrzej</forename><surname>Tarlecki</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Formal Aspects of Computing</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="page" from="229" to="269" />
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b42">
	<monogr>
		<title level="m" type="main">Verification of Reactive Systems</title>
		<author>
			<persName><forename type="first">Klaus</forename><surname>Schneider</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
			<publisher>Springer Verlag</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b43">
	<analytic>
		<title level="a" type="main">HasCASL: Towards integrated specification and development of Haskell programs</title>
		<author>
			<persName><forename type="first">L</forename><surname>Schröder</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Mossakowski</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">AMAST</title>
				<editor>
			<persName><forename type="first">H</forename><surname>Kirchner</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Reingeissen</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2002">2002. 2002</date>
			<biblScope unit="volume">2422</biblScope>
			<biblScope unit="page" from="99" to="116" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b44">
	<analytic>
		<title level="a" type="main">SPASS version 2.0</title>
		<author>
			<persName><forename type="first">C</forename><surname>Weidenbach</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Brahm</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Hillenbrand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Keen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Theobalt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Automated Deduction -CADE-18</title>
				<editor>
			<persName><forename type="first">Andrei</forename><surname>Voronkov</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2002">2002</date>
			<biblScope unit="volume">2392</biblScope>
			<biblScope unit="page" from="275" to="279" />
		</imprint>
	</monogr>
	<note>Topic</note>
</biblStruct>

<biblStruct xml:id="b45">
	<analytic>
		<title level="a" type="main">Qualitative constraint calculi: Heterogeneous verification of composition tables</title>
		<author>
			<persName><forename type="first">Stefan</forename><surname>Wölfl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Till</forename><surname>Mossakowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Lutz</forename><surname>Schröder</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">20th International FLAIRS Conference</title>
				<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b46">
	<analytic>
		<title level="a" type="main">The MathServe System for Semantic Web Reasoning Services</title>
		<author>
			<persName><forename type="first">Jürgen</forename><surname>Zimmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Serge</forename><surname>Autexier</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">3rd IJCAR</title>
		<title level="s">LNCS</title>
		<editor>
			<persName><forename type="first">U</forename><surname>Furbach</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">N</forename><surname>Shankar</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="volume">4130</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b47">
	<analytic>
		<title level="a" type="main">System description: The mathweb software bus for distributed mathematical reasoning</title>
		<author>
			<persName><forename type="first">Jürgen</forename><surname>Zimmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Michael</forename><surname>Kohlhase</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">18th CADE, LNCS 2392</title>
				<editor>
			<persName><forename type="first">Andrei</forename><surname>Voronkov</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2002">2002</date>
			<biblScope unit="page" from="139" to="143" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
