1 <?xml encoding="ISO-8859-1"?>
3 <!--*****************************************************************-->
4 <!-- DTD FOR CIC OBJECTS: -->
5 <!-- First draft: September 1999, Claudio Sacerdoti Coen -->
6 <!-- Revised: February 3 2000, Claudio Sacerdoti Coen, Irene Schena -->
7 <!-- Last Revision: April 4 2000, Claudio Sacerdoti Coen -->
8 <!-- Last Revision: June 19 2000, Claudio Sacerdoti Coen -->
9 <!-- Last Revision: June 20 2000, Claudio Sacerdoti Coen -->
10 <!--*****************************************************************-->
12 <!-- CIC term declaration -->
14 <!ENTITY % term '(LAMBDA|CAST|PROD|REL|SORT|APPLY|VAR|META|IMPLICIT|CONST|
15 LETIN|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX)'>
19 <!ENTITY % sort '(Prop|Set|Type)'>
24 <!ELEMENT Definition (body, type)>
27 params CDATA #REQUIRED
28 paramMode (POSSIBLE) #IMPLIED
31 <!ELEMENT Axiom (type)>
34 params CDATA #REQUIRED
37 <!ELEMENT CurrentProof (Conjecture*,body,type)>
38 <!ATTLIST CurrentProof
42 <!ELEMENT InductiveDefinition (InductiveType+)>
43 <!ATTLIST InductiveDefinition
44 noParams NMTOKEN #REQUIRED
45 params CDATA #REQUIRED
48 <!ELEMENT Variable (body?,type)>
53 <!-- Elements used in CIC objects, which are not terms: -->
55 <!ELEMENT InductiveType (arity,Constructor*)>
56 <!ATTLIST InductiveType
58 inductive (true|false) #REQUIRED>
60 <!ELEMENT Conjecture %term;>
64 <!ELEMENT Constructor %term;>
70 <!ELEMENT LAMBDA (source,target)>
73 sort %sort; #REQUIRED>
75 <!ELEMENT LETIN (term,letintarget)>
78 sort %sort; #REQUIRED>
80 <!ELEMENT PROD (source,target)>
84 <!ELEMENT CAST (term,type)>
87 sort %sort; #REQUIRED>
91 value NMTOKEN #REQUIRED
92 binder CDATA #REQUIRED
94 sort %sort; #REQUIRED>
101 <!ELEMENT APPLY (%term;)+>
104 sort %sort; #REQUIRED>
108 relUri CDATA #REQUIRED
110 sort %sort; #REQUIRED>
112 <!ELEMENT META EMPTY>
116 sort %sort; #REQUIRED>
118 <!ELEMENT IMPLICIT EMPTY>
122 <!ELEMENT CONST EMPTY>
126 sort %sort; #REQUIRED>
128 <!ELEMENT MUTIND EMPTY>
131 noType NMTOKEN #REQUIRED
134 <!ELEMENT MUTCONSTRUCT EMPTY>
135 <!ATTLIST MUTCONSTRUCT
137 noType NMTOKEN #REQUIRED
138 noConstr NMTOKEN #REQUIRED
140 sort %sort; #REQUIRED>
142 <!ELEMENT MUTCASE (patternsType,inductiveTerm,pattern*)>
144 uriType CDATA #REQUIRED
145 noType NMTOKEN #REQUIRED
147 sort %sort; #REQUIRED>
149 <!ELEMENT FIX (FixFunction+)>
151 noFun NMTOKEN #REQUIRED
153 sort %sort; #REQUIRED>
155 <!ELEMENT COFIX (CofixFunction+)>
157 noFun NMTOKEN #REQUIRED
159 sort %sort; #REQUIRED>
161 <!-- Elements used in CIC terms: -->
163 <!ELEMENT FixFunction (type,body)>
164 <!ATTLIST FixFunction
166 recIndex NMTOKEN #REQUIRED>
168 <!ELEMENT CofixFunction (type,body)>
169 <!ATTLIST CofixFunction
170 name CDATA #REQUIRED>
172 <!-- Sintactic sugar for CIC terms and for CIC objects: -->
174 <!ELEMENT source %term;>
176 <!ELEMENT target %term;>
178 binder CDATA #IMPLIED>
180 <!ELEMENT letintarget %term;>
181 <!ATTLIST letintarget
182 binder CDATA #REQUIRED>
184 <!ELEMENT term %term;>
186 <!ELEMENT type %term;>
188 <!ELEMENT arity %term;>
190 <!ELEMENT patternsType %term;>
192 <!ELEMENT inductiveTerm %term;>
194 <!ELEMENT pattern %term;>
196 <!ELEMENT body %term;>