Skip to main content
Kent Academic Repository

Proof-Producing Synthesis of ML from Higher-Order Logic

Myreen, Magnus O. and Owens, Scott (2012) Proof-Producing Synthesis of ML from Higher-Order Logic. In: Proceedings of the 17th ACM SIGPLAN international conference on Functional programming. ACM, New York, USA, pp. 115-126. ISBN 978-1-4503-1054-3. (doi:10.1145/2364527.2364545) (The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided) (KAR id:31890)

The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided.
Official URL:
http://dx.doi.org/10.1145/2364527.2364545

Abstract

The higher-order logic found in proof assistants such as Coq and various HOL systems provides a convenient setting for the development and verification of pure functional programs. However, to efficiently run these programs, they must be converted (or "extracted") to functional programs in a programming language such as ML or Haskell. With current techniques, this step, which must be trusted, relates similar looking objects that have very different semantic definitions, such as the set-theoretic model of a logic and the operational semantics of a programming language.

In this paper, we show how to increase the trustworthiness of this step with an automated technique. Given a functional program expressed in higher-order logic, our technique provides the corresponding program for a functional language defined with an operational semantics, and it provides a mechanically checked theorem relating the two. This theorem can then be used to transfer verified properties of the logical function to the program.

We have implemented our technique in the HOL4 theorem prover, translating functions to a core subset of Standard ML, and have applied it to examples including functional data structures, a parser generator, cryptographic algorithms, and a garbage collector.

Item Type: Book section
DOI/Identification number: 10.1145/2364527.2364545
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Scott Owens
Date Deposited: 24 Oct 2012 09:59 UTC
Last Modified: 05 Nov 2024 10:14 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/31890 (The current URI for this page, for reference purposes)

University of Kent Author Information

  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.