* gnu/packages/ocaml.scm (dedukti): New variable. --- gnu/packages/ocaml.scm | 58 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 3b1ddcb5b..8962a7339 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -4989,3 +4989,61 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.") simplifying the proofs of inequalities on expressions of real numbers for the Coq proof assistant.") (license license:cecill-c))) + +(define-public dedukti + (package + (name "dedukti") + (version "2.6.0") + (home-page "https://deducteam.github.io/") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/deducteam/dedukti.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0frl3diff033i4fmq304b8wbsdnc9mvlhmwd7a3zd699ng2lzbxb")))) + (inputs + `(("ocaml" ,ocaml) + ("menhir" ,ocaml-menhir))) + (native-inputs + `(("ocamlbuild" ,ocamlbuild) + ("ocamlfind" ,ocaml-findlib))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + ;; Set ocamlfind environment vars + (lambda _ + (let ((out (assoc-ref %outputs "out")) + (libpath "/lib/ocaml/site-lib")) + (begin + (setenv "OCAMLFIND_DESTDIR" (string-append out libpath)) + (mkdir-p (string-append out libpath "/dedukti")) + (setenv "PREFIX" out) + #t)))) + (replace 'build + (lambda _ + (invoke "make"))) + (replace 'check + (lambda _ + (invoke "make" "tests"))) + (add-before 'install 'set-binpath + ;; Change binary path in the makefile + (lambda _ + (let ((out (assoc-ref %outputs "out"))) + (substitute* "GNUmakefile" + (("BINDIR = (.*)$") + (string-append "BINDIR = " out "/bin"))))))))) + (synopsis "Proof-checker for the λΠ-calculus modulo theory, an extension of +the λ-calculus") + (description "Dedukti is a proof-checker for the λΠ-calculus modulo +theory. The λΠ-calculus is an extension of the simply typed λ-calculus with +dependent types. The λΠ-calculus modulo theory is itself an extension of the +λΠ-calculus where the context contains variable declaration as well as rewrite +rules. This system is not designed to develop proofs, but to check proofs +developed in other systems. In particular, it enjoys a minimalistic syntax.") + (license license:cecill-c))) -- 2.20.1 On Tue 25 Dec 2018 at 12:32 Julien Lepiller wrote: > I wonder why you didn't use the ocaml-build-system... I'm not an expert yet regarding the different build systems, but the current package essentially relies on a ~make~ and ~make install~ process, and is not linked with oasis or dune things (and using ocaml-build-system failed as well, but perhaps I should investigate more). > I don't think this synpsis is understandable to everyone. Could you use > instead a more general sentence that give an impression of what > ΛΠ-calculus modulo rewriting is? > >> + (description "Dedukti is a logical framework based on the >> +ΛΠ-calculus modulo in which many theories and logics can be >> expressed.") > > Or if you can't, please explain it with a sentence or two in the > description ;) I hope the new one is clearer...