]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/dtd/cic.dtd
Initial revision
[helm.git] / helm / dtd / cic.dtd
diff --git a/helm/dtd/cic.dtd b/helm/dtd/cic.dtd
new file mode 100644 (file)
index 0000000..e16b102
--- /dev/null
@@ -0,0 +1,176 @@
+<?xml encoding="ISO-8859-1"?>
+
+<!--*****************************************************************-->
+<!-- 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            -->
+<!--*****************************************************************-->
+
+<!-- CIC term declaration -->
+
+<!ENTITY % term '(LAMBDA|CAST|PROD|REL|SORT|APPLY|VAR|META|IMPLICIT|CONST|
+                  ABST|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX)'>
+
+<!-- CIC objects: -->
+
+<!ELEMENT Definition (body, type)>
+<!ATTLIST Definition
+          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 CurrentProof (Conjecture*,body,type)>
+<!ATTLIST CurrentProof
+          name CDATA #REQUIRED
+          id   ID    #REQUIRED>
+
+<!ELEMENT InductiveDefinition (InductiveType+)>
+<!ATTLIST InductiveDefinition
+          noParams NMTOKEN #REQUIRED
+          params   CDATA   #REQUIRED
+          id       ID      #REQUIRED>
+
+<!ELEMENT Variable (type)>
+<!ATTLIST Variable
+          name CDATA #REQUIRED
+          id   ID    #REQUIRED>
+
+<!-- Elements used in CIC objects, which are not terms: -->
+
+<!ELEMENT InductiveType (arity,Constructor*)>
+<!ATTLIST InductiveType
+          name      CDATA        #REQUIRED
+          inductive (true|false) #REQUIRED>
+
+<!ELEMENT Conjecture %term;>
+<!ATTLIST Conjecture
+          no NMTOKEN #REQUIRED>
+
+<!ELEMENT Constructor %term;>
+<!ATTLIST Constructor
+          name CDATA #REQUIRED>
+
+<!-- CIC terms: -->
+
+<!ELEMENT LAMBDA (source,target)>
+<!ATTLIST LAMBDA
+          id ID #REQUIRED>
+
+<!ELEMENT PROD (source,target)>
+<!ATTLIST PROD
+          id ID #REQUIRED>
+
+<!ELEMENT CAST (term,type)>
+<!ATTLIST CAST
+          id ID #REQUIRED>
+
+<!ELEMENT REL EMPTY>
+<!ATTLIST REL
+          value  NMTOKEN #REQUIRED
+          binder CDATA   #REQUIRED
+          id     ID      #REQUIRED>
+
+<!ELEMENT SORT EMPTY>
+<!ATTLIST SORT
+          value CDATA #REQUIRED
+          id    ID    #REQUIRED>
+
+<!ELEMENT APPLY (%term;)+>
+<!ATTLIST APPLY
+          id ID #REQUIRED>
+
+<!ELEMENT VAR EMPTY>
+<!ATTLIST VAR
+          relUri CDATA #REQUIRED
+          id     ID    #REQUIRED>
+
+<!ELEMENT META EMPTY>
+<!ATTLIST META
+          no NMTOKEN #REQUIRED
+          id ID      #REQUIRED>
+
+<!ELEMENT IMPLICIT EMPTY>
+<!ATTLIST IMPLICIT
+          id ID #REQUIRED>
+
+<!ELEMENT CONST EMPTY>
+<!ATTLIST CONST
+          uri CDATA #REQUIRED
+          id  ID    #REQUIRED>
+
+<!ELEMENT ABST EMPTY>
+<!ATTLIST ABST
+          uri CDATA #REQUIRED
+          id  ID    #REQUIRED>
+
+<!ELEMENT MUTIND EMPTY>
+<!ATTLIST MUTIND
+          uri    CDATA   #REQUIRED
+          noType NMTOKEN #REQUIRED
+          id     ID      #REQUIRED>
+
+<!ELEMENT MUTCONSTRUCT EMPTY>
+<!ATTLIST MUTCONSTRUCT
+          uri      CDATA   #REQUIRED
+          noType   NMTOKEN #REQUIRED
+          noConstr NMTOKEN #REQUIRED
+          id       ID      #REQUIRED>
+
+<!ELEMENT MUTCASE (patternsType,inductiveTerm,pattern*)>
+<!ATTLIST MUTCASE
+          uriType CDATA   #REQUIRED
+          noType  NMTOKEN #REQUIRED
+          id      ID      #REQUIRED>
+
+<!ELEMENT FIX (FixFunction+)>
+<!ATTLIST FIX
+          noFun NMTOKEN #REQUIRED
+          id    ID      #REQUIRED>
+
+<!ELEMENT COFIX (CofixFunction+)>
+<!ATTLIST COFIX
+          noFun NMTOKEN #REQUIRED
+          id    ID      #REQUIRED>
+
+<!-- Elements used in CIC terms: -->
+
+<!ELEMENT FixFunction (type,body)>
+<!ATTLIST FixFunction
+          name     CDATA   #REQUIRED
+          recIndex NMTOKEN #REQUIRED>
+
+<!ELEMENT CofixFunction (type,body)>
+<!ATTLIST CofixFunction
+          name     CDATA   #REQUIRED>
+
+<!-- Sintactic sugar for CIC terms and for CIC objects: -->
+
+<!ELEMENT source %term;>
+
+<!ELEMENT target %term;>
+<!ATTLIST target
+          binder CDATA #IMPLIED>
+
+<!ELEMENT term %term;>
+
+<!ELEMENT type  %term;>
+
+<!ELEMENT arity %term;>
+
+<!ELEMENT patternsType  %term;>
+
+<!ELEMENT inductiveTerm  %term;>
+
+<!ELEMENT pattern  %term;>
+
+<!ELEMENT body  %term;>