Foundations of Algebraic Specification and Formal Software Development
This book provides foundations for software specification and formal software development from the perspective of work on algebraic specification. It concentrates on developing basic concepts and studying their fundamental properties.
Saved in:
Main Authors | , |
---|---|
Format | eBook Book |
Language | English |
Published |
Berlin, Heidelberg
Springer Nature
2012
Springer Springer Berlin / Heidelberg Springer Berlin Heidelberg |
Edition | 1 |
Series | Monographs in Theoretical Computer Science. An EATCS Series |
Subjects | |
Online Access | Get full text |
ISBN | 3642173365 9783642173363 9783642173356 3642173357 |
ISSN | 1431-2654 |
DOI | 10.1007/978-3-642-17336-3 |
Cover
Table of Contents:
- 8.3.1 Behavioural satisfaction vs. behavioural abstraction -- 8.4 Behavioural implementations -- 8.4.1 Implementing specifications up to behavioural equivalence -- 8.4.2 Stepwise development and stability -- 8.4.3 Stable and behaviourally trivial constructors -- 8.4.4 Global stability and behavioural correctness -- 8.4.5 Summary -- 8.5 To partial algebras and beyond -- 8.5.1 Behavioural specifications in FPL -- 8.5.2 A larger example -- 8.5.3 Behavioural specifications in an arbitrary institution -- 8.5.3.1 INS-behavioural abstraction and implementations -- 8.5.3.2 INS-behavioural morphisms -- 8.5.3.3 Observing computations -- 8.6 Bibliographical remarks -- Chapter 9 Proofs for specifications -- 9.1 Entailment systems -- 9.2 Proof in structured specifications -- 9.3 Entailment between specifications -- 9.4 Correctness of constructor implementations -- 9.5 Proof and parameterisation -- 9.6 Proving behavioural properties -- 9.6.1 Behavioural consequence -- 9.6.2 Behavioural consequence for specifications -- 9.6.3 Behavioural consequence between specifications -- 9.6.4 Correctness of behavioural implementations -- 9.6.5 A larger example, revisited -- 9.7 Bibliographical remarks -- Chapter 10 Working with multiple logical systems -- 10.1 Moving specifications between institutions -- 10.1.1 Institution semi-morphisms -- 10.1.2 Duplex institutions -- 10.1.3 Migrating specifications -- 10.2 Institution morphisms -- 10.3 The category of institutions -- 10.4 Institution comorphisms -- 10.5 Bibliographical remarks -- Bibliography -- Index of categories and functors -- Index of institutions -- Index of notation -- Index of concepts
- Intro -- Foundations of Algebraic Specification and Formal Software Development -- Preface -- Contents -- Introduction -- 0.1 Modelling software systems as algebras -- 0.2 Specifications -- 0.3 Software development -- 0.4 Generality and abstraction -- 0.5 Formality -- 0.6 Outlook -- Chapter 1 Universal algebra -- 1.1 Many-sorted sets -- 1.2 Signatures and algebras -- 1.3 Homomorphisms and congruences -- 1.4 Term algebras -- 1.5 Changing signatures -- 1.5.1 Signature morphisms -- 1.5.2 Derived signature morphisms -- 1.6 Bibliographical remarks -- Chapter 2 Simple equational specifications -- 2.1 Equations -- 2.2 Flat specifications -- 2.3 Theories -- 2.4 Equational calculus -- 2.5 Initial models -- 2.6 Term rewriting -- 2.7 Fiddling with the definitions -- 2.7.1 Conditional equations -- 2.7.2 Reachable semantics -- 2.7.3 Dealing with partial functions: error algebras -- 2.7.4 Dealing with partial functions: partial algebras -- 2.7.5 Partial functions: order-sorted algebras -- 2.7.6 Other options -- 2.8 Bibliographical remarks -- Chapter 3 Category theory -- 3.1 Introducing categories -- 3.1.1 Categories -- 3.1.1.1 Foundations -- 3.1.2 Constructing categories -- 3.1.2.1 Subcategories -- 3.1.2.2 Opposite categories and duality -- 3.1.2.3 Product categories -- 3.1.2.4 Morphism categories -- 3.1.3 Category-theoretic definitions -- 3.1.3.1 Epimorphisms and monomorphisms -- 3.1.3.2 Isomorphic objects -- 3.2 Limits and colimits -- 3.2.1 Initial and terminal objects -- 3.2.1.1 Dually: -- 3.2.2 Products and coproducts -- 3.2.2.1 Dually: -- 3.2.3 Equalisers and coequalisers -- 3.2.3.1 Dually: -- 3.2.4 Pullbacks and pushouts -- 3.2.4.1 Dually: -- 3.2.5 The general situation -- 3.3 Factorisation systems -- 3.4 Functors and natural transformations -- 3.4.1 Functors -- 3.4.2 Natural transformations -- 3.4.3 Constructing categories, revisited
- 3.4.3.1 Comma categories -- 3.4.3.2 Indexed categories -- 3.4.3.3 Functor categories -- 3.4.3.4 Equivalence of categories -- 3.5 Adjoints -- 3.5.1 Free objects -- 3.5.2 Left adjoints -- 3.5.3 Adjunctions -- 3.6 Bibliographical remarks -- Chapter 4 Working within an arbitrary logical system -- 4.1 Institutions -- 4.1.1 Examples of institutions -- 4.1.2 Constructing institutions -- 4.2 Flat specifications in an arbitrary institution -- 4.3 Constraints -- 4.4 Exact institutions -- 4.4.1 Abstract model theory -- 4.4.2 Free variables and quantification -- 4.4.2.1 Universal quantification -- 4.5 Institutions with reachability structure -- 4.5.1 The method of diagrams -- 4.5.2 Abstract algebraic institutions -- 4.5.3 Liberal abstract algebraic institutions -- 4.5.4 Characterising abstract algebraic institutions that admit reachable initial models -- 4.6 Bibliographical remarks -- Chapter 5 Structured specifications -- 5.1 Specification-building operations -- 5.2 Towards specification languages -- 5.3 An example -- 5.4 A property-oriented semantics of specifications -- 5.5 The category of specifications -- 5.6 Algebraic laws for structured specifications -- 5.7 Bibliographical remarks -- Chapter 6 Parameterisation -- 6.1 Modelling generic modules -- 6.2 Specifying generic modules -- 6.3 Parameterised specifications -- 6.4 Higher-order parameterisation -- 6.5 An example -- 6.6 Bibliographical remarks -- Chapter 7 Formal program development -- 7.1 Simple implementations -- 7.2 Constructor implementations -- 7.3 Modular decomposition -- 7.4 Example -- 7.5 Bibliographical remarks -- Chapter 8 Behavioural specifications -- 8.1 Motivating example -- 8.2 Behavioural equivalence and abstraction -- 8.2.1 Behavioural equivalence -- 8.2.2 Behavioural abstraction -- 8.2.3 Weak behavioural equivalence -- 8.3 Behavioural satisfaction
- Intro -- Foundations of Algebraic Specification and Formal Software Development -- Preface -- Contents -- Introduction -- Chapter 1 Universal algebra -- Chapter 2 Simple equational specifications -- Chapter 3 Category theory -- Chapter 4 Working within an arbitrary logical system -- Chapter 5 Structured specifications -- Chapter 6 Parameterisation -- Chapter 7 Formal program development -- Chapter 8 Behavioural specifications -- Chapter 9 Proofs for specifications -- Chapter 10 Working with multiple logical systems -- Bibliography -- Index of categories and functors -- Index of institutions -- Index of notation -- Index of concepts