<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://termination-portal.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aschnabl</id>
	<title>Termination-Portal.org - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://termination-portal.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aschnabl"/>
	<link rel="alternate" type="text/html" href="http://termination-portal.org/wiki/Special:Contributions/Aschnabl"/>
	<updated>2026-05-28T15:22:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Tools:TCT&amp;diff=1067</id>
		<title>Tools:TCT</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Tools:TCT&amp;diff=1067"/>
		<updated>2010-04-16T11:24:51Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: Deleted information that TCT is based on TTT2 because of the new Haskell implementation of TCT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
       Please fill in the data so that your tool can be added to some default&lt;br /&gt;
       categories and a simple tool page can be created. You may extend&lt;br /&gt;
       that tool page yourself after the following code block.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tool&lt;br /&gt;
|shortname=TCT&lt;br /&gt;
|longname=Tyrolean Complexity Tool&lt;br /&gt;
|homepage=http://cl-informatik.uibk.ac.at/software/tct/&lt;br /&gt;
|country=Austria&lt;br /&gt;
|university=University of Innsbruck&lt;br /&gt;
|developers=Martin Avanzini, [[People:Georg Moser|Georg Moser]], [[People:Andreas Schnabl|Andreas Schnabl]]&lt;br /&gt;
|publication=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If you want to add some additional information to the tool page, you can do so after this comment. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity_Techniques&amp;diff=1050</id>
		<title>Complexity Techniques</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity_Techniques&amp;diff=1050"/>
		<updated>2010-03-26T12:33:09Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: Lists broken by tools&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for listing all techniques applied by the participants of the complexity competitions.&lt;br /&gt;
&lt;br /&gt;
== Derivational Complexity ==&lt;br /&gt;
&lt;br /&gt;
=== 2009 ===&lt;br /&gt;
&lt;br /&gt;
==== CaT (Winner of 2009) ====&lt;br /&gt;
&lt;br /&gt;
* Triangular Matrix Interpretations&lt;br /&gt;
* Arctic Interpretations&lt;br /&gt;
* Rewriting Right Hand Sides&lt;br /&gt;
* Root Labeling&lt;br /&gt;
* Match Bounds&lt;br /&gt;
* Modular Complexity Analysis (dc(R)=dc(R1/R2)+dc(R2/R1))&lt;br /&gt;
&lt;br /&gt;
==== Matchbox ====&lt;br /&gt;
&lt;br /&gt;
* Triangular Matrix Interpretations&lt;br /&gt;
* Non-Triangular Matrix Interpretations&lt;br /&gt;
&lt;br /&gt;
==== TCT ====&lt;br /&gt;
&lt;br /&gt;
* Triangular Matrix Interpretations&lt;br /&gt;
* Arctic Interpretations&lt;br /&gt;
* Rewriting Right Hand Sides&lt;br /&gt;
* Root Labeling&lt;br /&gt;
&lt;br /&gt;
=== 2008 ===&lt;br /&gt;
&lt;br /&gt;
==== CaT (Winner of 2008) ====&lt;br /&gt;
&lt;br /&gt;
* Triangular Matrix Interpretations&lt;br /&gt;
* Arctic Interpretations&lt;br /&gt;
* Rewriting Right Hand Sides&lt;br /&gt;
* Root Labeling&lt;br /&gt;
* Match Bounds&lt;br /&gt;
&lt;br /&gt;
==== TCT ====&lt;br /&gt;
&lt;br /&gt;
* Triangular Matrix Interpretations&lt;br /&gt;
* Root Labeling&lt;br /&gt;
* Match Bounds&lt;br /&gt;
&lt;br /&gt;
== Runtime Complexity ==&lt;br /&gt;
&lt;br /&gt;
=== 2009 ===&lt;br /&gt;
&lt;br /&gt;
TBA&lt;br /&gt;
&lt;br /&gt;
=== 2008 ===&lt;br /&gt;
&lt;br /&gt;
TBA&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity_Techniques&amp;diff=1049</id>
		<title>Complexity Techniques</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity_Techniques&amp;diff=1049"/>
		<updated>2010-03-26T12:25:31Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: Added techniques (I know of) for derivational complexity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for listing all techniques applied by the participants of the complexity competitions.&lt;br /&gt;
&lt;br /&gt;
== Derivational Complexity ==&lt;br /&gt;
&lt;br /&gt;
=== 2009 ===&lt;br /&gt;
&lt;br /&gt;
* everything from 2008&lt;br /&gt;
* Non-Triangular Matrix Interpretations&lt;br /&gt;
* Modular Complexity Analysis (dc(R)=dc(R1/R2)+dc(R2/R1))&lt;br /&gt;
&lt;br /&gt;
=== 2008 ===&lt;br /&gt;
&lt;br /&gt;
* Triangular Matrix Interpretations&lt;br /&gt;
* Arctic Interpretations&lt;br /&gt;
* Rewriting Right Hand Sides&lt;br /&gt;
* Root Labeling&lt;br /&gt;
* Match Bounds&lt;br /&gt;
&lt;br /&gt;
== Runtime Complexity ==&lt;br /&gt;
&lt;br /&gt;
=== 2009 ===&lt;br /&gt;
&lt;br /&gt;
TBA&lt;br /&gt;
&lt;br /&gt;
=== 2008 ===&lt;br /&gt;
&lt;br /&gt;
TBA&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1048</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1048"/>
		<updated>2010-03-26T12:17:15Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: Outsourced listing of techniques to a separate page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is to record the current status of discussion&lt;br /&gt;
