From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id D71F5BC69 for ; Mon, 22 Oct 2007 17:31:38 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAANheHEfAXQInh2dsb2JhbACOVwEBAQgKKQ X-IronPort-AV: E=Sophos;i="4.21,312,1188770400"; d="scan'208";a="3470866" Received: from concorde.inria.fr ([192.93.2.39]) by mail2-smtp-roc.national.inria.fr with ESMTP; 22 Oct 2007 17:31:38 +0200 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l9MFVYB7022533 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Mon, 22 Oct 2007 17:31:38 +0200 X-IronPort-AV: E=Sophos;i="4.21,312,1188770400"; d="scan'208";a="3470865" Received: from mga01.intel.com ([192.55.52.88]) by mail2-smtp-roc.national.inria.fr with ESMTP; 22 Oct 2007 17:31:37 +0200 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 22 Oct 2007 08:31:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.21,312,1188802800"; d="scan'208";a="354828150" Received: from orsmsx334.jf.intel.com ([10.22.226.45]) by fmsmga001.fm.intel.com with ESMTP; 22 Oct 2007 08:28:10 -0700 Received: from orsmsx419.amr.corp.intel.com ([10.22.226.88]) by orsmsx334.jf.intel.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 22 Oct 2007 08:28:10 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: [Caml-list] Is Grobner Basis calculation implemented in OCaml? Date: Mon, 22 Oct 2007 08:28:09 -0700 Message-ID: <509223F0BF55E74FA1247D17207E7A0C0208D961@orsmsx419.amr.corp.intel.com> In-Reply-To: <471C8807.1040605@dur.ac.uk> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Caml-list] Is Grobner Basis calculation implemented in OCaml? Thread-Index: AcgUnj3Qx85tqBm7Tt+QHA/Pg4ecHAAIJrIQ References: <20071022100005.DCE6DBC69@yquem.inria.fr> <471C8807.1040605@dur.ac.uk> From: "Harrison, John R" To: "guanhua he" Cc: X-OriginalArrivalTime: 22 Oct 2007 15:28:10.0280 (UTC) FILETIME=[2720DA80:01C814C0] X-Miltered: at concorde with ID 471CC256.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 ocaml:01 dependencies:01 caml-list:01 algorithm:01 heuristic:02 implemented:02 implemented:02 prover:02 library:03 atp:96 atp:96 somewhat:05 ignoring:05 style:93 Hi Guanhua, | Does anyone know whether there is a library implemented to calculate | Grobner Basis in OCaml? If there is, could you tell me where can I find | it, please? There is a simple implementation here: http://www.cl.cam.ac.uk/~jrh13/atp/OCaml/grobner.ml However this is a *very* straightforward version, just designed to explain the algorithm rather than to be useful for serious problems. It relies on some other code in the same directory (go up a bit to "http://www.cl.cam.ac.uk/~jrh13/atp/" for more information) but the dependencies are not that great and it would be quite easy to separate. There is a somewhat better implementation available as part of the HOL Light prover (also available from my home page as above), which is in a similar style and could also be ripped out without much effort. It's better in that it uses Buchberger's first and second criteria for ignoring S-polynomials, and also queues the S-polynomials in a reasonable heuristic order. John.