Home | History | Annotate | Download | only in relaxng
      1 <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>
     97