The University of Southampton
University of Southampton Institutional Repository

Synthesizing Certified Code

Synthesizing Certified Code
Synthesizing Certified Code
Code certification is a lightweight approach for formally demonstrating software quality. Its basic idea is to require code producers to provide formal proofs that their code satisfies certain quality properties. These proofs serve as certificates that can be checked independently. Since code certification uses the same underlying technology as program verification, it requires detailed annotations (e.g., loop invariants) to make the proofs possible. However, manually adding annotations to the code is time-consuming and error-prone. We address this problem by combining code certification with automatic program synthesis. Given a high-level specification, our approach simultaneously generates code and all annotations required to certify the generated code. We describe a certification extension of AutoBayes, a synthesis tool for automatically generating data analysis programs. Based on built-in domain knowledge, proof annotations are added and used to generate proof obligations that are discharged by the automated theorem prover E-SETHEO. We demonstrate our approach by certifying operator- and memory-safety on a data-classification program. For this program, our approach was faster and more precise than PolySpace, a commercial static analysis tool.
automatic program synthesis, program verification, code certification, proof-carrying code, automated theorem proving
3-540-43928-5
431-450
Whalen, Michael
af8ec115-183c-4b24-8348-554843e7051f
Schumann, Johann
03135c8b-0f6e-4a20-9453-6a4e2d8a1e23
Fischer, Bernd
0c9575e6-d099-47f1-b3a2-2dbc93c53d18
Eriksson, Lars-Henrik
6b1ad5ac-6d5d-475b-b752-51377c72dac2
Lindsay, Peter A.
4e729d6e-fb9f-432f-adcc-aee911fa4413
Whalen, Michael
af8ec115-183c-4b24-8348-554843e7051f
Schumann, Johann
03135c8b-0f6e-4a20-9453-6a4e2d8a1e23
Fischer, Bernd
0c9575e6-d099-47f1-b3a2-2dbc93c53d18
Eriksson, Lars-Henrik
6b1ad5ac-6d5d-475b-b752-51377c72dac2
Lindsay, Peter A.
4e729d6e-fb9f-432f-adcc-aee911fa4413

Whalen, Michael, Schumann, Johann and Fischer, Bernd (2002) Synthesizing Certified Code. Eriksson, Lars-Henrik and Lindsay, Peter A. (eds.) FME 2002: Formal Methods - Getting IT Right, International Symposium of Formal Methods Europe, Copenhagen. 22 - 24 Jul 2002. pp. 431-450 .

Record type: Conference or Workshop Item (Paper)

Abstract

Code certification is a lightweight approach for formally demonstrating software quality. Its basic idea is to require code producers to provide formal proofs that their code satisfies certain quality properties. These proofs serve as certificates that can be checked independently. Since code certification uses the same underlying technology as program verification, it requires detailed annotations (e.g., loop invariants) to make the proofs possible. However, manually adding annotations to the code is time-consuming and error-prone. We address this problem by combining code certification with automatic program synthesis. Given a high-level specification, our approach simultaneously generates code and all annotations required to certify the generated code. We describe a certification extension of AutoBayes, a synthesis tool for automatically generating data analysis programs. Based on built-in domain knowledge, proof annotations are added and used to generate proof obligations that are discharged by the automated theorem prover E-SETHEO. We demonstrate our approach by certifying operator- and memory-safety on a data-classification program. For this program, our approach was faster and more precise than PolySpace, a commercial static analysis tool.

Text
whalen-fme.pdf - Other
Download (264kB)

More information

Published date: 2002
Additional Information: Event Dates: July 22-24, 2002
Venue - Dates: FME 2002: Formal Methods - Getting IT Right, International Symposium of Formal Methods Europe, Copenhagen, 2002-07-22 - 2002-07-24
Keywords: automatic program synthesis, program verification, code certification, proof-carrying code, automated theorem proving
Organisations: Electronic & Software Systems

Identifiers

Local EPrints ID: 262941
URI: http://eprints.soton.ac.uk/id/eprint/262941
ISBN: 3-540-43928-5
PURE UUID: 946d6bc2-5e40-4527-83bd-71aeb3819b67

Catalogue record

Date deposited: 06 Sep 2006
Last modified: 14 Mar 2024 07:22

Export record

Contributors

Author: Michael Whalen
Author: Johann Schumann
Author: Bernd Fischer
Editor: Lars-Henrik Eriksson
Editor: Peter A. Lindsay

Download statistics

Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.

View more statistics

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton: eprints@soton.ac.uk

ePrints Soton supports OAI 2.0 with a base URL of http://eprints.soton.ac.uk/cgi/oai2

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×