Abstraction Barriers in Equational Proof
Module constructs in programming languages have protection mechanisms hindering unauthorised external access to internal operators of data types. In some cases, granting external access to internal operators would result in serious violation of a data type’s specified external properties. In order to reason consistently about specifications of such data types, it is necessary in general to incorporate a notion of protective abstraction barrier in proof strategies as well. We show how this can be done in equational calculus by simply restricting the congruence axiom, and see how the motivation for this naturally arises from FI and FRI approaches to specification refinement.
KeywordsData Type Congruence Class Ground Term Behavioural Equality Intensional Operator
Unable to display preview. Download preview PDF.
- M. Bidoit, D. Sannella, and A. Tarlecki. Behavioural encapsulation. CoFI Language Design Study Note, 1996. Available at ftp://ftp.brics.dk/Projects/CoFI/StudyNotes/Lang/MB+DTS+AT-1.ps.Z.
- M.V. Cengarle. Formal Specification with Higher-Order Parameterization. PhD thesis, Fakultät für Mathematik, LMU, München, 1994.Google Scholar
- O.-J. Dahl and O. Owe. Formal development with ABEL. Forskningsraport 552, Institutt for informatikk, Universitetet i Oslo, 1991.Google Scholar
- J. Farrés-Casals. Verification in ASL and Related Specification Languages, Report CST-92-92. PhD thesis, Dept. of Computer Science, University of Edinburgh, 1992.Google Scholar
- J.E. Hannay. Referential opacity in equational reasoning. Tech. rep. ECS-LFCS-98-398, LFCS, Division of Informatics, Univ. of Edinburgh, 1998.Google Scholar
- R. Hennicker. Structured specifications with behavioural operators: Semantics, proof methods and applications. Habilitationsschrift, Inst. für Informatik, LMU, München, 1997.Google Scholar
- M. Hofmann. Extensional Concepts in Intensional Type Theory, Report CST-117-95 and Tech. Report ECS-LFCS-95-327. PhD thesis, Dept. of Computer Science, University of Edinburgh, 1995.Google Scholar
- C. Morgan. Programming from Specifications, 2nd ed. Prentice Hall International Series in Computer Science; C.A.R. Hoare, Series Editor. Prentice-Hall, UK, 1994.Google Scholar
- D. Sannella. Formal development in extended ML. In Proc. 3rd BCS/FACS Workshop on Refinement, pages 99–130, Hursley Park, 1991. Springer Workshops in Computing.Google Scholar
- O. Schoett. Data Abstraction and the Correctness of Modular Programming. PhD thesis, University of Edinburgh, 1986.Google Scholar
- A.S. Troelstra and D. van Dalen. Constructivism in Mathematics, An Introduc-tion, volume 121 of Studies in Logic and The Foundations of Mathematics. North Holland, 1988.Google Scholar
- M. Wirsing. Algebraic specification. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, chapter 13, pages 675–788. Elsevier, 1990.Google Scholar
- M. Wirsing. Structured specifications: Syntax, semantics and proof calculus. In F.L. Bauer, W. Brauer, and H. Schwichtenberg, editors, Logic and Algebra of Specification, Intl. Summer School Marktoberdorf, NATO ASI Series F, pages 411–442. Springer, 1993.Google Scholar
- M. Wirsing. Algebraic Specification Languages: An Overview. In E. Astesiano, G. Reggio, and A. Tarlecki, editors, Recent Trends in Data Type Specification, LNCS, pages 81–115. Springer, 1994.Google Scholar