513d653d68
Add pkgs/applications/science/logic/hol_light and pkgs/applications/science/emacs-modes/hol_light Some functionalities of HOL Light requires the compiled sources of OCaml. For now we provide a new package ocaml_with_sources. After this shuold be merged with the current version of OCaml already present in nixpkgs. svn path=/nixpkgs/trunk/; revision=20008
73 lines
2.1 KiB
Nix
73 lines
2.1 KiB
Nix
{stdenv, fetchurl, ocaml_with_sources}:
|
|
|
|
let
|
|
pname = "hol_light";
|
|
version = "100110";
|
|
webpage = http://www.cl.cam.ac.uk/~jrh13/hol-light/;
|
|
|
|
dmtcp_checkpoint = ''
|
|
|
|
(* ------------------------------------------------------------------------- *)
|
|
(* Non-destructive checkpoint using DMTCP. *)
|
|
(* ------------------------------------------------------------------------- *)
|
|
|
|
let dmtcp_checkpoint bannerstring =
|
|
let longer_banner = startup_banner ^ " with DMTCP" in
|
|
let complete_banner =
|
|
if bannerstring = "" then longer_banner
|
|
else longer_banner^"\n "^bannerstring in
|
|
(Gc.compact(); Unix.sleep 1;
|
|
try ignore(Unix.system ("dmtcp_command -bc")) with _ -> ();
|
|
Format.print_string complete_banner;
|
|
Format.print_newline(); Format.print_newline());;
|
|
'';
|
|
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
name = "${pname}-${version}";
|
|
inherit version;
|
|
|
|
src = fetchurl {
|
|
url = "${webpage}${pname}_${version}.tgz";
|
|
sha256 = "1jkn9vpl3n9dgb96zwmly32h1p3f9mcf34pg6vm0fyvqp9kbx3ac";
|
|
};
|
|
|
|
buildInputs = [ ocaml_with_sources ];
|
|
|
|
buildCommand = ''
|
|
ensureDir "$out/src"
|
|
cd "$out/src"
|
|
|
|
tar -xzf "$src"
|
|
cd hol_light
|
|
|
|
substituteInPlace hol.ml --replace \
|
|
"(try Sys.getenv \"HOLLIGHT_DIR\" with Not_found -> Sys.getcwd())" \
|
|
"\"$out/src/hol_light\""
|
|
|
|
substituteInPlace Examples/update_database.ml --replace \
|
|
"Filename.concat ocaml_source_dir" \
|
|
"Filename.concat \"${ocaml_with_sources}/src/ocaml\""
|
|
|
|
echo '${dmtcp_checkpoint}' >> make.ml
|
|
|
|
make
|
|
'';
|
|
|
|
meta = {
|
|
description = "An interactive theorem prover based on Higher-Order Logic.";
|
|
longDescription = ''
|
|
HOL Light is a computer program to help users prove interesting mathematical
|
|
theorems completely formally in Higher-Order Logic. It sets a very exacting
|
|
standard of correctness, but provides a number of automated tools and
|
|
pre-proved mathematical theorems (e.g., about arithmetic, basic set theory and
|
|
real analysis) to save the user work. It is also fully programmable, so users
|
|
can extend it with new theorems and inference rules without compromising its
|
|
soundness.
|
|
'';
|
|
homepage = webpage;
|
|
license = "BSD";
|
|
};
|
|
}
|