on the proposed Complexity Category of the Termination Competition. &lt;br /&gt;
&lt;br /&gt;
== Overview of the Event ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper bounds on&lt;br /&gt;
the complexity  of rewrite systems.  By  complexity of a  TRS, we mean&lt;br /&gt;
the maximal length of derivations, where either no restrictions on the&lt;br /&gt;
initial  terms   are  present  (&amp;quot;derivational   complexity&amp;quot;)  or  only&lt;br /&gt;
constructor  based terms are  considered (&amp;quot;runtime  complexity&amp;quot;).  See&lt;br /&gt;
(Hirokawa, Moser, 2008)  for further reading on the  notion of runtime&lt;br /&gt;
complexity.   Additionally   one  distinguishes  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
specific strategies, as for example innermost rewriting.&lt;br /&gt;
We  propose four sub-categories:&lt;br /&gt;
# Derivational Complexity (DC),&lt;br /&gt;
# innermost Derivational Complexity (iDC),&lt;br /&gt;
# Runtime Complexity (RC), and &lt;br /&gt;
# innermost Runtime Complexity (iRC)&lt;br /&gt;
&lt;br /&gt;
== Syntax/Semantics for Input/Output ==&lt;br /&gt;
&lt;br /&gt;
As  competition   semantics,  we   propose  to  focus  on &amp;lt;em&amp;gt;polynomial&amp;lt;/em&amp;gt;&lt;br /&gt;
bounds. &lt;br /&gt;
&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems will be given in the newly TPDB-format, cf. &lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification], where &lt;br /&gt;
the XML-element ''problem'' will have the type ''complexity'' given. &lt;br /&gt;
Further, depending on the category DC, iDC, RC and iRC, the attributes &lt;br /&gt;
''strategy'' and ''startterm'' will be set to FULL/INNERMOST and full/constructor-based&lt;br /&gt;
respectively.  &lt;br /&gt;
In particluar, this allows the upload of one single tool for all categories the authors want to participate in. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Output Format === &lt;br /&gt;
The output  format is  adapted so  that additional&lt;br /&gt;
information on the  asymptotic complexity is given for  lower as well&lt;br /&gt;
as upper bounds.  Hence the output written to the first line of STDOUT&lt;br /&gt;
shall be a complexity statement according to the following grammar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
S -&amp;gt; NO | MAYBE | YES( F, F) | YES( ?, F) | YES( F, ?)&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;Nat&amp;quot; is  a non-zero natural number and YES(F1,  F2) means F2 is&lt;br /&gt;
upper bound and that F1 is a lower-bound. &amp;quot;O(n^k)&amp;quot; is the usual big-Oh&lt;br /&gt;
notation and  &amp;quot;POLY&amp;quot; indicates  an unspecified polynomial.   Either of&lt;br /&gt;
the functions F1, F2 (but not both) may be replaced by ``don't know'',&lt;br /&gt;
indicated by ?.  Any remaining  output on STDOUT will be considered as&lt;br /&gt;
proof output and has to follow the normal rules for the competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Example&amp;lt;/em&amp;gt;: Consider R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}. Within&lt;br /&gt;
the derivational complexity category a syntactically correct output would be &amp;quot;YES(O(n^2),POLY)&amp;quot;. &lt;br /&gt;
(Whether this output would also indicate a correct tool, is another question.)&lt;br /&gt;
&lt;br /&gt;
== Scoring ==&lt;br /&gt;
&lt;br /&gt;
Currently we focus on (polynomial) &amp;lt;em&amp;gt;upper&amp;lt;/em&amp;gt; bounds.  As&lt;br /&gt;
the output format indicates, this restriction should be lifted&lt;br /&gt;
later, see below.  In order to take  into account the quality of the upper&lt;br /&gt;
bound  provided  by the  different  tools,  we  propose the  following&lt;br /&gt;
scoring algorithm, where we suppose the number of competitors is x.&lt;br /&gt;
&lt;br /&gt;
Firstly, for each  TRS the competing tools are  ranked, where constant&lt;br /&gt;
complexity, i.e., output &amp;quot;YES(?,O(1))&amp;quot; is best and &amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot; or&lt;br /&gt;
time-out is worst.&lt;br /&gt;
As long as the output  is of form &amp;quot;YES(?,O(n^k))&amp;quot; or &amp;quot;YES(?,POLY)&amp;quot; the&lt;br /&gt;
rank of  the tool  defines the number  of points.  More  precisely the&lt;br /&gt;
best tool gets x+1 points, the second gets x points and so on.  On the&lt;br /&gt;
other  hand a  negative  output  (&amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot;  or  time-out) gets  0&lt;br /&gt;
points.&lt;br /&gt;
If  two or  more  tools  would get  the  same rank,  the  rank of  the&lt;br /&gt;
remaining tools is adapted in the usual way.&lt;br /&gt;
&lt;br /&gt;
Secondly, all  resulting points for all considered  systems are summed&lt;br /&gt;
up and the contestant with the  highest number of points wins. If this&lt;br /&gt;
cannot establish  a winner, the total  number of wins  is counted.  If&lt;br /&gt;
this still  doesn't produce a winner,  we give up and  provide two (or&lt;br /&gt;
more) winners.&lt;br /&gt;
&lt;br /&gt;
The maximal allowed CPU time is 60 seconds.&lt;br /&gt;
&lt;br /&gt;
== Problem selection ==&lt;br /&gt;
&lt;br /&gt;
We propose to run subcategories DC and iDC&lt;br /&gt;
on all TRS and SRS families from the newly organised TPDB, after &lt;br /&gt;
the selection function defined below has been applied. &lt;br /&gt;
For categories RC and iRC, we propose to run the competition on all TRS families&lt;br /&gt;
after application of the selection function stated below:&lt;br /&gt;
&lt;br /&gt;
=== Selection function === &lt;br /&gt;
&lt;br /&gt;
In the following, we denote by ''select'' the function that relates&lt;br /&gt;
each family from the TPDB to the number of randomly chosen examples within this family as defined &lt;br /&gt;
for the termination competition.  &lt;br /&gt;
The idea is to make ''select''&lt;br /&gt;
aware of different difficulties of proving complexity bounds. We do so by&lt;br /&gt;
# partitioning each family ''F'' into ''n'' different sets ''F = F_1 \cup ... \cup F_n'', where the sets ''F_i'' may be seen as collections of TRSs similar in difficulty. For this years competition we propose following partitioning of a family ''F'':&lt;br /&gt;
#:* '''subcategories RC, iRC and iDC:''' we propose to partition each family into &lt;br /&gt;
#:*:(i) those upon which a polynomial bound could be shown automatically in last years competition (denoted by ''F_auto'' below) and &lt;br /&gt;
#:*:(ii) those where a polynomial bound could not be shown (''F_nonauto''). &lt;br /&gt;
#:* '''subcategory DC:''' as above, but we split (ii) into duplicating TRS (''F_duplicating'') and non-duplicating TRSs (note that any TRS from (i) is non-duplicating)&lt;br /&gt;
# In accordance to the above described partitioning, we define a probability distribution ''p'' on ''F'' such that ''p(F_1) + ... p(F_n) = 1''. For this year's competition we propose the following distribution: &lt;br /&gt;
#:for all subcategories and families ''F'', we propose ''p(F_auto) = 0.4'' and ''p(F_nonauto) = 0.6'' (For the category DC, we additionally set ''p(F_duplicating) = 0.0''). That is, we want to consider 40% examples that could be solved automatically in last years competition, and 60% of examples that could not be solved automatically. Additionally for DC we want to exclude duplicating TRS as those admit exponential derivational complexity. Based on the probability distribution ''p'' we define the extended selection function ''select_comp(F,i) = min(|F_i|, p(i) * select(F))''. Here ''|F_i|'' denotes the size of ''F_i''. &lt;br /&gt;
# From each partition ''F_i'' of a family ''F'', we randomly select ''select_comp(F,i)'' examples.&lt;br /&gt;
&lt;br /&gt;
== Test Cases == &lt;br /&gt;
In the following test cases we restrict to full rewriting.&lt;br /&gt;
&amp;lt;em&amp;gt;&lt;br /&gt;
test cases - derivational complexity &lt;br /&gt;
&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R = {a(b(x)) -&amp;gt; b(a(x))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n^1),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}, expected output &amp;quot;YES(O(n^2),?)&amp;quot; or &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R= {+(s(x),+(y,z)) -&amp;gt; +(x,+(s(s(y)),z)), +(s(x),+(y,+(z,w))) -&amp;gt; +(x,+(z,+(y,w)))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;test cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R = {a(b(x)) -&amp;gt; b(b(a(x)))}, expected output &amp;quot;YES(?,O(n^1))&amp;quot; or &amp;quot;YES(O(n^1),O(n^1))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R = {plus(0,y) -&amp;gt; y, plus(s(x),y) -&amp;gt; s(plus(x,y)), mul(0,y) -&amp;gt; 0, mul(s(x),y) -&amp;gt; plus(mul(x,y),y)}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n^1),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R = {f(x,0) -&amp;gt; s(0), f(s(x),s(y)) -&amp;gt; s(f(x,y)), g(0,x) -&amp;gt; g(f(x,x),x)}, expected output &amp;quot;YES(?,O(n^1))&amp;quot; or &amp;quot;YES(O(n^1),O(n^1))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R= {f(0) -&amp;gt; c, f(s(x)) -&amp;gt; c(f(x),f(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following test cases we restrict to innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;test cases - derivational complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R = {f(x) -&amp;gt; c(x,x)}, expected output &amp;quot;YES(O(n^1),O(n^1))&amp;quot; or &amp;quot;YES(?,O(n^1))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;test cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R= {f(x) -&amp;gt; c(x,x), g(0) -&amp;gt; 0, g(s(x)) -&amp;gt; f(g(x))}, expected output &amp;quot;YES(O(n^1),O(n^1))&amp;quot; or &amp;quot;YES(?,O(n^1))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Participation ==&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
In order to participate in the competition, the '''sources''' of your tool have to be '''publicly available'''.&lt;br /&gt;
&lt;br /&gt;
=== Participants ===&lt;br /&gt;
&lt;br /&gt;
Insert your name here if you intend to participate:&lt;br /&gt;
&lt;br /&gt;
==== Competition 2009 ====&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl ([http://cl-informatik.uibk.ac.at/software/tct TCT])&lt;br /&gt;
* J. Waldmann ([[Tools:Matchbox]]) (derivational complexity for full rewriting)&lt;br /&gt;
&lt;br /&gt;
==== Competition 2008 ====&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl (TCT)&lt;br /&gt;
* N. Hirokawa (Hydra), but might need more time&lt;br /&gt;
* M. Korp, C. Sternagel, H. Zankl (CaT)&lt;br /&gt;
&lt;br /&gt;
== Complexity proof techniques ==&lt;br /&gt;
&lt;br /&gt;
A list of the complexity proof techniques applied by the participants ofthe competition can be found at [[Complexity_Techniques]]&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
&lt;br /&gt;
=== lower bounds ===&lt;br /&gt;
&lt;br /&gt;
In the future the tools should also be able to provide certificates on the&lt;br /&gt;
lower bound. This would imply to extend the grammar as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY | EXP | INF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
such that e.g. &amp;quot;YES(EXP,?)&amp;quot; indicated an exponential lower-bound,&lt;br /&gt;
or &amp;quot;YES(INF,INF)&amp;quot; indicated non-termination. &lt;br /&gt;
&lt;br /&gt;
(JW: I don't like the looks of an answer starting &amp;quot;YES&amp;quot; and indicating non-termination. See &amp;quot;BOUNDS&amp;quot; proposal below.)&lt;br /&gt;
&lt;br /&gt;
Scoring (proposals):&lt;br /&gt;
&lt;br /&gt;
* as for the upper bound the lower bound certificate should be ranked and both ranks could be compared lexicographically (with the upper bound as the primary criterion)&lt;br /&gt;
&lt;br /&gt;
* JW prefers: don't define some artificial total order on the bounds. The natural partial ordering is given by the inclusion relation on the sets of functions that are described by the bounds. This inclusion can be computed from &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
(low1, up1) &amp;quot;is better than&amp;quot; (low2, up2)  iff  low1 &amp;gt;= low2 and up1 &amp;lt;= up2&lt;br /&gt;
&amp;lt;/PRE&amp;gt;Then for each problem, answer A gets awarded k points if A is strictly better than k of the answers, where &amp;quot;no answer&amp;quot; counts as BOUNDS(LIN,INF), and &amp;quot;strictly better = better and not equal&amp;quot;.&lt;br /&gt;
This would imply that if all answers are identical, then no-one gets a point.&lt;br /&gt;
Perhaps we want to add one virtual prover that always says&amp;quot;BOUNDS(LIN,INF)&amp;quot; - &lt;br /&gt;
so anyone who gives a better answer, gets at least one point.&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&lt;br /&gt;
&lt;br /&gt;
* JW would prefer the following output format as it is easier to parse:&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; POLY(Nat) | POLY(?)&lt;br /&gt;
&lt;br /&gt;
Here &amp;quot;POLY(k)&amp;quot; abbreviates &amp;quot;O(n^k)&amp;quot; and &amp;quot;POLY(?)&amp;quot; denotes an unspecified&lt;br /&gt;
polynomial.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;resolved&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* JW: I'm not giving up ... one more reason against the O(n^k) syntax: 3. it cannot be used for lower bounds, as we would need Omega instead of Oh. (The other two reasons are: 2. needlessly complicated, and 1. n is an undefined variable)&lt;br /&gt;
&lt;br /&gt;
* proposal to replace YES/NO/MAYBE by BOUNDS: http://dev.aspsimon.org/bugzilla/show_bug.cgi?id=85#c4&lt;br /&gt;
&lt;br /&gt;
LN: I'd like to support this notation. But I think &amp;quot;?&amp;quot; for an unknown bound is unnecessary. It can always be replaced by POLY(0) for the lower&lt;br /&gt;
bound and INF for the upper bound. [[User:Noschinski|Noschinski]] 13:26, 13 February 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1047</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1047"/>
		<updated>2010-03-09T13:17:30Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: /* Formatting of TCT used methods, derivational complexity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is to record the current status of discussion&lt;br /&gt;
on the proposed Complexity Category of the Termination Competition. &lt;br /&gt;
&lt;br /&gt;
== Overview of the Event ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper bounds on&lt;br /&gt;
the complexity  of rewrite systems.  By  complexity of a  TRS, we mean&lt;br /&gt;
the maximal length of derivations, where either no restrictions on the&lt;br /&gt;
initial  terms   are  present  (&amp;quot;derivational   complexity&amp;quot;)  or  only&lt;br /&gt;
constructor  based terms are  considered (&amp;quot;runtime  complexity&amp;quot;).  See&lt;br /&gt;
(Hirokawa, Moser, 2008)  for further reading on the  notion of runtime&lt;br /&gt;
complexity.   Additionally   one  distinguishes  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
specific strategies, as for example innermost rewriting.&lt;br /&gt;
We  propose four sub-categories:&lt;br /&gt;
# Derivational Complexity (DC),&lt;br /&gt;
# innermost Derivational Complexity (iDC),&lt;br /&gt;
# Runtime Complexity (RC), and &lt;br /&gt;
# innermost Runtime Complexity (iRC)&lt;br /&gt;
&lt;br /&gt;
== Syntax/Semantics for Input/Output ==&lt;br /&gt;
&lt;br /&gt;
As  competition   semantics,  we   propose  to  focus  on &amp;lt;em&amp;gt;polynomial&amp;lt;/em&amp;gt;&lt;br /&gt;
bounds. &lt;br /&gt;
&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems will be given in the newly TPDB-format, cf. &lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification], where &lt;br /&gt;
the XML-element ''problem'' will have the type ''complexity'' given. &lt;br /&gt;
Further, depending on the category DC, iDC, RC and iRC, the attributes &lt;br /&gt;
''strategy'' and ''startterm'' will be set to FULL/INNERMOST and full/constructor-based&lt;br /&gt;
respectively.  &lt;br /&gt;
In particluar, this allows the upload of one single tool for all categories the authors want to participate in. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Output Format === &lt;br /&gt;
The output  format is  adapted so  that additional&lt;br /&gt;
information on the  asymptotic complexity is given for  lower as well&lt;br /&gt;
as upper bounds.  Hence the output written to the first line of STDOUT&lt;br /&gt;
shall be a complexity statement according to the following grammar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
S -&amp;gt; NO | MAYBE | YES( F, F) | YES( ?, F) | YES( F, ?)&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;Nat&amp;quot; is  a non-zero natural number and YES(F1,  F2) means F2 is&lt;br /&gt;
upper bound and that F1 is a lower-bound. &amp;quot;O(n^k)&amp;quot; is the usual big-Oh&lt;br /&gt;
notation and  &amp;quot;POLY&amp;quot; indicates  an unspecified polynomial.   Either of&lt;br /&gt;
the functions F1, F2 (but not both) may be replaced by ``don't know'',&lt;br /&gt;
indicated by ?.  Any remaining  output on STDOUT will be considered as&lt;br /&gt;
proof output and has to follow the normal rules for the competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Example&amp;lt;/em&amp;gt;: Consider R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}. Within&lt;br /&gt;
the derivational complexity category a syntactically correct output would be &amp;quot;YES(O(n^2),POLY)&amp;quot;. &lt;br /&gt;
(Whether this output would also indicate a correct tool, is another question.)&lt;br /&gt;
&lt;br /&gt;
== Scoring ==&lt;br /&gt;
&lt;br /&gt;
Currently we focus on (polynomial) &amp;lt;em&amp;gt;upper&amp;lt;/em&amp;gt; bounds.  As&lt;br /&gt;
the output format indicates, this restriction should be lifted&lt;br /&gt;
later, see below.  In order to take  into account the quality of the upper&lt;br /&gt;
bound  provided  by the  different  tools,  we  propose the  following&lt;br /&gt;
scoring algorithm, where we suppose the number of competitors is x.&lt;br /&gt;
&lt;br /&gt;
Firstly, for each  TRS the competing tools are  ranked, where constant&lt;br /&gt;
complexity, i.e., output &amp;quot;YES(?,O(1))&amp;quot; is best and &amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot; or&lt;br /&gt;
time-out is worst.&lt;br /&gt;
As long as the output  is of form &amp;quot;YES(?,O(n^k))&amp;quot; or &amp;quot;YES(?,POLY)&amp;quot; the&lt;br /&gt;
rank of  the tool  defines the number  of points.  More  precisely the&lt;br /&gt;
best tool gets x+1 points, the second gets x points and so on.  On the&lt;br /&gt;
other  hand a  negative  output  (&amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot;  or  time-out) gets  0&lt;br /&gt;
points.&lt;br /&gt;
If  two or  more  tools  would get  the  same rank,  the  rank of  the&lt;br /&gt;
remaining tools is adapted in the usual way.&lt;br /&gt;
&lt;br /&gt;
Secondly, all  resulting points for all considered  systems are summed&lt;br /&gt;
up and the contestant with the  highest number of points wins. If this&lt;br /&gt;
cannot establish  a winner, the total  number of wins  is counted.  If&lt;br /&gt;
this still  doesn't produce a winner,  we give up and  provide two (or&lt;br /&gt;
more) winners.&lt;br /&gt;
&lt;br /&gt;
The maximal allowed CPU time is 60 seconds.&lt;br /&gt;
&lt;br /&gt;
== Problem selection ==&lt;br /&gt;
&lt;br /&gt;
We propose to run subcategories DC and iDC&lt;br /&gt;
on all TRS and SRS families from the newly organised TPDB, after &lt;br /&gt;
the selection function defined below has been applied. &lt;br /&gt;
For categories RC and iRC, we propose to run the competition on all TRS families&lt;br /&gt;
after application of the selection function stated below:&lt;br /&gt;
&lt;br /&gt;
=== Selection function === &lt;br /&gt;
&lt;br /&gt;
In the following, we denote by ''select'' the function that relates&lt;br /&gt;
each family from the TPDB to the number of randomly chosen examples within this family as defined &lt;br /&gt;
for the termination competition.  &lt;br /&gt;
The idea is to make ''select''&lt;br /&gt;
aware of different difficulties of proving complexity bounds. We do so by&lt;br /&gt;
# partitioning each family ''F'' into ''n'' different sets ''F = F_1 \cup ... \cup F_n'', where the sets ''F_i'' may be seen as collections of TRSs similar in difficulty. For this years competition we propose following partitioning of a family ''F'':&lt;br /&gt;
#:* '''subcategories RC, iRC and iDC:''' we propose to partition each family into &lt;br /&gt;
#:*:(i) those upon which a polynomial bound could be shown automatically in last years competition (denoted by ''F_auto'' below) and &lt;br /&gt;
#:*:(ii) those where a polynomial bound could not be shown (''F_nonauto''). &lt;br /&gt;
#:* '''subcategory DC:''' as above, but we split (ii) into duplicating TRS (''F_duplicating'') and non-duplicating TRSs (note that any TRS from (i) is non-duplicating)&lt;br /&gt;
# In accordance to the above described partitioning, we define a probability distribution ''p'' on ''F'' such that ''p(F_1) + ... p(F_n) = 1''. For this year's competition we propose the following distribution: &lt;br /&gt;
#:for all subcategories and families ''F'', we propose ''p(F_auto) = 0.4'' and ''p(F_nonauto) = 0.6'' (For the category DC, we additionally set ''p(F_duplicating) = 0.0''). That is, we want to consider 40% examples that could be solved automatically in last years competition, and 60% of examples that could not be solved automatically. Additionally for DC we want to exclude duplicating TRS as those admit exponential derivational complexity. Based on the probability distribution ''p'' we define the extended selection function ''select_comp(F,i) = min(|F_i|, p(i) * select(F))''. Here ''|F_i|'' denotes the size of ''F_i''. &lt;br /&gt;
# From each partition ''F_i'' of a family ''F'', we randomly select ''select_comp(F,i)'' examples.&lt;br /&gt;
&lt;br /&gt;
== Test Cases == &lt;br /&gt;
In the following test cases we restrict to full rewriting.&lt;br /&gt;
&amp;lt;em&amp;gt;&lt;br /&gt;
test cases - derivational complexity &lt;br /&gt;
&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R = {a(b(x)) -&amp;gt; b(a(x))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n^1),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}, expected output &amp;quot;YES(O(n^2),?)&amp;quot; or &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R= {+(s(x),+(y,z)) -&amp;gt; +(x,+(s(s(y)),z)), +(s(x),+(y,+(z,w))) -&amp;gt; +(x,+(z,+(y,w)))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;test cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R = {a(b(x)) -&amp;gt; b(b(a(x)))}, expected output &amp;quot;YES(?,O(n^1))&amp;quot; or &amp;quot;YES(O(n^1),O(n^1))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R = {plus(0,y) -&amp;gt; y, plus(s(x),y) -&amp;gt; s(plus(x,y)), mul(0,y) -&amp;gt; 0, mul(s(x),y) -&amp;gt; plus(mul(x,y),y)}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n^1),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R = {f(x,0) -&amp;gt; s(0), f(s(x),s(y)) -&amp;gt; s(f(x,y)), g(0,x) -&amp;gt; g(f(x,x),x)}, expected output &amp;quot;YES(?,O(n^1))&amp;quot; or &amp;quot;YES(O(n^1),O(n^1))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R= {f(0) -&amp;gt; c, f(s(x)) -&amp;gt; c(f(x),f(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following test cases we restrict to innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;test cases - derivational complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R = {f(x) -&amp;gt; c(x,x)}, expected output &amp;quot;YES(O(n^1),O(n^1))&amp;quot; or &amp;quot;YES(?,O(n^1))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;test cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R= {f(x) -&amp;gt; c(x,x), g(0) -&amp;gt; 0, g(s(x)) -&amp;gt; f(g(x))}, expected output &amp;quot;YES(O(n^1),O(n^1))&amp;quot; or &amp;quot;YES(?,O(n^1))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Participation ==&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
In order to participate in the competition, the '''sources''' of your tool have to be '''publicly available'''.&lt;br /&gt;
&lt;br /&gt;
=== Participants ===&lt;br /&gt;
&lt;br /&gt;
Insert your name here if you intend to participate:&lt;br /&gt;
&lt;br /&gt;
==== Competition 2009 ====&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl ([http://cl-informatik.uibk.ac.at/software/tct TCT])&lt;br /&gt;
** Used Proof Methods, Derivational Complexity: Root Labeling, Triangular Matrix Interpretations, Arctic Interpretations, Rewriting Right Hand Sides&lt;br /&gt;
* J. Waldmann ([[Tools:Matchbox]]) (derivational complexity for full rewriting)&lt;br /&gt;
&lt;br /&gt;
==== Competition 2008 ====&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl (TCT)&lt;br /&gt;
* N. Hirokawa (Hydra), but might need more time&lt;br /&gt;
* M. Korp, C. Sternagel, H. Zankl (CaT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
&lt;br /&gt;
=== lower bounds ===&lt;br /&gt;
&lt;br /&gt;
In the future the tools should also be able to provide certificates on the&lt;br /&gt;
lower bound. This would imply to extend the grammar as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY | EXP | INF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
such that e.g. &amp;quot;YES(EXP,?)&amp;quot; indicated an exponential lower-bound,&lt;br /&gt;
or &amp;quot;YES(INF,INF)&amp;quot; indicated non-termination. &lt;br /&gt;
&lt;br /&gt;
(JW: I don't like the looks of an answer starting &amp;quot;YES&amp;quot; and indicating non-termination. See &amp;quot;BOUNDS&amp;quot; proposal below.)&lt;br /&gt;
&lt;br /&gt;
Scoring (proposals):&lt;br /&gt;
&lt;br /&gt;
* as for the upper bound the lower bound certificate should be ranked and both ranks could be compared lexicographically (with the upper bound as the primary criterion)&lt;br /&gt;
&lt;br /&gt;
* JW prefers: don't define some artificial total order on the bounds. The natural partial ordering is given by the inclusion relation on the sets of functions that are described by the bounds. This inclusion can be computed from &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
(low1, up1) &amp;quot;is better than&amp;quot; (low2, up2)  iff  low1 &amp;gt;= low2 and up1 &amp;lt;= up2&lt;br /&gt;
&amp;lt;/PRE&amp;gt;Then for each problem, answer A gets awarded k points if A is strictly better than k of the answers, where &amp;quot;no answer&amp;quot; counts as BOUNDS(LIN,INF), and &amp;quot;strictly better = better and not equal&amp;quot;.&lt;br /&gt;
This would imply that if all answers are identical, then no-one gets a point.&lt;br /&gt;
Perhaps we want to add one virtual prover that always says&amp;quot;BOUNDS(LIN,INF)&amp;quot; - &lt;br /&gt;
so anyone who gives a better answer, gets at least one point.&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&lt;br /&gt;
&lt;br /&gt;
* JW would prefer the following output format as it is easier to parse:&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; POLY(Nat) | POLY(?)&lt;br /&gt;
&lt;br /&gt;
Here &amp;quot;POLY(k)&amp;quot; abbreviates &amp;quot;O(n^k)&amp;quot; and &amp;quot;POLY(?)&amp;quot; denotes an unspecified&lt;br /&gt;
polynomial.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;resolved&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* JW: I'm not giving up ... one more reason against the O(n^k) syntax: 3. it cannot be used for lower bounds, as we would need Omega instead of Oh. (The other two reasons are: 2. needlessly complicated, and 1. n is an undefined variable)&lt;br /&gt;
&lt;br /&gt;
* proposal to replace YES/NO/MAYBE by BOUNDS: http://dev.aspsimon.org/bugzilla/show_bug.cgi?id=85#c4&lt;br /&gt;
&lt;br /&gt;
LN: I'd like to support this notation. But I think &amp;quot;?&amp;quot; for an unknown bound is unnecessary. It can always be replaced by POLY(0) for the lower&lt;br /&gt;
bound and INF for the upper bound. [[User:Noschinski|Noschinski]] 13:26, 13 February 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1046</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1046"/>
		<updated>2010-03-09T13:16:33Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: /* Competition 2009, added used proof methods for TCT, derivational complexity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is to record the current status of discussion&lt;br /&gt;
on the proposed Complexity Category of the Termination Competition. &lt;br /&gt;
&lt;br /&gt;
== Overview of the Event ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper bounds on&lt;br /&gt;
the complexity  of rewrite systems.  By  complexity of a  TRS, we mean&lt;br /&gt;
the maximal length of derivations, where either no restrictions on the&lt;br /&gt;
initial  terms   are  present  (&amp;quot;derivational   complexity&amp;quot;)  or  only&lt;br /&gt;
constructor  based terms are  considered (&amp;quot;runtime  complexity&amp;quot;).  See&lt;br /&gt;
(Hirokawa, Moser, 2008)  for further reading on the  notion of runtime&lt;br /&gt;
complexity.   Additionally   one  distinguishes  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
specific strategies, as for example innermost rewriting.&lt;br /&gt;
We  propose four sub-categories:&lt;br /&gt;
# Derivational Complexity (DC),&lt;br /&gt;
# innermost Derivational Complexity (iDC),&lt;br /&gt;
# Runtime Complexity (RC), and &lt;br /&gt;
# innermost Runtime Complexity (iRC)&lt;br /&gt;
&lt;br /&gt;
== Syntax/Semantics for Input/Output ==&lt;br /&gt;
&lt;br /&gt;
As  competition   semantics,  we   propose  to  focus  on &amp;lt;em&amp;gt;polynomial&amp;lt;/em&amp;gt;&lt;br /&gt;
bounds. &lt;br /&gt;
&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems will be given in the newly TPDB-format, cf. &lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification], where &lt;br /&gt;
the XML-element ''problem'' will have the type ''complexity'' given. &lt;br /&gt;
Further, depending on the category DC, iDC, RC and iRC, the attributes &lt;br /&gt;
''strategy'' and ''startterm'' will be set to FULL/INNERMOST and full/constructor-based&lt;br /&gt;
respectively.  &lt;br /&gt;
In particluar, this allows the upload of one single tool for all categories the authors want to participate in. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Output Format === &lt;br /&gt;
The output  format is  adapted so  that additional&lt;br /&gt;
information on the  asymptotic complexity is given for  lower as well&lt;br /&gt;
as upper bounds.  Hence the output written to the first line of STDOUT&lt;br /&gt;
shall be a complexity statement according to the following grammar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
S -&amp;gt; NO | MAYBE | YES( F, F) | YES( ?, F) | YES( F, ?)&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;Nat&amp;quot; is  a non-zero natural number and YES(F1,  F2) means F2 is&lt;br /&gt;
upper bound and that F1 is a lower-bound. &amp;quot;O(n^k)&amp;quot; is the usual big-Oh&lt;br /&gt;
notation and  &amp;quot;POLY&amp;quot; indicates  an unspecified polynomial.   Either of&lt;br /&gt;
the functions F1, F2 (but not both) may be replaced by ``don't know'',&lt;br /&gt;
indicated by ?.  Any remaining  output on STDOUT will be considered as&lt;br /&gt;
proof output and has to follow the normal rules for the competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Example&amp;lt;/em&amp;gt;: Consider R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}. Within&lt;br /&gt;
the derivational complexity category a syntactically correct output would be &amp;quot;YES(O(n^2),POLY)&amp;quot;. &lt;br /&gt;
(Whether this output would also indicate a correct tool, is another question.)&lt;br /&gt;
&lt;br /&gt;
== Scoring ==&lt;br /&gt;
&lt;br /&gt;
Currently we focus on (polynomial) &amp;lt;em&amp;gt;upper&amp;lt;/em&amp;gt; bounds.  As&lt;br /&gt;
the output format indicates, this restriction should be lifted&lt;br /&gt;
later, see below.  In order to take  into account the quality of the upper&lt;br /&gt;
bound  provided  by the  different  tools,  we  propose the  following&lt;br /&gt;
scoring algorithm, where we suppose the number of competitors is x.&lt;br /&gt;
&lt;br /&gt;
Firstly, for each  TRS the competing tools are  ranked, where constant&lt;br /&gt;
complexity, i.e., output &amp;quot;YES(?,O(1))&amp;quot; is best and &amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot; or&lt;br /&gt;
time-out is worst.&lt;br /&gt;
As long as the output  is of form &amp;quot;YES(?,O(n^k))&amp;quot; or &amp;quot;YES(?,POLY)&amp;quot; the&lt;br /&gt;
rank of  the tool  defines the number  of points.  More  precisely the&lt;br /&gt;
best tool gets x+1 points, the second gets x points and so on.  On the&lt;br /&gt;
other  hand a  negative  output  (&amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot;  or  time-out) gets  0&lt;br /&gt;
points.&lt;br /&gt;
If  two or  more  tools  would get  the  same rank,  the  rank of  the&lt;br /&gt;
remaining tools is adapted in the usual way.&lt;br /&gt;
&lt;br /&gt;
Secondly, all  resulting points for all considered  systems are summed&lt;br /&gt;
up and the contestant with the  highest number of points wins. If this&lt;br /&gt;
cannot establish  a winner, the total  number of wins  is counted.  If&lt;br /&gt;
this still  doesn't produce a winner,  we give up and  provide two (or&lt;br /&gt;
more) winners.&lt;br /&gt;
&lt;br /&gt;
The maximal allowed CPU time is 60 seconds.&lt;br /&gt;
&lt;br /&gt;
== Problem selection ==&lt;br /&gt;
&lt;br /&gt;
We propose to run subcategories DC and iDC&lt;br /&gt;
on all TRS and SRS families from the newly organised TPDB, after &lt;br /&gt;
the selection function defined below has been applied. &lt;br /&gt;
For categories RC and iRC, we propose to run the competition on all TRS families&lt;br /&gt;
after application of the selection function stated below:&lt;br /&gt;
&lt;br /&gt;
=== Selection function === &lt;br /&gt;
&lt;br /&gt;
In the following, we denote by ''select'' the function that relates&lt;br /&gt;
each family from the TPDB to the number of randomly chosen examples within this family as defined &lt;br /&gt;
for the termination competition.  &lt;br /&gt;
The idea is to make ''select''&lt;br /&gt;
aware of different difficulties of proving complexity bounds. We do so by&lt;br /&gt;
# partitioning each family ''F'' into ''n'' different sets ''F = F_1 \cup ... \cup F_n'', where the sets ''F_i'' may be seen as collections of TRSs similar in difficulty. For this years competition we propose following partitioning of a family ''F'':&lt;br /&gt;
#:* '''subcategories RC, iRC and iDC:''' we propose to partition each family into &lt;br /&gt;
#:*:(i) those upon which a polynomial bound could be shown automatically in last years competition (denoted by ''F_auto'' below) and &lt;br /&gt;
#:*:(ii) those where a polynomial bound could not be shown (''F_nonauto''). &lt;br /&gt;
#:* '''subcategory DC:''' as above, but we split (ii) into duplicating TRS (''F_duplicating'') and non-duplicating TRSs (note that any TRS from (i) is non-duplicating)&lt;br /&gt;
# In accordance to the above described partitioning, we define a probability distribution ''p'' on ''F'' such that ''p(F_1) + ... p(F_n) = 1''. For this year's competition we propose the following distribution: &lt;br /&gt;
#:for all subcategories and families ''F'', we propose ''p(F_auto) = 0.4'' and ''p(F_nonauto) = 0.6'' (For the category DC, we additionally set ''p(F_duplicating) = 0.0''). That is, we want to consider 40% examples that could be solved automatically in last years competition, and 60% of examples that could not be solved automatically. Additionally for DC we want to exclude duplicating TRS as those admit exponential derivational complexity. Based on the probability distribution ''p'' we define the extended selection function ''select_comp(F,i) = min(|F_i|, p(i) * select(F))''. Here ''|F_i|'' denotes the size of ''F_i''. &lt;br /&gt;
# From each partition ''F_i'' of a family ''F'', we randomly select ''select_comp(F,i)'' examples.&lt;br /&gt;
&lt;br /&gt;
== Test Cases == &lt;br /&gt;
In the following test cases we restrict to full rewriting.&lt;br /&gt;
&amp;lt;em&amp;gt;&lt;br /&gt;
test cases - derivational complexity &lt;br /&gt;
&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R = {a(b(x)) -&amp;gt; b(a(x))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n^1),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}, expected output &amp;quot;YES(O(n^2),?)&amp;quot; or &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R= {+(s(x),+(y,z)) -&amp;gt; +(x,+(s(s(y)),z)), +(s(x),+(y,+(z,w))) -&amp;gt; +(x,+(z,+(y,w)))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;test cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R = {a(b(x)) -&amp;gt; b(b(a(x)))}, expected output &amp;quot;YES(?,O(n^1))&amp;quot; or &amp;quot;YES(O(n^1),O(n^1))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R = {plus(0,y) -&amp;gt; y, plus(s(x),y) -&amp;gt; s(plus(x,y)), mul(0,y) -&amp;gt; 0, mul(s(x),y) -&amp;gt; plus(mul(x,y),y)}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n^1),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R = {f(x,0) -&amp;gt; s(0), f(s(x),s(y)) -&amp;gt; s(f(x,y)), g(0,x) -&amp;gt; g(f(x,x),x)}, expected output &amp;quot;YES(?,O(n^1))&amp;quot; or &amp;quot;YES(O(n^1),O(n^1))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
R= {f(0) -&amp;gt; c, f(s(x)) -&amp;gt; c(f(x),f(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following test cases we restrict to innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;test cases - derivational complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R = {f(x) -&amp;gt; c(x,x)}, expected output &amp;quot;YES(O(n^1),O(n^1))&amp;quot; or &amp;quot;YES(?,O(n^1))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;test cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R= {f(x) -&amp;gt; c(x,x), g(0) -&amp;gt; 0, g(s(x)) -&amp;gt; f(g(x))}, expected output &amp;quot;YES(O(n^1),O(n^1))&amp;quot; or &amp;quot;YES(?,O(n^1))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Participation ==&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
In order to participate in the competition, the '''sources''' of your tool have to be '''publicly available'''.&lt;br /&gt;
&lt;br /&gt;
=== Participants ===&lt;br /&gt;
&lt;br /&gt;
Insert your name here if you intend to participate:&lt;br /&gt;
&lt;br /&gt;
==== Competition 2009 ====&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl ([http://cl-informatik.uibk.ac.at/software/tct TCT])&lt;br /&gt;
** Used Proof Methods, Derivational Complexity:&lt;br /&gt;
Root Labeling, Triangular Matrix Interpretations, Arctic Interpretations, Rewriting Right Hand Sides&lt;br /&gt;
* J. Waldmann ([[Tools:Matchbox]]) (derivational complexity for full rewriting)&lt;br /&gt;
&lt;br /&gt;
==== Competition 2008 ====&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl (TCT)&lt;br /&gt;
* N. Hirokawa (Hydra), but might need more time&lt;br /&gt;
* M. Korp, C. Sternagel, H. Zankl (CaT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
&lt;br /&gt;
=== lower bounds ===&lt;br /&gt;
&lt;br /&gt;
In the future the tools should also be able to provide certificates on the&lt;br /&gt;
lower bound. This would imply to extend the grammar as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY | EXP | INF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
such that e.g. &amp;quot;YES(EXP,?)&amp;quot; indicated an exponential lower-bound,&lt;br /&gt;
or &amp;quot;YES(INF,INF)&amp;quot; indicated non-termination. &lt;br /&gt;
&lt;br /&gt;
(JW: I don't like the looks of an answer starting &amp;quot;YES&amp;quot; and indicating non-termination. See &amp;quot;BOUNDS&amp;quot; proposal below.)&lt;br /&gt;
&lt;br /&gt;
Scoring (proposals):&lt;br /&gt;
&lt;br /&gt;
* as for the upper bound the lower bound certificate should be ranked and both ranks could be compared lexicographically (with the upper bound as the primary criterion)&lt;br /&gt;
&lt;br /&gt;
* JW prefers: don't define some artificial total order on the bounds. The natural partial ordering is given by the inclusion relation on the sets of functions that are described by the bounds. This inclusion can be computed from &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
(low1, up1) &amp;quot;is better than&amp;quot; (low2, up2)  iff  low1 &amp;gt;= low2 and up1 &amp;lt;= up2&lt;br /&gt;
&amp;lt;/PRE&amp;gt;Then for each problem, answer A gets awarded k points if A is strictly better than k of the answers, where &amp;quot;no answer&amp;quot; counts as BOUNDS(LIN,INF), and &amp;quot;strictly better = better and not equal&amp;quot;.&lt;br /&gt;
This would imply that if all answers are identical, then no-one gets a point.&lt;br /&gt;
Perhaps we want to add one virtual prover that always says&amp;quot;BOUNDS(LIN,INF)&amp;quot; - &lt;br /&gt;
so anyone who gives a better answer, gets at least one point.&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&lt;br /&gt;
&lt;br /&gt;
* JW would prefer the following output format as it is easier to parse:&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; POLY(Nat) | POLY(?)&lt;br /&gt;
&lt;br /&gt;
Here &amp;quot;POLY(k)&amp;quot; abbreviates &amp;quot;O(n^k)&amp;quot; and &amp;quot;POLY(?)&amp;quot; denotes an unspecified&lt;br /&gt;
polynomial.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;resolved&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* JW: I'm not giving up ... one more reason against the O(n^k) syntax: 3. it cannot be used for lower bounds, as we would need Omega instead of Oh. (The other two reasons are: 2. needlessly complicated, and 1. n is an undefined variable)&lt;br /&gt;
&lt;br /&gt;
* proposal to replace YES/NO/MAYBE by BOUNDS: http://dev.aspsimon.org/bugzilla/show_bug.cgi?id=85#c4&lt;br /&gt;
&lt;br /&gt;
LN: I'd like to support this notation. But I think &amp;quot;?&amp;quot; for an unknown bound is unnecessary. It can always be replaced by POLY(0) for the lower&lt;br /&gt;
bound and INF for the upper bound. [[User:Noschinski|Noschinski]] 13:26, 13 February 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Tools:TCT&amp;diff=656</id>
		<title>Tools:TCT</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Tools:TCT&amp;diff=656"/>
		<updated>2008-11-03T08:12:13Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: Added homepage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
       Please fill in the data so that your tool can be added to some default&lt;br /&gt;
       categories and a simple tool page can be created. You may extend&lt;br /&gt;
       that tool page yourself after the following code block.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tool&lt;br /&gt;
|shortname=TCT&lt;br /&gt;
|longname=Tyrolean Complexity Tool&lt;br /&gt;
|homepage=http://cl-informatik.uibk.ac.at/software/tct/&lt;br /&gt;
|country=Austria&lt;br /&gt;
|university=University of Innsbruck&lt;br /&gt;
|developers=Martin Avanzini, [[People:Georg Moser|Georg Moser]], [[People:Andreas Schnabl|Andreas Schnabl]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If you want to add some additional information to the tool page, you can do so after this comment. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TCT is a complexity prover based on the termination tool [[Tools:TTT2|TTT2]]. It is specialized in proving&lt;br /&gt;
polynomial upper bounds on the derivational complexity and runtime complexity of TRSs.&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=575</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=575"/>
		<updated>2008-10-20T15:35:02Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: /* Problem selection */ added two innermost examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is to record the current status of discussion&lt;br /&gt;
on the proposed Complexity Category of the Termination Competition. &lt;br /&gt;
&lt;br /&gt;
The first installation of this event is planned for November 1, 2008.&lt;br /&gt;
&lt;br /&gt;
(Discussion should take place on the termtools mailing list.)&lt;br /&gt;
&lt;br /&gt;
== Overview of the Event ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper bounds on&lt;br /&gt;
the complexity  of rewrite systems.  By  complexity of a  TRS, we mean&lt;br /&gt;
the maximal length of derivations, where either no restrictions on the&lt;br /&gt;
initial  terms   are  present  (&amp;quot;derivational   complexity&amp;quot;)  or  only&lt;br /&gt;
constructor  based terms are  considered (&amp;quot;runtime  complexity&amp;quot;).  See&lt;br /&gt;
(Hirokawa, Moser, 2008)  for further reading on the  notion of runtime&lt;br /&gt;
complexity.   Additionally   one  distinguishes  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
specific strategies, as for example innermost rewriting.&lt;br /&gt;
We  propose four sub-categories, structured   in  two  logical   layers:  &lt;br /&gt;
&amp;quot;strategy&amp;quot;   and  &amp;quot;complexity certificate&amp;quot;,  such   that  for  each  of   &lt;br /&gt;
the  currently  considered strategies,  both  notions  of  complexity  are  tested. &lt;br /&gt;
&lt;br /&gt;
== Syntax/Semantics for Input/Output ==&lt;br /&gt;
&lt;br /&gt;
As  competition   semantics,  we   propose  to  focus  on &amp;lt;em&amp;gt;polynomial&amp;lt;/em&amp;gt;&lt;br /&gt;
bounds. The  current input format should  be kept as  far as possible,&lt;br /&gt;
i.e.,  from a  given TRS  a complexity  problem file  is  generated by&lt;br /&gt;
adding an annotation expressing one of  the above given  categories. This is&lt;br /&gt;
done on the  fly during the competition to  prevent the multiplication&lt;br /&gt;
of the database.&lt;br /&gt;
&lt;br /&gt;
On  the other hand  the output  format is  adapted so  that additional&lt;br /&gt;
information on the  asymptotic complexity is given for  lower as well&lt;br /&gt;
as upper bounds.  Hence the output written to the first line of STDOUT&lt;br /&gt;
shall be a complexity statement according to the following grammar:&lt;br /&gt;
&lt;br /&gt;
S -&amp;gt; NO | MAYBE | YES( F, F) | YES( ?, F) | YES( F, ?)&amp;lt;br&amp;gt;&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;Nat&amp;quot; is  a non-zero natural number and YES(F1,  F2) means F2 is&lt;br /&gt;
upper bound and that F1 is a lower-bound. &amp;quot;O(n^k)&amp;quot; is the usual big-Oh&lt;br /&gt;
notation and  &amp;quot;POLY&amp;quot; indicates  an unspecified polynomial.   Either of&lt;br /&gt;
the functions F1, F2 (but not both) may be replaced by ``don't know'',&lt;br /&gt;
indicated by ?.  Any remaining  output on STDOUT will be considered as&lt;br /&gt;
proof output and has to follow the normal rules for the competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Example&amp;lt;/em&amp;gt;: Consider R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}. Within&lt;br /&gt;
the derivational complexity category a syntactically correct output would be &amp;quot;YES(O(n^2),POLY)&amp;quot;. &lt;br /&gt;
(Whether this output would also indicate a correct tool, is another question.)&lt;br /&gt;
&lt;br /&gt;
== Scoring ==&lt;br /&gt;
&lt;br /&gt;
Currently we focus on (polynomial) &amp;lt;em&amp;gt;upper&amp;lt;/em&amp;gt; bounds.  As&lt;br /&gt;
the output format indicates, this restriction should be lifted&lt;br /&gt;
later, see below.  In order to take  into account the quality of the upper&lt;br /&gt;
bound  provided  by the  different  tools,  we  propose the  following&lt;br /&gt;
scoring algorithm, where we suppose the number of competitors is x.&lt;br /&gt;
&lt;br /&gt;
Firstly, for each  TRS the competing tools are  ranked, where constant&lt;br /&gt;
complexity, i.e., output &amp;quot;YES(?,O(1))&amp;quot; is best and &amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot; or&lt;br /&gt;
time-out is worst.&lt;br /&gt;
As long as the output  is of form &amp;quot;YES(?,O(n^k))&amp;quot; or &amp;quot;YES(?,POLY)&amp;quot; the&lt;br /&gt;
rank of  the tool  defines the number  of points.  More  precisely the&lt;br /&gt;
best tool gets x+1 points, the second gets x points and so on.  On the&lt;br /&gt;
other  hand a  negative  output  (&amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot;  or  time-out) gets  0&lt;br /&gt;
points.&lt;br /&gt;
If  two or  more  tools  would get  the  same rank,  the  rank of  the&lt;br /&gt;
remaining tools is adapted in the usual way.&lt;br /&gt;
&lt;br /&gt;
Secondly, all  resulting points for all considered  systems are summed&lt;br /&gt;
up and the contestant with the  highest number of points wins. If this&lt;br /&gt;
cannot establish  a winner, the total  number of wins  is counted.  If&lt;br /&gt;
this still  doesn't produce a winner,  we give up and  provide two (or&lt;br /&gt;
more) winners.&lt;br /&gt;
&lt;br /&gt;
The maximal allowed CPU time is 60 seconds.&lt;br /&gt;
&lt;br /&gt;
NB: Derivational complexity  is not  closed under  extensions  &lt;br /&gt;
of the signature. Consider for example the  TRS R={a -&amp;gt; b} (example suggested&lt;br /&gt;
by Nao Hirokawa). On the signature {a,b} the (derivational) complexity&lt;br /&gt;
is constant, while the complexity becomes linear on signature {a,b,c},&lt;br /&gt;
if  the arity  of c  is binary.  Thus, we  demand that  the complexity&lt;br /&gt;
certificate given by  the provers has to be  closed under extension of&lt;br /&gt;
signature.&lt;br /&gt;
&lt;br /&gt;
== Problem selection ==&lt;br /&gt;
&lt;br /&gt;
We propose the collection of all  &amp;quot;standard&amp;quot; TRSs together&lt;br /&gt;
with  all TRSs with  flag &amp;quot;(STRATEGY  INNERMOST)&amp;quot; as testbed. Here  TRSs which&lt;br /&gt;
only differ by the flag in the current TPDB are only considered once.&lt;br /&gt;
However for sub-categories concerned with &amp;quot;derivational complexity&amp;quot; we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems.&lt;br /&gt;
&lt;br /&gt;
In the following test cases we restrict to full rewriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - derivational complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {a -&amp;gt; b}, expected output &amp;quot;YES(O(n),O(n))&amp;quot; or &amp;quot;YES(?,O(n))&amp;quot; (if tool output should be closed under extension of signature)&lt;br /&gt;
&lt;br /&gt;
* R= {a(b(x)) -&amp;gt; b(a(x))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {op(op(x,y),z) -&amp;gt; op(x,op(y,z))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(f(x)) -&amp;gt; f(g(f(x)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {plus(mul(x,y),mul(x,z)) -&amp;gt; mul(x,plus(y,z)), plus(plus(x,y),z) -&amp;gt; plus(x,+(y,z)), plus(mul(x,y),plus(mul(x,z),u)) -&amp;gt; plus(mul(x,plus(y,z)),u)}&lt;br /&gt;
&lt;br /&gt;
* R= {half(0) -&amp;gt; 0, half(s(0)) -&amp;gt; 0, half(s(s(x))) -&amp;gt; s(half(x)), s(log(0)) -&amp;gt; s(0), log(s(x)) -&amp;gt; s(log(half(s(x))))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}, expected output &amp;quot;YES(O(n^2),?)&amp;quot; or &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {+(s(x),+(y,z)) -&amp;gt; +(x,+(s(s(y)),z)), +(s(x),+(y,+(z,w))) -&amp;gt; +(x,+(z,+(y,w)))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {a(b(x)) -&amp;gt; b(b(a(x)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {plus(0,y) -&amp;gt; y, plus(s(x),y) -&amp;gt; s(plus(x,y)), mul(0,y) -&amp;gt; 0, mul(s(x),y) -&amp;gt; plus(mul(x,y),y)}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {if(tt,x,y) -&amp;gt; x, if(ff,x,y) -&amp;gt; y, le(0,s(y)) -&amp;gt; tt, le(x,0) -&amp;gt; ff, le(s(x),s(y)) -&amp;gt; le(x,y), insert(x,nil) -&amp;gt; cons(x,nil), insert(x,cons(y,ys)) -&amp;gt; if(le(x,y),cons(x,cons(y,ys)),cons(y,insert(x,ys))), sort(nil) -&amp;gt; nil, sort(cons(x,xs)) -&amp;gt; insert(x,sort(xs))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {minus(0,y) -&amp;gt; 0, minus(x,0) -&amp;gt; x, minus(s(x),s(y)) -&amp;gt; minus(x,y), div(0,s(y)) -&amp;gt; 0, div(s(x),s(y)) -&amp;gt; s(div(minus(x,y),s(y)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(x,0) -&amp;gt; s(0), f(s(x),s(y)) -&amp;gt; s(f(x,y)), g(0,x) -&amp;gt; g(f(x,x),x)}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {d(0) -&amp;gt; 0, d(s(x)) -&amp;gt; s(s(d(x))), e(0) -&amp;gt; s(0), e(s(x)) -&amp;gt; d(e(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(0) -&amp;gt; c, f(s(x)) -&amp;gt; c(f(x),f(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In the following test cases we restrict to innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - derivational complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {f(x) -&amp;gt; c(x,x)}, expected output &amp;quot;YES(O(n),O(n))&amp;quot; or &amp;quot;YES(?,O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {f(x) -&amp;gt; c(x,x), g(0) -&amp;gt; 0, g(s(x)) -&amp;gt; f(g(x))}, expected output &amp;quot;YES(O(n),O(n))&amp;quot; or &amp;quot;YES(?,O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wishlist ==&lt;br /&gt;
*&lt;br /&gt;
* assessment of lower bounds:&amp;lt;br&amp;gt;&lt;br /&gt;
In the future the tools should also be able to provide certificates on the&lt;br /&gt;
lower bound. This would imply to extend the grammar as follows&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY | EXP | INF&lt;br /&gt;
&lt;br /&gt;
such that e.g. &amp;quot;YES(EXP,?)&amp;quot; indicated an exponential lower-bound,&lt;br /&gt;
or &amp;quot;YES(INF,INF)&amp;quot; indicated non-termination. &lt;br /&gt;
* as for the upper bound the lower bound certificate should be ranked and &lt;br /&gt;
both ranks could be compared lexicographically&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
*&lt;br /&gt;
* the precise format for the subcategories needs to be fixed; JW suggests: &lt;br /&gt;
&lt;br /&gt;
(START-TERMS CONSTRUCTOR-BASED) (VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) &lt;br /&gt;
&lt;br /&gt;
to indicate runtime complextiy and full rewriting , GM suggests &lt;br /&gt;
&lt;br /&gt;
(VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) (COMPLEXITY RUNTIME)&lt;br /&gt;
&lt;br /&gt;
for the same thing.&lt;br /&gt;
&lt;br /&gt;
* JW would prefer the following output format as it is easier to parse:&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; POLY(Nat) | POLY(?)&lt;br /&gt;
&lt;br /&gt;
Here &amp;quot;POLY(k)&amp;quot; abbreviates &amp;quot;O(n^k)&amp;quot; and &amp;quot;POLY(?)&amp;quot; denotes an unspecified&lt;br /&gt;
polynomial.&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
insert your name here if you intend to participate. &lt;br /&gt;
The sources of  all tools that want to  participate in the competition&lt;br /&gt;
have to be publicly available.&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
* Johannes Waldmann (Matchbox), but will need more time (December 2008)&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl (TCT)&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=574</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=574"/>
		<updated>2008-10-20T15:21:52Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: /* Problem selection */ added &amp;quot;closed under signature extensions&amp;quot; example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is to record the current status of discussion&lt;br /&gt;
on the proposed Complexity Category of the Termination Competition. &lt;br /&gt;
&lt;br /&gt;
The first installation of this event is planned for November 1, 2008.&lt;br /&gt;
&lt;br /&gt;
(Discussion should take place on the termtools mailing list.)&lt;br /&gt;
&lt;br /&gt;
== Overview of the Event ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper bounds on&lt;br /&gt;
the complexity  of rewrite systems.  By  complexity of a  TRS, we mean&lt;br /&gt;
the maximal length of derivations, where either no restrictions on the&lt;br /&gt;
initial  terms   are  present  (&amp;quot;derivational   complexity&amp;quot;)  or  only&lt;br /&gt;
constructor  based terms are  considered (&amp;quot;runtime  complexity&amp;quot;).  See&lt;br /&gt;
(Hirokawa, Moser, 2008)  for further reading on the  notion of runtime&lt;br /&gt;
complexity.   Additionally   one  distinguishes  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
specific strategies, as for example innermost rewriting.&lt;br /&gt;
We  propose four sub-categories, structured   in  two  logical   layers:  &lt;br /&gt;
&amp;quot;strategy&amp;quot;   and  &amp;quot;complexity certificate&amp;quot;,  such   that  for  each  of   &lt;br /&gt;
the  currently  considered strategies,  both  notions  of  complexity  are  tested. &lt;br /&gt;
&lt;br /&gt;
== Syntax/Semantics for Input/Output ==&lt;br /&gt;
&lt;br /&gt;
As  competition   semantics,  we   propose  to  focus  on &amp;lt;em&amp;gt;polynomial&amp;lt;/em&amp;gt;&lt;br /&gt;
bounds. The  current input format should  be kept as  far as possible,&lt;br /&gt;
i.e.,  from a  given TRS  a complexity  problem file  is  generated by&lt;br /&gt;
adding an annotation expressing one of  the above given  categories. This is&lt;br /&gt;
done on the  fly during the competition to  prevent the multiplication&lt;br /&gt;
of the database.&lt;br /&gt;
&lt;br /&gt;
On  the other hand  the output  format is  adapted so  that additional&lt;br /&gt;
information on the  asymptotic complexity is given for  lower as well&lt;br /&gt;
as upper bounds.  Hence the output written to the first line of STDOUT&lt;br /&gt;
shall be a complexity statement according to the following grammar:&lt;br /&gt;
&lt;br /&gt;
S -&amp;gt; NO | MAYBE | YES( F, F) | YES( ?, F) | YES( F, ?)&amp;lt;br&amp;gt;&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;Nat&amp;quot; is  a non-zero natural number and YES(F1,  F2) means F2 is&lt;br /&gt;
upper bound and that F1 is a lower-bound. &amp;quot;O(n^k)&amp;quot; is the usual big-Oh&lt;br /&gt;
notation and  &amp;quot;POLY&amp;quot; indicates  an unspecified polynomial.   Either of&lt;br /&gt;
the functions F1, F2 (but not both) may be replaced by ``don't know'',&lt;br /&gt;
indicated by ?.  Any remaining  output on STDOUT will be considered as&lt;br /&gt;
proof output and has to follow the normal rules for the competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Example&amp;lt;/em&amp;gt;: Consider R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}. Within&lt;br /&gt;
the derivational complexity category a syntactically correct output would be &amp;quot;YES(O(n^2),POLY)&amp;quot;. &lt;br /&gt;
(Whether this output would also indicate a correct tool, is another question.)&lt;br /&gt;
&lt;br /&gt;
== Scoring ==&lt;br /&gt;
&lt;br /&gt;
Currently we focus on (polynomial) &amp;lt;em&amp;gt;upper&amp;lt;/em&amp;gt; bounds.  As&lt;br /&gt;
the output format indicates, this restriction should be lifted&lt;br /&gt;
later, see below.  In order to take  into account the quality of the upper&lt;br /&gt;
bound  provided  by the  different  tools,  we  propose the  following&lt;br /&gt;
scoring algorithm, where we suppose the number of competitors is x.&lt;br /&gt;
&lt;br /&gt;
Firstly, for each  TRS the competing tools are  ranked, where constant&lt;br /&gt;
complexity, i.e., output &amp;quot;YES(?,O(1))&amp;quot; is best and &amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot; or&lt;br /&gt;
time-out is worst.&lt;br /&gt;
As long as the output  is of form &amp;quot;YES(?,O(n^k))&amp;quot; or &amp;quot;YES(?,POLY)&amp;quot; the&lt;br /&gt;
rank of  the tool  defines the number  of points.  More  precisely the&lt;br /&gt;
best tool gets x+1 points, the second gets x points and so on.  On the&lt;br /&gt;
other  hand a  negative  output  (&amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot;  or  time-out) gets  0&lt;br /&gt;
points.&lt;br /&gt;
If  two or  more  tools  would get  the  same rank,  the  rank of  the&lt;br /&gt;
remaining tools is adapted in the usual way.&lt;br /&gt;
&lt;br /&gt;
Secondly, all  resulting points for all considered  systems are summed&lt;br /&gt;
up and the contestant with the  highest number of points wins. If this&lt;br /&gt;
cannot establish  a winner, the total  number of wins  is counted.  If&lt;br /&gt;
this still  doesn't produce a winner,  we give up and  provide two (or&lt;br /&gt;
more) winners.&lt;br /&gt;
&lt;br /&gt;
The maximal allowed CPU time is 60 seconds.&lt;br /&gt;
&lt;br /&gt;
NB: Derivational complexity  is not  closed under  extensions  &lt;br /&gt;
of the signature. Consider for example the  TRS R={a -&amp;gt; b} (example suggested&lt;br /&gt;
by Nao Hirokawa). On the signature {a,b} the (derivational) complexity&lt;br /&gt;
is constant, while the complexity becomes linear on signature {a,b,c},&lt;br /&gt;
if  the arity  of c  is binary.  Thus, we  demand that  the complexity&lt;br /&gt;
certificate given by  the provers has to be  closed under extension of&lt;br /&gt;
signature.&lt;br /&gt;
&lt;br /&gt;
== Problem selection ==&lt;br /&gt;
&lt;br /&gt;
We propose the collection of all  &amp;quot;standard&amp;quot; TRSs together&lt;br /&gt;
with  all TRSs with  flag &amp;quot;(STRATEGY  INNERMOST)&amp;quot; as testbed. Here  TRSs which&lt;br /&gt;
only differ by the flag in the current TPDB are only considered once.&lt;br /&gt;
However for sub-categories concerned with &amp;quot;derivational complexity&amp;quot; we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems.&lt;br /&gt;
&lt;br /&gt;
In the following test cases we restrict to full rewriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - derivational complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {a -&amp;gt; b}, expected output &amp;quot;YES(O(n),O(n))&amp;quot; of &amp;quot;YES(?,O(n))&amp;quot; (if tool output should be closed under extension of signature)&lt;br /&gt;
&lt;br /&gt;
* R= {a(b(x)) -&amp;gt; b(a(x))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {op(op(x,y),z) -&amp;gt; op(x,op(y,z))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(f(x)) -&amp;gt; f(g(f(x)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {plus(mul(x,y),mul(x,z)) -&amp;gt; mul(x,plus(y,z)), plus(plus(x,y),z) -&amp;gt; plus(x,+(y,z)), plus(mul(x,y),plus(mul(x,z),u)) -&amp;gt; plus(mul(x,plus(y,z)),u)}&lt;br /&gt;
&lt;br /&gt;
* R= {half(0) -&amp;gt; 0, half(s(0)) -&amp;gt; 0, half(s(s(x))) -&amp;gt; s(half(x)), s(log(0)) -&amp;gt; s(0), log(s(x)) -&amp;gt; s(log(half(s(x))))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}, expected output &amp;quot;YES(O(n^2),?)&amp;quot; or &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {+(s(x),+(y,z)) -&amp;gt; +(x,+(s(s(y)),z)), +(s(x),+(y,+(z,w))) -&amp;gt; +(x,+(z,+(y,w)))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {a(b(x)) -&amp;gt; b(b(a(x)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {plus(0,y) -&amp;gt; y, plus(s(x),y) -&amp;gt; s(plus(x,y)), mul(0,y) -&amp;gt; 0, mul(s(x),y) -&amp;gt; plus(mul(x,y),y)}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {if(tt,x,y) -&amp;gt; x, if(ff,x,y) -&amp;gt; y, le(0,s(y)) -&amp;gt; tt, le(x,0) -&amp;gt; ff, le(s(x),s(y)) -&amp;gt; le(x,y), insert(x,nil) -&amp;gt; cons(x,nil), insert(x,cons(y,ys)) -&amp;gt; if(le(x,y),cons(x,cons(y,ys)),cons(y,insert(x,ys))), sort(nil) -&amp;gt; nil, sort(cons(x,xs)) -&amp;gt; insert(x,sort(xs))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {minus(0,y) -&amp;gt; 0, minus(x,0) -&amp;gt; x, minus(s(x),s(y)) -&amp;gt; minus(x,y), div(0,s(y)) -&amp;gt; 0, div(s(x),s(y)) -&amp;gt; s(div(minus(x,y),s(y)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(x,0) -&amp;gt; s(0), f(s(x),s(y)) -&amp;gt; s(f(x,y)), g(0,x) -&amp;gt; g(f(x,x),x)}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {d(0) -&amp;gt; 0, d(s(x)) -&amp;gt; s(s(d(x))), e(0) -&amp;gt; s(0), e(s(x)) -&amp;gt; d(e(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(0) -&amp;gt; c, f(s(x)) -&amp;gt; c(f(x),f(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wishlist ==&lt;br /&gt;
*&lt;br /&gt;
* assessment of lower bounds:&amp;lt;br&amp;gt;&lt;br /&gt;
In the future the tools should also be able to provide certificates on the&lt;br /&gt;
lower bound. This would imply to extend the grammar as follows&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY | EXP | INF&lt;br /&gt;
&lt;br /&gt;
such that e.g. &amp;quot;YES(EXP,?)&amp;quot; indicated an exponential lower-bound,&lt;br /&gt;
or &amp;quot;YES(INF,INF)&amp;quot; indicated non-termination. &lt;br /&gt;
* as for the upper bound the lower bound certificate should be ranked and &lt;br /&gt;
both ranks could be compared lexicographically&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
*&lt;br /&gt;
* the precise format for the subcategories needs to be fixed; JW suggests: &lt;br /&gt;
&lt;br /&gt;
(START-TERMS CONSTRUCTOR-BASED) (VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) &lt;br /&gt;
&lt;br /&gt;
to indicate runtime complextiy and full rewriting , GM suggests &lt;br /&gt;
&lt;br /&gt;
(VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) (COMPLEXITY RUNTIME)&lt;br /&gt;
&lt;br /&gt;
for the same thing.&lt;br /&gt;
&lt;br /&gt;
* JW would prefer the following output format as it is easier to parse:&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; POLY(Nat) | POLY(?)&lt;br /&gt;
&lt;br /&gt;
Here &amp;quot;POLY(k)&amp;quot; abbreviates &amp;quot;O(n^k)&amp;quot; and &amp;quot;POLY(?)&amp;quot; denotes an unspecified&lt;br /&gt;
polynomial.&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
insert your name here if you intend to participate. &lt;br /&gt;
The sources of  all tools that want to  participate in the competition&lt;br /&gt;
have to be publicly available.&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
* Johannes Waldmann (Matchbox), but will need more time (December 2008)&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl (TCT)&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Tools:TCT&amp;diff=573</id>
		<title>Tools:TCT</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Tools:TCT&amp;diff=573"/>
		<updated>2008-10-20T15:18:53Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: cosmetic changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
       Please fill in the data so that your tool can be added to some default&lt;br /&gt;
       categories and a simple tool page can be created. You may extend&lt;br /&gt;
       that tool page yourself after the following code block.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tool&lt;br /&gt;
|shortname=TCT&lt;br /&gt;
|longname=Tyrolean Complexity Tool&lt;br /&gt;
|homepage=TBA&lt;br /&gt;
|country=Austria&lt;br /&gt;
|university=University of Innsbruck&lt;br /&gt;
|developers=Martin Avanzini, [[People:Georg Moser|Georg Moser]], [[People:Andreas Schnabl|Andreas Schnabl]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If you want to add some additional information to the tool page, you can do so after this comment. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TCT is a complexity prover based on the termination tool [[Tools:TTT2|TTT2]]. It is specialized in proving&lt;br /&gt;
polynomial upper bounds on the derivational complexity and runtime complexity of TRSs.&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Tools:TCT&amp;diff=572</id>
		<title>Tools:TCT</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Tools:TCT&amp;diff=572"/>
		<updated>2008-10-20T15:16:16Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: added page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
       Please fill in the data so that your tool can be added to some default&lt;br /&gt;
       categories and a simple tool page can be created. You may extend&lt;br /&gt;
       that tool page yourself after the following code block.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tool&lt;br /&gt;
|shortname=TCT&lt;br /&gt;
|longname=Tyrolean Complexity Tool&lt;br /&gt;
|homepage=TBA&lt;br /&gt;
|country=Austria&lt;br /&gt;
|university=University of Innsbruck&lt;br /&gt;
|developers=Martin Avanzini, Georg Moser, Andreas Schnabl&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If you want to add some additional information to the tool page, you can do so after this comment. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TCT is a complexity prover based on the termination tool [[Tools:TTT2]]. It is specialized in proving&lt;br /&gt;
polynomial upper bounds on the derivational complexity and runtime complexity of TRSs.&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=571</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=571"/>
		<updated>2008-10-20T14:57:08Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: /* Problem selection */ order of examples changed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is to record the current status of discussion&lt;br /&gt;
on the proposed Complexity Category of the Termination Competition. &lt;br /&gt;
&lt;br /&gt;
The first installation of this event is planned for November 1, 2008.&lt;br /&gt;
&lt;br /&gt;
(Discussion should take place on the termtools mailing list.)&lt;br /&gt;
&lt;br /&gt;
== Overview of the Event ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper bounds on&lt;br /&gt;
the complexity  of rewrite systems.  By  complexity of a  TRS, we mean&lt;br /&gt;
the maximal length of derivations, where either no restrictions on the&lt;br /&gt;
initial  terms   are  present  (&amp;quot;derivational   complexity&amp;quot;)  or  only&lt;br /&gt;
constructor  based terms are  considered (&amp;quot;runtime  complexity&amp;quot;).  See&lt;br /&gt;
(Hirokawa, Moser, 2008)  for further reading on the  notion of runtime&lt;br /&gt;
complexity.   Additionally   one  distinguishes  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
specific strategies, as for example innermost rewriting.&lt;br /&gt;
We  propose four sub-categories, structured   in  two  logical   layers:  &lt;br /&gt;
&amp;quot;strategy&amp;quot;   and  &amp;quot;complexity certificate&amp;quot;,  such   that  for  each  of   &lt;br /&gt;
the  currently  considered strategies,  both  notions  of  complexity  are  tested. &lt;br /&gt;
&lt;br /&gt;
== Syntax/Semantics for Input/Output ==&lt;br /&gt;
&lt;br /&gt;
As  competition   semantics,  we   propose  to  focus  on &amp;lt;em&amp;gt;polynomial&amp;lt;/em&amp;gt;&lt;br /&gt;
bounds. The  current input format should  be kept as  far as possible,&lt;br /&gt;
i.e.,  from a  given TRS  a complexity  problem file  is  generated by&lt;br /&gt;
adding an annotation expressing one of  the above given  categories. This is&lt;br /&gt;
done on the  fly during the competition to  prevent the multiplication&lt;br /&gt;
of the database.&lt;br /&gt;
&lt;br /&gt;
On  the other hand  the output  format is  adapted so  that additional&lt;br /&gt;
information on the  asymptotic complexity is given for  lower as well&lt;br /&gt;
as upper bounds.  Hence the output written to the first line of STDOUT&lt;br /&gt;
shall be a complexity statement according to the following grammar:&lt;br /&gt;
&lt;br /&gt;
S -&amp;gt; NO | MAYBE | YES( F, F) | YES( ?, F) | YES( F, ?)&amp;lt;br&amp;gt;&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;Nat&amp;quot; is  a non-zero natural number and YES(F1,  F2) means F2 is&lt;br /&gt;
upper bound and that F1 is a lower-bound. &amp;quot;O(n^k)&amp;quot; is the usual big-Oh&lt;br /&gt;
notation and  &amp;quot;POLY&amp;quot; indicates  an unspecified polynomial.   Either of&lt;br /&gt;
the functions F1, F2 (but not both) may be replaced by ``don't know'',&lt;br /&gt;
indicated by ?.  Any remaining  output on STDOUT will be considered as&lt;br /&gt;
proof output and has to follow the normal rules for the competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Example&amp;lt;/em&amp;gt;: Consider R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}. Within&lt;br /&gt;
the derivational complexity category a syntactically correct output would be &amp;quot;YES(O(n^2),POLY)&amp;quot;. &lt;br /&gt;
(Whether this output would also indicate a correct tool, is another question.)&lt;br /&gt;
&lt;br /&gt;
== Scoring ==&lt;br /&gt;
&lt;br /&gt;
Currently we focus on (polynomial) &amp;lt;em&amp;gt;upper&amp;lt;/em&amp;gt; bounds.  As&lt;br /&gt;
the output format indicates, this restriction should be lifted&lt;br /&gt;
later, see below.  In order to take  into account the quality of the upper&lt;br /&gt;
bound  provided  by the  different  tools,  we  propose the  following&lt;br /&gt;
scoring algorithm, where we suppose the number of competitors is x.&lt;br /&gt;
&lt;br /&gt;
Firstly, for each  TRS the competing tools are  ranked, where constant&lt;br /&gt;
complexity, i.e., output &amp;quot;YES(?,O(1))&amp;quot; is best and &amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot; or&lt;br /&gt;
time-out is worst.&lt;br /&gt;
As long as the output  is of form &amp;quot;YES(?,O(n^k))&amp;quot; or &amp;quot;YES(?,POLY)&amp;quot; the&lt;br /&gt;
rank of  the tool  defines the number  of points.  More  precisely the&lt;br /&gt;
best tool gets x+1 points, the second gets x points and so on.  On the&lt;br /&gt;
other  hand a  negative  output  (&amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot;  or  time-out) gets  0&lt;br /&gt;
points.&lt;br /&gt;
If  two or  more  tools  would get  the  same rank,  the  rank of  the&lt;br /&gt;
remaining tools is adapted in the usual way.&lt;br /&gt;
&lt;br /&gt;
Secondly, all  resulting points for all considered  systems are summed&lt;br /&gt;
up and the contestant with the  highest number of points wins. If this&lt;br /&gt;
cannot establish  a winner, the total  number of wins  is counted.  If&lt;br /&gt;
this still  doesn't produce a winner,  we give up and  provide two (or&lt;br /&gt;
more) winners.&lt;br /&gt;
&lt;br /&gt;
The maximal allowed CPU time is 60 seconds.&lt;br /&gt;
&lt;br /&gt;
NB: Derivational complexity  is not  closed under  extensions  &lt;br /&gt;
of the signature. Consider for example the  TRS R={a -&amp;gt; b} (example suggested&lt;br /&gt;
by Nao Hirokawa). On the signature {a,b} the (derivational) complexity&lt;br /&gt;
is constant, while the complexity becomes linear on signature {a,b,c},&lt;br /&gt;
if  the arity  of c  is binary.  Thus, we  demand that  the complexity&lt;br /&gt;
certificate given by  the provers has to be  closed under extension of&lt;br /&gt;
signature.&lt;br /&gt;
&lt;br /&gt;
== Problem selection ==&lt;br /&gt;
&lt;br /&gt;
We propose the collection of all  &amp;quot;standard&amp;quot; TRSs together&lt;br /&gt;
with  all TRSs with  flag &amp;quot;(STRATEGY  INNERMOST)&amp;quot; as testbed. Here  TRSs which&lt;br /&gt;
only differ by the flag in the current TPDB are only considered once.&lt;br /&gt;
However for sub-categories concerned with &amp;quot;derivational complexity&amp;quot; we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems.&lt;br /&gt;
&lt;br /&gt;
In the following test cases we restrict to full rewriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - derivational complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {a(b(x)) -&amp;gt; b(a(x))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {op(op(x,y),z) -&amp;gt; op(x,op(y,z))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(f(x)) -&amp;gt; f(g(f(x)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {plus(mul(x,y),mul(x,z)) -&amp;gt; mul(x,plus(y,z)), plus(plus(x,y),z) -&amp;gt; plus(x,+(y,z)), plus(mul(x,y),plus(mul(x,z),u)) -&amp;gt; plus(mul(x,plus(y,z)),u)}&lt;br /&gt;
&lt;br /&gt;
* R= {half(0) -&amp;gt; 0, half(s(0)) -&amp;gt; 0, half(s(s(x))) -&amp;gt; s(half(x)), s(log(0)) -&amp;gt; s(0), log(s(x)) -&amp;gt; s(log(half(s(x))))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}, expected output &amp;quot;YES(O(n^2),?)&amp;quot; or &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {+(s(x),+(y,z)) -&amp;gt; +(x,+(s(s(y)),z)), +(s(x),+(y,+(z,w))) -&amp;gt; +(x,+(z,+(y,w)))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {a(b(x)) -&amp;gt; b(b(a(x)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {plus(0,y) -&amp;gt; y, plus(s(x),y) -&amp;gt; s(plus(x,y)), mul(0,y) -&amp;gt; 0, mul(s(x),y) -&amp;gt; plus(mul(x,y),y)}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {if(tt,x,y) -&amp;gt; x, if(ff,x,y) -&amp;gt; y, le(0,s(y)) -&amp;gt; tt, le(x,0) -&amp;gt; ff, le(s(x),s(y)) -&amp;gt; le(x,y), insert(x,nil) -&amp;gt; cons(x,nil), insert(x,cons(y,ys)) -&amp;gt; if(le(x,y),cons(x,cons(y,ys)),cons(y,insert(x,ys))), sort(nil) -&amp;gt; nil, sort(cons(x,xs)) -&amp;gt; insert(x,sort(xs))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {minus(0,y) -&amp;gt; 0, minus(x,0) -&amp;gt; x, minus(s(x),s(y)) -&amp;gt; minus(x,y), div(0,s(y)) -&amp;gt; 0, div(s(x),s(y)) -&amp;gt; s(div(minus(x,y),s(y)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(x,0) -&amp;gt; s(0), f(s(x),s(y)) -&amp;gt; s(f(x,y)), g(0,x) -&amp;gt; g(f(x,x),x)}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {d(0) -&amp;gt; 0, d(s(x)) -&amp;gt; s(s(d(x))), e(0) -&amp;gt; s(0), e(s(x)) -&amp;gt; d(e(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(0) -&amp;gt; c, f(s(x)) -&amp;gt; c(f(x),f(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wishlist ==&lt;br /&gt;
*&lt;br /&gt;
* assessment of lower bounds:&amp;lt;br&amp;gt;&lt;br /&gt;
In the future the tools should also be able to provide certificates on the&lt;br /&gt;
lower bound. This would imply to extend the grammar as follows&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY | EXP | INF&lt;br /&gt;
&lt;br /&gt;
such that e.g. &amp;quot;YES(EXP,?)&amp;quot; indicated an exponential lower-bound,&lt;br /&gt;
or &amp;quot;YES(INF,INF)&amp;quot; indicated non-termination. &lt;br /&gt;
* as for the upper bound the lower bound certificate should be ranked and &lt;br /&gt;
both ranks could be compared lexicographically&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
*&lt;br /&gt;
* the precise format for the subcategories needs to be fixed; JW suggests: &lt;br /&gt;
&lt;br /&gt;
(START-TERMS CONSTRUCTOR-BASED) (VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) &lt;br /&gt;
&lt;br /&gt;
to indicate runtime complextiy and full rewriting , GM suggests &lt;br /&gt;
&lt;br /&gt;
(VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) (COMPLEXITY RUNTIME)&lt;br /&gt;
&lt;br /&gt;
for the same thing.&lt;br /&gt;
&lt;br /&gt;
* JW would prefer the following output format as it is easier to parse:&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; POLY(Nat) | POLY(?)&lt;br /&gt;
&lt;br /&gt;
Here &amp;quot;POLY(k)&amp;quot; abbreviates &amp;quot;O(n^k)&amp;quot; and &amp;quot;POLY(?)&amp;quot; denotes an unspecified&lt;br /&gt;
polynomial.&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
insert your name here if you intend to participate. &lt;br /&gt;
The sources of  all tools that want to  participate in the competition&lt;br /&gt;
have to be publicly available.&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
* Johannes Waldmann (Matchbox), but will need more time (December 2008)&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl (TCT)&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=570</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=570"/>
		<updated>2008-10-20T14:52:06Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: /* Problem selection */ examples completed for now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is to record the current status of discussion&lt;br /&gt;
on the proposed Complexity Category of the Termination Competition. &lt;br /&gt;
&lt;br /&gt;
The first installation of this event is planned for November 1, 2008.&lt;br /&gt;
&lt;br /&gt;
(Discussion should take place on the termtools mailing list.)&lt;br /&gt;
&lt;br /&gt;
== Overview of the Event ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper bounds on&lt;br /&gt;
the complexity  of rewrite systems.  By  complexity of a  TRS, we mean&lt;br /&gt;
the maximal length of derivations, where either no restrictions on the&lt;br /&gt;
initial  terms   are  present  (&amp;quot;derivational   complexity&amp;quot;)  or  only&lt;br /&gt;
constructor  based terms are  considered (&amp;quot;runtime  complexity&amp;quot;).  See&lt;br /&gt;
(Hirokawa, Moser, 2008)  for further reading on the  notion of runtime&lt;br /&gt;
complexity.   Additionally   one  distinguishes  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
specific strategies, as for example innermost rewriting.&lt;br /&gt;
We  propose four sub-categories, structured   in  two  logical   layers:  &lt;br /&gt;
&amp;quot;strategy&amp;quot;   and  &amp;quot;complexity certificate&amp;quot;,  such   that  for  each  of   &lt;br /&gt;
the  currently  considered strategies,  both  notions  of  complexity  are  tested. &lt;br /&gt;
&lt;br /&gt;
== Syntax/Semantics for Input/Output ==&lt;br /&gt;
&lt;br /&gt;
As  competition   semantics,  we   propose  to  focus  on &amp;lt;em&amp;gt;polynomial&amp;lt;/em&amp;gt;&lt;br /&gt;
bounds. The  current input format should  be kept as  far as possible,&lt;br /&gt;
i.e.,  from a  given TRS  a complexity  problem file  is  generated by&lt;br /&gt;
adding an annotation expressing one of  the above given  categories. This is&lt;br /&gt;
done on the  fly during the competition to  prevent the multiplication&lt;br /&gt;
of the database.&lt;br /&gt;
&lt;br /&gt;
On  the other hand  the output  format is  adapted so  that additional&lt;br /&gt;
information on the  asymptotic complexity is given for  lower as well&lt;br /&gt;
as upper bounds.  Hence the output written to the first line of STDOUT&lt;br /&gt;
shall be a complexity statement according to the following grammar:&lt;br /&gt;
&lt;br /&gt;
S -&amp;gt; NO | MAYBE | YES( F, F) | YES( ?, F) | YES( F, ?)&amp;lt;br&amp;gt;&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;Nat&amp;quot; is  a non-zero natural number and YES(F1,  F2) means F2 is&lt;br /&gt;
upper bound and that F1 is a lower-bound. &amp;quot;O(n^k)&amp;quot; is the usual big-Oh&lt;br /&gt;
notation and  &amp;quot;POLY&amp;quot; indicates  an unspecified polynomial.   Either of&lt;br /&gt;
the functions F1, F2 (but not both) may be replaced by ``don't know'',&lt;br /&gt;
indicated by ?.  Any remaining  output on STDOUT will be considered as&lt;br /&gt;
proof output and has to follow the normal rules for the competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Example&amp;lt;/em&amp;gt;: Consider R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}. Within&lt;br /&gt;
the derivational complexity category a syntactically correct output would be &amp;quot;YES(O(n^2),POLY)&amp;quot;. &lt;br /&gt;
(Whether this output would also indicate a correct tool, is another question.)&lt;br /&gt;
&lt;br /&gt;
== Scoring ==&lt;br /&gt;
&lt;br /&gt;
Currently we focus on (polynomial) &amp;lt;em&amp;gt;upper&amp;lt;/em&amp;gt; bounds.  As&lt;br /&gt;
the output format indicates, this restriction should be lifted&lt;br /&gt;
later, see below.  In order to take  into account the quality of the upper&lt;br /&gt;
bound  provided  by the  different  tools,  we  propose the  following&lt;br /&gt;
scoring algorithm, where we suppose the number of competitors is x.&lt;br /&gt;
&lt;br /&gt;
Firstly, for each  TRS the competing tools are  ranked, where constant&lt;br /&gt;
complexity, i.e., output &amp;quot;YES(?,O(1))&amp;quot; is best and &amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot; or&lt;br /&gt;
time-out is worst.&lt;br /&gt;
As long as the output  is of form &amp;quot;YES(?,O(n^k))&amp;quot; or &amp;quot;YES(?,POLY)&amp;quot; the&lt;br /&gt;
rank of  the tool  defines the number  of points.  More  precisely the&lt;br /&gt;
best tool gets x+1 points, the second gets x points and so on.  On the&lt;br /&gt;
other  hand a  negative  output  (&amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot;  or  time-out) gets  0&lt;br /&gt;
points.&lt;br /&gt;
If  two or  more  tools  would get  the  same rank,  the  rank of  the&lt;br /&gt;
remaining tools is adapted in the usual way.&lt;br /&gt;
&lt;br /&gt;
Secondly, all  resulting points for all considered  systems are summed&lt;br /&gt;
up and the contestant with the  highest number of points wins. If this&lt;br /&gt;
cannot establish  a winner, the total  number of wins  is counted.  If&lt;br /&gt;
this still  doesn't produce a winner,  we give up and  provide two (or&lt;br /&gt;
more) winners.&lt;br /&gt;
&lt;br /&gt;
The maximal allowed CPU time is 60 seconds.&lt;br /&gt;
&lt;br /&gt;
NB: Derivational complexity  is not  closed under  extensions  &lt;br /&gt;
of the signature. Consider for example the  TRS R={a -&amp;gt; b} (example suggested&lt;br /&gt;
by Nao Hirokawa). On the signature {a,b} the (derivational) complexity&lt;br /&gt;
is constant, while the complexity becomes linear on signature {a,b,c},&lt;br /&gt;
if  the arity  of c  is binary.  Thus, we  demand that  the complexity&lt;br /&gt;
certificate given by  the provers has to be  closed under extension of&lt;br /&gt;
signature.&lt;br /&gt;
&lt;br /&gt;
== Problem selection ==&lt;br /&gt;
&lt;br /&gt;
We propose the collection of all  &amp;quot;standard&amp;quot; TRSs together&lt;br /&gt;
with  all TRSs with  flag &amp;quot;(STRATEGY  INNERMOST)&amp;quot; as testbed. Here  TRSs which&lt;br /&gt;
only differ by the flag in the current TPDB are only considered once.&lt;br /&gt;
However for sub-categories concerned with &amp;quot;derivational complexity&amp;quot; we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems.&lt;br /&gt;
&lt;br /&gt;
In the following test cases we restrict to full rewriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - derivational complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {a(b(x)) -&amp;gt; b(a(x))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {op(op(x,y),z) -&amp;gt; op(x,op(y,z))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(f(x)) -&amp;gt; f(g(f(x)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {half(0) -&amp;gt; 0, half(s(0)) -&amp;gt; 0, half(s(s(x))) -&amp;gt; s(half(x)), s(log(0)) -&amp;gt; s(0), log(s(x)) -&amp;gt; s(log(half(s(x))))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {plus(mul(x,y),mul(x,z)) -&amp;gt; mul(x,plus(y,z)), plus(plus(x,y),z) -&amp;gt; plus(x,+(y,z)), plus(mul(x,y),plus(mul(x,z),u)) -&amp;gt; plus(mul(x,plus(y,z)),u)}&lt;br /&gt;
&lt;br /&gt;
* R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}, expected output &amp;quot;YES(O(n^2),?)&amp;quot; or &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {+(s(x),+(y,z)) -&amp;gt; +(x,+(s(s(y)),z)), +(s(x),+(y,+(z,w))) -&amp;gt; +(x,+(z,+(y,w)))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {a(b(x)) -&amp;gt; b(b(a(x)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {plus(0,y) -&amp;gt; y, plus(s(x),y) -&amp;gt; s(plus(x,y)), mul(0,y) -&amp;gt; 0, mul(s(x),y) -&amp;gt; plus(mul(x,y),y)}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {if(tt,x,y) -&amp;gt; x, if(ff,x,y) -&amp;gt; y, le(0,s(y)) -&amp;gt; tt, le(x,0) -&amp;gt; ff, le(s(x),s(y)) -&amp;gt; le(x,y), insert(x,nil) -&amp;gt; cons(x,nil), insert(x,cons(y,ys)) -&amp;gt; if(le(x,y),cons(x,cons(y,ys)),cons(y,insert(x,ys))), sort(nil) -&amp;gt; nil, sort(cons(x,xs)) -&amp;gt; insert(x,sort(xs))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {minus(0,y) -&amp;gt; 0, minus(x,0) -&amp;gt; x, minus(s(x),s(y)) -&amp;gt; minus(x,y), div(0,s(y)) -&amp;gt; 0, div(s(x),s(y)) -&amp;gt; s(div(minus(x,y),s(y)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(x,0) -&amp;gt; s(0), f(s(x),s(y)) -&amp;gt; s(f(x,y)), g(0,x) -&amp;gt; g(f(x,x),x)}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {d(0) -&amp;gt; 0, d(s(x)) -&amp;gt; s(s(d(x))), e(0) -&amp;gt; s(0), e(s(x)) -&amp;gt; d(e(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(0) -&amp;gt; c, f(s(x)) -&amp;gt; c(f(x),f(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wishlist ==&lt;br /&gt;
*&lt;br /&gt;
* assessment of lower bounds:&amp;lt;br&amp;gt;&lt;br /&gt;
In the future the tools should also be able to provide certificates on the&lt;br /&gt;
lower bound. This would imply to extend the grammar as follows&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY | EXP | INF&lt;br /&gt;
&lt;br /&gt;
such that e.g. &amp;quot;YES(EXP,?)&amp;quot; indicated an exponential lower-bound,&lt;br /&gt;
or &amp;quot;YES(INF,INF)&amp;quot; indicated non-termination. &lt;br /&gt;
* as for the upper bound the lower bound certificate should be ranked and &lt;br /&gt;
both ranks could be compared lexicographically&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
*&lt;br /&gt;
* the precise format for the subcategories needs to be fixed; JW suggests: &lt;br /&gt;
&lt;br /&gt;
(START-TERMS CONSTRUCTOR-BASED) (VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) &lt;br /&gt;
&lt;br /&gt;
to indicate runtime complextiy and full rewriting , GM suggests &lt;br /&gt;
&lt;br /&gt;
(VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) (COMPLEXITY RUNTIME)&lt;br /&gt;
&lt;br /&gt;
for the same thing.&lt;br /&gt;
&lt;br /&gt;
* JW would prefer the following output format as it is easier to parse:&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; POLY(Nat) | POLY(?)&lt;br /&gt;
&lt;br /&gt;
Here &amp;quot;POLY(k)&amp;quot; abbreviates &amp;quot;O(n^k)&amp;quot; and &amp;quot;POLY(?)&amp;quot; denotes an unspecified&lt;br /&gt;
polynomial.&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
insert your name here if you intend to participate. &lt;br /&gt;
The sources of  all tools that want to  participate in the competition&lt;br /&gt;
have to be publicly available.&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
* Johannes Waldmann (Matchbox), but will need more time (December 2008)&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl (TCT)&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=569</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=569"/>
		<updated>2008-10-20T14:38:03Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: /* Problem selection */ more dc problems&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is to record the current status of discussion&lt;br /&gt;
on the proposed Complexity Category of the Termination Competition. &lt;br /&gt;
&lt;br /&gt;
The first installation of this event is planned for November 1, 2008.&lt;br /&gt;
&lt;br /&gt;
(Discussion should take place on the termtools mailing list.)&lt;br /&gt;
&lt;br /&gt;
== Overview of the Event ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper bounds on&lt;br /&gt;
the complexity  of rewrite systems.  By  complexity of a  TRS, we mean&lt;br /&gt;
the maximal length of derivations, where either no restrictions on the&lt;br /&gt;
initial  terms   are  present  (&amp;quot;derivational   complexity&amp;quot;)  or  only&lt;br /&gt;
constructor  based terms are  considered (&amp;quot;runtime  complexity&amp;quot;).  See&lt;br /&gt;
(Hirokawa, Moser, 2008)  for further reading on the  notion of runtime&lt;br /&gt;
complexity.   Additionally   one  distinguishes  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
specific strategies, as for example innermost rewriting.&lt;br /&gt;
We  propose four sub-categories, structured   in  two  logical   layers:  &lt;br /&gt;
&amp;quot;strategy&amp;quot;   and  &amp;quot;complexity certificate&amp;quot;,  such   that  for  each  of   &lt;br /&gt;
the  currently  considered strategies,  both  notions  of  complexity  are  tested. &lt;br /&gt;
&lt;br /&gt;
== Syntax/Semantics for Input/Output ==&lt;br /&gt;
&lt;br /&gt;
As  competition   semantics,  we   propose  to  focus  on &amp;lt;em&amp;gt;polynomial&amp;lt;/em&amp;gt;&lt;br /&gt;
bounds. The  current input format should  be kept as  far as possible,&lt;br /&gt;
i.e.,  from a  given TRS  a complexity  problem file  is  generated by&lt;br /&gt;
adding an annotation expressing one of  the above given  categories. This is&lt;br /&gt;
done on the  fly during the competition to  prevent the multiplication&lt;br /&gt;
of the database.&lt;br /&gt;
&lt;br /&gt;
On  the other hand  the output  format is  adapted so  that additional&lt;br /&gt;
information on the  asymptotic complexity is given for  lower as well&lt;br /&gt;
as upper bounds.  Hence the output written to the first line of STDOUT&lt;br /&gt;
shall be a complexity statement according to the following grammar:&lt;br /&gt;
&lt;br /&gt;
S -&amp;gt; NO | MAYBE | YES( F, F) | YES( ?, F) | YES( F, ?)&amp;lt;br&amp;gt;&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;Nat&amp;quot; is  a non-zero natural number and YES(F1,  F2) means F2 is&lt;br /&gt;
upper bound and that F1 is a lower-bound. &amp;quot;O(n^k)&amp;quot; is the usual big-Oh&lt;br /&gt;
notation and  &amp;quot;POLY&amp;quot; indicates  an unspecified polynomial.   Either of&lt;br /&gt;
the functions F1, F2 (but not both) may be replaced by ``don't know'',&lt;br /&gt;
indicated by ?.  Any remaining  output on STDOUT will be considered as&lt;br /&gt;
proof output and has to follow the normal rules for the competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Example&amp;lt;/em&amp;gt;: Consider R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}. Within&lt;br /&gt;
the derivational complexity category a syntactically correct output would be &amp;quot;YES(O(n^2),POLY)&amp;quot;. &lt;br /&gt;
(Whether this output would also indicate a correct tool, is another question.)&lt;br /&gt;
&lt;br /&gt;
== Scoring ==&lt;br /&gt;
&lt;br /&gt;
Currently we focus on (polynomial) &amp;lt;em&amp;gt;upper&amp;lt;/em&amp;gt; bounds.  As&lt;br /&gt;
the output format indicates, this restriction should be lifted&lt;br /&gt;
later, see below.  In order to take  into account the quality of the upper&lt;br /&gt;
bound  provided  by the  different  tools,  we  propose the  following&lt;br /&gt;
scoring algorithm, where we suppose the number of competitors is x.&lt;br /&gt;
&lt;br /&gt;
Firstly, for each  TRS the competing tools are  ranked, where constant&lt;br /&gt;
complexity, i.e., output &amp;quot;YES(?,O(1))&amp;quot; is best and &amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot; or&lt;br /&gt;
time-out is worst.&lt;br /&gt;
As long as the output  is of form &amp;quot;YES(?,O(n^k))&amp;quot; or &amp;quot;YES(?,POLY)&amp;quot; the&lt;br /&gt;
rank of  the tool  defines the number  of points.  More  precisely the&lt;br /&gt;
best tool gets x+1 points, the second gets x points and so on.  On the&lt;br /&gt;
other  hand a  negative  output  (&amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot;  or  time-out) gets  0&lt;br /&gt;
points.&lt;br /&gt;
If  two or  more  tools  would get  the  same rank,  the  rank of  the&lt;br /&gt;
remaining tools is adapted in the usual way.&lt;br /&gt;
&lt;br /&gt;
Secondly, all  resulting points for all considered  systems are summed&lt;br /&gt;
up and the contestant with the  highest number of points wins. If this&lt;br /&gt;
cannot establish  a winner, the total  number of wins  is counted.  If&lt;br /&gt;
this still  doesn't produce a winner,  we give up and  provide two (or&lt;br /&gt;
more) winners.&lt;br /&gt;
&lt;br /&gt;
The maximal allowed CPU time is 60 seconds.&lt;br /&gt;
&lt;br /&gt;
NB: Derivational complexity  is not  closed under  extensions  &lt;br /&gt;
of the signature. Consider for example the  TRS R={a -&amp;gt; b} (example suggested&lt;br /&gt;
by Nao Hirokawa). On the signature {a,b} the (derivational) complexity&lt;br /&gt;
is constant, while the complexity becomes linear on signature {a,b,c},&lt;br /&gt;
if  the arity  of c  is binary.  Thus, we  demand that  the complexity&lt;br /&gt;
certificate given by  the provers has to be  closed under extension of&lt;br /&gt;
signature.&lt;br /&gt;
&lt;br /&gt;
== Problem selection ==&lt;br /&gt;
&lt;br /&gt;
We propose the collection of all  &amp;quot;standard&amp;quot; TRSs together&lt;br /&gt;
with  all TRSs with  flag &amp;quot;(STRATEGY  INNERMOST)&amp;quot; as testbed. Here  TRSs which&lt;br /&gt;
only differ by the flag in the current TPDB are only considered once.&lt;br /&gt;
However for sub-categories concerned with &amp;quot;derivational complexity&amp;quot; we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems.&lt;br /&gt;
&lt;br /&gt;
In the following test cases we restrict to full rewriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - derivational complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {a(b(x)) -&amp;gt; b(a(x))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {op(op(x,y),z) -&amp;gt; op(x,op(y,z))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {f(f(x)) -&amp;gt; f(g(f(x)))}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {half(0) -&amp;gt; 0, half(s(0)) -&amp;gt; 0, half(s(s(x))) -&amp;gt; s(half(x)), s(log(0)) -&amp;gt; s(0), log(s(x)) -&amp;gt; s(log(half(s(x))))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {plus(mul(x,y),mul(x,z)) -&amp;gt; mul(x,plus(y,z)), plus(plus(x,y),z) -&amp;gt; plus(x,+(y,z)), plus(mul(x,y),plus(mul(x,z),u)) -&amp;gt; plus(mul(x,plus(y,z)),u)}&lt;br /&gt;
&lt;br /&gt;
* R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}, expected output &amp;quot;YES(O(n^2),?)&amp;quot; or &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {+(s(x),+(y,z)) -&amp;gt; +(x,+(s(s(y)),z)), +(s(x),+(y,+(z,w))) -&amp;gt; +(x,+(z,+(y,w)))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {f(x,0) -&amp;gt; s(0), f(s(x),s(y)) -&amp;gt; s(f(x,y)), g(0,x) -&amp;gt; g(f(x,x),x)}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {d(0) -&amp;gt; 0, d(s(x)) -&amp;gt; s(s(d(x))), e(0) -&amp;gt; s(0), e(s(x)) -&amp;gt; d(e(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(to be extended)&lt;br /&gt;
&lt;br /&gt;
== Wishlist ==&lt;br /&gt;
*&lt;br /&gt;
* assessment of lower bounds:&amp;lt;br&amp;gt;&lt;br /&gt;
In the future the tools should also be able to provide certificates on the&lt;br /&gt;
lower bound. This would imply to extend the grammar as follows&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY | EXP | INF&lt;br /&gt;
&lt;br /&gt;
such that e.g. &amp;quot;YES(EXP,?)&amp;quot; indicated an exponential lower-bound,&lt;br /&gt;
or &amp;quot;YES(INF,INF)&amp;quot; indicated non-termination. &lt;br /&gt;
* as for the upper bound the lower bound certificate should be ranked and &lt;br /&gt;
both ranks could be compared lexicographically&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
*&lt;br /&gt;
* the precise format for the subcategories needs to be fixed; JW suggests: &lt;br /&gt;
&lt;br /&gt;
(START-TERMS CONSTRUCTOR-BASED) (VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) &lt;br /&gt;
&lt;br /&gt;
to indicate runtime complextiy and full rewriting , GM suggests &lt;br /&gt;
&lt;br /&gt;
(VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) (COMPLEXITY RUNTIME)&lt;br /&gt;
&lt;br /&gt;
for the same thing.&lt;br /&gt;
&lt;br /&gt;
* JW would prefer the following output format as it is easier to parse:&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; POLY(Nat) | POLY(?)&lt;br /&gt;
&lt;br /&gt;
Here &amp;quot;POLY(k)&amp;quot; abbreviates &amp;quot;O(n^k)&amp;quot; and &amp;quot;POLY(?)&amp;quot; denotes an unspecified&lt;br /&gt;
polynomial.&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
insert your name here if you intend to participate. &lt;br /&gt;
The sources of  all tools that want to  participate in the competition&lt;br /&gt;
have to be publicly available.&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
* Johannes Waldmann (Matchbox), but will need more time (December 2008)&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl (TCT)&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=568</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=568"/>
		<updated>2008-10-20T14:17:37Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: /* Problem selection */ another test case added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is to record the current status of discussion&lt;br /&gt;
on the proposed Complexity Category of the Termination Competition. &lt;br /&gt;
&lt;br /&gt;
The first installation of this event is planned for November 1, 2008.&lt;br /&gt;
&lt;br /&gt;
(Discussion should take place on the termtools mailing list.)&lt;br /&gt;
&lt;br /&gt;
== Overview of the Event ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper bounds on&lt;br /&gt;
the complexity  of rewrite systems.  By  complexity of a  TRS, we mean&lt;br /&gt;
the maximal length of derivations, where either no restrictions on the&lt;br /&gt;
initial  terms   are  present  (&amp;quot;derivational   complexity&amp;quot;)  or  only&lt;br /&gt;
constructor  based terms are  considered (&amp;quot;runtime  complexity&amp;quot;).  See&lt;br /&gt;
(Hirokawa, Moser, 2008)  for further reading on the  notion of runtime&lt;br /&gt;
complexity.   Additionally   one  distinguishes  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
specific strategies, as for example innermost rewriting.&lt;br /&gt;
We  propose four sub-categories, structured   in  two  logical   layers:  &lt;br /&gt;
&amp;quot;strategy&amp;quot;   and  &amp;quot;complexity certificate&amp;quot;,  such   that  for  each  of   &lt;br /&gt;
the  currently  considered strategies,  both  notions  of  complexity  are  tested. &lt;br /&gt;
&lt;br /&gt;
== Syntax/Semantics for Input/Output ==&lt;br /&gt;
&lt;br /&gt;
As  competition   semantics,  we   propose  to  focus  on &amp;lt;em&amp;gt;polynomial&amp;lt;/em&amp;gt;&lt;br /&gt;
bounds. The  current input format should  be kept as  far as possible,&lt;br /&gt;
i.e.,  from a  given TRS  a complexity  problem file  is  generated by&lt;br /&gt;
adding an annotation expressing one of  the above given  categories. This is&lt;br /&gt;
done on the  fly during the competition to  prevent the multiplication&lt;br /&gt;
of the database.&lt;br /&gt;
&lt;br /&gt;
On  the other hand  the output  format is  adapted so  that additional&lt;br /&gt;
information on the  asymptotic complexity is given for  lower as well&lt;br /&gt;
as upper bounds.  Hence the output written to the first line of STDOUT&lt;br /&gt;
shall be a complexity statement according to the following grammar:&lt;br /&gt;
&lt;br /&gt;
S -&amp;gt; NO | MAYBE | YES( F, F) | YES( ?, F) | YES( F, ?)&amp;lt;br&amp;gt;&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;Nat&amp;quot; is  a non-zero natural number and YES(F1,  F2) means F2 is&lt;br /&gt;
upper bound and that F1 is a lower-bound. &amp;quot;O(n^k)&amp;quot; is the usual big-Oh&lt;br /&gt;
notation and  &amp;quot;POLY&amp;quot; indicates  an unspecified polynomial.   Either of&lt;br /&gt;
the functions F1, F2 (but not both) may be replaced by ``don't know'',&lt;br /&gt;
indicated by ?.  Any remaining  output on STDOUT will be considered as&lt;br /&gt;
proof output and has to follow the normal rules for the competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Example&amp;lt;/em&amp;gt;: Consider R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}. Within&lt;br /&gt;
the derivational complexity category a syntactically correct output would be &amp;quot;YES(O(n^2),POLY)&amp;quot;. &lt;br /&gt;
(Whether this output would also indicate a correct tool, is another question.)&lt;br /&gt;
&lt;br /&gt;
== Scoring ==&lt;br /&gt;
&lt;br /&gt;
Currently we focus on (polynomial) &amp;lt;em&amp;gt;upper&amp;lt;/em&amp;gt; bounds.  As&lt;br /&gt;
the output format indicates, this restriction should be lifted&lt;br /&gt;
later, see below.  In order to take  into account the quality of the upper&lt;br /&gt;
bound  provided  by the  different  tools,  we  propose the  following&lt;br /&gt;
scoring algorithm, where we suppose the number of competitors is x.&lt;br /&gt;
&lt;br /&gt;
Firstly, for each  TRS the competing tools are  ranked, where constant&lt;br /&gt;
complexity, i.e., output &amp;quot;YES(?,O(1))&amp;quot; is best and &amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot; or&lt;br /&gt;
time-out is worst.&lt;br /&gt;
As long as the output  is of form &amp;quot;YES(?,O(n^k))&amp;quot; or &amp;quot;YES(?,POLY)&amp;quot; the&lt;br /&gt;
rank of  the tool  defines the number  of points.  More  precisely the&lt;br /&gt;
best tool gets x+1 points, the second gets x points and so on.  On the&lt;br /&gt;
other  hand a  negative  output  (&amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot;  or  time-out) gets  0&lt;br /&gt;
points.&lt;br /&gt;
If  two or  more  tools  would get  the  same rank,  the  rank of  the&lt;br /&gt;
remaining tools is adapted in the usual way.&lt;br /&gt;
&lt;br /&gt;
Secondly, all  resulting points for all considered  systems are summed&lt;br /&gt;
up and the contestant with the  highest number of points wins. If this&lt;br /&gt;
cannot establish  a winner, the total  number of wins  is counted.  If&lt;br /&gt;
this still  doesn't produce a winner,  we give up and  provide two (or&lt;br /&gt;
more) winners.&lt;br /&gt;
&lt;br /&gt;
The maximal allowed CPU time is 60 seconds.&lt;br /&gt;
&lt;br /&gt;
NB: Derivational complexity  is not  closed under  extensions  &lt;br /&gt;
of the signature. Consider for example the  TRS R={a -&amp;gt; b} (example suggested&lt;br /&gt;
by Nao Hirokawa). On the signature {a,b} the (derivational) complexity&lt;br /&gt;
is constant, while the complexity becomes linear on signature {a,b,c},&lt;br /&gt;
if  the arity  of c  is binary.  Thus, we  demand that  the complexity&lt;br /&gt;
certificate given by  the provers has to be  closed under extension of&lt;br /&gt;
signature.&lt;br /&gt;
&lt;br /&gt;
== Problem selection ==&lt;br /&gt;
&lt;br /&gt;
We propose the collection of all  &amp;quot;standard&amp;quot; TRSs together&lt;br /&gt;
with  all TRSs with  flag &amp;quot;(STRATEGY  INNERMOST)&amp;quot; as testbed. Here  TRSs which&lt;br /&gt;
only differ by the flag in the current TPDB are only considered once.&lt;br /&gt;
However for sub-categories concerned with &amp;quot;derivational complexity&amp;quot; we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems.&lt;br /&gt;
&lt;br /&gt;
In the following test cases we restrict to full rewriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - derivational complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {a(b(x)) -&amp;gt; b(a(x))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {op(op(x,y),z) -&amp;gt; op(x,op(y,z))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}, expected output &amp;quot;YES(O(n^2),?)&amp;quot; or &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {+(s(x),+(y,z)) -&amp;gt; +(x,+(s(s(y)),z)), +(s(x),+(y,+(z,w))) -&amp;gt; +(x,+(z,+(y,w)))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {f(x,0) -&amp;gt; s(0), f(s(x),s(y)) -&amp;gt; s(f(x,y)), g(0,x) -&amp;gt; g(f(x,x),x)}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {d(0) -&amp;gt; 0, d(s(x)) -&amp;gt; s(s(d(x))), e(0) -&amp;gt; s(0), e(s(x)) -&amp;gt; d(e(x))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(to be extended)&lt;br /&gt;
&lt;br /&gt;
== Wishlist ==&lt;br /&gt;
*&lt;br /&gt;
* assessment of lower bounds:&amp;lt;br&amp;gt;&lt;br /&gt;
In the future the tools should also be able to provide certificates on the&lt;br /&gt;
lower bound. This would imply to extend the grammar as follows&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY | EXP | INF&lt;br /&gt;
&lt;br /&gt;
such that e.g. &amp;quot;YES(EXP,?)&amp;quot; indicated an exponential lower-bound,&lt;br /&gt;
or &amp;quot;YES(INF,INF)&amp;quot; indicated non-termination. &lt;br /&gt;
* as for the upper bound the lower bound certificate should be ranked and &lt;br /&gt;
both ranks could be compared lexicographically&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
*&lt;br /&gt;
* the precise format for the subcategories needs to be fixed; JW suggests: &lt;br /&gt;
&lt;br /&gt;
(START-TERMS CONSTRUCTOR-BASED) (VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) &lt;br /&gt;
&lt;br /&gt;
to indicate runtime complextiy and full rewriting , GM suggests &lt;br /&gt;
&lt;br /&gt;
(VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) (COMPLEXITY RUNTIME)&lt;br /&gt;
&lt;br /&gt;
for the same thing.&lt;br /&gt;
&lt;br /&gt;
* JW would prefer the following output format as it is easier to parse:&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; POLY(Nat) | POLY(?)&lt;br /&gt;
&lt;br /&gt;
Here &amp;quot;POLY(k)&amp;quot; abbreviates &amp;quot;O(n^k)&amp;quot; and &amp;quot;POLY(?)&amp;quot; denotes an unspecified&lt;br /&gt;
polynomial.&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
insert your name here if you intend to participate. &lt;br /&gt;
The sources of  all tools that want to  participate in the competition&lt;br /&gt;
have to be publicly available.&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
* Johannes Waldmann (Matchbox), but will need more time (December 2008)&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl (TCT)&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=567</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=567"/>
		<updated>2008-10-20T14:14:39Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: added some test cases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is to record the current status of discussion&lt;br /&gt;
on the proposed Complexity Category of the Termination Competition. &lt;br /&gt;
&lt;br /&gt;
The first installation of this event is planned for November 1, 2008.&lt;br /&gt;
&lt;br /&gt;
(Discussion should take place on the termtools mailing list.)&lt;br /&gt;
&lt;br /&gt;
== Overview of the Event ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper bounds on&lt;br /&gt;
the complexity  of rewrite systems.  By  complexity of a  TRS, we mean&lt;br /&gt;
the maximal length of derivations, where either no restrictions on the&lt;br /&gt;
initial  terms   are  present  (&amp;quot;derivational   complexity&amp;quot;)  or  only&lt;br /&gt;
constructor  based terms are  considered (&amp;quot;runtime  complexity&amp;quot;).  See&lt;br /&gt;
(Hirokawa, Moser, 2008)  for further reading on the  notion of runtime&lt;br /&gt;
complexity.   Additionally   one  distinguishes  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
specific strategies, as for example innermost rewriting.&lt;br /&gt;
We  propose four sub-categories, structured   in  two  logical   layers:  &lt;br /&gt;
&amp;quot;strategy&amp;quot;   and  &amp;quot;complexity certificate&amp;quot;,  such   that  for  each  of   &lt;br /&gt;
the  currently  considered strategies,  both  notions  of  complexity  are  tested. &lt;br /&gt;
&lt;br /&gt;
== Syntax/Semantics for Input/Output ==&lt;br /&gt;
&lt;br /&gt;
As  competition   semantics,  we   propose  to  focus  on &amp;lt;em&amp;gt;polynomial&amp;lt;/em&amp;gt;&lt;br /&gt;
bounds. The  current input format should  be kept as  far as possible,&lt;br /&gt;
i.e.,  from a  given TRS  a complexity  problem file  is  generated by&lt;br /&gt;
adding an annotation expressing one of  the above given  categories. This is&lt;br /&gt;
done on the  fly during the competition to  prevent the multiplication&lt;br /&gt;
of the database.&lt;br /&gt;
&lt;br /&gt;
On  the other hand  the output  format is  adapted so  that additional&lt;br /&gt;
information on the  asymptotic complexity is given for  lower as well&lt;br /&gt;
as upper bounds.  Hence the output written to the first line of STDOUT&lt;br /&gt;
shall be a complexity statement according to the following grammar:&lt;br /&gt;
&lt;br /&gt;
S -&amp;gt; NO | MAYBE | YES( F, F) | YES( ?, F) | YES( F, ?)&amp;lt;br&amp;gt;&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;Nat&amp;quot; is  a non-zero natural number and YES(F1,  F2) means F2 is&lt;br /&gt;
upper bound and that F1 is a lower-bound. &amp;quot;O(n^k)&amp;quot; is the usual big-Oh&lt;br /&gt;
notation and  &amp;quot;POLY&amp;quot; indicates  an unspecified polynomial.   Either of&lt;br /&gt;
the functions F1, F2 (but not both) may be replaced by ``don't know'',&lt;br /&gt;
indicated by ?.  Any remaining  output on STDOUT will be considered as&lt;br /&gt;
proof output and has to follow the normal rules for the competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Example&amp;lt;/em&amp;gt;: Consider R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}. Within&lt;br /&gt;
the derivational complexity category a syntactically correct output would be &amp;quot;YES(O(n^2),POLY)&amp;quot;. &lt;br /&gt;
(Whether this output would also indicate a correct tool, is another question.)&lt;br /&gt;
&lt;br /&gt;
== Scoring ==&lt;br /&gt;
&lt;br /&gt;
Currently we focus on (polynomial) &amp;lt;em&amp;gt;upper&amp;lt;/em&amp;gt; bounds.  As&lt;br /&gt;
the output format indicates, this restriction should be lifted&lt;br /&gt;
later, see below.  In order to take  into account the quality of the upper&lt;br /&gt;
bound  provided  by the  different  tools,  we  propose the  following&lt;br /&gt;
scoring algorithm, where we suppose the number of competitors is x.&lt;br /&gt;
&lt;br /&gt;
Firstly, for each  TRS the competing tools are  ranked, where constant&lt;br /&gt;
complexity, i.e., output &amp;quot;YES(?,O(1))&amp;quot; is best and &amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot; or&lt;br /&gt;
time-out is worst.&lt;br /&gt;
As long as the output  is of form &amp;quot;YES(?,O(n^k))&amp;quot; or &amp;quot;YES(?,POLY)&amp;quot; the&lt;br /&gt;
rank of  the tool  defines the number  of points.  More  precisely the&lt;br /&gt;
best tool gets x+1 points, the second gets x points and so on.  On the&lt;br /&gt;
other  hand a  negative  output  (&amp;quot;MAYBE&amp;quot;, &amp;quot;NO&amp;quot;  or  time-out) gets  0&lt;br /&gt;
points.&lt;br /&gt;
If  two or  more  tools  would get  the  same rank,  the  rank of  the&lt;br /&gt;
remaining tools is adapted in the usual way.&lt;br /&gt;
&lt;br /&gt;
Secondly, all  resulting points for all considered  systems are summed&lt;br /&gt;
up and the contestant with the  highest number of points wins. If this&lt;br /&gt;
cannot establish  a winner, the total  number of wins  is counted.  If&lt;br /&gt;
this still  doesn't produce a winner,  we give up and  provide two (or&lt;br /&gt;
more) winners.&lt;br /&gt;
&lt;br /&gt;
The maximal allowed CPU time is 60 seconds.&lt;br /&gt;
&lt;br /&gt;
NB: Derivational complexity  is not  closed under  extensions  &lt;br /&gt;
of the signature. Consider for example the  TRS R={a -&amp;gt; b} (example suggested&lt;br /&gt;
by Nao Hirokawa). On the signature {a,b} the (derivational) complexity&lt;br /&gt;
is constant, while the complexity becomes linear on signature {a,b,c},&lt;br /&gt;
if  the arity  of c  is binary.  Thus, we  demand that  the complexity&lt;br /&gt;
certificate given by  the provers has to be  closed under extension of&lt;br /&gt;
signature.&lt;br /&gt;
&lt;br /&gt;
== Problem selection ==&lt;br /&gt;
&lt;br /&gt;
We propose the collection of all  &amp;quot;standard&amp;quot; TRSs together&lt;br /&gt;
with  all TRSs with  flag &amp;quot;(STRATEGY  INNERMOST)&amp;quot; as testbed. Here  TRSs which&lt;br /&gt;
only differ by the flag in the current TPDB are only considered once.&lt;br /&gt;
However for sub-categories concerned with &amp;quot;derivational complexity&amp;quot; we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems.&lt;br /&gt;
&lt;br /&gt;
In the following test cases we restrict to full rewriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - derivational complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {a(b(x)) -&amp;gt; b(a(x))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {op(op(x,y),z) -&amp;gt; op(x,op(y,z))}, expected output &amp;quot;YES(?,O(n^2))&amp;quot; or &amp;quot;YES(O(n),O(n^2))&amp;quot; or &amp;quot;YES(O(n^2),O(n^2))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {a(a(x)) -&amp;gt; b(c(x)), b(b(x)) -&amp;gt; a(c(x)), c(c(x)) -&amp;gt; a(b(x))}, expected output &amp;quot;YES(O(n^2),?)&amp;quot; or &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* R= {+(s(x),+(y,z)) -&amp;gt; +(x,+(s(s(y)),z)), +(s(x),+(y,+(z,w))) -&amp;gt; +(x,+(z,+(y,w)))}, expected output &amp;quot;YES(?,?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;Test Cases - runtime complexity &amp;lt;/em&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
* R= {f(x,0) -&amp;gt; s(0), f(s(x),s(y)) -&amp;gt; s(f(x,y)), g(0,x) -&amp;gt; g(f(x,x),x)}, expected output &amp;quot;YES(?,O(n))&amp;quot; or &amp;quot;YES(O(n),O(n))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(to be extended)&lt;br /&gt;
&lt;br /&gt;
== Wishlist ==&lt;br /&gt;
*&lt;br /&gt;
* assessment of lower bounds:&amp;lt;br&amp;gt;&lt;br /&gt;
In the future the tools should also be able to provide certificates on the&lt;br /&gt;
lower bound. This would imply to extend the grammar as follows&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; O(1) | O(n^Nat) | POLY | EXP | INF&lt;br /&gt;
&lt;br /&gt;
such that e.g. &amp;quot;YES(EXP,?)&amp;quot; indicated an exponential lower-bound,&lt;br /&gt;
or &amp;quot;YES(INF,INF)&amp;quot; indicated non-termination. &lt;br /&gt;
* as for the upper bound the lower bound certificate should be ranked and &lt;br /&gt;
both ranks could be compared lexicographically&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
*&lt;br /&gt;
* the precise format for the subcategories needs to be fixed; JW suggests: &lt;br /&gt;
&lt;br /&gt;
(START-TERMS CONSTRUCTOR-BASED) (VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) &lt;br /&gt;
&lt;br /&gt;
to indicate runtime complextiy and full rewriting , GM suggests &lt;br /&gt;
&lt;br /&gt;
(VAR x) (RULES a(b(x)) -&amp;gt; b(a(x))) (COMPLEXITY RUNTIME)&lt;br /&gt;
&lt;br /&gt;
for the same thing.&lt;br /&gt;
&lt;br /&gt;
* JW would prefer the following output format as it is easier to parse:&lt;br /&gt;
&lt;br /&gt;
F -&amp;gt; POLY(Nat) | POLY(?)&lt;br /&gt;
&lt;br /&gt;
Here &amp;quot;POLY(k)&amp;quot; abbreviates &amp;quot;O(n^k)&amp;quot; and &amp;quot;POLY(?)&amp;quot; denotes an unspecified&lt;br /&gt;
polynomial.&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
insert your name here if you intend to participate. &lt;br /&gt;
The sources of  all tools that want to  participate in the competition&lt;br /&gt;
have to be publicly available.&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
* Johannes Waldmann (Matchbox), but will need more time (December 2008)&lt;br /&gt;
* M. Avanzini, G. Moser, A. Schnabl (TCT)&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=People:Andreas_Schnabl&amp;diff=534</id>
		<title>People:Andreas Schnabl</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=People:Andreas_Schnabl&amp;diff=534"/>
		<updated>2008-07-18T08:11:16Z</updated>

		<summary type="html">&lt;p&gt;Aschnabl: New page: &amp;lt;!--        Please fill in the data so that you can be added to some default        categories and a simple user page can be created. You may extend        that user page yourself after th...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
       Please fill in the data so that you can be added to some default&lt;br /&gt;
       categories and a simple user page can be created. You may extend&lt;br /&gt;
       that user page yourself after the following code block.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Person&lt;br /&gt;
|firstname=Andreas&lt;br /&gt;
|middlenames=&lt;br /&gt;
|lastname=Schnabl&lt;br /&gt;
|titles=DI&lt;br /&gt;
|email=andreas.schnabl@uibk.ac.at&lt;br /&gt;
|homepage=http://cl-informatik.uibk.ac.at/~aschnabl/&lt;br /&gt;
|country=Austria&lt;br /&gt;
|university=University of Innsbruck&lt;br /&gt;
|department=Institute of Computer Science&lt;br /&gt;
|role=PhD Student           &amp;lt;!-- role: Student, Professor, PhD Student, ... --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If you want to add some personal data to your userpage, you can do so after this comment. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aschnabl</name></author>
		
	</entry>
</feed>