Embedding Untrusted Imperative ML Oracles into Coq Verified Code - Archive ouverte HAL Access content directly
Preprints, Working Papers, ... Year : 2019

Embedding Untrusted Imperative ML Oracles into Coq Verified Code

Sylvain Boulmé
Thomas Vandendorpe
  • Function : Author

Abstract

This paper investigates a lightweight approach-combining Coq and OCaml typecheckers-in order to formally verify higher-order imperative programs in partial correctness. In this approach, the user does never formally reason about effects of imperative functions, but only about their results. Formal guarantees are obtained by combining parametric reasoning over polymorphic functions (i.e. "theorems for free" a la Wadler) with verified defensive programming. This paper illustrates the approach on several examples. Among them: first, the certification of a polymorphic memoized fixpoint operator using untrusted hash-tables; second, a certified Boolean SAT-solver, invoking internally any untrusted but state-of-the-art SAT-solver (itself generally programmed in C/C++).
Fichier principal
Vignette du fichier
main_preprint.pdf (1.06 Mo) Télécharger le fichier
Origin Files produced by the author(s)
Loading...

Dates and versions

hal-02062288 , version 1 (08-03-2019)
hal-02062288 , version 2 (16-07-2019)

Identifiers

  • HAL Id : hal-02062288 , version 2

Cite

Sylvain Boulmé, Thomas Vandendorpe. Embedding Untrusted Imperative ML Oracles into Coq Verified Code. 2019. ⟨hal-02062288v2⟩

Relations

209 View
279 Download

Share

Gmail Mastodon Facebook X LinkedIn More