Abstraction Barriers in Equational Proof

  • Jo Erskine Hannay
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1548)


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.


Data Type Congruence Class Ground Term Behavioural Equality Intensional Operator 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    M. Bidoit, D. Sannella, and A. Tarlecki. Behavioural encapsulation. CoFI Language Design Study Note, 1996. Available at
  2. [2]
    M.V. Cengarle. Formal Specification with Higher-Order Parameterization. PhD thesis, Fakultät für Mathematik, LMU, München, 1994.Google Scholar
  3. [3]
    O.-J. Dahl and O. Owe. Formal development with ABEL. Forskningsraport 552, Institutt for informatikk, Universitetet i Oslo, 1991.Google Scholar
  4. [4]
    H. Ehrig, H.-J. Kreowski, B. Mahr, and P. Padawitz. Algebraic implementation of abstract data types. Theoretical Computer Science, 20:209–263, 1982.zbMATHCrossRefGoogle Scholar
  5. [5]
    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
  6. [6]
    J.E. Hannay. Referential opacity in equational reasoning. Tech. rep. ECS-LFCS-98-398, LFCS, Division of Informatics, Univ. of Edinburgh, 1998.Google Scholar
  7. [7]
    R. Hennicker. Structured specifications with behavioural operators: Semantics, proof methods and applications. Habilitationsschrift, Inst. für Informatik, LMU, München, 1997.Google Scholar
  8. [8]
    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
  9. [9]
    M. Hofmann and D. Sannella. On behavioural abstraction and behavioural satisfaction in higher-order logic. Theoretical Computer Science, 167:3–45, 1996.zbMATHCrossRefMathSciNetGoogle Scholar
  10. [10]
    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
  11. [11]
    X. Qian and A. Goldberg. Referential opacity in nondeterministic data re_nement. ACM LoPLaS, 2(1–4):233–241, 1993.CrossRefGoogle Scholar
  12. [12]
    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
  13. [13]
    D. Sannella and A. Tarlecki. Toward formal development of programs from algebraic specifications: implementations revisited. Acta Inform., 25(3):233–281, 1988.zbMATHCrossRefMathSciNetGoogle Scholar
  14. [14]
    D. Sannella and A. Tarlecki. Essential concepts of algebraic specification and program development. Formal Aspects of Computing, 9:229–269, 1997.zbMATHCrossRefGoogle Scholar
  15. [15]
    O. Schoett. Data Abstraction and the Correctness of Modular Programming. PhD thesis, University of Edinburgh, 1986.Google Scholar
  16. [16]
    H. Søndergaard and P. Sestoft. Referential transparency, definiteness and unfoldability. Acta Inform., 27(6):505–517, 1990.zbMATHCrossRefMathSciNetGoogle Scholar
  17. [17]
    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
  18. [18]
    M. Wirsing. Algebraic specification. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, chapter 13, pages 675–788. Elsevier, 1990.Google Scholar
  19. [19]
    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
  20. [20]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Jo Erskine Hannay
    • 1
  1. 1.LFCS, Division of InformaticsUniversity of EdinburghScotland

Personalised recommendations