## Compiler Support for Correctness Proofs (1997)

Venue: | In Automated Theorem Proving in Software Engineering (CADE-14 workshop |

Citations: | 2 - 2 self |

### BibTeX

@INPROCEEDINGS{Didrich97compilersupport,

author = {Klaus Didrich},

title = {Compiler Support for Correctness Proofs},

booktitle = {In Automated Theorem Proving in Software Engineering (CADE-14 workshop},

year = {1997}

}

### OpenURL

### Abstract

. The development of correct software is an important task which should not be carried out with the help of tools following different approaches. We propose that full support for correctness proofs should be integrated into the compiler. We outline in this paper how a compiler for a functional language can be extended to support the development of correct software. Specifications, functional programs and proofs are all contained within one compilation unit and can therefore be maintained in close relation to each other. The proof of relations between modules is given special consideration. By managing proof obligations and by deriving standard proofs automatically, the compiler lets the user concentrate on the really difficult proofs. 1 Introduction As software is increasingly used in safety-critical environments, developers have an enhanced interest in the production of correct software. Software engineers, who are used to write large applications and are now persuaded to...

### Citations

195 |
Automating the generating and se- quencing of test cases from model-based specifications
- Dick, Faivre
- 1993
(Show Context)
Citation Context ...est data. If the function is correct for this (hopefully small) set of test data, we conclude that the function is correct. Approaches exist to derive test cases from the specification, e. g. via DNF =-=[1]-=-, but the test data generation is not easily automated. The compiler could check a set of user supplied test data whether every test case is covered by one of the test data. If the definition is avail... |

40 |
Logic and Computation
- Paulson
- 1987
(Show Context)
Citation Context ...d the set of predefined tacticals. These tacticals might again be defined in the functional programming language itself. (Recall, that ml originated as programming language for the lcf theorem prover =-=[5]-=-.) As a last resort, the derivation might also be developed interactively. Interactive development of a derivation is comparable to interactive debugging of an erroneous function implementation. With ... |

32 | OPAL: Design and implementation of an algebraic programming language
- Didrich, Fett, et al.
- 1994
(Show Context)
Citation Context ...k between functional languages and algebraic specifications is close enough that much of the algebraic framework developed for handling such specifications can be reused. The functional language Opal =-=[3], which wa-=-s developed in our department, started as an applicative language and matured into an "algebraic language". We are thus able to reason about programs and specifications without changing the ... |

8 | Formal Specification of a Safe PLC Language and its Compiler
- Egger, Fett, et al.
- 1994
(Show Context)
Citation Context ... submitted to a correctness proof. A second example consists of (part of) a compiler for a (small) language for programmable controllers, which has been developed in a joint project with Daimler-Benz =-=[4]-=-. In this application area, the correctness of the compilation process is of great importance. Acknowledgement The author is thankful to Andreas Fett for his critical comments and to Niamh Warde for h... |

8 | A Method for the Development of Correct Software
- Pepper, Wirsing
- 1995
(Show Context)
Citation Context .... -- A successful proof shall result in a protocol that may be used for certification purposes. 2 Property-Checking In the Korso project a method was developed for the development of correct software =-=[8]-=- in a setting which includes specifications as a starting point of the development and executable programs as the result of software development. It uses the notion of a development graph, where nodes... |

7 |
Mechanized reasoning about functional programs
- Mintchev
- 1994
(Show Context)
Citation Context ...tions. The correctness of these functions must nevertheless be proved, but, fortunately for the user, this will be done by automated theorem-provers. Work on reasoning about functional programs shows =-=[6]-=- that support for automated theorem proving in a functional setting is not only a theoretical possibility. In the following, we will use a notation which is similar (but not identical) to that used in... |

3 |
Realizing Sets by Hash Tables
- Pepper, Betschko, et al.
- 1995
(Show Context)
Citation Context ...elations this way can be implemented easily. As regards the proofs, we do not have to perform proofs within the scope of two modules, and do not have to deal with semantic intricacies as discussed in =-=[7]-=-. 3 The Proof Body The proof body contains evidence for the claim that the goal stated in the proof head is fulfilled by the program. We use this cautious wording to sum up several possibilities for c... |

3 |
Real World Applications of Functional Programming", http://- www.dcs.gla.ac.uk/fp/realworld
- Hogg
- 1997
(Show Context)
Citation Context ...compilers for functional programming languages have long emerged from their academic roots and now produce code which is fast enough to be used in practice (see the list of real world applications at =-=[9]-=-). -- There is a potential for automated theorem proving. Programs written in a functional programming style tend to consist of many one-liners, which are often equivalent or at least very similar to ... |

1 | Towards a Redesign of OPAL
- Didrich, Exner, et al.
- 1997
(Show Context)
Citation Context ...em proving in a functional setting is not only a theoretical possibility. In the following, we will use a notation which is similar (but not identical) to that used in Opal and its successor Opal 2ff =-=[2]-=-. The choice of keywords and comments should clarify the meaning of the examples. 1.2 A Vision for Compiler-Supported Correctness Proofs Following the idea of literate programming, whereby documentati... |