Department of Computer Science and Technology

Technical reports

Formal verification of data type refinement:
Theory and practice

Tobias Nipkow

September 1989, 31 pages

DOI: 10.48456/tr-180

Abstract

This paper develops two theories of data abstraction and refinement: one for applicative types, as they are found in functional programming languages, and one for state-based types found in imperative languages. The former are modelled by algebraic structures, the latter by automata. The automaton theoretic model covers not just data types but distributed systems in general. Within each theory two examples of data refinement are presented and formally verified with the theorem prover Isabelle. The examples are an abstract specification and two implementations of a memory system, and a mutual exclusion algorithm.

Full text

PDF (2.1 MB)

BibTeX record

@TechReport{UCAM-CL-TR-180,
  author =	 {Nipkow, Tobias},
  title = 	 {{Formal verification of data type refinement: Theory and
         	   practice}},
  year = 	 1989,
  month = 	 sep,
  url = 	 {https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-180.pdf},
  institution =  {University of Cambridge, Computer Laboratory},
  doi = 	 {10.48456/tr-180},
  number = 	 {UCAM-CL-TR-180}
}