1 (* Copyright (C) 2000, HELM Team.
3 * This file is part of HELM, an Hypertextual, Electronic
4 * Library of Mathematics, developed at the Computer Science
5 * Department, University of Bologna, Italy.
7 * HELM is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
12 * HELM is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with HELM; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
22 * For details, see the HELM World-Wide-Web page,
23 * http://cs.unibo.it/helm/.
26 (**************************************************************************)
30 (* Andrea Asperti <asperti@cs.unibo.it> *)
33 (**************************************************************************)
37 Symbol of string option * string * (subst option) * string option
38 (* h:xref, name, subst, definitionURL *)
39 | LocalVar of string option * string (* h:xref, name *)
40 | Meta of string option * string * meta_subst (* h:xref, name, meta_subst *)
41 | Num of string option * string (* h:xref, value *)
42 | Appl of string option * cexpr list (* h:xref, args *)
43 | Binder of string option *string * decl * cexpr
44 (* h:xref, name, decl, body *)
45 | Letin of string option * def * cexpr (* h:xref, def, body *)
46 | Letrec of string option * def list * cexpr (* h:xref, def list, body *)
47 | Case of string option * cexpr * ((string * cexpr) list)
48 (* h:xref, case_expr, named-pattern list *)
51 decl = string * cexpr (* name, type *)
53 def = string * cexpr (* name, body *)
55 subst = (UriManager.uri * cexpr) list
57 meta_subst = cexpr option list
62 (Cic.id, string) Hashtbl.t -> Cic.annterm -> cexpr