Reasoning with Executable Specifications

Starting from the specification of a small imperative programming language, and the description of two program transformations on this language, we formally prove the correctness of these transformations. The formal specifications are given in a single format, and can be compiled into both executable tools and collections of definitions to reason about into a theorem prover. This work is a case study of an environment integrating executable tool generation and formal reasoning on these tools.

[1]  Yves Bertot Une automatisation de calcul des residus en semantique naturelle , 1991 .

[2]  Rachel E. O. Roxas,et al.  Proof Of Program Transformations , 1991, 1991., International Workshop on the HOL Theorem Proving System and Its Applications.

[3]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.

[4]  Furio Honsell,et al.  A framework for defining logics , 1993, JACM.

[5]  Joëlle Despeyroux,et al.  Proof of Translation in Natural Semantics , 1986, LICS.

[6]  Karl-Heinz Buth Techniques for modelling structured operational and denotational semantics definitions with term rewriting systems , 1994 .

[7]  Frank Pfenning,et al.  Implementing the Meta-Theory of Deductive Systems , 1992, CADE.

[8]  M. Gordon HOL: A Proof Generating System for Higher-Order Logic , 1988 .

[9]  Thierry Despeyroux,et al.  Executable Specification of Static Semantics , 1984, Semantics of Data Types.

[10]  Thomas Kropf,et al.  Simplifying Deep Embedding: A Formalised Code Generator , 1994, TPHOLs.

[11]  Vincent Zammit,et al.  Symbolic Animation as a Proof Tool , 1994, TPHOLs.

[12]  Amy P. Felty,et al.  The Coq proof assistant user's guide : version 5.6 , 1990 .

[13]  Delphine Terrasse,et al.  Encoding Natural Semantics in Coq , 1995, AMAST.

[14]  Pierre Deransart,et al.  Programming Languages Implementation and Logic Programming , 1989, Lecture Notes in Computer Science.

[15]  F. Honsell,et al.  A Framework for De ning LogicsRobert Harper , 1987 .

[16]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[17]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[18]  Amy P. Felty,et al.  Generalization and Reuse of Tactic Proofs , 1994, LPAR.

[19]  André Hirschowitz,et al.  Higher-Order Abstract Syntax with Induction in Coq , 1994, LPAR.

[20]  Isabelle Attali,et al.  Compiling TYPOL with Attribute Grammars , 1988, PLILP.

[21]  Glynn Winskel,et al.  The formal semantics of programming languages - an introduction , 1993, Foundation of computing series.

[22]  Frank Pfenning,et al.  Elf: a language for logic definition and verified metaprogramming , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[23]  Paul Klint,et al.  A meta-environment for generating programming environments , 1989, TSEM.

[24]  Christine Paulin-Mohring,et al.  Inductive Definitions in the system Coq - Rules and Properties , 1993, TLCA.