From 74db38db11a7e107119362983e388cfb5ead3431 Mon Sep 17 00:00:00 2001 From: "B. Wilson" Date: Mon, 11 May 2020 20:10:48 +0900 Subject: [PATCH] gnu: Add metamath. To: guix-patches@gnu.org * gnu/packages/maths.scm (metamath): New variable. --- gnu/packages/maths.scm | 97 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 45d699e39c..e6f4cbe980 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -38,6 +38,7 @@ ;;; Copyright © 2020 R Veera Kumar ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2020 Nicolò Balzarotti +;;; Copyright © 2020 B. Wilson ;;; ;;; This file is part of GNU Guix. ;;; @@ -5686,3 +5687,99 @@ and conversions, physical constants, symbolic calculations (including integrals and equations), arbitrary precision, uncertainity propagation, interval arithmetic, plotting.") (license license:gpl2+))) + +(define-public metamath + ;; Upstream pushed a commit on top of v0.182 that fixes a bug in Makefile.am. + ;; Using this commit lets us avoid directly including the patch here. In the + ;; next version bump, we should be able to replace this and directly use the + ;; version tag. + (let ((commit "5df616efe4119ff88daf77e7041d45b6fa39c578") + (revision "0") + (book-name "metamath-book") + (book-version "second_edition")) + (package + (name "metamath") + (version (git-version "0.182" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/metamath/metamath-exe.git") + (commit commit))) + (sha256 + (base32 "0amjdgy42c7jypf6sz98iczlxcyl9bqx67ws1q8w2zdqk2izsyjp")) + (file-name (git-file-name name version)))) + ;; FIXME: Unfortunately, there seems to be a problem with + ;; texlive-amsfonts that prevents us from typsetting the "doc" output + ;; pdf. Once fixed, this along with the commented out sections below, + ;; should be enabled. + ; (outputs '("out" "doc")) + (build-system gnu-build-system) + ;; FIXME: Enable for "doc" output. See previous comment. + ; (inputs + ; `((,book-name + ; ,(origin + ; (method git-fetch) + ; (uri (git-reference + ; (url "https://github.com/metamath/metamath-book.git") + ; (commit book-version))) + ; (sha256 + ; (base32 + ; "1kk9nfhs0h8qccpxp1qh072bpfis7h05rlnz3qn1z641d9i4ryyq")) + ; (file-name (git-file-name book-name book-version)))))) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ;; FIXME: Required inputs to build the "doc" output. + ;; See above comment. + ; ("texlive" ,(texlive-union + ; (list texlive-amsfonts + ; texlive-bibtex + ; texlive-breqn + ; texlive-makecell + ; texlive-microtype + ; texlive-tabu + ; texlive-latex-anysize + ; texlive-latex-hyperref + ; texlive-latex-needspace + ; texlive-latex-tools))) + )) + ;; FIXME: Arguments to build the "doc" output. See above comment. + ; (arguments + ; `(#:phases + ; (let ((book-builddir "metamath-book-second_edition")) + ; (modify-phases %standard-phases + ; (add-after 'unpack 'unpack-doc + ; (lambda* (#:key inputs #:allow-other-keys) + ; (let ((book (assoc-ref inputs ,book-name))) + ; (mkdir-p book-builddir) + ; (copy-recursively book book-builddir)))) + ; (add-after 'build 'build-doc + ; (lambda _ + ; (with-directory-excursion book-builddir + ; (invoke "touch" "metamath.ind") + ; (invoke "pdflatex" "metamath") + ; (invoke "pdflatex" "metamath") + ; (invoke "bibtex" "metamath") + ; (invoke "makeindex" "metamath") + ; (invoke "pdflatex" "metamath") + ; (invoke "pdflatex" "metamath")))) + ; (add-after 'build-doc 'install-doc + ; (lambda* (#:key outputs #:allow-other-keys) + ; (let* ((pkg (strip-store-file-name (assoc-ref outputs "out"))) + ; (out-doc (assoc-ref outputs "doc"))) + ; (install-file (string-append book-builddir "/metamath.pdf") + ; (string-append out-doc "/share/doc/" pkg)) + ; #t))))))) + (home-page "http://us.metamath.org/") + (synopsis "Proof verifier based on a minimalistic formalism") + (description "Metamath is a tiny formal language and that can express +theorems in abstract mathematics, with an accompyaning @code{metamath} +executable that verifies databases of these proofs. There is a public +database, @url{https://github.com/metamath/set.mm, set.mm}, implementing +first-order logic and Zermelo-Frenkel set theory with Choice, along with a +large swath of associated, high-level theorems, e.g.@: the Fundamental Theorem +of Arithmetic, the Cauchy-Schwarz Inequality, Striling's Formula, etc. See the +Metamath book.") + ;; FIXME: The "doc" output requires license:cc0. See above comment. + ; (license '(,license:gpl2+ ,license:cc0))))) + (license license:gpl2+)))) -- 2.27.0