From 9193769161e1f06b371eed99dfe9e90fec9a14a6 Mon Sep 17 00:00:00 2001 From: Emilio Jesus Gallego Arias Date: Wed, 5 Feb 2020 17:46:07 +0100 Subject: [build] Consolidate stdlib's .v files under a single directory. Currently, `.v` under the `Coq.` prefix are found in both `theories` and `plugins`. Usually these two directories are merged by special loadpath code that allows double-binding of the prefix. This adds some complexity to the build and loadpath system; and in particular, it prevents from handling the `Coq.*` prefix in the simple, `-R theories Coq` standard way. We thus move all `.v` files to theories, leaving `plugins` as an OCaml-only directory, and modify accordingly the loadpath / build infrastructure. Note that in general `plugins/foo/Foo.v` was not self-contained, in the sense that it depended on files in `theories` and files in `theories` depended on it; moreover, Coq saw all these files as belonging to the same namespace so it didn't really care where they lived. This could also imply a performance gain as we now effectively traverse less directories when locating a library. See also discussion in #10003 --- plugins/extraction/ExtrHaskellZInt.v | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 plugins/extraction/ExtrHaskellZInt.v (limited to 'plugins/extraction/ExtrHaskellZInt.v') diff --git a/plugins/extraction/ExtrHaskellZInt.v b/plugins/extraction/ExtrHaskellZInt.v deleted file mode 100644 index 0345ffc4e8..0000000000 --- a/plugins/extraction/ExtrHaskellZInt.v +++ /dev/null @@ -1,26 +0,0 @@ -(** Extraction of [Z] into Haskell's [Int] *) - -Require Coq.extraction.Extraction. - -Require Import ZArith. -Require Import ExtrHaskellZNum. - -(** - * Disclaimer: trying to obtain efficient certified programs - * by extracting [Z] into [Int] is definitively *not* a good idea. - * See comments in [ExtrOcamlNatInt.v]. - *) - -Extract Inductive positive => "Prelude.Int" [ - "(\x -> 2 Prelude.* x Prelude.+ 1)" - "(\x -> 2 Prelude.* x)" - "1" ] - "(\fI fO fH n -> if n Prelude.== 1 then fH () else - if Prelude.odd n - then fI (n `Prelude.div` 2) - else fO (n `Prelude.div` 2))". - -Extract Inductive Z => "Prelude.Int" [ "0" "(\x -> x)" "Prelude.negate" ] - "(\fO fP fN n -> if n Prelude.== 0 then fO () else - if n Prelude.> 0 then fP n else - fN (Prelude.negate n))". -- cgit v1.2.3