<?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 -->
<!-- CIC term declaration -->
<!ENTITY % term '(LAMBDA|CAST|PROD|REL|SORT|APPLY|VAR|META|IMPLICIT|CONST|
- ABST|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX)'>
+ LETIN|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX)'>
+
+<!-- CIC sorts -->
+
+<!ENTITY % sort '(Prop|Set|Type)'>
+
<!-- CIC objects: -->
params CDATA #REQUIRED
id ID #REQUIRED>
-<!ELEMENT Variable (type)>
+<!ELEMENT Variable (body?,type)>
<!ATTLIST Variable
name CDATA #REQUIRED
id ID #REQUIRED>
<!ELEMENT LAMBDA (source,target)>
<!ATTLIST LAMBDA
- id ID #REQUIRED>
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
+
+<!ELEMENT LETIN (term,letintarget)>
+<!ATTLIST LETIN
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
<!ELEMENT PROD (source,target)>
<!ATTLIST PROD
- id ID #REQUIRED>
+ id ID #REQUIRED
+ type %sort; #REQUIRED>
<!ELEMENT CAST (term,type)>
<!ATTLIST CAST
- id ID #REQUIRED>
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
<!ELEMENT REL EMPTY>
<!ATTLIST REL
value NMTOKEN #REQUIRED
binder CDATA #REQUIRED
- id ID #REQUIRED>
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
<!ELEMENT SORT EMPTY>
<!ATTLIST SORT
<!ELEMENT APPLY (%term;)+>
<!ATTLIST APPLY
- id ID #REQUIRED>
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
<!ELEMENT VAR EMPTY>
<!ATTLIST VAR
- relUri CDATA #REQUIRED
- id ID #REQUIRED>
+ relUri CDATA #REQUIRED
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
<!ELEMENT META EMPTY>
<!ATTLIST META
- no NMTOKEN #REQUIRED
- id ID #REQUIRED>
+ no NMTOKEN #REQUIRED
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
<!ELEMENT IMPLICIT EMPTY>
<!ATTLIST IMPLICIT
<!ELEMENT CONST EMPTY>
<!ATTLIST CONST
- uri CDATA #REQUIRED
- id ID #REQUIRED>
-
-<!ELEMENT ABST EMPTY>
-<!ATTLIST ABST
- uri CDATA #REQUIRED
- id ID #REQUIRED>
+ uri CDATA #REQUIRED
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
<!ELEMENT MUTIND EMPTY>
<!ATTLIST MUTIND
uri CDATA #REQUIRED
noType NMTOKEN #REQUIRED
noConstr NMTOKEN #REQUIRED
- id ID #REQUIRED>
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
<!ELEMENT MUTCASE (patternsType,inductiveTerm,pattern*)>
<!ATTLIST MUTCASE
uriType CDATA #REQUIRED
noType NMTOKEN #REQUIRED
- id ID #REQUIRED>
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
<!ELEMENT FIX (FixFunction+)>
<!ATTLIST FIX
noFun NMTOKEN #REQUIRED
- id ID #REQUIRED>
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
<!ELEMENT COFIX (CofixFunction+)>
<!ATTLIST COFIX
noFun NMTOKEN #REQUIRED
- id ID #REQUIRED>
+ id ID #REQUIRED
+ sort %sort; #REQUIRED>
<!-- Elements used in CIC terms: -->
<!ATTLIST target
binder CDATA #IMPLIED>
+<!ELEMENT letintarget %term;>
+<!ATTLIST letintarget
+ binder CDATA #REQUIRED>
+
<!ELEMENT term %term;>
<!ELEMENT type %term;>