<!--*****************************************************************-->
<!-- DTD FOR THEORY OBJECTS AT LEVEL OF CIC XML FILES: -->
<!-- First draft: May 10 2000, Claudio Sacerdoti Coen, Irene Schena -->
+<!-- Revised: February 2001, Claudio Sacerdoti Coen -->
+<!-- Revised: May 01 2001, Claudio Sacerdoti Coen -->
<!--*****************************************************************-->
-<!-- manca il semplice enunciato -->
-<!-- mancano i link ad altre teorie? (corrispondenti a Require?) -->
-<!-- una teoria "vuota" e' una teoria? -->
-<!ENTITY % mathstructure '(THEOREM|LEMMA|COROLLARY|AXIOM|FACT|DEFINITION|
- VARIABLE|SECTION)*'>
-<!ELEMENT Theory (%mathstructure;)>
-<!ATTLIST Theory
- uri CDATA #REQUIRED>
+<!--*****************************************************************-->
+<!-- Note: the intended meaning for this markup is to be embedded -->
+<!-- into other types of markup (e.g. XHTML or DocBook). Hence, the -->
+<!-- DTD is only "indicative" and no root element is provided. -->
+<!--*****************************************************************-->
-<!ELEMENT THEOREM EMPTY>
-<!ATTLIST THEOREM
- id IDREF #REQUIRED
- uri CDATA #REQUIRED>
+<!ENTITY % mathstructure
+ '(ht:AXIOM|ht:DEFINITION|ht:THEOREM|ht:VARIABLE|ht:SECTION|ht:MUTUAL)*'>
-<!ELEMENT LEMMA EMPTY>
-<!ATTLIST LEMMA
- id IDREF #REQUIRED
- uri CDATA #REQUIRED
- target IDREF #REQUIRED>
+<!ELEMENT ht:AXIOM EMPTY>
+<!ATTLIST ht:AXIOM
+ uri CDATA #REQUIRED
+ as (Axiom|Declaration) #REQUIRED>
-<!ELEMENT COROLLARY EMPTY>
-<!ATTLIST COROLLARY
- id IDREF #REQUIRED
- uri CDATA #REQUIRED
- target IDREF #REQUIRED>
+<!ELEMENT ht:DEFINITION EMPTY>
+<!ATTLIST ht:DEFINITION
+ uri CDATA #REQUIRED
+ as (Definition|Inductive|CoInductive|Record) #REQUIRED>
-<!ELEMENT AXIOM EMPTY>
-<!ATTLIST AXIOM
- id IDREF #REQUIRED
- uri CDATA #REQUIRED>
+<!ELEMENT ht:THEOREM EMPTY>
+<!ATTLIST ht:THEOREM
+ uri CDATA #REQUIRED
+ as (Theorem|Lemma|Corollary|Fact|Remark) #REQUIRED>
-<!ELEMENT FACT EMPTY>
-<!ATTLIST FACT
- id IDREF #REQUIRED
- uri CDATA #REQUIRED>
+<!ELEMENT ht:VARIABLE EMPTY>
+<!ATTLIST ht:VARIABLE
+ uri CDATA #REQUIRED
+ as (Assumption|Hypothesis|LocalDefinition) #REQUIRED>
-<!ELEMENT DEFINITION EMPTY>
-<!ATTLIST DEFINITION
+<!ELEMENT ht:SECTION (%mathstructure;)>
+<!ATTLIST ht:SECTION
uri CDATA #REQUIRED>
-<!ELEMENT VARIABLE EMPTY>
-<!ATTLIST VARIABLE
- uri CDATA #REQUIRED>
-
-<!ELEMENT SECTION (%mathstructure;)>
-<!ATTLIST SECTION
- uri CDATA #REQUIRED>
-
-<!--
- VINCOLI DI VALIDITA' NON ESPRIMIBILI NEL DTD:
- Siano V una variabile e T,T' due fatti/definizioni/teoremi/lemmi/corollari
-
- - per visualizzare T dipendente da T' dove T' e T sono definiti nella stessa
- (da definirsi) teoria/sezione, debbo visualizzare anche T'?
- - per visualizzare T dipendente da T' dove anche T' e' visualizzato, debbo
- visualizzare T necessariamente dopo T'?
- + consistenza fra la dipendenza dei lemmi e dei corollari dal loro target
- e quella effettiva data dal livello degli oggetti
- + tutte le URI debbono essere relative e discendenti (= non contenti "..")
- +? ogni lemma deve precedere (strettamente?) il suo target
- +? ogni corollario deve seguire (strettamente?) il suo target
- + se T/V dipende da V, allora V deve essere visualizzata
- + se T/V dipende da V, allora V deve essere visualizzata prima di T
- PROBLEMA: NON ABBIAMO INFORMAZIONI SULLA DIPENDENZA DI V DA V!!!
--->
+(*CSC: In the case of a set of mutual (Co)Inductive DEFINITIONS, *)
+(*CSC: all the entries inside ht:MUTUAL have the same URI ;-| *)
+<!ELEMENT ht:MUTUAL (ht:DEFINITION,ht:DEFINITION+)>
<!-- DTD FOR THEORY OBJECTS AT LEVEL OF MATHML CONTENT: -->
<!-- First draft: May 9 2000, Irene Schena -->
<!-- Second draft: March 15 2001, Irene Schena -->
+<!-- Third draft: May 3 2001, Irene Schena -->
<!--*****************************************************************-->
<!-- DA AGGIUNGERE:
%cicobj;
-<!ENTITY % theorystructure '(THEOREM|LEMMA|COROLLARY|AXIOM|FACT|DEFINITION|
- VARIABLE|SECTION)*'>
+<!ENTITY % theorystructure
+ '(ht:AXIOM|ht:DEFINITION|ht:THEOREM|ht:VARIABLE|ht:SECTION|ht:MUTUAL)*'>
-<!-- Theory -->
+<!ELEMENT ht:SECTION (%theorystructure;)>
+<!ATTLIST ht:SECTION
+ name CDATA #REQUIRED>
-<!ELEMENT Theory (%theorystructure;)>
-<!ATTLIST Theory
- name CDATA #REQUIRED
- uri CDATA #REQUIRED>
+<!ELEMENT ht:MUTUAL (ht:DEFINITION,ht:DEFINITION+)>
<!-- Theory Items -->
-<!ELEMENT THEOREM (type)>
-<!ATTLIST THEOREM
- name CDATA #REQUIRED
- uri CDATA #REQUIRED>
-
-<!ELEMENT LEMMA (type)>
-<!ATTLIST LEMMA
- name CDATA #REQUIRED
- uri CDATA #REQUIRED>
-
-<!ELEMENT COROLLARY (type)>
-<!ATTLIST COROLLARY
- name CDATA #REQUIRED
- uri CDATA #REQUIRED>
-
-<!ELEMENT AXIOM (Axiom)>
-<!ATTLIST AXIOM
- name CDATA #REQUIRED
- uri CDATA #REQUIRED>
-
-<!ELEMENT FACT (type)>
-<!ATTLIST FACT
- name CDATA #REQUIRED
- uri CDATA #REQUIRED>
-
-<!ELEMENT DEFINITION (Definition|InductiveDefinition)>
-<!ATTLIST DEFINITION
- name CDATA #REQUIRED
- uri CDATA #REQUIRED>
-
-<!ELEMENT VARIABLE (Variable)>
-<!ATTLIST VARIABLE
- name CDATA #REQUIRED
- uri CDATA #REQUIRED>
-
-<!ELEMENT SECTION (%theorystructure;)>
-<!ATTLIST SECTION
- uri CDATA #REQUIRED>
+<!ELEMENT ht:AXIOM (Axiom)>
+<!ATTLIST ht:AXIOM
+ uri CDATA #REQUIRED
+ as (Axiom|Declaration) #REQUIRED>
+
+<!ELEMENT ht:DEFINITION (Definition|InductiveDefinition)>
+<!ATTLIST ht:DEFINITION
+ uri CDATA #REQUIRED
+ as (Definition|Inductive|CoInductive|Record) #REQUIRED>
+
+<!ELEMENT ht:THEOREM (type)>
+<!ATTLIST ht:THEOREM
+ uri CDATA #REQUIRED
+ as (Theorem|Lemma|Corollary|Fact|Remark) #REQUIRED>
+
+<!ELEMENT ht:VARIABLE (Variable)>
+<!ATTLIST ht:VARIABLE
+ uri CDATA #REQUIRED
+ as (Assumption|Hypothesis|LocalDefinition) #REQUIRED>
+
+
+
+
+
+
+
+
+
+