]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/dtd/maththeory.dtd
ocaml 3.09 transition
[helm.git] / helm / dtd / maththeory.dtd
index 85469b6ceca2b8cf654d4ad4d238e83b24b154d1..7158611ed0849754681bca3fe664346c2405e08f 100644 (file)
 <?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 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:OBJECT EMPTY>
+<!ATTLIST ht:OBJECT
+          uri CDATA #REQUIRED
+          mode (typeonly|embed|linkonly) #REQUIRED>
 
-<!ELEMENT COROLLARY EMPTY>
-<!ATTLIST COROLLARY
-          id     IDREF #REQUIRED
-          uri    CDATA #REQUIRED 
-          target IDREF #REQUIRED>
+<!ELEMENT ht:AXIOM EMPTY>
+<!ATTLIST ht:AXIOM
+          uri CDATA #REQUIRED
+          as (Axiom|Declaration) #REQUIRED
+          typesetting ( paragraph | inline ) paragraph
+          heading ( true | false ) true
+          uri_base ( true | false ) true
+          notation ( true | false ) false
+          params ( true | false ) false
+          type ( true | false ) true >
 
-<!ELEMENT AXIOM EMPTY>
-<!ATTLIST AXIOM
-          id  IDREF #REQUIRED
-          uri CDATA #REQUIRED>
+<!ELEMENT ht:DEFINITION EMPTY>
+<!ATTLIST ht:DEFINITION
+          uri CDATA #REQUIRED
+          as (Definition|InteractiveDefinition|Inductive|CoInductive
+             |Record) #REQUIRED
+          <!-- Should the definition take a whole new paragraph
+               or be integrated in the sentence? -->
+          typesetting ( paragraph | inline ) paragraph
+          <!-- Include the text "Definition "? -->
+          heading ( true | false ) true
+          <!-- Include the name of the definition, i.e.
+               the non-path part of its URI? -->
+          uri_base ( true | false ) true
+          <!-- Include the notation for this object? -->
+          notation ( true | false ) false
+          <!-- Include the section parameters / variables of
+               this definition? -->
+          params ( true | false ) false
+          <!-- For parametrised (co)inductive definitions,
+               include the parameters of the definition? -->
+          Params ( true | false ) true
+          <!-- Show the type?  -->
+          type ( true | false ) true
+          <!-- Show the body?  -->
+          body ( true | false ) true >
 
-<!ELEMENT FACT EMPTY>
-<!ATTLIST FACT
-          id  IDREF #REQUIRED
-          uri CDATA #REQUIRED>
+<!ELEMENT ht:THEOREM EMPTY>
+<!ATTLIST ht:THEOREM
+          uri CDATA #REQUIRED
+          as (Theorem|Lemma|Corollary|Fact|Remark) #REQUIRED
+          typesetting ( paragraph | inline ) paragraph
+          heading ( true | false ) true
+          uri_base ( true | false ) true
+          notation ( true | false ) false
+          params ( true | false ) false
+          type ( true | false ) true
+          body ( true | false ) true >
 
-<!ELEMENT DEFINITION EMPTY>
-<!ATTLIST DEFINITION
-          uri CDATA #REQUIRED>
+<!ELEMENT ht:VARIABLE EMPTY>
+<!ATTLIST ht:VARIABLE
+          uri CDATA #REQUIRED
+          as (Assumption|Hypothesis|LocalDefinition|LocalFact) #REQUIRED
+          typesetting ( paragraph | inline ) paragraph
+          heading ( true | false ) true
+          uri_base ( true | false ) true
+          notation ( true | false ) false
+          params ( true | false ) false
+          Params ( true | false ) true
+          type ( true | false ) true
+          body ( true | false ) true >
 
-<!ELEMENT VARIABLE EMPTY>
-<!ATTLIST VARIABLE
+<!ELEMENT ht:SECTION (%mathstructure;)>
+<!ATTLIST ht:SECTION
           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+)>