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)>
83 type %sort; #REQUIRED>
85 <!ELEMENT CAST (term,type)>
88 sort %sort; #REQUIRED>
92 value NMTOKEN #REQUIRED
93 binder CDATA #REQUIRED
95 sort %sort; #REQUIRED>
102 <!ELEMENT APPLY (%term;)+>
105 sort %sort; #REQUIRED>
109 relUri CDATA #REQUIRED
111 sort %sort; #REQUIRED>
113 <!ELEMENT META EMPTY>
117 sort %sort; #REQUIRED>
119 <!ELEMENT IMPLICIT EMPTY>
123 <!ELEMENT CONST EMPTY>
127 sort %sort; #REQUIRED>
129 <!ELEMENT MUTIND EMPTY>
132 noType NMTOKEN #REQUIRED
135 <!ELEMENT MUTCONSTRUCT EMPTY>
136 <!ATTLIST MUTCONSTRUCT
138 noType NMTOKEN #REQUIRED
139 noConstr NMTOKEN #REQUIRED
141 sort %sort; #REQUIRED>
143 <!ELEMENT MUTCASE (patternsType,inductiveTerm,pattern*)>
145 uriType CDATA #REQUIRED
146 noType NMTOKEN #REQUIRED
148 sort %sort; #REQUIRED>
150 <!ELEMENT FIX (FixFunction+)>
152 noFun NMTOKEN #REQUIRED
154 sort %sort; #REQUIRED>
156 <!ELEMENT COFIX (CofixFunction+)>
158 noFun NMTOKEN #REQUIRED
160 sort %sort; #REQUIRED>
162 <!-- Elements used in CIC terms: -->
164 <!ELEMENT FixFunction (type,body)>
165 <!ATTLIST FixFunction
167 recIndex NMTOKEN #REQUIRED>
169 <!ELEMENT CofixFunction (type,body)>
170 <!ATTLIST CofixFunction
171 name CDATA #REQUIRED>
173 <!-- Sintactic sugar for CIC terms and for CIC objects: -->
175 <!ELEMENT source %term;>
177 <!ELEMENT target %term;>
179 binder CDATA #IMPLIED>
181 <!ELEMENT letintarget %term;>
182 <!ATTLIST letintarget
183 binder CDATA #REQUIRED>
185 <!ELEMENT term %term;>
187 <!ELEMENT type %term;>
189 <!ELEMENT arity %term;>
191 <!ELEMENT patternsType %term;>
193 <!ELEMENT inductiveTerm %term;>
195 <!ELEMENT pattern %term;>
197 <!ELEMENT body %term;>