]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/dtd/cic.dtd
- the mathql interpreter is not helm-dependent any more
[helm.git] / helm / dtd / cic.dtd
index a0071070e3a2bc1f4d5741f9fb044dad9cbfb8e6..47280b845aa191e8359c5ae42b109340679dfc98 100644 (file)
@@ -1,5 +1,29 @@
 <?xml encoding="ISO-8859-1"?>
 
+<!-- Copyright (C) 2000, HELM Team                                     -->
+<!--                                                                   -->
+<!-- This file is part of HELM, an Hypertextual, Electronic            -->
+<!-- Library of Mathematics, developed at the Computer Science         -->
+<!-- Department, University of Bologna, Italy.                         -->
+<!--                                                                   -->
+<!-- HELM is free software; you can redistribute it and/or             -->
+<!-- modify it under the terms of the GNU General Public License       -->
+<!-- as published by the Free Software Foundation; either version 2    -->
+<!-- of the License, or (at your option) any later version.            -->
+<!--                                                                   -->
+<!-- HELM is distributed in the hope that it will be useful,           -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of    -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the     -->
+<!-- GNU General Public License for more details.                      -->
+<!--                                                                   -->
+<!-- You should have received a copy of the GNU General Public License -->
+<!-- along with HELM; if not, write to the Free Software               -->
+<!-- Foundation, Inc., 59 Temple Place - Suite 330, Boston,            -->
+<!-- MA  02111-1307, USA.                                              -->
+<!--                                                                   -->
+<!-- For details, see the HELM World-Wide-Web page,                    -->
+<!-- http://cs.unibo.it/helm/.                                         -->
+
 <!--*****************************************************************-->
 <!-- DTD FOR CIC OBJECTS:                                            -->
 <!--  First draft: September 1999, Claudio Sacerdoti Coen            -->
@@ -18,6 +42,9 @@
 
 <!ENTITY % sort '(Prop|Set|Type)'>
 
+<!-- CIC sequents -->
+
+<!ENTITY % sequent '((Decl|Def|Hidden)*,Goal)'>
 
 <!-- CIC objects: -->
 
           name CDATA #REQUIRED
           id   ID    #REQUIRED>
 
+<!ELEMENT Sequent %sequent;>
+<!ATTLIST Sequent
+          no  NMTOKEN #REQUIRED
+          id  ID      #REQUIRED>
+
 <!-- Elements used in CIC objects, which are not terms: -->
 
 <!ELEMENT InductiveType (arity,Constructor*)>
           name      CDATA        #REQUIRED
           inductive (true|false) #REQUIRED>
 
-<!ELEMENT Conjecture %term;>
+<!ELEMENT Conjecture %sequent;>
 <!ATTLIST Conjecture
-          no NMTOKEN #REQUIRED>
+          no NMTOKEN #REQUIRED
+          id ID      #REQUIRED>
 
 <!ELEMENT Constructor %term;>
 <!ATTLIST Constructor
           name CDATA #REQUIRED>
 
+<!ELEMENT Decl %term;>
+<!ATTLIST Decl
+          name CDATA #IMPLIED
+          id   ID    #REQUIRED>
+
+<!ELEMENT Def %term;>
+<!ATTLIST Def
+          name CDATA #IMPLIED
+          id   ID    #REQUIRED>
+
+<!ELEMENT Hidden EMPTY>
+<!ATTLIST Hidden
+          id ID #REQUIRED>
+
+<!ELEMENT Goal %term;>
+
 <!-- CIC terms: -->
 
 <!ELEMENT LAMBDA (source,target)>
 
 <!ELEMENT PROD (source,target)>
 <!ATTLIST PROD
-          id ID #REQUIRED>
+          id   ID     #REQUIRED
+          type %sort; #REQUIRED>
 
 <!ELEMENT CAST (term,type)>
 <!ATTLIST CAST
           id     ID     #REQUIRED
           sort   %sort; #REQUIRED>
 
-<!ELEMENT META EMPTY>
+<!-- The substitutions are ordered by increasing DeBrujin  -->
+<!-- index. An empty substitution means that that index is -->
+<!-- not accessible.                                       -->
+<!ELEMENT META (substitution*)>
 <!ATTLIST META
-          no   NMTOKEN #REQUIRED
-          id   ID      #REQUIRED
-          sort %sort;  #REQUIRED>
+          no              NMTOKEN #REQUIRED
+          id              ID      #REQUIRED
+          sort            %sort;  #REQUIRED>
 
 <!ELEMENT IMPLICIT EMPTY>
 <!ATTLIST IMPLICIT
 <!ATTLIST CofixFunction
           name     CDATA   #REQUIRED>
 
+<!ELEMENT substitution ((%term;)?)>
+
 <!-- Sintactic sugar for CIC terms and for CIC objects: -->
 
 <!ELEMENT source %term;>