summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/coq-modules/fiat/default.nix41
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/development/coq-modules/fiat/default.nix b/pkgs/development/coq-modules/fiat/default.nix
new file mode 100644
index 000000000000..4eca588b205c
--- /dev/null
+++ b/pkgs/development/coq-modules/fiat/default.nix
@@ -0,0 +1,41 @@
+{stdenv, fetchurl, coq}:
+
+stdenv.mkDerivation rec {
+
+  name = "coq-fiat-${coq.coq-version}-${version}";
+  version = "20141031";
+
+  src = fetchurl {
+    url = "http://plv.csail.mit.edu/fiat/releases/fiat-${version}.tar.gz";
+    sha256 = "0c5jrcgbpdj0gfzg2q4naqw7frf0xxs1f451fnic6airvpaj0d55";
+  };
+
+  buildInputs = [ coq.ocaml coq.camlp5 ];
+  propagatedBuildInputs = [ coq ];
+
+  enableParallelBuilding = true;
+
+  unpackPhase = ''
+    mkdir fiat
+    cd fiat
+    tar xvzf ${src}
+  '';
+
+  buildPhase = "make sources";
+
+  installPhase = ''
+    COQLIB=$out/lib/coq/${coq.coq-version}/
+    mkdir -p $COQLIB/user-contrib/Fiat
+    cp -pR src $COQLIB/user-contrib/Fiat
+  '';
+
+  installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
+
+  meta = with stdenv.lib; {
+    homepage = http://plv.csail.mit.edu/fiat/;
+    description = "Fiat is a library for the Coq proof assistant for synthesizing efficient correct-by-construction programs from declarative specifications";
+    maintainers = with maintainers; [ jwiegley ];
+    platforms = coq.meta.platforms;
+  };
+
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 79bec58959ad..b11e3261f917 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12415,6 +12415,8 @@ let
 
     domains = callPackage ../development/coq-modules/domains {};
 
+    fiat = callPackage ../development/coq-modules/fiat {};
+
     flocq = callPackage ../development/coq-modules/flocq {};
 
     heq = callPackage ../development/coq-modules/heq {};