1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
(************************************************************************)
(* v * The Coq Proof Assistant / The Coq Development Team *)
(* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *)
(* \VV/ **************************************************************)
(* // * This file is distributed under the terms of the *)
(* * GNU Lesser General Public License Version 2.1 *)
(************************************************************************)
(* Certification of Imperative Programs / Jean-Christophe Fillitre *)
(* $Id: ProgramsExtraction.v,v 1.2.16.1 2004/07/16 19:30:00 herbelin Exp $ *)
Require Export Extraction.
Extract Inductive unit => unit [ "()" ].
Extract Inductive bool => bool [ true false ].
Extract Inductive sumbool => bool [ true false ].
Require Export Correctness.
Declare ML Module "pextract".
Grammar vernac vernac : ast :=
imperative_ocaml [ "Write" "Caml" "File" stringarg($file)
"[" ne_identarg_list($idl) "]" "." ]
-> [ (IMPERATIVEEXTRACTION $file (VERNACARGLIST ($LIST $idl))) ]
| initialize [ "Initialize" identarg($id) "with" comarg($c) "." ]
-> [ (INITIALIZE $id $c) ]
.
|