From patchwork Wed May 22 11:33:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dan Frumin X-Patchwork-Id: 14051 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 752D41700C; Wed, 22 May 2019 12:36:13 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 5F83616FDA for ; Wed, 22 May 2019 12:36:12 +0100 (BST) Received: from localhost ([127.0.0.1]:40634 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTPXW-0002jP-EE for patchwork@mira.cbaines.net; Wed, 22 May 2019 07:36:10 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40397) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTPVW-0001M1-GP for guix-patches@gnu.org; Wed, 22 May 2019 07:34:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTPVT-0004tJ-JN for guix-patches@gnu.org; Wed, 22 May 2019 07:34:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:56345) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTPVR-0004sC-UD for guix-patches@gnu.org; Wed, 22 May 2019 07:34:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hTPVR-0000c9-PN for guix-patches@gnu.org; Wed, 22 May 2019 07:34:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#35855] [PATCH] gnu: Add coq-stdpp. Resent-From: Dan Frumin Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 22 May 2019 11:34:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 35855 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 35855@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.15585248242328 (code B ref -1); Wed, 22 May 2019 11:34:01 +0000 Received: (at submit) by debbugs.gnu.org; 22 May 2019 11:33:44 +0000 Received: from localhost ([127.0.0.1]:41656 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hTPVA-0000bT-F4 for submit@debbugs.gnu.org; Wed, 22 May 2019 07:33:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54160) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hTPV6-0000bF-KX for submit@debbugs.gnu.org; Wed, 22 May 2019 07:33:41 -0400 Received: from lists.gnu.org ([209.51.188.17]:42729) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hTPV1-0004X4-Gf for submit@debbugs.gnu.org; Wed, 22 May 2019 07:33:35 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40309) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTPV0-000129-5i for guix-patches@gnu.org; Wed, 22 May 2019 07:33:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTPUy-0004UR-Qr for guix-patches@gnu.org; Wed, 22 May 2019 07:33:34 -0400 Received: from smtp1.science.ru.nl ([131.174.16.143]:55500) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hTPUy-0004Qy-Hn for guix-patches@gnu.org; Wed, 22 May 2019 07:33:32 -0400 Received: from localhost.localdomain (ip-145-116-191-160.wlan-int.ru.nl [145.116.191.160]) (authen=dfrumin@cs.ru.nl) by smtp1.science.ru.nl (8.14.4/5.32) with ESMTP id x4MBXO9G030299; Wed, 22 May 2019 13:33:27 +0200 From: Dan Frumin Date: Wed, 22 May 2019 13:33:23 +0200 Message-Id: <20190522113323.3880-1-dfrumin@cs.ru.nl> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-MIME-Autoconverted: from 8bit to quoted-printable by smtp1.science.ru.nl id x4MBXO9G030299 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Dan Frumin Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches --- gnu/packages/coq.scm | 62 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index 4f592622f5..15a7e791f9 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -25,6 +25,7 @@ #:use-module (gnu packages boost) #:use-module (gnu packages emacs) #:use-module (gnu packages flex) + #:use-module (gnu packages gawk) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ocaml) #:use-module (gnu packages perl) @@ -535,3 +536,64 @@ compiles everything down to eliminators for inductive types, equality and accessibility, providing a definitional extension to the Coq kernel.") (license license:lgpl2.1))) + +(define-public coq-stdpp + (package + (name "coq-stdpp") + (version "1.2.0") + (synopsis "Alternative Coq standard library std++") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.mpi-sws.org/iris/stdpp.git") + (commit (string-append "coq-stdpp-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11m7kqxsbxygk41v2wsi3npdzwin9fcnzc1gn0gq0rd57wnqk83i")))) + (build-system gnu-build-system) + (native-inputs + `(("grep" ,grep) ;; need egrep for tests + ("gawk" ,gawk) + ;; need diff for tests + ("diffutils" ,diffutils))) + (inputs + `(("coq" ,coq))) + (arguments + `(#:tests? #f ;; the tests are being run automaticlly as part of `make all` + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (setenv "COQLIB" (string-append (assoc-ref outputs "out") "/lib/coq/")) + (zero? (system* "make" + (string-append "COQLIB=" (assoc-ref outputs "out") + "/lib/coq/") + "install"))))))) + (description "This project contains an extended \"Standard Library\" for +Coq called coq-std++. The key features are: +@itemize +@item Great number of definitions and lemmas for common data structures such +as lists, finite maps, finite sets, and finite multisets. + +@item Type classes for common notations (like ∅, ∪, and Haskell-style monad +notations) so that these can be overloaded for different data structures. + +@item It uses type classes to keep track of common properties of types, like +it having decidable equality or being countable or finite. + +@item Most data structures are represented in canonical ways so that Leibniz +equality can be used as much as possible (for example, for maps we have m1 = +m2 iff ∀ i, m1 !! i = m2 !! i). On top of that, the library provides setoid +instances for most types and operations. + +@item Various tactics for common tasks, like an ssreflect inspired done tactic +for finishing trivial goals, a simple breadth-first solver naive_solver, an +equality simplifier simplify_eq, a solver solve_proper for proving +compatibility of functions with respect to relations, and a solver set_solver +for goals involving set operations. + +@item The library is dependency- and axiom-free. +@end itemize") + (home-page "https://gitlab.mpi-sws.org/iris/stdpp") + (license license:bsd-3)))