blob: 7fe6bd362a1a2f5098e806b4c1319d7e0c74e009 [file] [log] [blame]
Daniel Veillard249d7bb2003-03-19 21:02:29 +00001<grammar xmlns="http://relaxng.org/ns/structure/1.0"
2 ns="http://relaxng.org/ns/proofsystem">
3
4<start>
5 <element name="proofSystem">
6 <oneOrMore>
7 <element name="rule">
8 <attribute name="name"/>
9 <zeroOrMore>
10 <ref name="antecedent"/>
11 </zeroOrMore>
12 <ref name="consequent"/>
13 </element>
14 </oneOrMore>
15 </element>
16</start>
17
18<define name="formula">
19 <element name="formula">
20 <choice>
21 <ref name="judgement"/>
22 <ref name="expr"/>
23 </choice>
24 </element>
25</define>
26
27<define name="consequent">
28 <ref name="judgement"/>
29</define>
30
31<define name="antecedent">
32 <ref name="judgement"/>
33</define>
34
35<define name="judgement">
36 <choice>
37 <element name="judgement">
38 <attribute name="name"/>
39 <zeroOrMore>
40 <ref name="expr"/>
41 </zeroOrMore>
42 </element>
43 <element name="not">
44 <ref name="judgement"/>
45 </element>
46 </choice>
47</define>
48
49<define name="expr">
50 <choice>
51 <element name="var">
52 <attribute name="range"/>
53 <optional>
54 <attribute name="index"/>
55 </optional>
56 <optional>
57 <attribute name="sub"/>
58 </optional>
59 </element>
60 <element name="function">
61 <attribute name="name"/>
62 <zeroOrMore>
63 <ref name="expr"/>
64 </zeroOrMore>
65 </element>
66 <element name="element">
67 <attribute name="name"/>
68 <zeroOrMore>
69 <element name="attribute">
70 <attribute name="name"/>
71 <ref name="expr"/>
72 </element>
73 </zeroOrMore>
74 <optional>
75 <ref name="context"/>
76 </optional>
77 <zeroOrMore>
78 <ref name="expr"/>
79 </zeroOrMore>
80 </element>
81 <element name="group">
82 <zeroOrMore>
83 <ref name="expr"/>
84 </zeroOrMore>
85 </element>
86 <element name="string"><text/></element>
87 </choice>
88</define>
89
90<define name="context">
91 <element name="context">
92 <ref name="expr"/>
93 </element>
94</define>
95
96</grammar>