Partial Type Equivalences for Verified Dependent Interoperability - Archive ouverte HAL Access content directly
Conference Papers Year :

Partial Type Equivalences for Verified Dependent Interoperability

(1) , (2) , (3)
1
2
3

Abstract

Full-spectrum dependent types promise to enable the development of correct-by-construction software. However, even certified software needs to interact with simply-typed or untyped programs, be it to perform system calls, or to use legacy libraries. Trading static guarantees for runtime checks, the dependent interoperability framework provides a mechanism by which simply-typed values can safely be coerced to dependent types and, conversely, dependently-typed programs can defensively be exported to a simply-typed application. In this paper, we give a semantic account of dependent interoperability. Our presentation relies on and is guided by a pervading notion of type equivalence, whose importance has been emphasized in recent work on homotopy type theory. Specifically, we develop the notion of partial type equivalences as a key foundation for dependent interoperability. Our framework is developed in Coq; it is thus constructive and verified in the strictest sense of the terms. Using our library, users can specify domain-specific partial equivalences between data structures. Our library then takes care of the (sometimes, heavy) lifting that leads to interoperable programs. It thus becomes possible, as we shall illustrate, to internalize and hand-tune the extraction of dependently-typed programs to interoperable OCaml programs within Coq itself.
Fichier principal
Vignette du fichier
main.pdf (441.38 Ko) Télécharger le fichier
Origin : Files produced by the author(s)
Loading...

Dates and versions

hal-01328012 , version 1 (25-01-2017)

Identifiers

Cite

Pierre-Evariste Dagand, Nicolas Tabareau, Éric Tanter. Partial Type Equivalences for Verified Dependent Interoperability. ICFP 2016 - 21st ACM SIGPLAN International Conference on Functional Programming, Sep 2016, Nara, Japan. pp.298-310, ⟨10.1145/2951913.2951933⟩. ⟨hal-01328012⟩
497 View
295 Download

Altmetric

Share

Gmail Facebook Twitter LinkedIn More