cpf.xsd
author Ren? Thiemann <rene.thiemann@uibk.ac.at>
Fri May 04 11:55:46 2012 +0200
changeset 153 fd864207481b
parent 149 ee2569252411
permissions -rw-r--r--
added checkEquality for complexity problems
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="2.1">
     3   <xs:element name="name" type="xs:string"> </xs:element>
     4   <xs:group name="label">
     5     <xs:annotation>
     6       <xs:documentation>a label for semantic labeling</xs:documentation>
     7     </xs:annotation>
     8     <xs:choice>
     9       <xs:element name="numberLabel">
    10         <xs:complexType>
    11           <xs:sequence>
    12             <xs:element maxOccurs="unbounded" minOccurs="0" name="number"
    13               type="xs:nonNegativeInteger"/>
    14           </xs:sequence>
    15         </xs:complexType>
    16       </xs:element>
    17       <xs:element name="symbolLabel">
    18         <xs:complexType>
    19           <xs:sequence>
    20             <xs:group maxOccurs="unbounded" minOccurs="0" ref="symbol"/>
    21           </xs:sequence>
    22         </xs:complexType>
    23       </xs:element>
    24     </xs:choice>
    25   </xs:group>
    26   <xs:group name="symbol">
    27     <xs:annotation>
    28       <xs:documentation>is used as a function symbol in terms, orderings, ....</xs:documentation>
    29     </xs:annotation>
    30     <xs:choice>
    31       <xs:element ref="name"/>
    32       <xs:element name="sharp">
    33         <xs:complexType>
    34           <xs:sequence>
    35             <xs:group ref="symbol"/>
    36           </xs:sequence>
    37         </xs:complexType>
    38       </xs:element>
    39       <xs:element name="labeledSymbol">
    40         <xs:complexType>
    41           <xs:sequence>
    42             <xs:group ref="symbol"/>
    43             <xs:group ref="label"/>
    44           </xs:sequence>
    45         </xs:complexType>
    46       </xs:element>
    47     </xs:choice>
    48   </xs:group>
    49   <xs:element name="var" type="xs:string"/>
    50 
    51   <xs:group name="term">
    52     <xs:choice>
    53       <xs:element ref="var"/>
    54       <xs:element name="funapp">
    55         <xs:complexType>
    56           <xs:sequence>
    57             <xs:group ref="symbol"/>
    58             <xs:element name="arg" maxOccurs="unbounded" minOccurs="0">
    59               <xs:complexType>
    60                 <xs:group ref="term"/>
    61               </xs:complexType>
    62             </xs:element>
    63           </xs:sequence>
    64         </xs:complexType>
    65       </xs:element>
    66     </xs:choice>
    67   </xs:group>
    68   <xs:element name="rule">
    69     <xs:complexType>
    70       <xs:sequence>
    71         <xs:element name="lhs">
    72           <xs:complexType>
    73             <xs:group ref="term"/>
    74           </xs:complexType>
    75         </xs:element>
    76         <xs:element name="rhs">
    77           <xs:complexType>
    78             <xs:group ref="term"/>
    79           </xs:complexType>
    80         </xs:element>
    81       </xs:sequence>
    82     </xs:complexType>
    83   </xs:element>
    84   <xs:element name="rules">
    85     <xs:complexType>
    86       <xs:sequence>
    87         <xs:element maxOccurs="unbounded" minOccurs="0" ref="rule"/>
    88       </xs:sequence>
    89     </xs:complexType>
    90   </xs:element>
    91   <xs:element name="dps">
    92     <xs:complexType>
    93       <xs:sequence>
    94         <xs:element ref="rules"/>
    95       </xs:sequence>
    96     </xs:complexType>
    97   </xs:element>
    98   <xs:element name="trs">
    99     <xs:complexType>
   100       <xs:sequence>
   101         <xs:element ref="rules"/>
   102       </xs:sequence>
   103     </xs:complexType>
   104   </xs:element>
   105   <xs:element name="usableRules">
   106     <xs:complexType>
   107       <xs:sequence>
   108         <xs:element ref="rules"/>
   109       </xs:sequence>
   110     </xs:complexType>
   111   </xs:element>
   112   <xs:group name="number">
   113     <xs:choice>
   114       <xs:element name="integer" type="xs:integer"/>
   115       <xs:element name="rational">
   116         <xs:complexType>
   117           <xs:sequence>
   118             <xs:element name="numerator" type="xs:integer"/>
   119             <xs:element name="denominator" type="xs:positiveInteger"/>
   120           </xs:sequence>
   121         </xs:complexType>
   122       </xs:element>
   123     </xs:choice>
   124   </xs:group>
   125   <xs:element name="coefficient">
   126     <xs:complexType>
   127       <xs:choice>
   128         <xs:group ref="number"/>
   129         <xs:element name="minusInfinity"/>
   130         <xs:element name="plusInfinity"/>
   131         <xs:element ref="vector"/>
   132         <xs:element ref="matrix">
   133           <xs:annotation>
   134             <xs:documentation>list of column-vectors</xs:documentation>
   135           </xs:annotation>
   136         </xs:element>
   137       </xs:choice>
   138     </xs:complexType>
   139   </xs:element>
   140   <xs:element name="vector">
   141     <xs:complexType>
   142       <xs:sequence>
   143         <xs:element maxOccurs="unbounded" ref="coefficient"/>
   144       </xs:sequence>
   145     </xs:complexType>
   146   </xs:element>
   147   <xs:element name="matrix">
   148     <xs:annotation>
   149       <xs:documentation>list of column-vectors</xs:documentation>
   150     </xs:annotation>
   151     <xs:complexType>
   152       <xs:sequence>
   153         <xs:element maxOccurs="unbounded" ref="vector"/>
   154       </xs:sequence>
   155     </xs:complexType>
   156   </xs:element>
   157   <xs:element name="polynomial">
   158     <xs:complexType>
   159       <xs:choice>
   160         <xs:element ref="coefficient"/>
   161         <xs:element name="variable" type="xs:positiveInteger"/>
   162         <xs:element name="sum">
   163           <xs:complexType>
   164             <xs:sequence>
   165               <xs:element maxOccurs="unbounded" ref="polynomial"/>
   166             </xs:sequence>
   167           </xs:complexType>
   168         </xs:element>
   169         <xs:element name="product">
   170           <xs:complexType>
   171             <xs:sequence>
   172               <xs:element maxOccurs="unbounded" ref="polynomial"/>
   173             </xs:sequence>
   174           </xs:complexType>
   175         </xs:element>
   176         <xs:element name="max">
   177           <xs:annotation>
   178             <xs:documentation>note that this max is only used for min-max interpretations and not for arctic... interpretations. For example, in arctic one has to use plus and not max.</xs:documentation>
   179           </xs:annotation>
   180           <xs:complexType>
   181             <xs:sequence>
   182               <xs:element maxOccurs="unbounded" ref="polynomial"/>
   183             </xs:sequence>
   184           </xs:complexType>
   185         </xs:element>
   186         <xs:element name="min">
   187           <xs:annotation>
   188             <xs:documentation>note that this min is only used for min-max interpretations and not for arctic... interpretations. For example, in arctic one has to use plus and times, but neither min nor max.</xs:documentation>
   189           </xs:annotation>
   190           <xs:complexType>
   191             <xs:sequence>
   192               <xs:element maxOccurs="unbounded" ref="polynomial"/>
   193             </xs:sequence>
   194           </xs:complexType>
   195         </xs:element>
   196       </xs:choice>
   197     </xs:complexType>
   198   </xs:element>
   199   <xs:group name="function">
   200     <xs:choice>
   201       <xs:element ref="polynomial">
   202         <xs:annotation>
   203           <xs:documentation>note that when using polynomials over a vector-domain, then the constant coefficient is a vector whereas the other coefficients are matrices. Moreover, in this case only linear polynomials are allowed.</xs:documentation>
   204         </xs:annotation>
   205       </xs:element>
   206     </xs:choice>
   207   </xs:group>
   208   <xs:element name="arity" type="xs:nonNegativeInteger"/>
   209   <xs:element name="dimension" type="xs:positiveInteger"/>
   210   <xs:element name="strictDimension" type="xs:positiveInteger"/>
   211   <xs:element name="degree" type="xs:nonNegativeInteger"/>
   212   <xs:element name="position" type="xs:positiveInteger"/>
   213   <xs:element name="positionInTerm">
   214     <xs:complexType>
   215       <xs:sequence>
   216         <xs:element ref="position" maxOccurs="unbounded" minOccurs="0"/>
   217       </xs:sequence>
   218     </xs:complexType>
   219   </xs:element>
   220   <xs:element name="argumentFilter">
   221     <xs:annotation>
   222       <xs:documentation>an argument filter consist of a mapping from symbols to collapsing or non-collapsing filters.
   223 
   224 Example: 
   225 an entry f/3 -&gt; collapsing/1 filters the ternary symbol f to its third argument.
   226 an entry f/3 -&gt; nonCollapsing/3 1 filters the term f(x,y,z) to f(z,x) 
   227 
   228 often for nonCollapsing filters the positions are given in increasing order. However, argument filters can also be used to simulate permutations e.g. to express some LPOS by an LPO an argument filter.</xs:documentation>
   229     </xs:annotation>
   230     <xs:complexType>
   231       <xs:sequence>
   232         <xs:element maxOccurs="unbounded" minOccurs="0" name="argumentFilterEntry">
   233           <xs:complexType>
   234             <xs:sequence>
   235               <xs:group ref="symbol"/>
   236               <xs:element ref="arity"/>
   237               <xs:choice>
   238                 <xs:element name="collapsing" type="xs:positiveInteger"/>
   239                 <xs:element name="nonCollapsing">
   240                   <xs:complexType>
   241                     <xs:sequence>
   242                       <xs:element maxOccurs="unbounded" minOccurs="0" ref="position"/>
   243                     </xs:sequence>
   244                   </xs:complexType>
   245                 </xs:element>
   246               </xs:choice>
   247             </xs:sequence>
   248           </xs:complexType>
   249         </xs:element>
   250       </xs:sequence>
   251     </xs:complexType>
   252   </xs:element>
   253   <xs:element name="domain">
   254     <xs:complexType>
   255       <xs:choice>
   256         <xs:element name="naturals"/>
   257         <xs:element name="integers">
   258           <xs:annotation>
   259             <xs:documentation>purpose: arctic below zero is arctic-integer</xs:documentation>
   260           </xs:annotation>
   261         </xs:element>
   262         <xs:element name="rationals">
   263           <xs:complexType>
   264             <xs:sequence>
   265               <xs:element name="delta">
   266                 <xs:complexType>
   267                   <xs:sequence>
   268                     <xs:group ref="number"/>
   269                   </xs:sequence>
   270                 </xs:complexType>
   271               </xs:element>
   272             </xs:sequence>
   273           </xs:complexType>
   274         </xs:element>
   275         <xs:element name="arctic">
   276           <xs:complexType>
   277             <xs:sequence>
   278               <xs:element ref="domain"/>
   279             </xs:sequence>
   280           </xs:complexType>
   281         </xs:element>
   282         <xs:element name="tropical">
   283           <xs:complexType>
   284             <xs:sequence>
   285               <xs:element ref="domain"/>
   286             </xs:sequence>
   287           </xs:complexType>
   288         </xs:element>
   289         <xs:element name="matrices">
   290           <xs:annotation>
   291             <xs:documentation>the domain of matrices where the elements are from the subdomain specified</xs:documentation>
   292           </xs:annotation>
   293           <xs:complexType>
   294             <xs:sequence>
   295               <xs:element ref="dimension"/>
   296               <xs:element ref="strictDimension">
   297                 <xs:annotation>
   298                   <xs:documentation>in the upper left submatrix of this dimension there must be a strict decrease
   299 (the remaining parts of the matrix is ignored for strict decreases, only weak decreases are required).</xs:documentation>
   300                 </xs:annotation>
   301               </xs:element>
   302               <xs:element ref="domain"/>
   303             </xs:sequence>
   304           </xs:complexType>
   305         </xs:element>
   306       </xs:choice>
   307     </xs:complexType>
   308   </xs:element>
   309   <xs:element name="redPair">
   310     <xs:complexType>
   311       <xs:choice>
   312         <xs:element name="interpretation">
   313           <xs:complexType>
   314             <xs:sequence>
   315               <xs:element name="type">
   316                 <xs:complexType>
   317                   <xs:choice>
   318                     <xs:element name="polynomial">
   319                       <xs:annotation>
   320                         <xs:documentation>standard polynomial orders over a specified domain (a semiring or something else). Note that if the domain is "matrices of naturals" then everything has to be a matrix, even the constants. This is in contrast to "matrixInterpretations" where the constants are vectors.</xs:documentation>
   321                       </xs:annotation>
   322                       <xs:complexType>
   323                         <xs:sequence>
   324                           <xs:element ref="domain"/>
   325                           <xs:element ref="degree">
   326                             <xs:annotation>
   327                               <xs:documentation>the maximal degree of the polynomial interpretation (some certifiers only support linear interpretations).
   328 all interpretations given should respect this degree.
   329 </xs:documentation>
   330                             </xs:annotation>
   331                           </xs:element>
   332                         </xs:sequence>
   333                       </xs:complexType>
   334                     </xs:element>
   335                     <xs:element name="matrixInterpretation">
   336                       <xs:annotation>
   337                         <xs:documentation>matrix interpretations where the elements are vectors. Example: if the domain is naturals, then the coefficients in front of variables have to be matrices and the constants should be vectors over the naturals.</xs:documentation>
   338                       </xs:annotation>
   339                       <xs:complexType>
   340                         <xs:sequence>
   341                           <xs:element ref="domain"/>
   342                           <xs:element ref="dimension"/>
   343                           <xs:element ref="strictDimension">
   344                             <xs:annotation>
   345                               <xs:documentation>in the upper subvector of this dimension there must be a strict decrease
   346 (the lower part of the vector is ignored for strict decreases, only weak decreases are required).</xs:documentation>
   347                             </xs:annotation>
   348                           </xs:element>
   349                         </xs:sequence>
   350                       </xs:complexType>
   351                     </xs:element>
   352                   </xs:choice>
   353                 </xs:complexType>
   354               </xs:element>
   355               <xs:element maxOccurs="unbounded" minOccurs="0" name="interpret">
   356                 <xs:complexType>
   357                   <xs:sequence>
   358                     <xs:group ref="symbol"/>
   359                     <xs:element ref="arity"/>
   360                     <xs:group ref="function"/>
   361                   </xs:sequence>
   362                 </xs:complexType>
   363               </xs:element>
   364             </xs:sequence>
   365           </xs:complexType>
   366         </xs:element>
   367         <xs:element name="pathOrder">
   368           <xs:complexType>
   369             <xs:sequence>
   370               <xs:element name="statusPrecedence">
   371                 <xs:complexType>
   372                   <xs:sequence>
   373                     <xs:element name="statusPrecedenceEntry" maxOccurs="unbounded" minOccurs="0">
   374                       <xs:annotation>
   375                         <xs:documentation>Note that the arities within the status precedence entries in combination with argument filters correspond to the unfiltered arities. E.g., if the second argument of f/3 is dropped then the status precedence entry still has to give arity 3 to f.</xs:documentation>
   376                       </xs:annotation>
   377                       <xs:complexType>
   378                         <xs:sequence>
   379                           <xs:group ref="symbol"/>
   380                           <xs:element ref="arity"/>
   381                           <xs:element name="precedence" type="xs:nonNegativeInteger">
   382                             <xs:annotation>
   383                               <xs:documentation>higher numbers = higher precedence. Unspecified symbols obtain precedence 0.</xs:documentation>
   384                             </xs:annotation>
   385                           </xs:element>
   386                           <xs:choice>
   387                             <xs:element name="lex">
   388                               <xs:annotation>
   389                                 <xs:documentation>to realize permutations for lex. comparisons, use an argument filter, which just permutes. Eg., right-to-left precedence of f(x,y,z) where the second argument is dropped, is done by argument filter f -&gt; [3,1]</xs:documentation>
   390                               </xs:annotation>
   391                               <xs:complexType> </xs:complexType>
   392                             </xs:element>
   393                             <xs:element name="mul"/>
   394                           </xs:choice>
   395                         </xs:sequence>
   396                       </xs:complexType>
   397                     </xs:element>
   398                   </xs:sequence>
   399                 </xs:complexType>
   400               </xs:element>
   401               <xs:element minOccurs="0" ref="argumentFilter">
   402                 <xs:annotation>
   403                   <xs:documentation>To realize permutations for lex. comparisons, one has to use an argument filter, which can just permute. Eg., right-to-left precedence of f(x,y,z) where the second argument is dropped, is done by argument filter f -&gt; [3,1]</xs:documentation>
   404                 </xs:annotation>
   405               </xs:element>
   406             </xs:sequence>
   407           </xs:complexType>
   408         </xs:element>
   409         <xs:element name="knuthBendixOrder">
   410           <xs:complexType>
   411             <xs:sequence>
   412               <xs:element name="w0" type="xs:positiveInteger">
   413                 <xs:annotation>
   414                   <xs:documentation/>
   415                 </xs:annotation>
   416               </xs:element>
   417               <xs:element name="precedenceWeight">
   418                 <xs:complexType>
   419                   <xs:sequence>
   420                     <xs:element name="precedenceWeightEntry" maxOccurs="unbounded" minOccurs="0">
   421                       <xs:annotation>
   422                         <xs:documentation>Note that the arities within the precedence weight entries in combination with argument filters correspond to the unfiltered arities. E.g., if the second argument of f/3 is dropped then the weight precedence entry still has to give arity 3 to f.</xs:documentation>
   423                       </xs:annotation>
   424                       <xs:complexType>
   425                         <xs:sequence>
   426                           <xs:group ref="symbol"/>
   427                           <xs:element ref="arity"/>
   428                           <xs:element name="precedence" type="xs:nonNegativeInteger">
   429                             <xs:annotation>
   430                               <xs:documentation>higher numbers = higher precedence. Unspecified symbols obtain precedence 0.</xs:documentation>
   431                             </xs:annotation>
   432                           </xs:element>
   433                           <xs:element name="weight" type="xs:nonNegativeInteger">
   434                             <xs:annotation>
   435                               <xs:documentation/>
   436                             </xs:annotation>
   437                           </xs:element>
   438                         </xs:sequence>
   439                       </xs:complexType>
   440                     </xs:element>
   441                   </xs:sequence>
   442                 </xs:complexType>
   443               </xs:element>
   444               <xs:element minOccurs="0" ref="argumentFilter">
   445                 <xs:annotation>
   446                   <xs:documentation>To realize permutations for lex. comparisons, one has to use an argument filter, which can just permute. Eg., right-to-left precedence of f(x,y,z) where the second argument is dropped, is done by argument filter f -&gt; [3,1]</xs:documentation>
   447                 </xs:annotation>
   448               </xs:element>
   449             </xs:sequence>
   450           </xs:complexType>
   451         </xs:element>
   452         <xs:element name="scnp">
   453           <xs:complexType>
   454             <xs:sequence>
   455               <xs:element name="status">
   456                 <xs:complexType>
   457                   <xs:choice>
   458                     <xs:element name="ms"/>
   459                     <xs:element name="min"/>
   460                     <xs:element name="max"/>
   461                     <xs:element name="dms"/>
   462                   </xs:choice>
   463                 </xs:complexType>
   464               </xs:element>
   465               <xs:element name="levelMapping">
   466                 <xs:complexType>
   467                   <xs:sequence>
   468                     <xs:element maxOccurs="unbounded" minOccurs="0" name="levelMappingEntry">
   469                       <xs:complexType>
   470                         <xs:sequence>
   471                           <xs:group ref="symbol"/>
   472                           <xs:element ref="arity"/>
   473                           <xs:element maxOccurs="unbounded" minOccurs="0" name="positionLevelEntry">
   474                             <xs:annotation>
   475                               <xs:documentation>position 0 encodes the argument "full term"</xs:documentation>
   476                             </xs:annotation>
   477                             <xs:complexType>
   478                               <xs:sequence>
   479                                 <xs:element name="position" type="xs:nonNegativeInteger"/>
   480                                 <xs:element name="level" type="xs:nonNegativeInteger"/>
   481                               </xs:sequence>
   482                             </xs:complexType>
   483                           </xs:element>
   484                         </xs:sequence>
   485                       </xs:complexType>
   486                     </xs:element>
   487                   </xs:sequence>
   488                 </xs:complexType>
   489               </xs:element>
   490               <xs:element ref="redPair"/>
   491             </xs:sequence>
   492           </xs:complexType>
   493         </xs:element>
   494       </xs:choice>
   495     </xs:complexType>
   496   </xs:element>
   497   <xs:element name="arithFunction">
   498     <xs:complexType>
   499       <xs:choice>
   500         <xs:element name="natural" type="xs:nonNegativeInteger"/>
   501         <xs:element name="variable" type="xs:positiveInteger"/>
   502         <xs:element name="sum">
   503           <xs:complexType>
   504             <xs:sequence>
   505               <xs:element maxOccurs="unbounded" ref="arithFunction"/>
   506             </xs:sequence>
   507           </xs:complexType>
   508         </xs:element>
   509         <xs:element name="product">
   510           <xs:complexType>
   511             <xs:sequence>
   512               <xs:element maxOccurs="unbounded" ref="arithFunction"/>
   513             </xs:sequence>
   514           </xs:complexType>
   515         </xs:element>
   516         <xs:element name="min">
   517           <xs:complexType>
   518             <xs:sequence>
   519               <xs:element maxOccurs="unbounded" ref="arithFunction"/>
   520             </xs:sequence>
   521           </xs:complexType>
   522         </xs:element>
   523         <xs:element name="max">
   524           <xs:complexType>
   525             <xs:sequence>
   526               <xs:element maxOccurs="unbounded" ref="arithFunction"/>
   527             </xs:sequence>
   528           </xs:complexType>
   529         </xs:element>
   530       </xs:choice>
   531     </xs:complexType>
   532   </xs:element>
   533   <xs:element name="model">
   534     <xs:complexType>
   535       <xs:choice>
   536         <xs:element name="finiteModel">
   537           <xs:annotation>
   538             <xs:documentation>The carrierSize determines the carrier. A size of n fixes the carrier to {0,1,...,n-1}. If no labeling is given, then every symbol is labeled by the interpretation of the arguments
   539 </xs:documentation>
   540           </xs:annotation>
   541           <xs:complexType>
   542             <xs:sequence>
   543               <xs:element name="carrierSize" type="xs:positiveInteger"/>
   544               <xs:element minOccurs="0" name="tupleOrder">
   545                 <xs:annotation>
   546                   <xs:documentation>If this element is missing, then one uses semantic labeling in the model version. 
   547 
   548 Otherwise, semantic labeling is applied with a quasi-model where one uses a tuple extension of the standard order &gt; on the naturals. However, there can be several such extensions, e.g., point-wise, lexicographic (w.r.t. permutation), ...</xs:documentation>
   549                 </xs:annotation>
   550                 <xs:complexType>
   551                   <xs:choice>
   552                     <xs:element name="pointWise">
   553                       <xs:annotation>
   554                         <xs:documentation>here, (x1,..,xn) &gt; (y1,...,yn) iff all xi &gt;= yi and for some i: xi &gt; yi</xs:documentation>
   555                       </xs:annotation>
   556                     </xs:element>
   557                   </xs:choice>
   558                 </xs:complexType>
   559               </xs:element>
   560               <xs:element maxOccurs="unbounded" minOccurs="0" name="interpret">
   561                 <xs:complexType>
   562                   <xs:sequence>
   563                     <xs:group ref="symbol"/>
   564                     <xs:element ref="arity"/>
   565                     <xs:element ref="arithFunction"/>
   566                   </xs:sequence>
   567                 </xs:complexType>
   568               </xs:element>
   569               <xs:element name="labeling" minOccurs="0">
   570                 <xs:annotation>
   571                   <xs:documentation>labeling domain and functions for semantic labeling. This feature is currently unsupported and not specified. It is only present to state that this entry might come in the future.</xs:documentation>
   572                 </xs:annotation>
   573               </xs:element>
   574             </xs:sequence>
   575           </xs:complexType>
   576         </xs:element>
   577         <xs:element name="rootLabeling">
   578           <xs:annotation>
   579             <xs:documentation>Normally for root-labeling there is no argument. However, if root-labeling is applied in the DP-setting after FC1 has been applied, one might want to treat the blocking symbol in a special way by dropping it from the carrier. If and only if this alternative is chosen, the blocking symbol must be present as argument.</xs:documentation>
   580           </xs:annotation>
   581           <xs:complexType>
   582             <xs:sequence>
   583               <xs:group ref="symbol" minOccurs="0"/>
   584             </xs:sequence>
   585           </xs:complexType>
   586         </xs:element>
   587       </xs:choice>
   588     </xs:complexType>
   589   </xs:element>
   590   <xs:element name="patternTerm">
   591     <xs:annotation>
   592       <xs:documentation>term, pumping subst., closing subst</xs:documentation>
   593     </xs:annotation>
   594     <xs:complexType>
   595       <xs:sequence>
   596         <xs:group ref="term"/>
   597         <xs:element ref="substitution"/>
   598         <xs:element ref="substitution"/>
   599       </xs:sequence>
   600     </xs:complexType>
   601   </xs:element>
   602   <xs:element name="patternRule">
   603     <xs:annotation>
   604       <xs:documentation>the pattern terms are the lhs and rhs of the pattern rule. the third argument is the proof how to derive the pattern rule.</xs:documentation>
   605     </xs:annotation>
   606     <xs:complexType>
   607       <xs:sequence>
   608         <xs:element ref="patternTerm"/>
   609         <xs:element ref="patternTerm"/>
   610         <xs:choice>
   611           <xs:element name="originalRule">
   612             <xs:complexType>
   613               <xs:sequence>
   614                 <xs:element ref="rule"/>
   615                 <xs:element name="isPair" type="xs:boolean"/>
   616               </xs:sequence>
   617             </xs:complexType>
   618           </xs:element>
   619           <xs:element name="initialPumping">
   620             <xs:annotation>
   621               <xs:documentation>first substitution is for lhs, second for rhs.</xs:documentation>
   622             </xs:annotation>
   623             <xs:complexType>
   624               <xs:sequence>
   625                 <xs:element ref="patternRule"/>
   626                 <xs:element ref="substitution"/>
   627                 <xs:element ref="substitution"/>
   628               </xs:sequence>
   629             </xs:complexType>
   630           </xs:element>
   631           <xs:element name="initialPumpingContext">
   632             <xs:complexType>
   633               <xs:sequence>
   634                 <xs:element ref="patternRule"/>
   635                 <xs:element ref="substitution"/>
   636                 <xs:element ref="positionInTerm"/>
   637                 <xs:element ref="var"/>
   638               </xs:sequence>
   639             </xs:complexType>
   640           </xs:element>
   641           <xs:element name="equivalence">
   642             <xs:complexType>
   643               <xs:sequence>
   644                 <xs:element ref="patternRule"/>
   645                 <xs:choice>
   646                   <xs:element name="left"/>
   647                   <xs:element name="right"/>
   648                 </xs:choice>
   649                 <xs:element name="patternEquivalence">
   650                   <xs:complexType>
   651                     <xs:choice>
   652                       <xs:element name="domainRenaming">
   653                         <xs:complexType>
   654                           <xs:sequence>
   655                             <xs:element ref="substitution"/>
   656                           </xs:sequence>
   657                         </xs:complexType>
   658                       </xs:element>
   659                       <xs:element name="irrelevant">
   660                         <xs:annotation>
   661                           <xs:documentation>first substitution is pumping, second is closing</xs:documentation>
   662                         </xs:annotation>
   663                         <xs:complexType>
   664                           <xs:sequence>
   665                             <xs:element ref="substitution"/>
   666                             <xs:element ref="substitution"/>
   667                           </xs:sequence>
   668                         </xs:complexType>
   669                       </xs:element>
   670                       <xs:element name="simplification">
   671                         <xs:annotation>
   672                           <xs:documentation>first substituion is for base, second is new closing subst.</xs:documentation>
   673                         </xs:annotation>
   674                         <xs:complexType>
   675                           <xs:sequence>
   676                             <xs:element ref="substitution"/>
   677                             <xs:element ref="substitution"/>
   678                           </xs:sequence>
   679                         </xs:complexType>
   680                       </xs:element>
   681                     </xs:choice>
   682                   </xs:complexType>
   683                 </xs:element>
   684               </xs:sequence>
   685             </xs:complexType>
   686           </xs:element>
   687           <xs:element name="narrowing">
   688             <xs:annotation>
   689               <xs:documentation>first pattern rule is rewritten with second pattern rule</xs:documentation>
   690             </xs:annotation>
   691             <xs:complexType>
   692               <xs:sequence>
   693                 <xs:element ref="patternRule"/>
   694                 <xs:element ref="patternRule"/>
   695                 <xs:element ref="positionInTerm"/>
   696               </xs:sequence>
   697             </xs:complexType>
   698           </xs:element>
   699           <xs:element name="instantiation">
   700             <xs:complexType>
   701               <xs:sequence>
   702                 <xs:element ref="patternRule"/>
   703                 <xs:element ref="substitution"/>
   704                 <xs:choice>
   705                   <xs:element name="base"/>
   706                   <xs:element name="pumping">
   707                     <xs:complexType/>
   708                   </xs:element>
   709                   <xs:element name="closing">
   710                     <xs:complexType/>
   711                   </xs:element>
   712                 </xs:choice>
   713               </xs:sequence>
   714             </xs:complexType>
   715           </xs:element>
   716           <xs:element name="rewriting">
   717             <xs:complexType>
   718               <xs:sequence>
   719                 <xs:element ref="patternRule"/>
   720                 <xs:element ref="rewriteSequence"/>
   721                 <xs:choice>
   722                   <xs:element name="base"/>
   723                   <xs:element name="pumping">
   724                     <xs:complexType>
   725                       <xs:sequence>
   726                         <xs:element ref="var"/>
   727                       </xs:sequence>
   728                     </xs:complexType>
   729                   </xs:element>
   730                   <xs:element name="closing">
   731                     <xs:complexType>
   732                       <xs:sequence>
   733                         <xs:element ref="var"/>
   734                       </xs:sequence>
   735                     </xs:complexType>
   736                   </xs:element>
   737                 </xs:choice>
   738               </xs:sequence>
   739             </xs:complexType>
   740           </xs:element>
   741         </xs:choice>
   742       </xs:sequence>
   743     </xs:complexType>
   744   </xs:element>
   745   <xs:element name="substitution">
   746     <xs:complexType>
   747       <xs:sequence>
   748         <xs:element name="substEntry" maxOccurs="unbounded" minOccurs="0">
   749           <xs:complexType>
   750             <xs:sequence>
   751               <xs:element ref="var"/>
   752               <xs:group ref="term"/>
   753             </xs:sequence>
   754           </xs:complexType>
   755         </xs:element>
   756       </xs:sequence>
   757     </xs:complexType>
   758   </xs:element>
   759   <xs:group name="context">
   760     <xs:choice>
   761       <xs:element name="box"/>
   762       <xs:element name="funContext">
   763         <xs:complexType>
   764           <xs:sequence>
   765             <xs:group ref="symbol"/>
   766             <xs:element name="before">
   767               <xs:complexType>
   768                 <xs:group maxOccurs="unbounded" minOccurs="0" ref="term"/>
   769               </xs:complexType>
   770             </xs:element>
   771             <xs:group ref="context"/>
   772             <xs:element name="after">
   773               <xs:complexType>
   774                 <xs:group maxOccurs="unbounded" minOccurs="0" ref="term"/>
   775               </xs:complexType>
   776             </xs:element>
   777           </xs:sequence>
   778         </xs:complexType>
   779       </xs:element>
   780     </xs:choice>
   781   </xs:group>
   782   <xs:element name="rewriteSequence">
   783     <xs:annotation>
   784       <xs:documentation>if t_0 is startterm, and there are rewrite-steps p_i, rule_i, t_i (for i = 1..n)
   785 then t_{i-1} -&gt;_{p_i,rule_i} t_i for all i=1..n
   786 
   787 If the rewrite sequence is built via two TRSs, where one corresponds to a major step, and the other corresponds to a relative step, then all relative steps have to be marked with the relative-elemnt. (e.g., for loops in relative termination analysis R/S, the S-steps are relative, or for loops in the DP-framework with (P,R), the R-steps are relative).</xs:documentation>
   788     </xs:annotation>
   789     <xs:complexType>
   790       <xs:sequence>
   791         <xs:element name="startTerm">
   792           <xs:complexType>
   793             <xs:sequence>
   794               <xs:group ref="term"/>
   795             </xs:sequence>
   796           </xs:complexType>
   797         </xs:element>
   798         <xs:element maxOccurs="unbounded" minOccurs="0" ref="rewriteStep"/>
   799       </xs:sequence>
   800     </xs:complexType>
   801   </xs:element>
   802   <xs:element name="rewriteStep">
   803     <xs:complexType>
   804       <xs:sequence>
   805         <xs:element ref="positionInTerm"/>
   806         <xs:element ref="rule"/>
   807         <xs:element minOccurs="0" name="relative"/>
   808         <xs:group ref="term"/>
   809       </xs:sequence>
   810     </xs:complexType>
   811   </xs:element>
   812   <xs:element name="state" type="xs:string">
   813     <xs:annotation>
   814       <xs:documentation>the state of a tree automation</xs:documentation>
   815     </xs:annotation>
   816   </xs:element>
   817   <xs:element name="treeAutomaton">
   818     <xs:complexType>
   819       <xs:sequence>
   820         <xs:element name="finalStates">
   821           <xs:complexType>
   822             <xs:sequence>
   823               <xs:element maxOccurs="unbounded" minOccurs="0" ref="state"/>
   824             </xs:sequence>
   825           </xs:complexType>
   826         </xs:element>
   827         <xs:element name="transitions">
   828           <xs:complexType>
   829             <xs:sequence>
   830               <xs:element maxOccurs="unbounded" minOccurs="0" name="transition">
   831                 <xs:complexType>
   832                   <xs:sequence>
   833                     <xs:element name="lhs">
   834                       <xs:complexType>
   835                         <xs:choice>
   836                           <xs:sequence>
   837                             <xs:group ref="symbol"/>
   838                             <xs:element minOccurs="0" name="height" type="xs:nonNegativeInteger"/>
   839                             <xs:element maxOccurs="unbounded" minOccurs="0" ref="state"/>
   840                           </xs:sequence>
   841                           <xs:element ref="state"/>
   842                         </xs:choice>
   843                       </xs:complexType>
   844                     </xs:element>
   845                     <xs:element name="rhs">
   846                       <xs:complexType>
   847                         <xs:sequence>
   848                           <xs:element ref="state"/>
   849                         </xs:sequence>
   850                       </xs:complexType>
   851                     </xs:element>
   852                   </xs:sequence>
   853                 </xs:complexType>
   854               </xs:element>
   855             </xs:sequence>
   856           </xs:complexType>
   857         </xs:element>
   858       </xs:sequence>
   859     </xs:complexType>
   860   </xs:element>
   861   <xs:element name="uncurryInformation">
   862     <xs:annotation>
   863       <xs:documentation>the uncurrying information consists of:
   864 - the application symbol
   865 - the names of the uncurried symbols
   866 - the uncurrying rules
   867 - the additional rules that are obtained when eta-expanding the TRS
   868 </xs:documentation>
   869     </xs:annotation>
   870     <xs:complexType>
   871       <xs:sequence>
   872         <xs:group ref="symbol"/>
   873         <xs:element name="uncurriedSymbols">
   874           <xs:complexType>
   875             <xs:sequence>
   876               <xs:element maxOccurs="unbounded" name="uncurriedSymbolEntry">
   877                 <xs:annotation>
   878                   <xs:documentation>mark for each original symbols the new uncurried symbols:
   879 if the constant map should now be uncurried up to two levels then
   880 there should be a symbol map entry 
   881   map (we want to uncurry map)
   882   0  (the original arity of map)
   883   map (the new constant)
   884   map1 (the new unary symbol)
   885   map2 (the new binary symbol)
   886  
   887  Note that the names can be chosen arbitrarily</xs:documentation>
   888                 </xs:annotation>
   889                 <xs:complexType>
   890                   <xs:sequence>
   891                     <xs:group ref="symbol"/>
   892                     <xs:element ref="arity"/>
   893                     <xs:group ref="symbol" maxOccurs="unbounded"/>
   894                   </xs:sequence>
   895                 </xs:complexType>
   896               </xs:element>
   897             </xs:sequence>
   898           </xs:complexType>
   899         </xs:element>
   900         <xs:element name="uncurryRules">
   901           <xs:complexType>
   902             <xs:sequence>
   903               <xs:element ref="rules"/>
   904             </xs:sequence>
   905           </xs:complexType>
   906         </xs:element>
   907         <xs:element name="etaRules">
   908           <xs:complexType>
   909             <xs:sequence>
   910               <xs:element ref="rules"/>
   911             </xs:sequence>
   912           </xs:complexType>
   913         </xs:element>
   914       </xs:sequence>
   915     </xs:complexType>
   916   </xs:element>
   917   <xs:element name="loop">
   918     <xs:annotation>
   919       <xs:documentation>a loop is given by a (non-empty) rewrite-sequence t0 -&gt;+ tn where additionally tn = C[t0 sigma]</xs:documentation>
   920     </xs:annotation>
   921     <xs:complexType>
   922       <xs:sequence>
   923         <xs:element ref="rewriteSequence"/>
   924         <xs:element ref="substitution"/>
   925         <xs:group ref="context"/>
   926       </xs:sequence>
   927     </xs:complexType>
   928   </xs:element>
   929   <xs:element name="nonLoop">
   930     <xs:annotation>
   931       <xs:documentation>first substitution is part of pumping subst., 
   932 second substitution is part of closing subst.,
   933 first natural is for decomposing pumping subst.,
   934 second natural is for getting subterm</xs:documentation>
   935     </xs:annotation>
   936     <xs:complexType>
   937       <xs:sequence>
   938         <xs:element ref="patternRule"/>
   939         <xs:element ref="substitution"/>
   940         <xs:element ref="substitution"/>
   941         <xs:element name="natural" type="xs:nonNegativeInteger"/>
   942         <xs:element name="natural" type="xs:nonNegativeInteger"/>
   943         <xs:element ref="positionInTerm"/>
   944       </xs:sequence>
   945     </xs:complexType>
   946   </xs:element>
   947   <xs:element name="orderingConstraints">
   948     <xs:annotation>
   949       <xs:documentation>every strict order has to be well-founded. 
   950 every strict order &gt; has to be compatible with all orders &gt;' (both strict and non-strict):
   951 Here, compatible between a strict order &gt; and &gt;' is defined as: 
   952 s &gt; t and t &gt;' u implies s &gt; u, and similarly, s &gt;' t and t &gt; u implies s &gt; u.
   953 every order has to be stable.
   954 The demand for monotonicity, etc. is specified by the corresponding sub-elements.</xs:documentation>
   955     </xs:annotation>
   956     <xs:complexType>
   957       <xs:sequence>
   958         <xs:element maxOccurs="unbounded" name="orderingConstraintElement">
   959           <xs:complexType>
   960             <xs:sequence>
   961               <xs:element name="strict" type="xs:boolean"/>
   962               <xs:element name="ceCompatible" type="xs:boolean"/>
   963               <xs:element minOccurs="0" name="monotonePositions">
   964                 <xs:annotation>
   965                   <xs:documentation>if this element is not given, then monotonicity is not required. Otherwise, the order has to be monotone in the specified argument positions. Either this complete monotonicity, or it is specified by an argument filter pi (only non-collapsing entries), where the order has to be monotone in (f,i), whenever pi(f) contains i.</xs:documentation>
   966                 </xs:annotation>
   967                 <xs:complexType>
   968                   <xs:choice>
   969                     <xs:element ref="argumentFilter">
   970                       <xs:annotation>
   971                         <xs:documentation>To realize permutations for lex. comparisons, one has to use an argument filter, which can just permute. Eg., right-to-left precedence of f(x,y,z) where the second argument is dropped, is done by argument filter f -&gt; [3,1]</xs:documentation>
   972                       </xs:annotation>
   973                     </xs:element>
   974                     <xs:element name="everySymbolAndPosition"/>
   975                   </xs:choice>
   976                 </xs:complexType>
   977               </xs:element>
   978               <xs:element minOccurs="0" name="ignoredPositions">
   979                 <xs:annotation>
   980                   <xs:documentation>only non-collapsing argument filters pi. whenever i is not contained in pi(f), then  f(s1,...si,...sn) &gt;= f(s1,....ti,...sn) must hold for arbitrary si and ti.</xs:documentation>
   981                 </xs:annotation>
   982                 <xs:complexType>
   983                   <xs:sequence>
   984                     <xs:element ref="argumentFilter">
   985                       <xs:annotation>
   986                         <xs:documentation>To realize permutations for lex. comparisons, one has to use an argument filter, which can just permute. Eg., right-to-left precedence of f(x,y,z) where the second argument is dropped, is done by argument filter f -&gt; [3,1]</xs:documentation>
   987                       </xs:annotation>
   988                     </xs:element>
   989                   </xs:sequence>
   990                 </xs:complexType>
   991               </xs:element>
   992               <xs:element maxOccurs="unbounded" minOccurs="0" ref="rule"/>
   993             </xs:sequence>
   994           </xs:complexType>
   995         </xs:element>
   996       </xs:sequence>
   997     </xs:complexType>
   998   </xs:element>
   999   <xs:element name="orderingConstraintProof">
  1000     <xs:complexType>
  1001       <xs:choice>
  1002         <xs:element ref="redPair"/>
  1003         <xs:element name="satisfiableAssumption">
  1004           <xs:complexType>
  1005             <xs:sequence>
  1006               <xs:element ref="orderingConstraints"/>
  1007             </xs:sequence>
  1008           </xs:complexType>
  1009         </xs:element>
  1010       </xs:choice>
  1011     </xs:complexType>
  1012   </xs:element>
  1013   <xs:element name="url" type="xs:string"/>
  1014   <xs:element name="trsInput">
  1015     <xs:annotation>
  1016       <xs:documentation>If a certifier is not able to treat certain features like AC or innermost or ..., then it has to guarantee that these fields are not present in the certification problem. If they are, the certifier has to fail (and not just ignore!)</xs:documentation>
  1017     </xs:annotation>
  1018     <xs:complexType>
  1019       <xs:sequence>
  1020         <xs:element ref="trs"/>
  1021         <xs:element minOccurs="0" ref="strategy"/>
  1022         <xs:element minOccurs="0" ref="equations"/>
  1023         <xs:element name="relativeRules" minOccurs="0">
  1024           <xs:complexType>
  1025             <xs:sequence>
  1026               <xs:element ref="rules"/>
  1027             </xs:sequence>
  1028           </xs:complexType>
  1029         </xs:element>
  1030       </xs:sequence>
  1031     </xs:complexType>
  1032   </xs:element>
  1033   <xs:element name="dpInput">
  1034     <xs:complexType>
  1035       <xs:sequence>
  1036         <xs:element ref="trs"/>
  1037         <xs:element ref="dps"/>
  1038         <xs:element ref="strategy" minOccurs="0"/>
  1039         <xs:element name="minimal" type="xs:boolean"/>
  1040       </xs:sequence>
  1041     </xs:complexType>
  1042   </xs:element>
  1043   <xs:element name="strategy">
  1044     <xs:annotation>
  1045       <xs:documentation>no strategy means standard rewriting without restrictions</xs:documentation>
  1046     </xs:annotation>
  1047     <xs:complexType>
  1048       <xs:choice>
  1049         <xs:element name="innermost"/>
  1050         <xs:element ref="innermostLhss"/>
  1051       </xs:choice>
  1052     </xs:complexType>
  1053   </xs:element>
  1054   <xs:element name="equations">
  1055     <xs:complexType>
  1056       <xs:sequence>
  1057         <xs:element ref="rules"/>
  1058       </xs:sequence>
  1059     </xs:complexType>
  1060   </xs:element>
  1061   <xs:element name="conversion">
  1062     <xs:complexType>
  1063       <xs:sequence>
  1064         <xs:element name="startTerm">
  1065           <xs:complexType>
  1066             <xs:sequence>
  1067               <xs:group ref="term"/>
  1068             </xs:sequence>
  1069           </xs:complexType>
  1070         </xs:element>
  1071         <xs:element maxOccurs="unbounded" name="equationStep" minOccurs="0">
  1072           <xs:complexType>
  1073             <xs:sequence>
  1074               <xs:element name="positionInTerm">
  1075                 <xs:complexType>
  1076                   <xs:sequence>
  1077                     <xs:element ref="position" maxOccurs="unbounded" minOccurs="0"/>
  1078                   </xs:sequence>
  1079                 </xs:complexType>
  1080               </xs:element>
  1081               <xs:element ref="rule"/>
  1082               <xs:choice>
  1083                 <xs:element name="leftRight"/>
  1084                 <xs:element name="rightLeft"/>
  1085               </xs:choice>
  1086               <xs:group ref="term"/>
  1087             </xs:sequence>
  1088           </xs:complexType>
  1089         </xs:element>
  1090       </xs:sequence>
  1091     </xs:complexType>
  1092   </xs:element>
  1093   <xs:element name="subsumptionProof">
  1094     <xs:complexType>
  1095       <xs:sequence>
  1096         <xs:element maxOccurs="unbounded" minOccurs="0" name="ruleSubsumptionProof">
  1097           <xs:complexType>
  1098             <xs:sequence>
  1099               <xs:element ref="rule"/>
  1100               <xs:element ref="conversion"/>
  1101             </xs:sequence>
  1102           </xs:complexType>
  1103         </xs:element>
  1104       </xs:sequence>
  1105     </xs:complexType>
  1106   </xs:element>
  1107   <xs:element name="innermostLhss">
  1108     <xs:complexType>
  1109       <xs:group ref="term" maxOccurs="unbounded" minOccurs="0"/>
  1110     </xs:complexType>
  1111   </xs:element>
  1112   <xs:group name="complexityMeasure">
  1113     <xs:choice>
  1114       <xs:element name="derivationalComplexity">
  1115         <xs:complexType>
  1116           <xs:sequence>
  1117             <xs:element ref="signature"/>
  1118           </xs:sequence>
  1119         </xs:complexType>
  1120       </xs:element>
  1121       <xs:element name="runtimeComplexity">
  1122         <xs:annotation>
  1123           <xs:documentation>first signature defines constructors, second signature the defined symbols</xs:documentation>
  1124         </xs:annotation>
  1125         <xs:complexType>
  1126           <xs:sequence>
  1127             <xs:element ref="signature"/>
  1128             <xs:element ref="signature"/>
  1129           </xs:sequence>
  1130         </xs:complexType>
  1131       </xs:element>
  1132     </xs:choice>
  1133   </xs:group>
  1134 
  1135   <xs:group name="equationalProofTree">
  1136     <xs:choice>
  1137       <xs:element name="refl">
  1138         <xs:complexType>
  1139           <xs:sequence>
  1140             <xs:group ref="term"/>
  1141           </xs:sequence>
  1142         </xs:complexType>
  1143       </xs:element>
  1144       <xs:element name="sym">
  1145         <xs:complexType>
  1146           <xs:sequence>
  1147             <xs:group ref="equationalProofTree"/>
  1148           </xs:sequence>
  1149         </xs:complexType>
  1150       </xs:element>
  1151       <xs:element name="trans">
  1152         <xs:complexType>
  1153           <xs:sequence>
  1154             <xs:group ref="equationalProofTree"/>
  1155             <xs:group ref="equationalProofTree"/>
  1156           </xs:sequence>
  1157         </xs:complexType>
  1158       </xs:element>
  1159       <xs:element name="assm">
  1160         <xs:complexType>
  1161           <xs:sequence>
  1162             <xs:element ref="rule"/>
  1163             <xs:element ref="substitution"/>
  1164           </xs:sequence>
  1165         </xs:complexType>
  1166       </xs:element>
  1167       <xs:element name="cong">
  1168         <xs:complexType>
  1169           <xs:sequence>
  1170             <xs:group ref="symbol"/>
  1171             <xs:group maxOccurs="unbounded" minOccurs="0" ref="equationalProofTree"/>
  1172           </xs:sequence>
  1173         </xs:complexType>
  1174       </xs:element>
  1175     </xs:choice>
  1176   </xs:group>
  1177   <xs:element name="completionAndNormalization">
  1178     <xs:complexType>
  1179       <xs:sequence>
  1180         <xs:element ref="trs"/>
  1181         <xs:element ref="completionProof"/>
  1182       </xs:sequence>
  1183     </xs:complexType>
  1184   </xs:element>
  1185   <xs:element name="signature">
  1186     <xs:complexType>
  1187       <xs:sequence>
  1188         <xs:element maxOccurs="unbounded" minOccurs="0" name="symbol">
  1189           <xs:complexType>
  1190             <xs:sequence>
  1191               <xs:group ref="symbol"/>
  1192               <xs:element ref="arity"/>
  1193             </xs:sequence>
  1194           </xs:complexType>
  1195         </xs:element>
  1196       </xs:sequence>
  1197     </xs:complexType>
  1198   </xs:element>
  1199   <xs:group name="complexityClass">
  1200     <xs:choice>
  1201       <xs:element name="polynomial" type="xs:nonNegativeInteger">
  1202         <xs:annotation>
  1203           <xs:documentation>the number is the degree:
  1204 0 -&gt; O(1)
  1205 1 -&gt; O(n)
  1206 2 -&gt; O(n^2) ...</xs:documentation>
  1207         </xs:annotation>
  1208       </xs:element>
  1209     </xs:choice>
  1210   </xs:group>
  1211   <xs:element name="complexityProof">
  1212     <xs:complexType>
  1213       <xs:choice>
  1214         <xs:element name="rIsEmpty">
  1215           <xs:annotation>
  1216             <xs:documentation>state that the strict TRS is empty and therefore is in O(1).</xs:documentation>
  1217           </xs:annotation>
  1218           <xs:complexType/>
  1219         </xs:element>
  1220         <xs:element name="ruleShifting">
  1221           <xs:annotation>
  1222             <xs:documentation>shifts a set of rules from strict to weak component where all these rules are oriented by some monotone reduction order where the complexity of the order is known</xs:documentation>
  1223           </xs:annotation>
  1224           <xs:complexType>
  1225             <xs:sequence>
  1226               <xs:element ref="orderingConstraintProof"/>
  1227               <xs:element ref="trs"/>
  1228               <xs:element ref="complexityProof"/>
  1229             </xs:sequence>
  1230           </xs:complexType>
  1231         </xs:element>
  1232       </xs:choice>
  1233     </xs:complexType>
  1234   </xs:element>
  1235   <xs:element name="completionProof">
  1236     <xs:annotation>
  1237       <xs:documentation/>
  1238     </xs:annotation>
  1239     <xs:complexType>
  1240       <xs:sequence>
  1241         <xs:element ref="wcrProof"/>
  1242         <xs:element ref="trsTerminationProof"/>
  1243         <xs:element name="equivalenceProof">
  1244           <xs:annotation>
  1245             <xs:documentation>Show that a given set of equations E is equivalent to a TRS R,
  1246 by showing that all rules can be derived from the equations and vice versa.
  1247 The first subsumption proof is mandatory (where the rules have to be derived from the equations), the latter is optional and may be automatically be performed by the certifier.</xs:documentation>
  1248           </xs:annotation>
  1249           <xs:complexType>
  1250             <xs:sequence>
  1251               <xs:element ref="subsumptionProof"/>
  1252               <xs:element minOccurs="0" ref="subsumptionProof"/>
  1253             </xs:sequence>
  1254           </xs:complexType>
  1255         </xs:element>
  1256       </xs:sequence>
  1257     </xs:complexType>
  1258   </xs:element>
  1259   <xs:element name="crProof">
  1260     <xs:complexType>
  1261       <xs:choice>
  1262         <xs:element name="wcrAndSN">
  1263           <xs:complexType>
  1264             <xs:sequence>
  1265               <xs:element ref="wcrProof"/>
  1266               <xs:element ref="trsTerminationProof"/>
  1267             </xs:sequence>
  1268           </xs:complexType>
  1269         </xs:element>
  1270         <xs:element name="orthogonal"/>
  1271       </xs:choice>
  1272     </xs:complexType>
  1273   </xs:element>
  1274   <xs:element name="crDisproof">
  1275     <xs:complexType>
  1276       <xs:choice>
  1277         <xs:element name="nonWcrAndSN">
  1278           <xs:complexType>
  1279             <xs:sequence>
  1280               <xs:element name="wcrDisproof">
  1281                 <xs:complexType>
  1282                   <xs:choice>
  1283                     <xs:element name="nonJoinableCriticalPairsAuto">
  1284                       <xs:annotation>
  1285                         <xs:documentation>just claim that some critical pair is not joinable.</xs:documentation>
  1286                       </xs:annotation>
  1287                     </xs:element>
  1288                   </xs:choice>
  1289                 </xs:complexType>
  1290               </xs:element>
  1291               <xs:element ref="trsTerminationProof"/>
  1292             </xs:sequence>
  1293           </xs:complexType>
  1294         </xs:element>
  1295         <xs:element name="nonJoinableFork">
  1296           <xs:annotation>
  1297             <xs:documentation>the TRS is not confluent as there are two rewrite sequences starting from the same term which cannot be joined. The third argument is the reason why a join is not possible.</xs:documentation>
  1298           </xs:annotation>
  1299           <xs:complexType>
  1300             <xs:sequence>
  1301               <xs:element ref="rewriteSequence"/>
  1302               <xs:element ref="rewriteSequence"/>
  1303               <xs:choice>
  1304                 <xs:element name="distinctNormalForms">
  1305                   <xs:annotation>
  1306                     <xs:documentation>the terms are distinct normal forms.</xs:documentation>
  1307                   </xs:annotation>
  1308                 </xs:element>
  1309                 <xs:element name="capNotUnif">
  1310                   <xs:annotation>
  1311                     <xs:documentation>after applying some cap-functions, the capped terms are not unifiable.</xs:documentation>
  1312                   </xs:annotation>
  1313                 </xs:element>
  1314               </xs:choice>
  1315             </xs:sequence>
  1316           </xs:complexType>
  1317         </xs:element>
  1318       </xs:choice>
  1319     </xs:complexType>
  1320   </xs:element>
  1321   <xs:element name="dpNonterminationProof">
  1322     <xs:complexType>
  1323       <xs:choice>
  1324         <xs:element ref="loop"/>
  1325         <xs:element name="dpRuleRemoval">
  1326           <xs:annotation>
  1327             <xs:documentation>Remove some rules and / or DPs to figure out the really nonterminating DP problem (remaining rules and DPs are given, if they are not given, then this means no change). 
  1328 Note that this element can be used for several termination techniques like the dependency graph processor, or the various reduction pair processors. 
  1329 </xs:documentation>
  1330           </xs:annotation>
  1331           <xs:complexType>
  1332             <xs:sequence>
  1333               <xs:element ref="dps" minOccurs="0"/>
  1334               <xs:element ref="trs" minOccurs="0"/>
  1335               <xs:element ref="dpNonterminationProof"/>
  1336             </xs:sequence>
  1337           </xs:complexType>
  1338         </xs:element>
  1339         <xs:element name="infinitenessAssumption">
  1340           <xs:complexType>
  1341             <xs:sequence>
  1342               <xs:element ref="dpInput"/>
  1343             </xs:sequence>
  1344           </xs:complexType>
  1345         </xs:element>
  1346         <xs:element ref="nonLoop"/>
  1347         <xs:element name="innermostLhssRemovalProc">
  1348           <xs:annotation>
  1349             <xs:documentation>For innermost termination: remove those lhss from the innermost strategy component which contain symbols that do not occur in the remaining DP problem.
  1350 The remaining set of lhss has to be given in the proof.</xs:documentation>
  1351           </xs:annotation>
  1352           <xs:complexType>
  1353             <xs:sequence>
  1354               <xs:element ref="innermostLhss"/>
  1355               <xs:element ref="dpNonterminationProof"/>
  1356             </xs:sequence>
  1357           </xs:complexType>
  1358         </xs:element>
  1359         <xs:element name="innermostLhssIncreaseProc">
  1360           <xs:annotation>
  1361             <xs:documentation>Add new lhss to innermost strategy component.</xs:documentation>
  1362           </xs:annotation>
  1363           <xs:complexType>
  1364             <xs:sequence>
  1365               <xs:element ref="innermostLhss"/>
  1366               <xs:element ref="dpNonterminationProof"/>
  1367             </xs:sequence>
  1368           </xs:complexType>
  1369         </xs:element>
  1370         <xs:element name="switchFullStrategyProc">
  1371           <xs:annotation>
  1372             <xs:documentation>Switch from innermost rewriting to full/unrestricted rewriting for locally confluent TRS where there are no overlaps between pairs and rules.</xs:documentation>
  1373           </xs:annotation>
  1374           <xs:complexType>
  1375             <xs:sequence>
  1376               <xs:element ref="wcrProof"/>
  1377               <xs:element ref="dpNonterminationProof"/>
  1378             </xs:sequence>
  1379           </xs:complexType>
  1380         </xs:element>
  1381         <xs:element name="instantiationProc">
  1382           <xs:annotation>
  1383             <xs:documentation>Instantiate several DPs. The set of new DPs has to be provided.</xs:documentation>
  1384           </xs:annotation>
  1385           <xs:complexType>
  1386             <xs:sequence>
  1387               <xs:element ref="dps"/>
  1388               <xs:element ref="dpNonterminationProof"/>
  1389             </xs:sequence>
  1390           </xs:complexType>
  1391         </xs:element>
  1392       </xs:choice>
  1393     </xs:complexType>
  1394   </xs:element>
  1395   <xs:element name="dpProof">
  1396     <xs:complexType>
  1397       <xs:choice>
  1398         <xs:element name="pIsEmpty">
  1399           <xs:annotation>
  1400             <xs:documentation>trivial proof by stating that the set of DPs is empty</xs:documentation>
  1401           </xs:annotation>
  1402         </xs:element>
  1403         <xs:element name="depGraphProc">
  1404           <xs:annotation>
  1405             <xs:documentation>split the current set of DPs into several smaller subproblems by using some DP-graph estimation.
  1406 Note that all components of the graph have to be specified, including singleton nodes which do not form an SCC on their own. The list of components has to be given in topological order, where the components with no incoming edges are listed first.</xs:documentation>
  1407           </xs:annotation>
  1408           <xs:complexType>
  1409             <xs:sequence>
  1410               <xs:element maxOccurs="unbounded" minOccurs="0" name="component">
  1411                 <xs:complexType>
  1412                   <xs:sequence>
  1413                     <xs:element ref="dps"/>
  1414                     <xs:element name="realScc" type="xs:boolean">
  1415                       <xs:annotation>
  1416                         <xs:documentation>may only be set to false, if component is singleton node without edge to itself.
  1417 if set to true, then proof for remaining DP problem has to be given</xs:documentation>
  1418                       </xs:annotation>
  1419                     </xs:element>
  1420                     <xs:element minOccurs="0" name="arcs">
  1421                       <xs:annotation>
  1422                         <xs:documentation>If the arcs-element is present, then the forward arcs between the components have to be listed as children. This will improve the efficiency of certain certifiers. Example:
  1423 
  1424 - not giving an arcs-element is always safe (but will slow down some certifiers)
  1425 - giving an <arcs/> element is only possible if there are no forward arcs
  1426 - giving an
  1427   <arcs>
  1428     <forwardArc>2</forwardArc>
  1429     <forwardArc>7</forwardArc>
  1430   </arcs> 
  1431   element states that there are only arcs to the components 2 and
  1432   7 positions further in the component-list.</xs:documentation>
  1433                       </xs:annotation>
  1434                       <xs:complexType>
  1435                         <xs:sequence>
  1436                           <xs:element maxOccurs="unbounded" minOccurs="0" name="forwardArc"
  1437                             type="xs:positiveInteger">
  1438                             <xs:annotation>
  1439                               <xs:documentation>the idea is to make relative forward references by numbers:
  1440 e.g., the graph
  1441 A to B
  1442 B to A
  1443 A to C
  1444 A to E
  1445 C to D
  1446 D to D
  1447 E to E
  1448 
  1449 can be represented in the component list
  1450 [  (A,B, real, 1,2),    (C,nonreal,2),    (E,real),    (D,real)  ]
  1451 
  1452 then (A,B) gets forwardArcs 1 and 2 since (C) is one element after the (A,B) entry and (E) is 2 elements after the (A,B) entry
  1453 
  1454 (C) gets a forwardArc 2, since (D) is two elements later in the list.
  1455 
  1456 In this way, one does not have do introduce numbers for the SCCs,
  1457 the SCC-DAG is present, and the list must be in topologic order,
  1458 since the forwardArcs are positive numbers only.
  1459 </xs:documentation>
  1460                             </xs:annotation>
  1461                           </xs:element>
  1462                         </xs:sequence>
  1463                       </xs:complexType>
  1464                     </xs:element>
  1465                     <xs:element minOccurs="0" ref="dpProof"/>
  1466                   </xs:sequence>
  1467                 </xs:complexType>
  1468               </xs:element>
  1469             </xs:sequence>
  1470           </xs:complexType>
  1471         </xs:element>
  1472         <xs:element name="redPairProc">
  1473           <xs:annotation>
  1474             <xs:documentation>Use a reduction pair where only the non-strict order has to be monotone.
  1475 It allows to delete those DPs which are strictly oriented. 
  1476 The remaining DPs have to be given. 
  1477 
  1478 If the ordering constraint proof is only an assumption, the orderingConstraints-element becomes mandatory.</xs:documentation>
  1479           </xs:annotation>
  1480           <xs:complexType>
  1481             <xs:sequence>
  1482               <xs:element minOccurs="0" ref="orderingConstraints"/>
  1483               <xs:element ref="orderingConstraintProof"/>
  1484               <xs:element ref="dps"/>
  1485               <xs:element ref="dpProof"/>
  1486             </xs:sequence>
  1487           </xs:complexType>
  1488         </xs:element>
  1489         <xs:element name="redPairUrProc">
  1490           <xs:annotation>
  1491             <xs:documentation>Use a Ce-compatible reduction pair where only the non-strict order has to be monotone.
  1492 It allows to delete those DPs which are strictly oriented. 
  1493 Here only the usable rules have to be weakly oriented.
  1494 
  1495 If the ordering constraint proof is only an assumption, the orderingConstraints-element becomes mandatory.</xs:documentation>
  1496           </xs:annotation>
  1497           <xs:complexType>
  1498             <xs:sequence>
  1499               <xs:element minOccurs="0" ref="orderingConstraints"/>
  1500               <xs:element ref="orderingConstraintProof"/>
  1501               <xs:element ref="dps"/>
  1502               <xs:element ref="usableRules"/>
  1503               <xs:element ref="dpProof"/>
  1504             </xs:sequence>
  1505           </xs:complexType>
  1506         </xs:element>
  1507         <xs:element name="monoRedPairProc">
  1508           <xs:annotation>
  1509             <xs:documentation>Use a reduction pair where both the non-strict and the strict order have to be monotone.
  1510 It allows to delete those DPs and those rules of the TRSs which are strictly oriented. 
  1511 The remaining DPs and the remaining TRSs have to be given.
  1512 
  1513 If the ordering constraint proof is only an assumption, the orderingConstraints-element becomes mandatory.</xs:documentation>
  1514           </xs:annotation>
  1515           <xs:complexType>
  1516             <xs:sequence>
  1517               <xs:element minOccurs="0" ref="orderingConstraints"/>
  1518               <xs:element ref="orderingConstraintProof"/>
  1519               <xs:element ref="dps"/>
  1520               <xs:element ref="trs"/>
  1521               <xs:element ref="dpProof"/>
  1522             </xs:sequence>
  1523           </xs:complexType>
  1524         </xs:element>
  1525         <xs:element name="monoRedPairUrProc">
  1526           <xs:annotation>
  1527             <xs:documentation>Use a Ce-compatible reduction pair where both the non-strict and the strict order have to be monotone.
  1528 It allows to delete those DPs and those rules of the TRSs which are strictly oriented.
  1529 Moreover, all non-usable rules can also be deleted.
  1530 Here, only the usable rules instead of all rules of the TRS have to be oriented.
  1531 The remaining DPs and the remaining TRSs have to be given, as well as the usable rules.
  1532 
  1533 If the ordering constraint proof is only an assumption, the orderingConstraints-element becomes mandatory.</xs:documentation>
  1534           </xs:annotation>
  1535           <xs:complexType>
  1536             <xs:sequence>
  1537               <xs:element minOccurs="0" ref="orderingConstraints"/>
  1538               <xs:element ref="orderingConstraintProof"/>
  1539               <xs:element ref="dps"/>
  1540               <xs:element ref="trs"/>
  1541               <xs:element ref="usableRules"/>
  1542               <xs:element ref="dpProof"/>
  1543             </xs:sequence>
  1544           </xs:complexType>
  1545         </xs:element>
  1546         <xs:element name="subtermProc">
  1547           <xs:annotation>
  1548             <xs:documentation>Use the subterm criterion to delete some DPs.
  1549 Only collapsing argument filters or identity filters may be used.
  1550 The remaining DPs have to be given. The subterm criterion can also be used in combination wirth rewrite sequences.</xs:documentation>
  1551           </xs:annotation>
  1552           <xs:complexType>
  1553             <xs:sequence>
  1554               <xs:element ref="argumentFilter"/>
  1555               <xs:element maxOccurs="unbounded" minOccurs="0" name="projectedRewriteSequence">
  1556                 <xs:annotation>
  1557                   <xs:documentation>The rule specifies the DP for which the rewrite sequence is applied. Here, the rewrite sequence for the projected terms has to be given.
  1558 
  1559 Example: if s -&gt; t is the DP and a rewrite sequence t_1 -&gt;+ t_n is given then it must hold that pi(s) = t_1, and t_n contains pi(t) as a subterm.</xs:documentation>
  1560                 </xs:annotation>
  1561                 <xs:complexType>
  1562                   <xs:sequence>
  1563                     <xs:element ref="rule"/>
  1564                     <xs:element ref="rewriteSequence"/>
  1565                   </xs:sequence>
  1566                 </xs:complexType>
  1567               </xs:element>
  1568               <xs:element ref="dps"/>
  1569               <xs:element ref="dpProof"/>
  1570             </xs:sequence>
  1571           </xs:complexType>
  1572         </xs:element>
  1573         <xs:element name="semlabProc">
  1574           <xs:annotation>
  1575             <xs:documentation>Use the semantic labeling processor to apply semantic labeling on both the DPs and the TRS. The model element determines the kind (model or quasi-model version, label, root-labeling, etc.).
  1576 
  1577 The decreasing rules should be of the form f_..(x1,..,xn) -&gt; f_..(x1,..,xn), i.e., the variables should be enumerated from x1 onwards.</xs:documentation>
  1578           </xs:annotation>
  1579           <xs:complexType>
  1580             <xs:sequence>
  1581               <xs:element ref="model"/>
  1582               <xs:element ref="dps"/>
  1583               <xs:element ref="trs"/>
  1584               <xs:element ref="dpProof"/>
  1585             </xs:sequence>
  1586           </xs:complexType>
  1587         </xs:element>
  1588         <xs:element name="unlabProc">
  1589           <xs:annotation>
  1590             <xs:documentation>removes one layer of labels that were added by semantic labeling.</xs:documentation>
  1591           </xs:annotation>
  1592           <xs:complexType>
  1593             <xs:sequence>
  1594               <xs:element ref="dps"/>
  1595               <xs:element ref="trs"/>
  1596               <xs:element ref="dpProof"/>
  1597             </xs:sequence>
  1598           </xs:complexType>
  1599         </xs:element>
  1600         <xs:element name="sizeChangeProc">
  1601           <xs:annotation>
  1602             <xs:documentation>the size-change criterion processor.
  1603 for each DP, one size-change graph has to be given.
  1604 the set of graphs must be size-change terminating.
  1605 if the size-change criterion is used in combination with the subterm criterion, then the edges in the graphs have to be built according to the subterm relation, and no rules have to be oriented.
  1606 otherwise, for every existing edge in a size-change graph, the corresponding subterm on the rhs is considered as usable, and the corresponding usable rules have to be added to the set of usable rules.
  1607 if not all rules are usable, then one has to use a Ce-compatible order.
  1608 
  1609 Example: 
  1610 DP: F(s(x),g(x)) -&gt; F(id(x),g(x))
  1611 TRS: g(..) -&gt; ..
  1612      id(x) -&gt; x
  1613      
  1614 if one builds a size-change graph where only the first arguments are connected, then one only has to add the id-rule to the set of usable rules, but not the g-rule.</xs:documentation>
  1615           </xs:annotation>
  1616           <xs:complexType>
  1617             <xs:sequence>
  1618               <xs:choice>
  1619                 <xs:element name="subtermCriterion"/>
  1620                 <xs:element name="reductionPair">
  1621                   <xs:annotation>
  1622                     <xs:documentation>The usable rules are optional. If they are used, a Ce-compatible order has to be used.
  1623 
  1624 If the ordering constraint proof is only an assumption, the orderingConstraints-element becomes mandatory.</xs:documentation>
  1625                   </xs:annotation>
  1626                   <xs:complexType>
  1627                     <xs:sequence>
  1628                       <xs:element minOccurs="0" ref="orderingConstraints"/>
  1629                       <xs:element ref="orderingConstraintProof"/>
  1630                       <xs:element ref="usableRules" minOccurs="0"/>
  1631                     </xs:sequence>
  1632                   </xs:complexType>
  1633                 </xs:element>
  1634               </xs:choice>
  1635               <xs:element maxOccurs="unbounded" minOccurs="0" name="sizeChangeGraph">
  1636                 <xs:complexType>
  1637                   <xs:sequence>
  1638                     <xs:element ref="rule"/>
  1639                     <xs:element maxOccurs="unbounded" minOccurs="0" name="edge">
  1640                       <xs:annotation>
  1641                         <xs:documentation>an edge in a size change graph is always of the form
  1642 
  1643 left-argument &gt; / &gt;= right-argument
  1644                           
  1645 position 0 corresponds to the whole term.</xs:documentation>
  1646                       </xs:annotation>
  1647                       <xs:complexType>
  1648                         <xs:sequence>
  1649                           <xs:element name="position" type="xs:nonNegativeInteger"/>
  1650                           <xs:element name="strict" type="xs:boolean"/>
  1651                           <xs:element name="position" type="xs:nonNegativeInteger"/>
  1652                         </xs:sequence>
  1653                       </xs:complexType>
  1654                     </xs:element>
  1655                   </xs:sequence>
  1656                 </xs:complexType>
  1657               </xs:element>
  1658             </xs:sequence>
  1659           </xs:complexType>
  1660         </xs:element>
  1661         <xs:element name="flatContextClosureProc">
  1662           <xs:annotation>
  1663             <xs:documentation>the flat context closure as required for the root labeling technique.
  1664 
  1665 one also has to provide the list of flat contexts which
  1666 is used to fix the variable names in the resulting DP problem.
  1667 
  1668 see the flat context closure technique for TRS for more explanations including an example.</xs:documentation>
  1669           </xs:annotation>
  1670           <xs:complexType>
  1671             <xs:sequence>
  1672               <xs:element minOccurs="0" name="freshSymbol">
  1673                 <xs:complexType>
  1674                   <xs:sequence>
  1675                     <xs:group ref="symbol"/>
  1676                   </xs:sequence>
  1677                 </xs:complexType>
  1678               </xs:element>
  1679               <xs:element name="flatContexts">
  1680                 <xs:complexType>
  1681                   <xs:group maxOccurs="unbounded" ref="context"/>
  1682                 </xs:complexType>
  1683               </xs:element>
  1684               <xs:element ref="dps"/>
  1685               <xs:element ref="trs"/>
  1686               <xs:element ref="dpProof"/>
  1687             </xs:sequence>
  1688           </xs:complexType>
  1689         </xs:element>
  1690         <xs:element name="argumentFilterProc">
  1691           <xs:annotation>
  1692             <xs:documentation>just apply an argument filter and continue on the filtered DP problem</xs:documentation>
  1693           </xs:annotation>
  1694           <xs:complexType>
  1695             <xs:sequence>
  1696               <xs:element ref="argumentFilter">
  1697                 <xs:annotation>
  1698                   <xs:documentation>To realize permutations for lex. comparisons, one has to use an argument filter, which can just permute. Eg., right-to-left precedence of f(x,y,z) where the second argument is dropped, is done by argument filter f -&gt; [3,1]</xs:documentation>
  1699                 </xs:annotation>
  1700               </xs:element>
  1701               <xs:element ref="dps"/>
  1702               <xs:element ref="trs"/>
  1703               <xs:element ref="dpProof"/>
  1704             </xs:sequence>
  1705           </xs:complexType>
  1706         </xs:element>
  1707         <xs:element name="uncurryProc">
  1708           <xs:annotation>
  1709             <xs:documentation>if applicativeTop does not exist, then one
  1710 - eta-expands R, 
  1711 - uncurries P and R, 
  1712 - and adds the uncurrying rules to R
  1713 (for the binary application symbol given in the uncurry information)
  1714 
  1715 if applicativeTop is present (some number n), then the intention is that the application symbol is a tuple/marked symbol of arity n. Then
  1716 - the eta-expanded rules of R are added to P
  1717 - one uncurries P and R
  1718 - and adds the uncurrying rules to P</xs:documentation>
  1719           </xs:annotation>
  1720           <xs:complexType>
  1721             <xs:sequence>
  1722               <xs:element name="applicativeTop" type="xs:positiveInteger" minOccurs="0"/>
  1723               <xs:element ref="uncurryInformation"/>
  1724               <xs:element ref="dps"/>
  1725               <xs:element ref="trs"/>
  1726               <xs:element ref="dpProof"/>
  1727             </xs:sequence>
  1728           </xs:complexType>
  1729         </xs:element>
  1730         <xs:element name="finitenessAssumption">
  1731           <xs:complexType>
  1732             <xs:sequence>
  1733               <xs:element ref="dpInput"/>
  1734             </xs:sequence>
  1735           </xs:complexType>
  1736         </xs:element>
  1737         <xs:element name="usableRulesProc">
  1738           <xs:annotation>
  1739             <xs:documentation>For innermost termination: switch to usable rules</xs:documentation>
  1740           </xs:annotation>
  1741           <xs:complexType>
  1742             <xs:sequence>
  1743               <xs:element ref="usableRules"/>
  1744               <xs:element ref="dpProof"/>
  1745             </xs:sequence>
  1746           </xs:complexType>
  1747         </xs:element>
  1748         <xs:element name="innermostLhssRemovalProc">
  1749           <xs:annotation>
  1750             <xs:documentation>For innermost termination: remove those lhss from the innermost strategy component which have a root that does not occur in the remaining DP problem.
  1751 The remaining set of lhss has to be given in the proof.</xs:documentation>
  1752           </xs:annotation>
  1753           <xs:complexType>
  1754             <xs:sequence>
  1755               <xs:element ref="innermostLhss"/>
  1756               <xs:element ref="dpProof"/>
  1757             </xs:sequence>
  1758           </xs:complexType>
  1759         </xs:element>
  1760         <xs:element name="switchInnermostProc">
  1761           <xs:annotation>
  1762             <xs:documentation>if R is WCR and has no overlaps with P, then one can switch to innermost</xs:documentation>
  1763           </xs:annotation>
  1764           <xs:complexType>
  1765             <xs:sequence>
  1766               <xs:element ref="wcrProof"/>
  1767               <xs:element ref="dpProof"/>
  1768             </xs:sequence>
  1769           </xs:complexType>
  1770         </xs:element>
  1771         <xs:element name="rewritingProc">
  1772           <xs:annotation>
  1773             <xs:documentation>Rewrite the rhs of some DP, if the usable rules of the redex are confluent.
  1774 First rule: the original DP s -&gt; t
  1775 Rewrite step: the reduction from t to t' at position p
  1776 Usable rules of t |_ p</xs:documentation>
  1777           </xs:annotation>
  1778           <xs:complexType>
  1779             <xs:sequence>
  1780               <xs:element ref="rule"/>
  1781               <xs:element ref="rewriteStep"/>
  1782               <xs:element ref="usableRules"/>
  1783               <xs:element ref="dpProof"/>
  1784             </xs:sequence>
  1785           </xs:complexType>
  1786         </xs:element>
  1787         <xs:element name="instantiationProc">
  1788           <xs:annotation>
  1789             <xs:documentation>Instantiate some DP</xs:documentation>
  1790           </xs:annotation>
  1791           <xs:complexType>
  1792             <xs:sequence>
  1793               <xs:element ref="rule"/>
  1794               <xs:element name="instantiations">
  1795                 <xs:complexType>
  1796                   <xs:sequence>
  1797                     <xs:element ref="rules"/>
  1798                   </xs:sequence>
  1799                 </xs:complexType>
  1800               </xs:element>
  1801               <xs:element ref="dpProof"/>
  1802             </xs:sequence>
  1803           </xs:complexType>
  1804         </xs:element>
  1805         <xs:element name="forwardInstantiationProc">
  1806           <xs:annotation>
  1807             <xs:documentation>Instantiate some DP using forward instantiation.
  1808 In the innermost case one can optionally give the set of usable rules for that DP which are then used to compute the reversed cap function.</xs:documentation>
  1809           </xs:annotation>
  1810           <xs:complexType>
  1811             <xs:sequence>
  1812               <xs:element ref="rule"/>
  1813               <xs:element name="instantiations">
  1814                 <xs:complexType>
  1815                   <xs:sequence>
  1816                     <xs:element ref="rules"/>
  1817                   </xs:sequence>
  1818                 </xs:complexType>
  1819               </xs:element>
  1820               <xs:element ref="usableRules" minOccurs="0"/>
  1821               <xs:element ref="dpProof"/>
  1822             </xs:sequence>
  1823           </xs:complexType>
  1824         </xs:element>
  1825         <xs:element name="narrowingProc">
  1826           <xs:annotation>
  1827             <xs:documentation>Narrow some DP by considering all narrowing below position p.
  1828 Note that p must be a position of the capped rhs of the pair,
  1829 and some other standard application conditions have to be considered.</xs:documentation>
  1830           </xs:annotation>
  1831           <xs:complexType>
  1832             <xs:sequence>
  1833               <xs:element ref="rule"/>
  1834               <xs:element ref="positionInTerm"/>
  1835               <xs:element name="narrowings">
  1836                 <xs:complexType>
  1837                   <xs:sequence>
  1838                     <xs:element ref="rules"/>
  1839                   </xs:sequence>
  1840                 </xs:complexType>
  1841               </xs:element>
  1842               <xs:element ref="dpProof"/>
  1843             </xs:sequence>
  1844           </xs:complexType>
  1845         </xs:element>
  1846         <xs:element name="splitProc">
  1847           <xs:annotation>
  1848             <xs:documentation>Split a DP problem (P,R) to show that certain pairs PD and rules RD cannot occur infinitely often. 
  1849 PD and RD have to given. 
  1850 Then it follows a proof for termination of the relative DP problem (PD, P - PD, RD, R - RD). Finally a termination proof of the DP problem (P - PD, R - RD) has to be given.</xs:documentation>
  1851           </xs:annotation>
  1852           <xs:complexType>
  1853             <xs:sequence>
  1854               <xs:element ref="dps"/>
  1855               <xs:element ref="trs"/>
  1856               <xs:element ref="dpProof"/>
  1857               <xs:element ref="dpProof"/>
  1858             </xs:sequence>
  1859           </xs:complexType>
  1860         </xs:element>
  1861       </xs:choice>
  1862     </xs:complexType>
  1863   </xs:element>
  1864   <xs:element name="equationalProof">
  1865     <xs:complexType>
  1866       <xs:choice>
  1867         <xs:element ref="completionAndNormalization"/>
  1868         <xs:element name="equationalProofTree">
  1869           <xs:complexType>
  1870             <xs:sequence>
  1871               <xs:group ref="equationalProofTree"/>
  1872             </xs:sequence>
  1873           </xs:complexType>
  1874         </xs:element>
  1875         <xs:element ref="conversion"/>
  1876       </xs:choice>
  1877     </xs:complexType>
  1878   </xs:element>
  1879   <xs:element name="equationalDisproof">
  1880     <xs:complexType>
  1881       <xs:choice>
  1882         <xs:element ref="completionAndNormalization"/>
  1883       </xs:choice>
  1884     </xs:complexType>
  1885   </xs:element>
  1886   <xs:element name="relativeNonterminationProof">
  1887     <xs:complexType>
  1888       <xs:choice>
  1889         <xs:element ref="loop"/>
  1890         <xs:element ref="trsNonterminationProof"/>
  1891         <xs:element name="variableConditionViolated">
  1892           <xs:annotation>
  1893             <xs:documentation>there is a rule where the lhs is a variable, or the rhs contains variables not occurring in the lhs.</xs:documentation>
  1894           </xs:annotation>
  1895           <xs:complexType/>
  1896         </xs:element>
  1897         <xs:element name="ruleRemoval">
  1898           <xs:annotation>
  1899             <xs:documentation>Remove some rules to figure out the really nonterminating TRSs. (as usual, first R, then S)</xs:documentation>
  1900           </xs:annotation>
  1901           <xs:complexType>
  1902             <xs:sequence>
  1903               <xs:element ref="trs"/>
  1904               <xs:element ref="trs"/>
  1905               <xs:element ref="relativeNonterminationProof"/>
  1906             </xs:sequence>
  1907           </xs:complexType>
  1908         </xs:element>
  1909         <xs:element name="nonterminationAssumption">
  1910           <xs:complexType>
  1911             <xs:sequence>
  1912               <xs:element ref="trsInput"/>
  1913             </xs:sequence>
  1914           </xs:complexType>
  1915         </xs:element>
  1916       </xs:choice>
  1917     </xs:complexType>
  1918   </xs:element>
  1919   <xs:element name="relativeTerminationProof">
  1920     <xs:complexType>
  1921       <xs:choice>
  1922         <xs:element name="rIsEmpty">
  1923           <xs:annotation>
  1924             <xs:documentation>state that the R/S is relative terminating since R has no rules</xs:documentation>
  1925           </xs:annotation>
  1926           <xs:complexType/>
  1927         </xs:element>
  1928         <xs:element name="sIsEmpty">
  1929           <xs:annotation>
  1930             <xs:documentation>state that the R/S is relative terminating by termination of R since S has no rules</xs:documentation>
  1931           </xs:annotation>
  1932           <xs:complexType>
  1933             <xs:sequence>
  1934               <xs:element ref="trsTerminationProof"/>
  1935             </xs:sequence>
  1936           </xs:complexType>
  1937         </xs:element>
  1938         <xs:element name="ruleRemoval">
  1939           <xs:annotation>
  1940             <xs:documentation>use a reduction pair where both the weak and the strict ordering are monotone.
  1941 Delete all strictly decreasing rules from R and S.
  1942 The remaining rules of first R and then S have to be given.
  1943 
  1944 If the ordering constraint proof is only an assumption, the orderingConstraints-element becomes mandatory.</xs:documentation>
  1945           </xs:annotation>
  1946           <xs:complexType>
  1947             <xs:sequence>
  1948               <xs:element minOccurs="0" ref="orderingConstraints"/>
  1949               <xs:element ref="orderingConstraintProof"/>
  1950               <xs:element ref="trs"/>
  1951               <xs:element ref="trs"/>
  1952               <xs:element ref="relativeTerminationProof"/>
  1953             </xs:sequence>
  1954           </xs:complexType>
  1955         </xs:element>
  1956         <xs:element name="semlab">
  1957           <xs:annotation>
  1958             <xs:documentation>Use the semantic labeling . The model element determines the kind (model or quasi-model version, label, root-labeling, etc.)
  1959 Both the labeled version of R and S have to be given (first R, then S).
  1960 
  1961 The decreasing rules should be of the form f_..(x1,..,xn) -&gt; f_..(x1,..,xn), i.e., the variables should be enumerated from x1 onwards.</xs:documentation>
  1962           </xs:annotation>
  1963           <xs:complexType>
  1964             <xs:sequence>
  1965               <xs:element ref="model"/>
  1966               <xs:element ref="trs"/>
  1967               <xs:element ref="trs"/>
  1968               <xs:element ref="relativeTerminationProof"/>
  1969             </xs:sequence>
  1970           </xs:complexType>
  1971         </xs:element>
  1972         <xs:element name="unlab">
  1973           <xs:annotation>
  1974             <xs:documentation>removes one layer of labels that were added by semantic labeling. (first R, then S, as usual)</xs:documentation>
  1975           </xs:annotation>
  1976           <xs:complexType>
  1977             <xs:sequence>
  1978               <xs:element ref="trs"/>
  1979               <xs:element ref="trs"/>
  1980               <xs:element ref="relativeTerminationProof"/>
  1981             </xs:sequence>
  1982           </xs:complexType>
  1983         </xs:element>
  1984         <xs:element name="stringReversal">
  1985           <xs:annotation>
  1986             <xs:documentation>reverse the strings in both TRSs R and S, i.e., replace f(g(h(x))) -&gt; f(x) by h(g(f(x))) -&gt; f(x). 
  1987 Note that the variable in a reversed rule should be same as the variable in the original rule.</xs:documentation>
  1988           </xs:annotation>
  1989           <xs:complexType>
  1990             <xs:sequence>
  1991               <xs:element ref="trs"/>
  1992               <xs:element ref="trs"/>
  1993               <xs:element ref="relativeTerminationProof"/>
  1994             </xs:sequence>
  1995           </xs:complexType>
  1996         </xs:element>
  1997         <xs:element name="relativeTerminationAssumption">
  1998           <xs:complexType>
  1999             <xs:sequence>
  2000               <xs:element ref="trsInput"/>
  2001             </xs:sequence>
  2002           </xs:complexType>
  2003         </xs:element>
  2004         <xs:element name="uncurry">
  2005           <xs:annotation>
  2006             <xs:documentation>eta-expand both TRSs, uncurry them, and add the uncurrying rules to the relative part
  2007 </xs:documentation>
  2008           </xs:annotation>
  2009           <xs:complexType>
  2010             <xs:sequence>
  2011               <xs:element ref="uncurryInformation"/>
  2012               <xs:element ref="trs"/>
  2013               <xs:element ref="trs"/>
  2014               <xs:element ref="relativeTerminationProof"/>
  2015             </xs:sequence>
  2016           </xs:complexType>
  2017         </xs:element>
  2018         <xs:element name="equalityRemoval">
  2019           <xs:annotation>
  2020             <xs:documentation>removes all rules t -&gt; t from the non-strict rules</xs:documentation>
  2021           </xs:annotation>
  2022           <xs:complexType>
  2023             <xs:sequence>
  2024               <xs:element ref="relativeTerminationProof"/>
  2025             </xs:sequence>
  2026           </xs:complexType>
  2027         </xs:element>
  2028       </xs:choice>
  2029     </xs:complexType>
  2030   </xs:element>
  2031   <xs:element name="trsNonterminationProof">
  2032     <xs:complexType>
  2033       <xs:choice>
  2034         <xs:element name="variableConditionViolated">
  2035           <xs:annotation>
  2036             <xs:documentation>there is a rule where the lhs is a variable, or the rhs contains variables not occurring in the lhs.</xs:documentation>
  2037           </xs:annotation>
  2038           <xs:complexType/>
  2039         </xs:element>
  2040         <xs:element name="ruleRemoval">
  2041           <xs:annotation>
  2042             <xs:documentation>Remove some rules to figure out the really nonterminating TRS.</xs:documentation>
  2043           </xs:annotation>
  2044           <xs:complexType>
  2045             <xs:sequence>
  2046               <xs:element ref="trs"/>
  2047               <xs:element ref="trsNonterminationProof"/>
  2048             </xs:sequence>
  2049           </xs:complexType>
  2050         </xs:element>
  2051         <xs:element name="stringReversal">
  2052           <xs:annotation>
  2053             <xs:documentation>reverse the strings in a TRS, i.e., replace f(g(h(x))) -&gt; f(x) by h(g(f(x))) -&gt; f(x). 
  2054 Note that the variable in a reversed rule should be same as the variable in the original rule.</xs:documentation>
  2055           </xs:annotation>
  2056           <xs:complexType>
  2057             <xs:sequence>
  2058               <xs:element ref="trs"/>
  2059               <xs:element ref="trsNonterminationProof"/>
  2060             </xs:sequence>
  2061           </xs:complexType>
  2062         </xs:element>
  2063         <xs:element ref="loop"/>
  2064         <xs:element name="dpTrans">
  2065           <xs:annotation>
  2066             <xs:documentation>switch to DPs as complete termination technique. See dpTrans within dpProof for other details</xs:documentation>
  2067           </xs:annotation>
  2068           <xs:complexType>
  2069             <xs:sequence>
  2070               <xs:element ref="dps"/>
  2071               <xs:element name="markedSymbols" type="xs:boolean"/>
  2072               <xs:element ref="dpNonterminationProof"/>
  2073             </xs:sequence>
  2074           </xs:complexType>
  2075         </xs:element>
  2076         <xs:element ref="nonLoop"/>
  2077         <xs:element name="nonterminationAssumption">
  2078           <xs:complexType>
  2079             <xs:sequence>
  2080               <xs:element ref="trsInput"/>
  2081             </xs:sequence>
  2082           </xs:complexType>
  2083         </xs:element>
  2084         <xs:element name="innermostLhssIncrease">
  2085           <xs:annotation>
  2086             <xs:documentation>Add new lhss to innermost strategy component.</xs:documentation>
  2087           </xs:annotation>
  2088           <xs:complexType>
  2089             <xs:sequence>
  2090               <xs:element ref="innermostLhss"/>
  2091               <xs:element ref="trsNonterminationProof"/>
  2092             </xs:sequence>
  2093           </xs:complexType>
  2094         </xs:element>
  2095       </xs:choice>
  2096     </xs:complexType>
  2097   </xs:element>
  2098   <xs:element name="trsTerminationProof">
  2099     <xs:complexType>
  2100       <xs:choice>
  2101         <xs:element name="rIsEmpty">
  2102           <xs:annotation>
  2103             <xs:documentation>state that the TRS is terminating since it has no rules</xs:documentation>
  2104           </xs:annotation>
  2105           <xs:complexType/>
  2106         </xs:element>
  2107         <xs:element name="ruleRemoval">
  2108           <xs:annotation>
  2109             <xs:documentation>use a reduction pair where both the weak and the strict ordering are monotone.
  2110 Delete all strictly decreasing rules.
  2111 The remaining rules have to be given.
  2112 
  2113 If the ordering constraint proof is only an assumption, the orderingConstraints-element becomes mandatory.</xs:documentation>
  2114           </xs:annotation>
  2115           <xs:complexType>
  2116             <xs:sequence>
  2117               <xs:element minOccurs="0" ref="orderingConstraints"/>
  2118               <xs:element ref="orderingConstraintProof"/>
  2119               <xs:element ref="trs"/>
  2120               <xs:element ref="trsTerminationProof"/>
  2121             </xs:sequence>
  2122           </xs:complexType>
  2123         </xs:element>
  2124         <xs:element name="dpTrans">
  2125           <xs:annotation>
  2126             <xs:documentation>switch to dependency pairs. The dependency pairs have to be given. If marked is true, then the whole dp-proof is using a notion of chain where rewriting with the rules is applied at arbitrary positions (including the root). Otherwise, rewriting with the rules is not allowed at the root.</xs:documentation>
  2127           </xs:annotation>
  2128           <xs:complexType>
  2129             <xs:sequence>
  2130               <xs:element ref="dps"/>
  2131               <xs:element name="markedSymbols" type="xs:boolean"/>
  2132               <xs:element ref="dpProof"/>
  2133             </xs:sequence>
  2134           </xs:complexType>
  2135         </xs:element>
  2136         <xs:element name="semlab">
  2137           <xs:annotation>
  2138             <xs:documentation>Use the semantic labeling . The model element determines the kind (model or quasi-model version, label, root-labeling, etc.)
  2139 
  2140 The decreasing rules should be of the form f_..(x1,..,xn) -&gt; f_..(x1,..,xn), i.e., the variables should be enumerated from x1 onwards.</xs:documentation>
  2141           </xs:annotation>
  2142           <xs:complexType>
  2143             <xs:sequence>
  2144               <xs:element ref="model"/>
  2145               <xs:element ref="trs"/>
  2146               <xs:element ref="trsTerminationProof"/>
  2147             </xs:sequence>
  2148           </xs:complexType>
  2149         </xs:element>
  2150         <xs:element name="unlab">
  2151           <xs:annotation>
  2152             <xs:documentation>removes one layer of labels that were added by semantic labeling.</xs:documentation>
  2153           </xs:annotation>
  2154           <xs:complexType>
  2155             <xs:sequence>
  2156               <xs:element ref="trs"/>
  2157               <xs:element ref="trsTerminationProof"/>
  2158             </xs:sequence>
  2159           </xs:complexType>
  2160         </xs:element>
  2161         <xs:element name="stringReversal">
  2162           <xs:annotation>
  2163             <xs:documentation>reverse the strings in a TRS, i.e., replace f(g(h(x))) -&gt; f(x) by h(g(f(x))) -&gt; f(x). 
  2164 Note that the variable in a reversed rule should be same as the variable in the original rule.</xs:documentation>
  2165           </xs:annotation>
  2166           <xs:complexType>
  2167             <xs:sequence>
  2168               <xs:element ref="trs"/>
  2169               <xs:element ref="trsTerminationProof"/>
  2170             </xs:sequence>
  2171           </xs:complexType>
  2172         </xs:element>
  2173         <xs:element name="flatContextClosure">
  2174           <xs:annotation>
  2175             <xs:documentation>the flat context closure as required for the root labeling technique.
  2176 
  2177 one also has to provide the list of flat contexts which
  2178 is used to fix the variable names in the resulting TRS.
  2179 
  2180 example: if the flat contexts are 
  2181 f(Box,x_1)
  2182 f(x_1,Box)
  2183 g(Box,u)
  2184 g(z,Box)
  2185 
  2186 and the TRS f(x,y) -&gt; g(x,y)
  2187 
  2188 then the resulting TRS is obtained by replacing all boxes
  2189 by corresponding left- and right-hand sides of rules:
  2190 
  2191 f(f(x,y),x_1) -&gt; f(g(x,y),x_1)
  2192 f(x_1,f(x,y)) -&gt; f(x_1,g(x,y))
  2193 g(f(x,y),u) -&gt; g(g(x,y),u)
  2194 g(z,f(x,y)) -&gt; g(z,g(x,y))
  2195 
  2196 The reason for this requirement is that 
  2197 1) it eases the check whether the given system really consists
  2198    of all rules - where one does not have to bother with 
  2199    variable renamings
  2200 2) the flat context closures have to be computed in any way.
  2201 3) the overhead in the size is small, since for every 
  2202    flat-context there will be n new rules each being
  2203    larger than the the context.</xs:documentation>
  2204           </xs:annotation>
  2205           <xs:complexType>
  2206             <xs:sequence>
  2207               <xs:element name="flatContexts">
  2208                 <xs:complexType>
  2209                   <xs:group maxOccurs="unbounded" ref="context"/>
  2210                 </xs:complexType>
  2211               </xs:element>
  2212               <xs:element ref="trs"/>
  2213               <xs:element ref="trsTerminationProof"/>
  2214             </xs:sequence>
  2215           </xs:complexType>
  2216         </xs:element>
  2217         <xs:element name="terminationAssumption">
  2218           <xs:complexType>
  2219             <xs:sequence>
  2220               <xs:element ref="trsInput"/>
  2221             </xs:sequence>
  2222           </xs:complexType>
  2223         </xs:element>
  2224         <xs:element name="uncurry">
  2225           <xs:annotation>
  2226             <xs:documentation>eta-expand the TRS, uncurry it, and add the uncurrying rules
  2227 </xs:documentation>
  2228           </xs:annotation>
  2229           <xs:complexType>
  2230             <xs:sequence>
  2231               <xs:element ref="uncurryInformation"/>
  2232               <xs:element ref="trs"/>
  2233               <xs:element ref="trsTerminationProof"/>
  2234             </xs:sequence>
  2235           </xs:complexType>
  2236         </xs:element>
  2237         <xs:element name="bounds">
  2238           <xs:annotation>
  2239             <xs:documentation>The final states are those which are used to accept the initial language like lift_0(T(Sigma)).</xs:documentation>
  2240           </xs:annotation>
  2241           <xs:complexType>
  2242             <xs:sequence>
  2243               <xs:element name="type">
  2244                 <xs:complexType>
  2245                   <xs:choice>
  2246                     <xs:element name="roof"/>
  2247                     <xs:element name="match"/>
  2248                   </xs:choice>
  2249                 </xs:complexType>
  2250               </xs:element>
  2251               <xs:element name="bound" type="xs:nonNegativeInteger"/>
  2252               <xs:element name="finalStates">
  2253                 <xs:complexType>
  2254                   <xs:sequence>
  2255                     <xs:element maxOccurs="unbounded" minOccurs="0" ref="state"/>
  2256                   </xs:sequence>
  2257                 </xs:complexType>
  2258               </xs:element>
  2259               <xs:element ref="treeAutomaton"/>
  2260             </xs:sequence>
  2261           </xs:complexType>
  2262         </xs:element>
  2263         <xs:element name="switchInnermost">
  2264           <xs:annotation>
  2265             <xs:documentation>if R is WCR and overlay, then one can switch to innermost</xs:documentation>
  2266           </xs:annotation>
  2267           <xs:complexType>
  2268             <xs:sequence>
  2269               <xs:element ref="wcrProof"/>
  2270               <xs:element ref="trsTerminationProof"/>
  2271             </xs:sequence>
  2272           </xs:complexType>
  2273         </xs:element>
  2274         <xs:element name="split">
  2275           <xs:annotation>
  2276             <xs:documentation>Proof termination of R by proving relative termination of D/(R-D) and termination of R - D.
  2277 The rules D have to given, then the termination proof of D / R-D,
  2278 and finally the termination proof of R - D.</xs:documentation>
  2279           </xs:annotation>
  2280           <xs:complexType>
  2281             <xs:sequence>
  2282               <xs:element ref="trs"/>
  2283               <xs:element ref="trsTerminationProof"/>
  2284               <xs:element ref="trsTerminationProof"/>
  2285             </xs:sequence>
  2286           </xs:complexType>
  2287         </xs:element>
  2288       </xs:choice>
  2289     </xs:complexType>
  2290   </xs:element>
  2291   <xs:element name="wcrProof">
  2292     <xs:complexType>
  2293       <xs:choice>
  2294         <xs:element name="joinableCriticalPairs">
  2295           <xs:complexType>
  2296             <xs:sequence>
  2297               <xs:element maxOccurs="unbounded" minOccurs="0" name="joinableCriticalPair">
  2298                 <xs:annotation>
  2299                   <xs:documentation>List at least each non-trivial critical pair with the joining sequence. Here, the start-terms of the rewrite sequences form the critical pair.</xs:documentation>
  2300                 </xs:annotation>
  2301                 <xs:complexType>
  2302                   <xs:sequence>
  2303                     <xs:element ref="rewriteSequence"/>
  2304                     <xs:element ref="rewriteSequence"/>
  2305                   </xs:sequence>
  2306                 </xs:complexType>
  2307               </xs:element>
  2308             </xs:sequence>
  2309           </xs:complexType>
  2310         </xs:element>
  2311         <xs:element name="joinableCriticalPairsAuto">
  2312           <xs:annotation>
  2313             <xs:documentation>just claim that all critical pairs are joinable
  2314 (and let the certifier find out how to join)</xs:documentation>
  2315           </xs:annotation>
  2316         </xs:element>
  2317         <xs:element name="joinableCriticalPairsBFS" type="xs:nonNegativeInteger">
  2318           <xs:annotation>
  2319             <xs:documentation>just claim that all critical pairs are joinable within n steps</xs:documentation>
  2320           </xs:annotation>
  2321         </xs:element>
  2322       </xs:choice>
  2323     </xs:complexType>
  2324   </xs:element>
  2325   <xs:element name="proof">
  2326     <xs:complexType>
  2327       <xs:choice>
  2328         <xs:element ref="trsTerminationProof"/>
  2329         <xs:element ref="trsNonterminationProof"/>
  2330         <xs:element ref="relativeTerminationProof"/>
  2331         <xs:element ref="relativeNonterminationProof"/>
  2332         <xs:element ref="dpProof"/>
  2333         <xs:element ref="dpNonterminationProof"/>
  2334         <xs:element ref="orderingConstraintProof"/>
  2335         <xs:element ref="wcrProof"/>
  2336         <xs:element ref="crProof"/>
  2337         <xs:element ref="crDisproof"/>
  2338         <xs:element ref="completionProof"/>
  2339         <xs:element ref="equationalProof"/>
  2340         <xs:element ref="equationalDisproof"/>
  2341         <xs:element ref="complexityProof"/>
  2342       </xs:choice>
  2343     </xs:complexType>
  2344   </xs:element>
  2345   <xs:element name="certificationProblem">
  2346     <xs:annotation>
  2347       <xs:documentation>the root node of the certification problem format.
  2348 </xs:documentation>
  2349     </xs:annotation>
  2350     <xs:complexType>
  2351       <xs:sequence>
  2352         <xs:element name="input">
  2353           <xs:complexType>
  2354             <xs:choice>
  2355               <xs:element ref="trsInput"/>
  2356               <xs:element ref="dpInput"/>
  2357               <xs:element ref="orderingConstraints"/>
  2358               <xs:element name="completionInput">
  2359                 <xs:complexType>
  2360                   <xs:sequence>
  2361                     <xs:element ref="equations"/>
  2362                     <xs:element ref="trs"/>
  2363                   </xs:sequence>
  2364                 </xs:complexType>
  2365               </xs:element>
  2366               <xs:element name="equationalReasoningInput">
  2367                 <xs:complexType>
  2368                   <xs:sequence>
  2369                     <xs:element ref="equations"/>
  2370                     <xs:element name="equation">
  2371                       <xs:complexType>
  2372                         <xs:sequence>
  2373                           <xs:group ref="term"/>
  2374                           <xs:group ref="term"/>
  2375                         </xs:sequence>
  2376                       </xs:complexType>
  2377                     </xs:element>
  2378                   </xs:sequence>
  2379                 </xs:complexType>
  2380               </xs:element>
  2381               <xs:element name="complexityInput">
  2382                 <xs:complexType>
  2383                   <xs:sequence>
  2384                     <xs:element ref="trsInput"/>
  2385                     <xs:group ref="complexityMeasure"/>
  2386                     <xs:group ref="complexityClass"/>
  2387                   </xs:sequence>
  2388                 </xs:complexType>
  2389               </xs:element>
  2390             </xs:choice>
  2391           </xs:complexType>
  2392         </xs:element>
  2393         <xs:element name="cpfVersion" type="xs:string">
  2394           <xs:annotation>
  2395             <xs:documentation>current version number: 2.1</xs:documentation>
  2396           </xs:annotation>
  2397         </xs:element>
  2398         <xs:element ref="proof"/>
  2399         <xs:element name="origin">
  2400           <xs:complexType>
  2401             <xs:sequence>
  2402               <xs:element name="proofOrigin">
  2403                 <xs:annotation>
  2404                   <xs:documentation/>
  2405                 </xs:annotation>
  2406                 <xs:complexType>
  2407                   <xs:sequence>
  2408                     <xs:element maxOccurs="unbounded" name="tool">
  2409                       <xs:complexType>
  2410                         <xs:sequence>
  2411                           <xs:element name="name" type="xs:string"/>
  2412                           <xs:element name="version" type="xs:string"/>
  2413                           <xs:element minOccurs="0" name="strategy" type="xs:string"/>
  2414                           <xs:element minOccurs="0" ref="url"/>
  2415                         </xs:sequence>
  2416                       </xs:complexType>
  2417                     </xs:element>
  2418                     <xs:element maxOccurs="unbounded" minOccurs="0" name="toolUser">
  2419                       <xs:complexType>
  2420                         <xs:sequence>
  2421                           <xs:element name="firstName" type="xs:string"/>
  2422                           <xs:element name="lastName" type="xs:string"/>
  2423                           <xs:element minOccurs="0" ref="url"/>
  2424                         </xs:sequence>
  2425                       </xs:complexType>
  2426                     </xs:element>
  2427                   </xs:sequence>
  2428                 </xs:complexType>
  2429               </xs:element>
  2430               <xs:element name="inputOrigin" minOccurs="0">
  2431                 <xs:annotation>
  2432                   <xs:documentation>if the input was part of the TPDB, then the filename should include enough parts of the full path to identify the exact file. E.g. do not use "2.01.xml" but "TRS/SK90/2.01.xml".
  2433 
  2434 the source-element is some free form text that can otherwise describe the origin of the input, e.g., a link to a paper.</xs:documentation>
  2435                 </xs:annotation>
  2436                 <xs:complexType>
  2437                   <xs:sequence>
  2438                     <xs:element minOccurs="0" name="tpdbReference">
  2439                       <xs:complexType>
  2440                         <xs:sequence>
  2441                           <xs:element name="fileName" type="xs:string"/>
  2442                           <xs:element name="tpdbId" type="xs:long" minOccurs="0"/>
  2443                         </xs:sequence>
  2444                       </xs:complexType>
  2445                     </xs:element>
  2446                     <xs:element minOccurs="0" name="source" type="xs:string"/>
  2447                   </xs:sequence>
  2448                 </xs:complexType>
  2449               </xs:element>
  2450             </xs:sequence>
  2451           </xs:complexType>
  2452         </xs:element>
  2453       </xs:sequence>
  2454     </xs:complexType>
  2455   </xs:element>
  2456 </xs:schema>