The Z notation: a reference manual
The Z notation: a reference manual
Specifications are not (necessarily) executable
Software Engineering Journal
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Programming from specifications
Programming from specifications
KIDS: A Semiautomatic Program Development System
IEEE Transactions on Software Engineering
Experience with Formal Methods in Critical Systems
IEEE Software
Mural: A Formal Development Support System
Mural: A Formal Development Support System
Applying Formal Software Synthesis
IEEE Software
Proof-Based Development of Specifications with KIDS/VDM
FME '94 Proceedings of the Second International Symposium of Formal Methods Europe on Industrial Benefit of Formal Methods
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume I: Conference Contributions - Volume I
Deductive Composition of Astronomical Software from Subroutine Libraries
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
Supporting component-based reuse in CARE
ACSC '02 Proceedings of the twenty-fifth Australasian conference on Computer science - Volume 4
Hi-index | 0.00 |
The paper describes the CARE toolset for interactive development of verified programs from formal specifications. The software engineer begins by giving a characterization of the application domain in the form of a mathematical theory. CARE tools are then used to progressively design a program by sketching out the program structure and gradually filling in the details. At any stage the correctness of the partial design can be checked by using one of the CARE tools to generate proof obligations. Another tool gives access to pre-proven parameterised design templates which encapsulate useful programming knowledge. When the design is complete, a third CARE tool is used to automatically synthesize a source code program which-if all the proof obligations can be discharged-is guaranteed to meet its formal specification. The knowledge base of CARE can be extended by users in a soundness-preserving manner to include reusable domain theories, library routines, design templates and proof tactics. The CARE toolset includes a fully automatic resolution-based theorem prover which will discharge many of the simpler proof obligations, and a general-purpose interactive theorem prover for the rest.