C
asl
– the Common Algebraic Specifcation
Language
Till Mossakowski
1
, Anne E. Haxthausen
2
, Donald Sannella
3
, and Andrezj
Tarlecki
4
1
DFKI Lab Bremen and University of Bremen, DE-28334 Bremen (P.O. Box
330 440) Germany,
till@tzi.de
2
Department of Informatics and Mathematical Modelling, Technical University of
Denmark, DK-2800 Kgs. Lyngby, Denmark,
ah@imm.dtu.dk
3
LFCS, School of Informatics, University of Edinburgh, Edinburgh, UK,
dts@inf.ed.ac.uk
4
Institute of Informatics, Warsaw University and Institute of Computer Science,
Polish Academy of Science, Warsaw, Poland,
tarlecki@mimuw.edu.pl
Summary.
Casl
is an expressive speci±cation language that has been designed to
supersede many existing algebraic speci±cation languages and provide a standard.
Casl
consists of several layers, including basic (unstructured) speci±cations, struc-
tured speci±cations and architectural speci±cations; the latter are used to prescribe
the modular structure of implementations.
We describe a simpli±ed version of the
Casl
syntax, semantics and proof calculus
for each of these three layers and state the corresponding soundness and complete-
ness theorems. The layers are orthogonal in the sense that the semantics of a given
layer uses that of the previous layer as a “black box”, and similarly for the proof
calculi. In particular, this means that
Casl
can easily be adapted to other logical
systems.
We conclude with a detailed example speci±cation of a warehouse, which serves
to illustrate the application of both
Casl
and the proof calculi for the various layers.
Key words:
Algebraic specifcation, Formal soFtware development, logic, cal-
culus, institution
1 Introduction
Algebraic specifcation
is one oF the most extensively developed approaches in
the Formal-methods area. The most Fundamental assumption underlying alge-
braic specifcation is that programs are modelled as algebraic structures that
include a collection oF sets oF data values together with Functions over those
sets. This level oF abstraction is commensurate with the view that the correct-
ness oF the input/output behaviour oF a program takes precedence over all its