]> matita.cs.unibo.it Git - helm.git/commitdiff
New DTD for the new exportation module.
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Wed, 9 Oct 2002 10:41:03 +0000 (10:41 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Wed, 9 Oct 2002 10:41:03 +0000 (10:41 +0000)
helm/dtd/cic.dtd

index 47280b845aa191e8359c5ae42b109340679dfc98..164945d2a0b238ed1fd51f5ff9708c35d1504a5f 100644 (file)
@@ -1,42 +1,11 @@
 <?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            -->
-<!--  Revised: February 3 2000, Claudio Sacerdoti Coen, Irene Schena -->
-<!--  Last Revision: April 4 2000, Claudio Sacerdoti Coen            -->
-<!--  Last Revision: June 19 2000, Claudio Sacerdoti Coen            -->
-<!--  Last Revision: June 20 2000, Claudio Sacerdoti Coen            -->
-<!--*****************************************************************-->
+<!-- DTD FOR CIC OBJECTS: -->
 
 <!-- CIC term declaration -->
 
 <!ENTITY % term '(LAMBDA|CAST|PROD|REL|SORT|APPLY|VAR|META|IMPLICIT|CONST|
-                  LETIN|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX)'>
+                  LETIN|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX|instantiate)'>
 
 <!-- CIC sorts -->
 
 
 <!-- CIC objects: -->
 
-<!ELEMENT Definition (body, type)>
-<!ATTLIST Definition
+<!-- CSC: so far params is equal to the one of the only body.  -->
+<!ELEMENT ConstantType %term;>
+<!ATTLIST ConstantType
           name       CDATA      #REQUIRED
           params     CDATA      #REQUIRED
-          paramMode  (POSSIBLE) #IMPLIED
           id         ID         #REQUIRED>
 
-<!ELEMENT Axiom (type)>
-<!ATTLIST Axiom
-          name   CDATA #REQUIRED
-          params CDATA #REQUIRED
-          id     ID    #REQUIRED>
+<!ELEMENT ConstantBody %term;>
+<!ATTLIST ConstantBody
+          for        CDATA      #REQUIRED
+          params     CDATA      #REQUIRED
+          id         ID         #REQUIRED>
 
-<!ELEMENT CurrentProof (Conjecture*,body,type)>
+<!ELEMENT CurrentProof (Conjecture*,body)>
 <!ATTLIST CurrentProof
-          name CDATA #REQUIRED
-          id   ID    #REQUIRED>
+          of         CDATA      #REQUIRED
+          id         ID         #REQUIRED>
 
 <!ELEMENT InductiveDefinition (InductiveType+)>
 <!ATTLIST InductiveDefinition
@@ -87,7 +56,8 @@
 <!ELEMENT InductiveType (arity,Constructor*)>
 <!ATTLIST InductiveType
           name      CDATA        #REQUIRED
-          inductive (true|false) #REQUIRED>
+          inductive (true|false) #REQUIRED
+          id        ID           #REQUIRED>
 
 <!ELEMENT Conjecture %sequent;>
 <!ATTLIST Conjecture
 
 <!-- CIC terms: -->
 
-<!ELEMENT LAMBDA (source,target)>
+<!ELEMENT LAMBDA (decl*,target)>
 <!ATTLIST LAMBDA
-          id   ID     #REQUIRED
           sort %sort; #REQUIRED>
 
-<!ELEMENT LETIN (term,letintarget)>
+<!ELEMENT LETIN (def*,target)>
 <!ATTLIST LETIN
-          id   ID     #REQUIRED
           sort %sort; #REQUIRED>
 
-<!ELEMENT PROD (source,target)>
+<!ELEMENT PROD (decl*,target)>
 <!ATTLIST PROD
-          id   ID     #REQUIRED
           type %sort; #REQUIRED>
 
 <!ELEMENT CAST (term,type)>
           value  NMTOKEN #REQUIRED
           binder CDATA   #REQUIRED
           id     ID      #REQUIRED
+          idref  IDREF   #REQUIRED
           sort   %sort;  #REQUIRED>
 
 <!ELEMENT SORT EMPTY>
 
 <!ELEMENT VAR EMPTY>
 <!ATTLIST VAR
-          relUri CDATA  #REQUIRED
-          id     ID     #REQUIRED
-          sort   %sort; #REQUIRED>
+          uri  CDATA  #REQUIRED
+          id   ID     #REQUIRED
+          sort %sort; #REQUIRED>
 
 <!-- The substitutions are ordered by increasing DeBrujin  -->
 <!-- index. An empty substitution means that that index is -->
 <!ELEMENT FixFunction (type,body)>
 <!ATTLIST FixFunction
           name     CDATA   #REQUIRED
+          id       ID      #REQUIRED
           recIndex NMTOKEN #REQUIRED>
 
 <!ELEMENT CofixFunction (type,body)>
 <!ATTLIST CofixFunction
+          id       ID      #REQUIRED
           name     CDATA   #REQUIRED>
 
 <!ELEMENT substitution ((%term;)?)>
 
+<!-- Explicit named substitutions: -->
+
+<!ELEMENT instantiate ((CONST|MUTIND|MUTCONSTRUCT),arg+)>
+<!ATTLIST instantiate
+          id ID #IMPLIED>
+
 <!-- Sintactic sugar for CIC terms and for CIC objects: -->
 
-<!ELEMENT source %term;>
+<!ELEMENT arg %term;>
+<!ATTLIST arg
+          relUri CDATA #REQUIRED>
 
-<!ELEMENT target %term;>
-<!ATTLIST target
-          binder CDATA #IMPLIED>
+<!ELEMENT decl %term;>
+<!ATTLIST decl
+          id     ID     #REQUIRED
+          type   %sort; #REQUIRED
+          binder CDATA  #IMPLIED>
+          
+<!ELEMENT def %term;>
+<!ATTLIST def
+          id     ID     #REQUIRED
+          sort   %sort; #REQUIRED
+          binder CDATA  #IMPLIED>
 
-<!ELEMENT letintarget %term;>
-<!ATTLIST letintarget
-          binder CDATA #REQUIRED>
+<!ELEMENT target %term;>
 
 <!ELEMENT term %term;>