Abstract
We present a Theory of Specifications based on Martin-Löf's type theory, with rules for simultaneously constructing programs and their correctness proofs. The theory contains types for representing specifications whose corresponding notion of implementation is that of a pair formed by a program and a correctness proof. The rules of the theory are such that in implementations the program parts appear mixed together with the proof parts. A confluent and normalizing computational relation performs the task of separating programs from proofs. As a consequence, every implementation computes to a pair composed of a program and a proof of its correctness, and so the program extraction procedure is immediate.
Similar content being viewed by others
References
Barendregt, H. P.: Lambda calculi with types, in S. Abramsky, D. Gabbay, and T. Maibaum (eds.), Handbook of Logic in Computer Science, Vol. 1, Oxford University Press, 1992, pp. 118–310.
Barras et al.: The Coq proof assistant reference manual, Technical report, INRIA, 1999.
Berardi, S.: Type Dependency and Constructive Mathematics, Ph.D. Thesis, Carnegie Mellon University and Universitá di Torino, 1990.
Betarte, G.: Dependent Record Types and Algebraic Structures in Type Theory, Ph.D. Thesis, Department of Computing Science, University of Göteborg, Göteborg, Sweden, 1998.
Burstall, R. and McKinna, J.: Deliverables: An approach to program development in the calculus of constructions, in Proceedings of the First Workshop on Logical Frameworks, Antibes, 1990, pp. 113, 121.
Magnusson, L.: The Implementation of Alf-a Proof Editor Based on Martin-Löf 's Monomorphic Type Theory with Explicit Substitution, Ph.D. Thesis, Chalmers University of Technology, Göteborg, Sweden, 1994.
Nordström, B., Petersson,K., and Smith, J. M.: Programming in Martin-Löf 's Type Theory: An Introduction, Oxford University Press, 1990.
Parent, C.: Developing certified programs in the system Coq, in H. Barendregt and T. Nipkow (eds.), Types for Proofs and Programs, 1994, pp. 291–312.
Paulin-Mohring, C.: Extracting Fω's programs from proofs in the calculus of constructions, in Sixteenth Anual ACM Symposium on Principles of Programming Languages, Austin, 1989, pp. 32–49.
Paulin-Mohring, C. and Werner, B.: Synthesis of ML programs in the system Coq, J. Symbolic Comput. 15 (1993), 607–640.
Poll, E.: A Programming Logic Based on Type Theory, Ph.D. Thesis, Eindhoven University of Technology, 1994.
Severi, P.: Normalisation on Lambda Calculus and its Relation to Type Inference, Ph.D.Thesis, Eindhoven University of Technology, 1996.
Szasz, N.: A Theory of Specifications, Programs and Proofs, Ph.D. Thesis, Department of Computing Science, Chalmers University of Technology, S-412 96, Göteborg, Sweden, 1997.
Terlouw, J.: Een nadere bewijstheoretische analyse van GSTT's, Manuscript, 1989.
Rights and permissions
About this article
Cite this article
Severi, P., Szasz, N. Studies of a Theory of Specifications with Built-in Program Extraction. Journal of Automated Reasoning 27, 61–87 (2001). https://doi.org/10.1023/A:1010663224299
Issue Date:
DOI: https://doi.org/10.1023/A:1010663224299