summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/stex/schema/rnc/omdoc/omdoccth.rnc
blob: 8e52773b51dc7a0311f82dbec9482385988f59df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# A RelaxNG schema for Open Mathematical documents (OMDoc 1.3) Module CTH 
# $Id: omdoccth.rnc 8979 2011-11-29 04:56:59Z kohlhase $
# $HeadURL: https://svn.omdoc.org/repos/omdoc/branches/omdoc-1.3/schema/rnc/omdoccth.rnc $
# See the documentation and examples at http://www.omdoc.org
# Copyright (c) 2004-2007 Michael Kohlhase, released under the GNU Public License (GPL) 

default namespace omdoc = "http://omdoc.org/ns" 

constitutive.class &= inclusion*
imports.model  &= morphism? & 
			  attribute type { "local" | "global"}? & 
			  attribute conservativity {"conservative" | "monomorphism" | "definitional"}? &
			  attribute conservativity-just {omdocref}?

toplevel.attribs       &= attribute generated-via {omdocref}?
constitutive.attribs &= attribute generated-via {omdocref}?

omdoc.class &= theory-inclusion* & axiom-inclusion*
theory-inclusion.justification = obligation*
axiom-inclusion.justification = obligation*

fromto.attrib = from.attrib & attribute to {omdocref}
# attributes 'to' and 'from' are URIref

morphism.attribs = id.attribs & 
		                attribute hiding {omdocrefs}? & 
				attribute base {omdocrefs}?
morphism.model = def.eq?
morphism = element morphism {tref|(morphism.attribs & morphism.model)}
# base points to some other morphism it extends

inclusion.attribs = id.attribs & attribute via {omdocref} 
inclusion.model = empty
inclusion = element inclusion {tref|(inclusion.attribs & inclusion.model)}
# via points to a theory-inclusion

theory-inclusion.attribs = toplevel.attribs & fromto.attrib	
theory-inclusion.model = metadata? & morphism? & theory-inclusion.justification
theory-inclusion = element theory-inclusion {tref|(theory-inclusion.attribs & theory-inclusion.model)}

axiom-inclusion.attribs = toplevel.attribs & fromto.attrib	
axiom-inclusion.model = metadata? & morphism? & axiom-inclusion.justification
axiom-inclusion = element theory-inclusion {tref|(axiom-inclusion.attribs & axiom-inclusion.model)}

obligation.attribs = id.attribs & 
    	     		       attribute induced-by {omdocref} & 
          		       attribute assertion {omdocref}
obligation.model = empty
obligation = element obligation {tref|(obligation.attribs & obligation.model)}
# attribute 'assertion' is a URIref, points to  an assertion
# that is the proof obligation induced by the axiom or definition 
# specified by 'induced-by'.