comp.lang.ada
 help / color / mirror / Atom feed
* Why not Coq2Ada program extraction?
@ 2018-05-01  3:38 Dan'l Miller
  2018-05-01  3:59 ` Paul Rubin
                   ` (3 more replies)
  0 siblings, 4 replies; 17+ messages in thread
From: Dan'l Miller @ 2018-05-01  3:38 UTC (permalink / raw)


Coq already extracts (generates) OCaml, Scheme, and Haskell from proofs.  Extracting Rust from Coq proofs is a work-in-progress at https://github.com/pirapira/coq2rust

Why hasn't anyone ever developed Ada extraction from Coq proofs?  Perhaps the coq2rust work-in-progress can serve as a guide and/or inspiration for an analogous coq2ada.

What if the entire English-prose ARM were re-written as Coq proofs?  Then a fresh new Ada compiler front-end could be extracted therefrom (and it would be provably verified as conforming to the ARM-in-translation-to-Coq, leaving only defects in the English prose and defects in the transliteration of prose to Coq and bugs in Coq and bugs in the Coq-to-Ada extraction as the remaining origins of compiler bugs).  Perhaps this is the eventual path to the disruptor to dislodge GNAT for which some have been yearning.

What if either the front-end's interface to LLVM or each ISA were re-written as Coq proofs?  Then a fresh new Ada compiler back-end could be extracted therefrom.

(Either all that or else it would pole-vault [Coq-extracted-]OCaml to being a language in which to implement Ada compilers.)

For a rather lucid tutorial on Coq as applied to correctness proofs of programs, please see the online editions of the 3-volume set of books:

https://SoftwareFoundations.cis.upenn.edu


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2018-05-07 16:33 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-01  3:38 Why not Coq2Ada program extraction? Dan'l Miller
2018-05-01  3:59 ` Paul Rubin
2018-05-01  6:59   ` Chris M Moore
2018-05-01  7:41     ` Paul Rubin
2018-05-01 11:44   ` Jere
2018-05-02 16:47   ` G.B.
2018-05-02 17:12     ` Paul Rubin
2018-05-01  8:21 ` Jeffrey R. Carter
2018-05-01 17:30   ` Dan'l Miller
2018-05-01  9:12 ` Paul Rubin
2018-05-07  2:30 ` Dan'l Miller
2018-05-07  2:37   ` Paul Rubin
2018-05-07  3:50     ` Dan'l Miller
2018-05-07  4:01     ` Dan'l Miller
2018-05-07  4:20       ` Paul Rubin
2018-05-07 16:33         ` Dan'l Miller
2018-05-07 13:27   ` Dan'l Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox