Existing verification technology, though theoretically adequate, is not directly applicable to the construction of large software systems. This thesis explores the view that reasoning about code is not the proper paradigm for correct program development. Instead, specifications should be the objects of study and a logic should be formulated for constructively proving that specifications have acceptable implementations; from these proofs code may be extracted. Thus, constructive existence proofs become the programmer's main concern, while executable text is seen as a valuable by-product of correct reasoning which cannot be produced from incorrect reasoning. The thesis captures this view of program development in a logic for the for...
The refinement calculus provides a framework for the stepwise development of imperative programs fro...
Programs are like constructive proofs of their specifications. This analogy is a precise equivalenc...
We advocate an automated refinement approach to developing programs and their proofs. The approach i...
Using Martin-Löf's set theory as a programming logic one identifies specifications with sets and pro...
Using Martin-L\uf6f\u27s set theory as a programming logic one identifies specifications with sets a...
If software code is developed by humans, can we as users rely on its absolute correctness? Today's s...
Systems built for automated program construction aim at the formalization of the programming process...
Formal methods are not used widely in industrial software development, because the overhead of forma...
AbstractWe present the program development concept in a logical framework including constructive typ...
In chapter one we begin with a historical summary of the iterative programming paradigm. This leads ...
If software code is developed by humans, can we as users rely on its absolute correctness?\ud \ud To...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
We describe a formalization of the meta-mathematics of programming in a higher-order logical calculu...
This paper presents how to automatically prove that an "optimized " program is correct wit...
The refinement calculus provides a framework for the stepwise development of imperative programs fro...
Programs are like constructive proofs of their specifications. This analogy is a precise equivalenc...
We advocate an automated refinement approach to developing programs and their proofs. The approach i...
Using Martin-Löf's set theory as a programming logic one identifies specifications with sets and pro...
Using Martin-L\uf6f\u27s set theory as a programming logic one identifies specifications with sets a...
If software code is developed by humans, can we as users rely on its absolute correctness? Today's s...
Systems built for automated program construction aim at the formalization of the programming process...
Formal methods are not used widely in industrial software development, because the overhead of forma...
AbstractWe present the program development concept in a logical framework including constructive typ...
In chapter one we begin with a historical summary of the iterative programming paradigm. This leads ...
If software code is developed by humans, can we as users rely on its absolute correctness?\ud \ud To...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
We describe a formalization of the meta-mathematics of programming in a higher-order logical calculu...
This paper presents how to automatically prove that an "optimized " program is correct wit...
The refinement calculus provides a framework for the stepwise development of imperative programs fro...
Programs are like constructive proofs of their specifications. This analogy is a precise equivalenc...
We advocate an automated refinement approach to developing programs and their proofs. The approach i...