<?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=Georg.moser</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=Georg.moser"/>
	<link rel="alternate" type="text/html" href="http://termination-portal.org/wiki/Special:Contributions/Georg.moser"/>
	<updated>2026-06-09T17:16:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=WST&amp;diff=1302</id>
		<title>WST</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=WST&amp;diff=1302"/>
		<updated>2012-09-30T22:47:17Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The International Workshop on Termination (WST) has been held in St. Andrews (1993), La Bresse (1995), Ede (1997), Dagstuhl (1999), Utrecht (2001), Valencia (2003), Aachen (2004), Seattle (2006), Paris (2007), and Leipzig (2009).&lt;br /&gt;
WST traditionally brings together, in an informal setting, researchers interested in all aspects of termination, whether this interest be practical or theoretical, primary or derived. The workshop also provides a ground for cross-fertilisation of ideas from term rewriting and from the different programming language communities.&lt;br /&gt;
&lt;br /&gt;
Upcoming events:&lt;br /&gt;
* Joint Workshop on Termination (WST) and on Foundational and Practical Aspects of Resource Analysis (FOPARA), August 28-31, Bertinoro, Italy.&lt;br /&gt;
&lt;br /&gt;
Information about previous workshops can be found online:&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/events/wst2012 12th International Workshop on Termination, Obergurgl, February 19-23, 2012]&lt;br /&gt;
* [http://imada.sdu.dk/~petersk/WST2010/ 11th International Workshop on Termination, Edinburgh, 2010]&lt;br /&gt;
* [http://www.imn.htwk-leipzig.de/wst09/ 10th International Workshop on Termination, Leipzig, 2009]&lt;br /&gt;
* [http://www.lsv.ens-cachan.fr/rdp07/wst.html 9th International Workshop on Termination, Paris, 2007]&lt;br /&gt;
* [http://www.easychair.org/FLoC-06/WST.html 8th International Workshop on Terminaton, Seattle, 2006]&lt;br /&gt;
* [http://www-i2.informatik.rwth-aachen.de/WST04/ 7th International Workshop on Terminaton, Aachen, 2004]&lt;br /&gt;
* [http://www.dsic.upv.es/~rdp03/wst/ 6th International Workshop on Terminaton, Valencia, 2003]&lt;br /&gt;
* [http://www.cs.tau.ac.il/~nachumd/wst/index.html 5th International Workshop on Terminaton, Utrecht, 2001]&lt;br /&gt;
* [http://verify.rwth-aachen.de/giesl/WST99.html 4th International Workshop on Terminaton, Dagstuhl, 1999]&lt;br /&gt;
* [http://www-i2.informatik.rwth-aachen.de/giesl/WST97/main.html 3rd International Workshop on Termination, Ede, 1997]&lt;br /&gt;
* 2nd International Workshop on Termination, La Bresse, 1995&lt;br /&gt;
* 1st International Workshop on Termination, St. Andrews, 1993&lt;br /&gt;
Independently from WST, there are meetings on Certified Termination : [[WScT]]&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1293</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1293"/>
		<updated>2012-06-28T11:01:41Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated and no longer maintained. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An up to date version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition complexity competition].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
discussion and rules page; aficionados &lt;br /&gt;
may be interested in the techniques page.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| July 14, 2010&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| July 2, 2010 (but see email to termtools)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| July 16, 2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://aprove.informatik.rwth-aachen.de/ AProVE]&lt;br /&gt;
| [[Tools:AProVE]]&lt;br /&gt;
| The AProVE Team&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! Oops&lt;br /&gt;
| [[Tools:Oops]]&lt;br /&gt;
| Fabian Emmes, Lars Noschinski&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1227</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1227"/>
		<updated>2012-06-08T12:08:56Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated an no longer maintained. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An up to date version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition complexity competition].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
discussion and rules page; aficionados &lt;br /&gt;
may be interested in the techniques page.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| July 14, 2010&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| July 2, 2010 (but see email to termtools)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| July 16, 2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://aprove.informatik.rwth-aachen.de/ AProVE]&lt;br /&gt;
| [[Tools:AProVE]]&lt;br /&gt;
| The AProVE Team&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! Oops&lt;br /&gt;
| [[Tools:Oops]]&lt;br /&gt;
| Fabian Emmes, Lars Noschinski&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1226</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1226"/>
		<updated>2012-06-08T12:05:40Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: Replaced content with &amp;quot;&amp;lt;pre&amp;gt;
This page is no longer maintained. 
&amp;lt;/pre&amp;gt;

The entry point to the complexity category is here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/ complex...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is no longer maintained. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The entry point to the complexity category is here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/ complexity competition].&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1225</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1225"/>
		<updated>2012-06-08T12:00:14Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated an no longer maintained. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An up to date version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition complexity competition].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
discussion and rules page; aficionados &lt;br /&gt;
may be interested in the techniques page.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| July 14, 2010&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| July 2, 2010 (but see email to termtools)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| July 16, 2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://aprove.informatik.rwth-aachen.de/ AProVE]&lt;br /&gt;
| [[Tools:AProVE]]&lt;br /&gt;
| The AProVE Team&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! Oops&lt;br /&gt;
| [[Tools:Oops]]&lt;br /&gt;
| Fabian Emmes, Lars Noschinski&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1224</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1224"/>
		<updated>2012-06-08T11:59:59Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated an no longer maintained. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An up to date version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
discussion and rules page; aficionados &lt;br /&gt;
may be interested in the techniques page.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| July 14, 2010&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| July 2, 2010 (but see email to termtools)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| July 16, 2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://aprove.informatik.rwth-aachen.de/ AProVE]&lt;br /&gt;
| [[Tools:AProVE]]&lt;br /&gt;
| The AProVE Team&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! Oops&lt;br /&gt;
| [[Tools:Oops]]&lt;br /&gt;
| Fabian Emmes, Lars Noschinski&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Techniques&amp;diff=1223</id>
		<title>Complexity:Techniques</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Techniques&amp;diff=1223"/>
		<updated>2012-06-08T11:59:00Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated an no longer maintained. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An up to date version of the content of this page can now be found here: &lt;br /&gt;
[http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/ complexity competition].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page is for listing all techniques applied by the participants of the complexity competitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Be aware:''' the lists are still preliminary.&lt;br /&gt;
&lt;br /&gt;
== Derivational Complexity ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  width=&amp;quot;350&amp;quot;|Method&lt;br /&gt;
!  2008&lt;br /&gt;
!  2009&lt;br /&gt;
|-&lt;br /&gt;
|  Arctic Interpretation&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Match Bounds&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Triangular&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:Matchbox]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Non-Triangular&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:Matchbox]]&lt;br /&gt;
|-&lt;br /&gt;
|  Modular (Relative) Complexity Analysis&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Rewriting Right Hand Sides&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Root Labeling&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Runtime Complexity ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  width=&amp;quot;350&amp;quot;|Method&lt;br /&gt;
!  2008&lt;br /&gt;
!  2009&lt;br /&gt;
!  2010&lt;br /&gt;
|-&lt;br /&gt;
|  Arctic Interpretation&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Match Bounds&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Triangular&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:AProVE]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Non-Triangular&lt;br /&gt;
|  ---&lt;br /&gt;
|  ---&lt;br /&gt;
|-&lt;br /&gt;
|  Modular (Relative) Complexity Analysis&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Polynomial Interpretations&lt;br /&gt;
|  ---&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:AProVE]]&lt;br /&gt;
|-&lt;br /&gt;
|  Polynomial Path Orders&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Rewriting Right Hand Sides&lt;br /&gt;
|  ---&lt;br /&gt;
|  ---&lt;br /&gt;
|-&lt;br /&gt;
|  Root Labeling&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Weak Dependency Pairs&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Dependency Tuples&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|  [[Tools:AProVE]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1222</id>
		<title>Complexity:Rules</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1222"/>
		<updated>2012-06-08T11:58:09Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated an no longer maintained. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An up to date version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/ complexity competition].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to provide a place for ongoing discussions&lt;br /&gt;
on the rules, and to describe the current rules itself. &lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
=== Lower Bounds ===&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;
(GM: I don't see a problem with that: &amp;quot;YES&amp;quot; indicates that the prover has found a proof. In the case you mention, a proof for non-termination.)&lt;br /&gt;
&lt;br /&gt;
=== Scoring (proposals) ===&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;
* GM: For clarification: I suppose you want to use the following order: POLY &amp;gt;= O(n^7) &amp;gt;= O(n^6) etc. to name an example. And I would insist&lt;br /&gt;
on the use of a virtual prover: getting 0 points although an answer has been given I don't like&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&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;
* 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;
* GM: I don't like the format &amp;quot;POLY(k)&amp;quot; mainly due to presentation reasons: Our first format used exactly this and in presentations I immediately got the question &lt;br /&gt;
what &amp;quot;POLY(k)&amp;quot; should mean. Since &amp;quot;O(k)&amp;quot; is used I don't get this question. With respect to the lower-bound: I agree that &amp;quot;O(k)&amp;quot; should be replaced by&lt;br /&gt;
&amp;quot;Omega(k)&amp;quot;. So let's do that. But I don't see a chance to change this for the upcoming competition ...&lt;br /&gt;
&lt;br /&gt;
== Rules of the Competition ==&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems are 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 respectively.  &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;
=== Scoring ===&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 Sets and Problem Selection ===&lt;br /&gt;
==== Testbeds ====&lt;br /&gt;
&lt;br /&gt;
All authors of complexity tools that participated in the last&lt;br /&gt;
complexity competition agreed upon&lt;br /&gt;
the following selection of examples from the TPDB. For simplicity,&lt;br /&gt;
we decided on&lt;br /&gt;
using the same testbed for full and innermost rewriting. However, we&lt;br /&gt;
decided on&lt;br /&gt;
two separate testbeds for derivational and runtime complexity&lt;br /&gt;
analysis. The testbeds&lt;br /&gt;
are described below in detail, additionally a list of&lt;br /&gt;
problems for TPDB version 8.0 is provided for [[File:RC-8.0.txt|RC]] and [[File:DC-8.0.txt|DC]]. For the&lt;br /&gt;
individual&lt;br /&gt;
subcategories RC, RCi, DC and DCi all strategy and start-term&lt;br /&gt;
annotations should be overwritten&lt;br /&gt;
appropriately. Thus we simply ignore for instance&lt;br /&gt;
context-sensitive strategies.&lt;br /&gt;
&lt;br /&gt;
===== Derivational Complexity =====&lt;br /&gt;
For derivational complexity analysis we restrict the TPDB as follows:&lt;br /&gt;
# keep only one instance of duplicated problems (modulo strategy annotations). A list of the TRSs that appear multiple times in the current TPDB version 8.0 can be found [[File:duplicates-8.0.txt|here]].&lt;br /&gt;
# remove all problems with relative, theory or conditional annotations. The reason for this is that none of the tools can handle those problems currently.&lt;br /&gt;
&lt;br /&gt;
===== Runtime Complexity =====&lt;br /&gt;
For runtime complexity analysis, we further restrict the testbed for derivational complexity analysis as follows:&lt;br /&gt;
# remove all examples as determined by the tool Oops that participated in the competition of 2010. A list of these examples for TPDB version 8.0 can be found [[File:Oops-8.0.txt|here]]. This step aims at eliminating trivial problems that&lt;br /&gt;
## admit only 0-ary constructors, or&lt;br /&gt;
## admit only 0-ary defined function symbols, or&lt;br /&gt;
## admit only rules with nested defined function symbols on left-hand sides, thus all basic terms are normal forms.&lt;br /&gt;
#  remove higher-order examples from following folder, as here the notion of runtime complexity is inapropriate:&lt;br /&gt;
## AotoYamada_05,&lt;br /&gt;
## Applicative_05,&lt;br /&gt;
## Applicative_AG01_innermost,&lt;br /&gt;
## Applicative_first_order_05, and&lt;br /&gt;
## Mixed_HO_10.&lt;br /&gt;
&lt;br /&gt;
==== Selection function ====&lt;br /&gt;
On the above described testbeds, a randomly chosen subset that is actually used in the competition is determined as follows.&lt;br /&gt;
Here 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;
#:* 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;
# In accordance to the above described partitioning, we define a probability distribution ''p'' on ''F''. 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''. 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. 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;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1221</id>
		<title>Complexity:Rules</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1221"/>
		<updated>2012-06-08T11:57:53Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated an no longer maintained. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An up to date version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to provide a place for ongoing discussions&lt;br /&gt;
on the rules, and to describe the current rules itself. &lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
=== Lower Bounds ===&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;
(GM: I don't see a problem with that: &amp;quot;YES&amp;quot; indicates that the prover has found a proof. In the case you mention, a proof for non-termination.)&lt;br /&gt;
&lt;br /&gt;
=== Scoring (proposals) ===&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;
* GM: For clarification: I suppose you want to use the following order: POLY &amp;gt;= O(n^7) &amp;gt;= O(n^6) etc. to name an example. And I would insist&lt;br /&gt;
on the use of a virtual prover: getting 0 points although an answer has been given I don't like&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&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;
* 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;
* GM: I don't like the format &amp;quot;POLY(k)&amp;quot; mainly due to presentation reasons: Our first format used exactly this and in presentations I immediately got the question &lt;br /&gt;
what &amp;quot;POLY(k)&amp;quot; should mean. Since &amp;quot;O(k)&amp;quot; is used I don't get this question. With respect to the lower-bound: I agree that &amp;quot;O(k)&amp;quot; should be replaced by&lt;br /&gt;
&amp;quot;Omega(k)&amp;quot;. So let's do that. But I don't see a chance to change this for the upcoming competition ...&lt;br /&gt;
&lt;br /&gt;
== Rules of the Competition ==&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems are 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 respectively.  &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;
=== Scoring ===&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 Sets and Problem Selection ===&lt;br /&gt;
==== Testbeds ====&lt;br /&gt;
&lt;br /&gt;
All authors of complexity tools that participated in the last&lt;br /&gt;
complexity competition agreed upon&lt;br /&gt;
the following selection of examples from the TPDB. For simplicity,&lt;br /&gt;
we decided on&lt;br /&gt;
using the same testbed for full and innermost rewriting. However, we&lt;br /&gt;
decided on&lt;br /&gt;
two separate testbeds for derivational and runtime complexity&lt;br /&gt;
analysis. The testbeds&lt;br /&gt;
are described below in detail, additionally a list of&lt;br /&gt;
problems for TPDB version 8.0 is provided for [[File:RC-8.0.txt|RC]] and [[File:DC-8.0.txt|DC]]. For the&lt;br /&gt;
individual&lt;br /&gt;
subcategories RC, RCi, DC and DCi all strategy and start-term&lt;br /&gt;
annotations should be overwritten&lt;br /&gt;
appropriately. Thus we simply ignore for instance&lt;br /&gt;
context-sensitive strategies.&lt;br /&gt;
&lt;br /&gt;
===== Derivational Complexity =====&lt;br /&gt;
For derivational complexity analysis we restrict the TPDB as follows:&lt;br /&gt;
# keep only one instance of duplicated problems (modulo strategy annotations). A list of the TRSs that appear multiple times in the current TPDB version 8.0 can be found [[File:duplicates-8.0.txt|here]].&lt;br /&gt;
# remove all problems with relative, theory or conditional annotations. The reason for this is that none of the tools can handle those problems currently.&lt;br /&gt;
&lt;br /&gt;
===== Runtime Complexity =====&lt;br /&gt;
For runtime complexity analysis, we further restrict the testbed for derivational complexity analysis as follows:&lt;br /&gt;
# remove all examples as determined by the tool Oops that participated in the competition of 2010. A list of these examples for TPDB version 8.0 can be found [[File:Oops-8.0.txt|here]]. This step aims at eliminating trivial problems that&lt;br /&gt;
## admit only 0-ary constructors, or&lt;br /&gt;
## admit only 0-ary defined function symbols, or&lt;br /&gt;
## admit only rules with nested defined function symbols on left-hand sides, thus all basic terms are normal forms.&lt;br /&gt;
#  remove higher-order examples from following folder, as here the notion of runtime complexity is inapropriate:&lt;br /&gt;
## AotoYamada_05,&lt;br /&gt;
## Applicative_05,&lt;br /&gt;
## Applicative_AG01_innermost,&lt;br /&gt;
## Applicative_first_order_05, and&lt;br /&gt;
## Mixed_HO_10.&lt;br /&gt;
&lt;br /&gt;
==== Selection function ====&lt;br /&gt;
On the above described testbeds, a randomly chosen subset that is actually used in the competition is determined as follows.&lt;br /&gt;
Here 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;
#:* 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;
# In accordance to the above described partitioning, we define a probability distribution ''p'' on ''F''. 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''. 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. 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;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1220</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1220"/>
		<updated>2012-06-08T11:57:29Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated an no longer maintained. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An up to date version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
[[Complexity:Rules|discussion and rules page]]; aficionados &lt;br /&gt;
may be interested in the [[Complexity:Techniques|techniques page]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| July 14, 2010&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| July 2, 2010 (but see email to termtools)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| July 16, 2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://aprove.informatik.rwth-aachen.de/ AProVE]&lt;br /&gt;
| [[Tools:AProVE]]&lt;br /&gt;
| The AProVE Team&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! Oops&lt;br /&gt;
| [[Tools:Oops]]&lt;br /&gt;
| Fabian Emmes, Lars Noschinski&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1219</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1219"/>
		<updated>2012-06-08T11:56:53Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is no longer maintained. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The entry point to the complexity category is here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/ complexity 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;
* 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 of the 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>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1218</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1218"/>
		<updated>2012-06-08T11:52:13Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated an no longer maintained. An up to date version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition].&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
[[Complexity:Rules|discussion and rules page]]; aficionados &lt;br /&gt;
may be interested in the [[Complexity:Techniques|techniques page]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| July 14, 2010&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| July 2, 2010 (but see email to termtools)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| July 16, 2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://aprove.informatik.rwth-aachen.de/ AProVE]&lt;br /&gt;
| [[Tools:AProVE]]&lt;br /&gt;
| The AProVE Team&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! Oops&lt;br /&gt;
| [[Tools:Oops]]&lt;br /&gt;
| Fabian Emmes, Lars Noschinski&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1217</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1217"/>
		<updated>2012-06-08T11:48:33Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is no longer maintained. The entry point to the complexity category is here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/ complexity competiton].or the time beeing.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&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;
* 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 of the 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>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1216</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1216"/>
		<updated>2012-06-08T11:48:22Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is no longer maintained.&lt;br /&gt;
The entry point to the complexity category is here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/ complexity competiton].or the time beeing.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&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;
* 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 of the 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>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=News:Complexity_Wiki_Moved&amp;diff=1215</id>
		<title>News:Complexity Wiki Moved</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=News:Complexity_Wiki_Moved&amp;diff=1215"/>
		<updated>2012-06-08T11:47:06Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: Created page with &amp;quot; &amp;lt;!--    Please insert the corresponding information below so that    the news page can be generated automatically.     Line breaks are allowed! You may use MediaWiki syntax h...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
   Please insert the corresponding information below so that&lt;br /&gt;
   the news page can be generated automatically.&lt;br /&gt;
&lt;br /&gt;
   Line breaks are allowed! You may use MediaWiki syntax here to link to articles, highlight text, ...&lt;br /&gt;
   Please add some date to the news entry (e.g. today's date for current news, a time period for the competition, ....).&lt;br /&gt;
   Example:&lt;br /&gt;
       |text = The [[WST]] takes place in [http://en.wikipedia.org/wiki/Juneau Juneau] this year!&lt;br /&gt;
       |date = Sep 8 - Nov 1, 2008&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complexity wiki has been moved to the [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/ complexity competition] at&lt;br /&gt;
the University of Innsbruck.&lt;br /&gt;
&lt;br /&gt;
{{News&lt;br /&gt;
|text=Complexity Wiki Moved&lt;br /&gt;
|date=June 8, 2012&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=1214</id>
		<title>Termination Competition</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=1214"/>
		<updated>2012-06-08T11:42:27Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Annual International Termination Competition =&lt;br /&gt;
&lt;br /&gt;
During the 90's a number of new, powerful termination methods&lt;br /&gt;
was developed. Thus, at the the beginning of the millennium&lt;br /&gt;
many research groups started to develop [[:Category:Tools | tools for fully-automated termination analysis]].&lt;br /&gt;
&lt;br /&gt;
After a tool demonstration at the 2003 [[WST|Workshop on Termination]] in Valencia,&lt;br /&gt;
the community decided to install an annual termination competition&lt;br /&gt;
to spur the development of tools and new termination techniques.&lt;br /&gt;
&lt;br /&gt;
From 2004 till 2007 the competition was hosted in [http://www.lri.fr/~marche/termination-competition/ Paris].&lt;br /&gt;
Since 2008 the competition is hosted in [http://termcomp.uibk.ac.at Innsbruck].&lt;br /&gt;
&lt;br /&gt;
== Upcoming Competition ==&lt;br /&gt;
&lt;br /&gt;
The [[Termination_Competition_2012|Termination Competition 2012]] is a satellite event of [http://ijcar.cs.manchester.ac.uk/ IJCAR] (June 26 - July 1).&lt;br /&gt;
&lt;br /&gt;
== Competition Categories ==&lt;br /&gt;
&lt;br /&gt;
Currently, the competition features the following categories:&lt;br /&gt;
* termination of [[String Rewriting|string]] and [[Term Rewriting|term rewriting]]&lt;br /&gt;
* [[Logic_Programming|termination of logic programs]]&lt;br /&gt;
* [[Certified_Termination|certified termination]] of string and term rewriting (since 2007)&lt;br /&gt;
* [[Functional_Programming|termination of functional programs]] (since 2007)&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/ complexity of rewrite systems] (since 2008)&lt;br /&gt;
* [[Java_Bytecode|termination of java bytecode programs]] (since 2009)&lt;br /&gt;
* [[Higher_Order|termination of higher order rewriting]] (since 2010)&lt;br /&gt;
Planned extensions:&lt;br /&gt;
* [[ITRS|integer term rewriting]] (under consideration)&lt;br /&gt;
&lt;br /&gt;
Discussion is open and primarily happens on the termtools mailing list.&lt;br /&gt;
Decisions will be made by votes among the [[Termination Competition Steering Committee]].&lt;br /&gt;
&lt;br /&gt;
== Termination Problems Data Base ==&lt;br /&gt;
&lt;br /&gt;
The [[TPDB|Termination Problems Data Base]] collects all the problems used in the competitions. &lt;br /&gt;
&lt;br /&gt;
We welcome problem submissions from non-participants.&lt;br /&gt;
&lt;br /&gt;
== History of Termination Competitions ==&lt;br /&gt;
&lt;br /&gt;
The following competitions have taken place:&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2011]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=230715&amp;amp;cid=4874 results]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2010]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=185404&amp;amp;cid=4878 results] &lt;br /&gt;
&lt;br /&gt;
*  Termination Competition 2009 [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722&amp;amp;cid=285 Results], [http://lists.lri.fr/pipermail/termtools/2009-November/000778.html Announcement]&lt;br /&gt;
&lt;br /&gt;
* [[Termination_Competition_2008|Termination Competition 2008]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991&amp;amp;cid=4881 Results], [http://www.imn.htwk-leipzig.de/~waldmann/talk/09/wst/ Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2007/ Termination Competition 2007], [http://www.imn.htwk-leipzig.de/~waldmann/talk/07/wst/competition/ Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2006/ Termination Competition 2006], [http://www.lri.fr/~marche/termination-competition/2006/reportCompetition2006.pdf Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2005/ Termination Competition 2005], [http://www.lri.fr/~marche/termination-competition/2005/TC.ppt Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2004/ Termination Competition 2004], [http://www.lri.fr/~marche/termination-competition/2004/slides-1jun2004.ps Report]&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=1213</id>
		<title>Termination Competition</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=1213"/>
		<updated>2012-06-08T11:41:44Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Annual International Termination Competition =&lt;br /&gt;
&lt;br /&gt;
During the 90's a number of new, powerful termination methods&lt;br /&gt;
was developed. Thus, at the the beginning of the millennium&lt;br /&gt;
many research groups started to develop [[:Category:Tools | tools for fully-automated termination analysis]].&lt;br /&gt;
&lt;br /&gt;
After a tool demonstration at the 2003 [[WST|Workshop on Termination]] in Valencia,&lt;br /&gt;
the community decided to install an annual termination competition&lt;br /&gt;
to spur the development of tools and new termination techniques.&lt;br /&gt;
&lt;br /&gt;
From 2004 till 2007 the competition was hosted in [http://www.lri.fr/~marche/termination-competition/ Paris].&lt;br /&gt;
Since 2008 the competition is hosted in [http://termcomp.uibk.ac.at Innsbruck].&lt;br /&gt;
&lt;br /&gt;
== Upcoming Competition ==&lt;br /&gt;
&lt;br /&gt;
The [[Termination_Competition_2012|Termination Competition 2012]] is a satellite event of [http://ijcar.cs.manchester.ac.uk/ IJCAR] (June 26 - July 1).&lt;br /&gt;
&lt;br /&gt;
== Competition Categories ==&lt;br /&gt;
&lt;br /&gt;
Currently, the competition features the following categories:&lt;br /&gt;
* termination of [[String Rewriting|string]] and [[Term Rewriting|term rewriting]]&lt;br /&gt;
* [[Logic_Programming|termination of logic programs]]&lt;br /&gt;
* [[Certified_Termination|certified termination]] of string and term rewriting (since 2007)&lt;br /&gt;
* [[Functional_Programming|termination of functional programs]] (since 2007)&lt;br /&gt;
* complexity of rewrite systems [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/] (since 2008)&lt;br /&gt;
* [[Java_Bytecode|termination of java bytecode programs]] (since 2009)&lt;br /&gt;
* [[Higher_Order|termination of higher order rewriting]] (since 2010)&lt;br /&gt;
Planned extensions:&lt;br /&gt;
* [[ITRS|integer term rewriting]] (under consideration)&lt;br /&gt;
&lt;br /&gt;
Discussion is open and primarily happens on the termtools mailing list.&lt;br /&gt;
Decisions will be made by votes among the [[Termination Competition Steering Committee]].&lt;br /&gt;
&lt;br /&gt;
== Termination Problems Data Base ==&lt;br /&gt;
&lt;br /&gt;
The [[TPDB|Termination Problems Data Base]] collects all the problems used in the competitions. &lt;br /&gt;
&lt;br /&gt;
We welcome problem submissions from non-participants.&lt;br /&gt;
&lt;br /&gt;
== History of Termination Competitions ==&lt;br /&gt;
&lt;br /&gt;
The following competitions have taken place:&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2011]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=230715&amp;amp;cid=4874 results]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2010]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=185404&amp;amp;cid=4878 results] &lt;br /&gt;
&lt;br /&gt;
*  Termination Competition 2009 [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722&amp;amp;cid=285 Results], [http://lists.lri.fr/pipermail/termtools/2009-November/000778.html Announcement]&lt;br /&gt;
&lt;br /&gt;
* [[Termination_Competition_2008|Termination Competition 2008]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991&amp;amp;cid=4881 Results], [http://www.imn.htwk-leipzig.de/~waldmann/talk/09/wst/ Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2007/ Termination Competition 2007], [http://www.imn.htwk-leipzig.de/~waldmann/talk/07/wst/competition/ Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2006/ Termination Competition 2006], [http://www.lri.fr/~marche/termination-competition/2006/reportCompetition2006.pdf Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2005/ Termination Competition 2005], [http://www.lri.fr/~marche/termination-competition/2005/TC.ppt Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2004/ Termination Competition 2004], [http://www.lri.fr/~marche/termination-competition/2004/slides-1jun2004.ps Report]&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=1212</id>
		<title>Termination Competition</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=1212"/>
		<updated>2012-06-08T11:40:50Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Annual International Termination Competition =&lt;br /&gt;
&lt;br /&gt;
During the 90's a number of new, powerful termination methods&lt;br /&gt;
was developed. Thus, at the the beginning of the millennium&lt;br /&gt;
many research groups started to develop [[:Category:Tools | tools for fully-automated termination analysis]].&lt;br /&gt;
&lt;br /&gt;
After a tool demonstration at the 2003 [[WST|Workshop on Termination]] in Valencia,&lt;br /&gt;
the community decided to install an annual termination competition&lt;br /&gt;
to spur the development of tools and new termination techniques.&lt;br /&gt;
&lt;br /&gt;
From 2004 till 2007 the competition was hosted in [http://www.lri.fr/~marche/termination-competition/ Paris].&lt;br /&gt;
Since 2008 the competition is hosted in [http://termcomp.uibk.ac.at Innsbruck].&lt;br /&gt;
&lt;br /&gt;
== Upcoming Competition ==&lt;br /&gt;
&lt;br /&gt;
The [[Termination_Competition_2012|Termination Competition 2012]] is a satellite event of [http://ijcar.cs.manchester.ac.uk/ IJCAR] (June 26 - July 1).&lt;br /&gt;
&lt;br /&gt;
== Competition Categories ==&lt;br /&gt;
&lt;br /&gt;
Currently, the competition features the following categories:&lt;br /&gt;
* termination of [[String Rewriting|string]] and [[Term Rewriting|term rewriting]]&lt;br /&gt;
* [[Logic_Programming|termination of logic programs]]&lt;br /&gt;
* [[Certified_Termination|certified termination]] of string and term rewriting (since 2007)&lt;br /&gt;
* [[Functional_Programming|termination of functional programs]] (since 2007)&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/] (since 2008)&lt;br /&gt;
* [[Java_Bytecode|termination of java bytecode programs]] (since 2009)&lt;br /&gt;
* [[Higher_Order|termination of higher order rewriting]] (since 2010)&lt;br /&gt;
Planned extensions:&lt;br /&gt;
* [[ITRS|integer term rewriting]] (under consideration)&lt;br /&gt;
&lt;br /&gt;
Discussion is open and primarily happens on the termtools mailing list.&lt;br /&gt;
Decisions will be made by votes among the [[Termination Competition Steering Committee]].&lt;br /&gt;
&lt;br /&gt;
== Termination Problems Data Base ==&lt;br /&gt;
&lt;br /&gt;
The [[TPDB|Termination Problems Data Base]] collects all the problems used in the competitions. &lt;br /&gt;
&lt;br /&gt;
We welcome problem submissions from non-participants.&lt;br /&gt;
&lt;br /&gt;
== History of Termination Competitions ==&lt;br /&gt;
&lt;br /&gt;
The following competitions have taken place:&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2011]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=230715&amp;amp;cid=4874 results]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2010]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=185404&amp;amp;cid=4878 results] &lt;br /&gt;
&lt;br /&gt;
*  Termination Competition 2009 [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722&amp;amp;cid=285 Results], [http://lists.lri.fr/pipermail/termtools/2009-November/000778.html Announcement]&lt;br /&gt;
&lt;br /&gt;
* [[Termination_Competition_2008|Termination Competition 2008]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991&amp;amp;cid=4881 Results], [http://www.imn.htwk-leipzig.de/~waldmann/talk/09/wst/ Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2007/ Termination Competition 2007], [http://www.imn.htwk-leipzig.de/~waldmann/talk/07/wst/competition/ Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2006/ Termination Competition 2006], [http://www.lri.fr/~marche/termination-competition/2006/reportCompetition2006.pdf Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2005/ Termination Competition 2005], [http://www.lri.fr/~marche/termination-competition/2005/TC.ppt Report]&lt;br /&gt;
* [http://www.lri.fr/~marche/termination-competition/2004/ Termination Competition 2004], [http://www.lri.fr/~marche/termination-competition/2004/slides-1jun2004.ps Report]&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Techniques&amp;diff=1211</id>
		<title>Complexity:Techniques</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Techniques&amp;diff=1211"/>
		<updated>2012-06-08T11:39:35Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated an no longer maintained. An up to date version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/].&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page is for listing all techniques applied by the participants of the complexity competitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Be aware:''' the lists are still preliminary.&lt;br /&gt;
&lt;br /&gt;
== Derivational Complexity ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  width=&amp;quot;350&amp;quot;|Method&lt;br /&gt;
!  2008&lt;br /&gt;
!  2009&lt;br /&gt;
|-&lt;br /&gt;
|  Arctic Interpretation&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Match Bounds&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Triangular&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:Matchbox]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Non-Triangular&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:Matchbox]]&lt;br /&gt;
|-&lt;br /&gt;
|  Modular (Relative) Complexity Analysis&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Rewriting Right Hand Sides&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Root Labeling&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Runtime Complexity ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  width=&amp;quot;350&amp;quot;|Method&lt;br /&gt;
!  2008&lt;br /&gt;
!  2009&lt;br /&gt;
!  2010&lt;br /&gt;
|-&lt;br /&gt;
|  Arctic Interpretation&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Match Bounds&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Triangular&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:AProVE]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Non-Triangular&lt;br /&gt;
|  ---&lt;br /&gt;
|  ---&lt;br /&gt;
|-&lt;br /&gt;
|  Modular (Relative) Complexity Analysis&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Polynomial Interpretations&lt;br /&gt;
|  ---&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:AProVE]]&lt;br /&gt;
|-&lt;br /&gt;
|  Polynomial Path Orders&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Rewriting Right Hand Sides&lt;br /&gt;
|  ---&lt;br /&gt;
|  ---&lt;br /&gt;
|-&lt;br /&gt;
|  Root Labeling&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Weak Dependency Pairs&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Dependency Tuples&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|  [[Tools:AProVE]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1210</id>
		<title>Complexity:Rules</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1210"/>
		<updated>2012-06-08T11:38:47Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated an no longer maintained. An up to date version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/].&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to provide a place for ongoing discussions&lt;br /&gt;
on the rules, and to describe the current rules itself. &lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
=== Lower Bounds ===&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;
(GM: I don't see a problem with that: &amp;quot;YES&amp;quot; indicates that the prover has found a proof. In the case you mention, a proof for non-termination.)&lt;br /&gt;
&lt;br /&gt;
=== Scoring (proposals) ===&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;
* GM: For clarification: I suppose you want to use the following order: POLY &amp;gt;= O(n^7) &amp;gt;= O(n^6) etc. to name an example. And I would insist&lt;br /&gt;
on the use of a virtual prover: getting 0 points although an answer has been given I don't like&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&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;
* 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;
* GM: I don't like the format &amp;quot;POLY(k)&amp;quot; mainly due to presentation reasons: Our first format used exactly this and in presentations I immediately got the question &lt;br /&gt;
what &amp;quot;POLY(k)&amp;quot; should mean. Since &amp;quot;O(k)&amp;quot; is used I don't get this question. With respect to the lower-bound: I agree that &amp;quot;O(k)&amp;quot; should be replaced by&lt;br /&gt;
&amp;quot;Omega(k)&amp;quot;. So let's do that. But I don't see a chance to change this for the upcoming competition ...&lt;br /&gt;
&lt;br /&gt;
== Rules of the Competition ==&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems are 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 respectively.  &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;
=== Scoring ===&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 Sets and Problem Selection ===&lt;br /&gt;
==== Testbeds ====&lt;br /&gt;
&lt;br /&gt;
All authors of complexity tools that participated in the last&lt;br /&gt;
complexity competition agreed upon&lt;br /&gt;
the following selection of examples from the TPDB. For simplicity,&lt;br /&gt;
we decided on&lt;br /&gt;
using the same testbed for full and innermost rewriting. However, we&lt;br /&gt;
decided on&lt;br /&gt;
two separate testbeds for derivational and runtime complexity&lt;br /&gt;
analysis. The testbeds&lt;br /&gt;
are described below in detail, additionally a list of&lt;br /&gt;
problems for TPDB version 8.0 is provided for [[File:RC-8.0.txt|RC]] and [[File:DC-8.0.txt|DC]]. For the&lt;br /&gt;
individual&lt;br /&gt;
subcategories RC, RCi, DC and DCi all strategy and start-term&lt;br /&gt;
annotations should be overwritten&lt;br /&gt;
appropriately. Thus we simply ignore for instance&lt;br /&gt;
context-sensitive strategies.&lt;br /&gt;
&lt;br /&gt;
===== Derivational Complexity =====&lt;br /&gt;
For derivational complexity analysis we restrict the TPDB as follows:&lt;br /&gt;
# keep only one instance of duplicated problems (modulo strategy annotations). A list of the TRSs that appear multiple times in the current TPDB version 8.0 can be found [[File:duplicates-8.0.txt|here]].&lt;br /&gt;
# remove all problems with relative, theory or conditional annotations. The reason for this is that none of the tools can handle those problems currently.&lt;br /&gt;
&lt;br /&gt;
===== Runtime Complexity =====&lt;br /&gt;
For runtime complexity analysis, we further restrict the testbed for derivational complexity analysis as follows:&lt;br /&gt;
# remove all examples as determined by the tool Oops that participated in the competition of 2010. A list of these examples for TPDB version 8.0 can be found [[File:Oops-8.0.txt|here]]. This step aims at eliminating trivial problems that&lt;br /&gt;
## admit only 0-ary constructors, or&lt;br /&gt;
## admit only 0-ary defined function symbols, or&lt;br /&gt;
## admit only rules with nested defined function symbols on left-hand sides, thus all basic terms are normal forms.&lt;br /&gt;
#  remove higher-order examples from following folder, as here the notion of runtime complexity is inapropriate:&lt;br /&gt;
## AotoYamada_05,&lt;br /&gt;
## Applicative_05,&lt;br /&gt;
## Applicative_AG01_innermost,&lt;br /&gt;
## Applicative_first_order_05, and&lt;br /&gt;
## Mixed_HO_10.&lt;br /&gt;
&lt;br /&gt;
==== Selection function ====&lt;br /&gt;
On the above described testbeds, a randomly chosen subset that is actually used in the competition is determined as follows.&lt;br /&gt;
Here 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;
#:* 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;
# In accordance to the above described partitioning, we define a probability distribution ''p'' on ''F''. 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''. 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. 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;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1209</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1209"/>
		<updated>2012-06-08T11:38:24Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is outdated an no longer maintained. An up to date version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/].&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
[[Complexity:Rules|discussion and rules page]]; aficionados &lt;br /&gt;
may be interested in the [[Complexity:Techniques|techniques page]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| July 14, 2010&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| July 2, 2010 (but see email to termtools)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| July 16, 2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://aprove.informatik.rwth-aachen.de/ AProVE]&lt;br /&gt;
| [[Tools:AProVE]]&lt;br /&gt;
| The AProVE Team&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! Oops&lt;br /&gt;
| [[Tools:Oops]]&lt;br /&gt;
| Fabian Emmes, Lars Noschinski&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Techniques&amp;diff=1208</id>
		<title>Complexity:Techniques</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Techniques&amp;diff=1208"/>
		<updated>2012-06-08T11:35:35Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== News Flash ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page is seriously outdated. An up-to-date version can be found here: &lt;br /&gt;
[http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
his page is for listing all techniques applied by the participants of the complexity competitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Be aware:''' the lists are still preliminary.&lt;br /&gt;
&lt;br /&gt;
== Derivational Complexity ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  width=&amp;quot;350&amp;quot;|Method&lt;br /&gt;
!  2008&lt;br /&gt;
!  2009&lt;br /&gt;
|-&lt;br /&gt;
|  Arctic Interpretation&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Match Bounds&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Triangular&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:Matchbox]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Non-Triangular&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:Matchbox]]&lt;br /&gt;
|-&lt;br /&gt;
|  Modular (Relative) Complexity Analysis&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Rewriting Right Hand Sides&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Root Labeling&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Runtime Complexity ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  width=&amp;quot;350&amp;quot;|Method&lt;br /&gt;
!  2008&lt;br /&gt;
!  2009&lt;br /&gt;
!  2010&lt;br /&gt;
|-&lt;br /&gt;
|  Arctic Interpretation&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Match Bounds&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Triangular&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:AProVE]]&lt;br /&gt;
|-&lt;br /&gt;
|  Matrix Interpretation Non-Triangular&lt;br /&gt;
|  ---&lt;br /&gt;
|  ---&lt;br /&gt;
|-&lt;br /&gt;
|  Modular (Relative) Complexity Analysis&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Polynomial Interpretations&lt;br /&gt;
|  ---&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:AProVE]]&lt;br /&gt;
|-&lt;br /&gt;
|  Polynomial Path Orders&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Rewriting Right Hand Sides&lt;br /&gt;
|  ---&lt;br /&gt;
|  ---&lt;br /&gt;
|-&lt;br /&gt;
|  Root Labeling&lt;br /&gt;
|  ---&lt;br /&gt;
|  [[Tools:CaT]], [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Weak Dependency Pairs&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|  [[Tools:TCT]]&lt;br /&gt;
|-&lt;br /&gt;
|  Dependency Tuples&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|  [[Tools:AProVE]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1207</id>
		<title>Complexity:Rules</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1207"/>
		<updated>2012-06-08T11:34:00Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is outdated, and an updated version of the content of this page can now be found here: [1]. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to provide a place for ongoing discussions&lt;br /&gt;
on the rules, and to describe the current rules itself. &lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
=== Lower Bounds ===&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;
(GM: I don't see a problem with that: &amp;quot;YES&amp;quot; indicates that the prover has found a proof. In the case you mention, a proof for non-termination.)&lt;br /&gt;
&lt;br /&gt;
=== Scoring (proposals) ===&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;
* GM: For clarification: I suppose you want to use the following order: POLY &amp;gt;= O(n^7) &amp;gt;= O(n^6) etc. to name an example. And I would insist&lt;br /&gt;
on the use of a virtual prover: getting 0 points although an answer has been given I don't like&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&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;
* 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;
* GM: I don't like the format &amp;quot;POLY(k)&amp;quot; mainly due to presentation reasons: Our first format used exactly this and in presentations I immediately got the question &lt;br /&gt;
what &amp;quot;POLY(k)&amp;quot; should mean. Since &amp;quot;O(k)&amp;quot; is used I don't get this question. With respect to the lower-bound: I agree that &amp;quot;O(k)&amp;quot; should be replaced by&lt;br /&gt;
&amp;quot;Omega(k)&amp;quot;. So let's do that. But I don't see a chance to change this for the upcoming competition ...&lt;br /&gt;
&lt;br /&gt;
== Rules of the Competition ==&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems are 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 respectively.  &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;
=== Scoring ===&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 Sets and Problem Selection ===&lt;br /&gt;
==== Testbeds ====&lt;br /&gt;
&lt;br /&gt;
All authors of complexity tools that participated in the last&lt;br /&gt;
complexity competition agreed upon&lt;br /&gt;
the following selection of examples from the TPDB. For simplicity,&lt;br /&gt;
we decided on&lt;br /&gt;
using the same testbed for full and innermost rewriting. However, we&lt;br /&gt;
decided on&lt;br /&gt;
two separate testbeds for derivational and runtime complexity&lt;br /&gt;
analysis. The testbeds&lt;br /&gt;
are described below in detail, additionally a list of&lt;br /&gt;
problems for TPDB version 8.0 is provided for [[File:RC-8.0.txt|RC]] and [[File:DC-8.0.txt|DC]]. For the&lt;br /&gt;
individual&lt;br /&gt;
subcategories RC, RCi, DC and DCi all strategy and start-term&lt;br /&gt;
annotations should be overwritten&lt;br /&gt;
appropriately. Thus we simply ignore for instance&lt;br /&gt;
context-sensitive strategies.&lt;br /&gt;
&lt;br /&gt;
===== Derivational Complexity =====&lt;br /&gt;
For derivational complexity analysis we restrict the TPDB as follows:&lt;br /&gt;
# keep only one instance of duplicated problems (modulo strategy annotations). A list of the TRSs that appear multiple times in the current TPDB version 8.0 can be found [[File:duplicates-8.0.txt|here]].&lt;br /&gt;
# remove all problems with relative, theory or conditional annotations. The reason for this is that none of the tools can handle those problems currently.&lt;br /&gt;
&lt;br /&gt;
===== Runtime Complexity =====&lt;br /&gt;
For runtime complexity analysis, we further restrict the testbed for derivational complexity analysis as follows:&lt;br /&gt;
# remove all examples as determined by the tool Oops that participated in the competition of 2010. A list of these examples for TPDB version 8.0 can be found [[File:Oops-8.0.txt|here]]. This step aims at eliminating trivial problems that&lt;br /&gt;
## admit only 0-ary constructors, or&lt;br /&gt;
## admit only 0-ary defined function symbols, or&lt;br /&gt;
## admit only rules with nested defined function symbols on left-hand sides, thus all basic terms are normal forms.&lt;br /&gt;
#  remove higher-order examples from following folder, as here the notion of runtime complexity is inapropriate:&lt;br /&gt;
## AotoYamada_05,&lt;br /&gt;
## Applicative_05,&lt;br /&gt;
## Applicative_AG01_innermost,&lt;br /&gt;
## Applicative_first_order_05, and&lt;br /&gt;
## Mixed_HO_10.&lt;br /&gt;
&lt;br /&gt;
==== Selection function ====&lt;br /&gt;
On the above described testbeds, a randomly chosen subset that is actually used in the competition is determined as follows.&lt;br /&gt;
Here 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;
#:* 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;
# In accordance to the above described partitioning, we define a probability distribution ''p'' on ''F''. 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''. 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. 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;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1206</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1206"/>
		<updated>2012-06-08T11:33:14Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is outdated, and an updated version of the content of this page&lt;br /&gt;
can now be found here: [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
[[Complexity:Rules|discussion and rules page]]; aficionados &lt;br /&gt;
may be interested in the [[Complexity:Techniques|techniques page]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| July 14, 2010&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| July 2, 2010 (but see email to termtools)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| July 16, 2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://aprove.informatik.rwth-aachen.de/ AProVE]&lt;br /&gt;
| [[Tools:AProVE]]&lt;br /&gt;
| The AProVE Team&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! Oops&lt;br /&gt;
| [[Tools:Oops]]&lt;br /&gt;
| Fabian Emmes, Lars Noschinski&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1205</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1205"/>
		<updated>2012-06-08T11:32:41Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is outdated, and an updated version of the content of this page&lt;br /&gt;
can now be found [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
[[Complexity:Rules|discussion and rules page]]; aficionados &lt;br /&gt;
may be interested in the [[Complexity:Techniques|techniques page]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| July 14, 2010&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| July 2, 2010 (but see email to termtools)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| July 16, 2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! [http://aprove.informatik.rwth-aachen.de/ AProVE]&lt;br /&gt;
| [[Tools:AProVE]]&lt;br /&gt;
| The AProVE Team&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
! Oops&lt;br /&gt;
| [[Tools:Oops]]&lt;br /&gt;
| Fabian Emmes, Lars Noschinski&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=WST&amp;diff=1172</id>
		<title>WST</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=WST&amp;diff=1172"/>
		<updated>2011-11-02T08:39:15Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The International Workshop on Termination (WST) has been held in St. Andrews (1993), La Bresse (1995), Ede (1997), Dagstuhl (1999), Utrecht (2001), Valencia (2003), Aachen (2004), Seattle (2006), Paris (2007), and Leipzig (2009).&lt;br /&gt;
WST traditionally brings together, in an informal setting, researchers interested in all aspects of termination, whether this interest be practical or theoretical, primary or derived. The workshop also provides a ground for cross-fertilisation of ideas from term rewriting and from the different programming language communities.&lt;br /&gt;
&lt;br /&gt;
Upcoming events:&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/events/wst2012 12th International Workshop on Termination, Obergurgl, February 19-23, 2012]&lt;br /&gt;
&lt;br /&gt;
Information about previous workshops can be found online:&lt;br /&gt;
* [http://imada.sdu.dk/~petersk/WST2010/ 11th International Workshop on Termination, Edinburgh, 2010]&lt;br /&gt;
* [http://www.imn.htwk-leipzig.de/wst09/ 10th International Workshop on Termination, Leipzig, 2009]&lt;br /&gt;
* [http://www.lsv.ens-cachan.fr/rdp07/wst.html 9th International Workshop on Termination, Paris, 2007]&lt;br /&gt;
* [http://www.easychair.org/FLoC-06/WST.html 8th International Workshop on Terminaton, Seattle, 2006]&lt;br /&gt;
* [http://www-i2.informatik.rwth-aachen.de/WST04/ 7th International Workshop on Terminaton, Aachen, 2004]&lt;br /&gt;
* [http://www.dsic.upv.es/~rdp03/wst/ 6th International Workshop on Terminaton, Valencia, 2003]&lt;br /&gt;
* [http://www.cs.tau.ac.il/~nachumd/wst/index.html 5th International Workshop on Terminaton, Utrecht, 2001]&lt;br /&gt;
* [http://verify.rwth-aachen.de/giesl/WST99.html 4th International Workshop on Terminaton, Dagstuhl, 1999]&lt;br /&gt;
* [http://www-i2.informatik.rwth-aachen.de/giesl/WST97/main.html 3rd International Workshop on Termination, Ede, 1997]&lt;br /&gt;
* 2nd International Workshop on Termination, La Bresse, 1995&lt;br /&gt;
* 1st International Workshop on Termination, St. Andrews, 1993&lt;br /&gt;
Independently from WST, there are meetings on Certified Termination : [[WScT]]&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=WST&amp;diff=1171</id>
		<title>WST</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=WST&amp;diff=1171"/>
		<updated>2011-10-21T20:16:52Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The International Workshop on Termination (WST) has been held in St. Andrews (1993), La Bresse (1995), Ede (1997), Dagstuhl (1999), Utrecht (2001), Valencia (2003), Aachen (2004), Seattle (2006), Paris (2007), and Leipzig (2009).&lt;br /&gt;
WST traditionally brings together, in an informal setting, researchers interested in all aspects of termination, whether this interest be practical or theoretical, primary or derived. The workshop also provides a ground for cross-fertilisation of ideas from term rewriting and from the different programming language communities.&lt;br /&gt;
&lt;br /&gt;
Upcoming events:&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/events/wst2012 12th International Workshop on Termination, Obergurgl, February 19-24, 2012]&lt;br /&gt;
&lt;br /&gt;
Information about previous workshops can be found online:&lt;br /&gt;
* [http://imada.sdu.dk/~petersk/WST2010/ 11th International Workshop on Termination, Edinburgh, 2010]&lt;br /&gt;
* [http://www.imn.htwk-leipzig.de/wst09/ 10th International Workshop on Termination, Leipzig, 2009]&lt;br /&gt;
* [http://www.lsv.ens-cachan.fr/rdp07/wst.html 9th International Workshop on Termination, Paris, 2007]&lt;br /&gt;
* [http://www.easychair.org/FLoC-06/WST.html 8th International Workshop on Terminaton, Seattle, 2006]&lt;br /&gt;
* [http://www-i2.informatik.rwth-aachen.de/WST04/ 7th International Workshop on Terminaton, Aachen, 2004]&lt;br /&gt;
* [http://www.dsic.upv.es/~rdp03/wst/ 6th International Workshop on Terminaton, Valencia, 2003]&lt;br /&gt;
* [http://www.cs.tau.ac.il/~nachumd/wst/index.html 5th International Workshop on Terminaton, Utrecht, 2001]&lt;br /&gt;
* [http://verify.rwth-aachen.de/giesl/WST99.html 4th International Workshop on Terminaton, Dagstuhl, 1999]&lt;br /&gt;
* [http://www-i2.informatik.rwth-aachen.de/giesl/WST97/main.html 3rd International Workshop on Termination, Ede, 1997]&lt;br /&gt;
* 2nd International Workshop on Termination, La Bresse, 1995&lt;br /&gt;
* 1st International Workshop on Termination, St. Andrews, 1993&lt;br /&gt;
Independently from WST, there are meetings on Certified Termination : [[WScT]]&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=WST&amp;diff=1149</id>
		<title>WST</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=WST&amp;diff=1149"/>
		<updated>2011-04-15T14:08:49Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The International Workshop on Termination (WST) has been held in St. Andrews (1993), La Bresse (1995), Ede (1997), Dagstuhl (1999), Utrecht (2001), Valencia (2003), Aachen (2004), Seattle (2006), Paris (2007), and Leipzig (2009).&lt;br /&gt;
WST traditionally brings together, in an informal setting, researchers interested in all aspects of termination, whether this interest be practical or theoretical, primary or derived. The workshop also provides a ground for cross-fertilisation of ideas from term rewriting and from the different programming language communities.&lt;br /&gt;
&lt;br /&gt;
Upcoming events:&lt;br /&gt;
* 12th International Workshop on Termination, Obergurgl, February 19-24, 2012&lt;br /&gt;
&lt;br /&gt;
Information about previous workshops can be found online:&lt;br /&gt;
* [http://imada.sdu.dk/~petersk/WST2010/ 11th International Workshop on Termination, Edinburgh, 2010]&lt;br /&gt;
* [http://www.imn.htwk-leipzig.de/wst09/ 10th International Workshop on Termination, Leipzig, 2009]&lt;br /&gt;
* [http://www.lsv.ens-cachan.fr/rdp07/wst.html 9th International Workshop on Termination, Paris, 2007]&lt;br /&gt;
* [http://www.easychair.org/FLoC-06/WST.html 8th International Workshop on Terminaton, Seattle, 2006]&lt;br /&gt;
* [http://www-i2.informatik.rwth-aachen.de/WST04/ 7th International Workshop on Terminaton, Aachen, 2004]&lt;br /&gt;
* [http://www.dsic.upv.es/~rdp03/wst/ 6th International Workshop on Terminaton, Valencia, 2003]&lt;br /&gt;
* [http://www.cs.tau.ac.il/~nachumd/wst/index.html 5th International Workshop on Terminaton, Utrecht, 2001]&lt;br /&gt;
* [http://verify.rwth-aachen.de/giesl/WST99.html 4th International Workshop on Terminaton, Dagstuhl, 1999]&lt;br /&gt;
* [http://www-i2.informatik.rwth-aachen.de/giesl/WST97/main.html 3rd International Workshop on Termination, Ede, 1997]&lt;br /&gt;
* 2nd International Workshop on Termination, La Bresse, 1995&lt;br /&gt;
* 1st International Workshop on Termination, St. Andrews, 1993&lt;br /&gt;
Independently from WST, there are meetings on Certified Termination : [[WScT]]&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1110</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1110"/>
		<updated>2010-06-22T14:40:34Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Important Dates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
[[Complexity:Rules|discussion and rules page]]; aficionados &lt;br /&gt;
may be interested in the [[Complexity:Techniques|techniques page]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| July 14, 2010&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| July 2, 2010 (but see email to termtools)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| July 16, 2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1109</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1109"/>
		<updated>2010-06-22T14:40:14Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Important Dates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
[[Complexity:Rules|discussion and rules page]]; aficionados &lt;br /&gt;
may be interested in the [[Complexity:Techniques|techniques page]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| July 14, 2010&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| July 2, 2010&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| July 16, 2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1108</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1108"/>
		<updated>2010-06-22T14:35:16Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is no longer maintained, but kept for the time beeing.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The entry point to the complexity category is here: [[Complexity]]&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;
* 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 of the 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>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1107</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1107"/>
		<updated>2010-06-22T14:33:41Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is no longer maintained&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The entry point to the complexity category is here: [[Complexity]]&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;
* 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 of the 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>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1106</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1106"/>
		<updated>2010-06-22T14:32:56Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
This page is no longer maintained, see the new entry point to the complexity&lt;br /&gt;
category: [[Complexity]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&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;
* 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 of the 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>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=News:Complexity_Wiki_Updated&amp;diff=1105</id>
		<title>News:Complexity Wiki Updated</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=News:Complexity_Wiki_Updated&amp;diff=1105"/>
		<updated>2010-06-22T14:31:23Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
   Please insert the corresponding information below so that&lt;br /&gt;
   the news page can be generated automatically.&lt;br /&gt;
&lt;br /&gt;
   Line breaks are allowed! You may use MediaWiki syntax here to link to articles, highlight text, ...&lt;br /&gt;
   Please add some date to the news entry (e.g. today's date for current news, a time period for the competition, ....).&lt;br /&gt;
   Example:&lt;br /&gt;
       |text = The [[WST]] takes place in [http://en.wikipedia.org/wiki/Juneau Juneau] this year!&lt;br /&gt;
       |date = Sep 8 - Nov 1, 2008&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{News&lt;br /&gt;
|text=The wiki for the complexity category has been thoroughly re-designed, see [[Complexity]]&lt;br /&gt;
|date=June 22, 2010&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=News:Complexity_Wiki_Updated&amp;diff=1104</id>
		<title>News:Complexity Wiki Updated</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=News:Complexity_Wiki_Updated&amp;diff=1104"/>
		<updated>2010-06-22T14:30:36Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: Created page with '&amp;lt;!--    Please insert the corresponding information below so that    the news page can be generated automatically.     Line breaks are allowed! You may use MediaWiki syntax here …'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
   Please insert the corresponding information below so that&lt;br /&gt;
   the news page can be generated automatically.&lt;br /&gt;
&lt;br /&gt;
   Line breaks are allowed! You may use MediaWiki syntax here to link to articles, highlight text, ...&lt;br /&gt;
   Please add some date to the news entry (e.g. today's date for current news, a time period for the competition, ....).&lt;br /&gt;
   Example:&lt;br /&gt;
       |text = The [[WST]] takes place in [http://en.wikipedia.org/wiki/Juneau Juneau] this year!&lt;br /&gt;
       |date = Sep 8 - Nov 1, 2008&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{News&lt;br /&gt;
|text=The wiki for the complexity category has been thoroughly re-designed, see [[Complexity]]&lt;br /&gt;
|date=Jun 22&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1103</id>
		<title>Complexity:Rules</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1103"/>
		<updated>2010-06-22T14:25:13Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Problem Sets and Problem Selection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this page is to provide a place for ongoing discussions&lt;br /&gt;
on the rules, and to describe the current rules itself. &lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
=== Lower Bounds ===&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;
(GM: I don't see a problem with that: &amp;quot;YES&amp;quot; indicates that the prover has found a proof. In the case you mention, a proof for non-termination.)&lt;br /&gt;
&lt;br /&gt;
=== Scoring (proposals) ===&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;
* GM: For clarification: I suppose you want to use the following order: POLY &amp;gt;= O(n^7) &amp;gt;= O(n^6) etc. to name an example. And I would insist&lt;br /&gt;
on the use of a virtual prover: getting 0 points although an answer has been given I don't like&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&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;
* 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;
* GM: I don't like the format &amp;quot;POLY(k)&amp;quot; mainly due to presentation reasons: Our first format used exactly this and in presentations I immediately got the question &lt;br /&gt;
what &amp;quot;POLY(k)&amp;quot; should mean. Since &amp;quot;O(k)&amp;quot; is used I don't get this question. With respect to the lower-bound: I agree that &amp;quot;O(k)&amp;quot; should be replaced by&lt;br /&gt;
&amp;quot;Omega(k)&amp;quot;. So let's do that. But I don't see a chance to change this for the upcoming competition ...&lt;br /&gt;
&lt;br /&gt;
== Rules of the Competition ==&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems are 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 respectively.  &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;
=== Scoring ===&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 Sets and Problem Selection ===&lt;br /&gt;
* We propose to run subcategories DC and iDC on the following families from TPDB, after &lt;br /&gt;
the selection function defined below has been applied. (Note that this is essentially the&lt;br /&gt;
current TPDB minus the families with &amp;quot;innermost&amp;quot; annotations.) &lt;br /&gt;
These families were already successfully applied for the  2009 competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AG01; AotoYamada_05; Applicative_05; Applicative_first_order_05; AProVE_04; AProVE_06; AProVE_07; AProVE_08; Beerendonk_07; Bouchare_06; CiME_04; Der95; Endrullis_06; Gebhardt_06; GTSSK07; &lt;br /&gt;
HirokawaMiddeldorp_04; Mixed_SRS; Mixed_TRS; Rubio_04; Secret_05_SRS; Secret_05_TRS; Secret_06_SRS; Secret_06_TRS; Secret_07_SRS; Secret_07_TRS; SK90; Strategy_removed_AG01; Strategy_removed_CSR_05;&lt;br /&gt;
Strategy_removed_mixed_05; TCT_09; Trafo_06; Transformed_CSR_04; Various_04; Waldmann_06; Waldmann_06_SRS; Waldmann_07_size11; Waldmann_07_size12; Zantema_04; Zantema_05; Zantema_06;AProVE_09_Inductive &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For categories RC and iRC, we propose to run the competition on the above families&lt;br /&gt;
minus the SRS related families. These families were already successfully applied for the &lt;br /&gt;
2009 competition. &lt;br /&gt;
&lt;br /&gt;
* Family &amp;quot;TCT_09&amp;quot; should be replaced by two (much larger) families DC and RC, collected problems for derivational and runtime complexity&lt;br /&gt;
analyis, respectively.&lt;br /&gt;
&lt;br /&gt;
* GM: Please indicate wishes for additional families till 27. 6. 2010&lt;br /&gt;
&lt;br /&gt;
==== Selection function ====&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;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1102</id>
		<title>Complexity:Rules</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1102"/>
		<updated>2010-06-22T14:21:38Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Problem Sets and Problem Selection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this page is to provide a place for ongoing discussions&lt;br /&gt;
on the rules, and to describe the current rules itself. &lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
=== Lower Bounds ===&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;
(GM: I don't see a problem with that: &amp;quot;YES&amp;quot; indicates that the prover has found a proof. In the case you mention, a proof for non-termination.)&lt;br /&gt;
&lt;br /&gt;
=== Scoring (proposals) ===&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;
* GM: For clarification: I suppose you want to use the following order: POLY &amp;gt;= O(n^7) &amp;gt;= O(n^6) etc. to name an example. And I would insist&lt;br /&gt;
on the use of a virtual prover: getting 0 points although an answer has been given I don't like&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&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;
* 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;
* GM: I don't like the format &amp;quot;POLY(k)&amp;quot; mainly due to presentation reasons: Our first format used exactly this and in presentations I immediately got the question &lt;br /&gt;
what &amp;quot;POLY(k)&amp;quot; should mean. Since &amp;quot;O(k)&amp;quot; is used I don't get this question. With respect to the lower-bound: I agree that &amp;quot;O(k)&amp;quot; should be replaced by&lt;br /&gt;
&amp;quot;Omega(k)&amp;quot;. So let's do that. But I don't see a chance to change this for the upcoming competition ...&lt;br /&gt;
&lt;br /&gt;
== Rules of the Competition ==&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems are 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 respectively.  &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;
=== Scoring ===&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 Sets and Problem Selection ===&lt;br /&gt;
We propose to run subcategories DC and iDC on the following families from TPDB, after &lt;br /&gt;
the selection function defined below has been applied. (Note that this is essentially the&lt;br /&gt;
current TPDB minus the families with &amp;quot;innermost&amp;quot; annotations.) &lt;br /&gt;
These families were already successfully applied for the  2009 competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AG01; AotoYamada_05; Applicative_05; Applicative_first_order_05; AProVE_04; AProVE_06; AProVE_07; AProVE_08; Beerendonk_07; Bouchare_06; CiME_04; Der95; Endrullis_06; Gebhardt_06; GTSSK07; &lt;br /&gt;
HirokawaMiddeldorp_04; Mixed_SRS; Mixed_TRS; Rubio_04; Secret_05_SRS; Secret_05_TRS; Secret_06_SRS; Secret_06_TRS; Secret_07_SRS; Secret_07_TRS; SK90; Strategy_removed_AG01; Strategy_removed_CSR_05;&lt;br /&gt;
Strategy_removed_mixed_05; Trafo_06; Transformed_CSR_04; Various_04; Waldmann_06; Waldmann_06_SRS; Waldmann_07_size11; Waldmann_07_size12; Zantema_04; Zantema_05; Zantema_06;AProVE_09_Inductive &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For categories RC and iRC, we propose to run the competition on the above families&lt;br /&gt;
minus the SRS related families. These families were already successfully applied for the &lt;br /&gt;
2009 competition.&lt;br /&gt;
&lt;br /&gt;
==== Selection function ====&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;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1101</id>
		<title>Complexity:Rules</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1101"/>
		<updated>2010-06-22T14:19:15Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Problem Sets and Problem Selection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this page is to provide a place for ongoing discussions&lt;br /&gt;
on the rules, and to describe the current rules itself. &lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
=== Lower Bounds ===&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;
(GM: I don't see a problem with that: &amp;quot;YES&amp;quot; indicates that the prover has found a proof. In the case you mention, a proof for non-termination.)&lt;br /&gt;
&lt;br /&gt;
=== Scoring (proposals) ===&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;
* GM: For clarification: I suppose you want to use the following order: POLY &amp;gt;= O(n^7) &amp;gt;= O(n^6) etc. to name an example. And I would insist&lt;br /&gt;
on the use of a virtual prover: getting 0 points although an answer has been given I don't like&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&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;
* 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;
* GM: I don't like the format &amp;quot;POLY(k)&amp;quot; mainly due to presentation reasons: Our first format used exactly this and in presentations I immediately got the question &lt;br /&gt;
what &amp;quot;POLY(k)&amp;quot; should mean. Since &amp;quot;O(k)&amp;quot; is used I don't get this question. With respect to the lower-bound: I agree that &amp;quot;O(k)&amp;quot; should be replaced by&lt;br /&gt;
&amp;quot;Omega(k)&amp;quot;. So let's do that. But I don't see a chance to change this for the upcoming competition ...&lt;br /&gt;
&lt;br /&gt;
== Rules of the Competition ==&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems are 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 respectively.  &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;
=== Scoring ===&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 Sets and Problem Selection ===&lt;br /&gt;
We propose to run subcategories DC and iDC on the following families from TPDB, after &lt;br /&gt;
the selection function defined below has been applied. (Note that this is essentially the&lt;br /&gt;
current TPDB minus the families with &amp;quot;innermost&amp;quot; annotations.) &lt;br /&gt;
These families were already successfully applied for the  2009 competition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AG01; AotoYamada_05; Applicative_05; Applicative_first_order_05; AProVE_04; AProVE_06; AProVE_07;&lt;br /&gt;
AProVE_08; Beerendonk_07; Bouchare_06; CiME_04; Der95; Endrullis_06; Gebhardt_06; GTSSK07; &lt;br /&gt;
HirokawaMiddeldorp_04; Mixed_SRS; Mixed_TRS; Rubio_04; Secret_05_SRS; Secret_05_TRS; Secret_06_SRS;&lt;br /&gt;
Secret_06_TRS; Secret_07_SRS; Secret_07_TRS; SK90; Strategy_removed_AG01; Strategy_removed_CSR_05;&lt;br /&gt;
Strategy_removed_mixed_05; Trafo_06; Transformed_CSR_04; Various_04; Waldmann_06; Waldmann_06_SRS;&lt;br /&gt;
Waldmann_07_size11; Waldmann_07_size12; Zantema_04; Zantema_05; Zantema_06;AProVE_09_Inductive &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For categories RC and iRC, we propose to run the competition on the above families&lt;br /&gt;
minus the SRS related families. These families were already successfully applied for the &lt;br /&gt;
2009 competition.&lt;br /&gt;
&lt;br /&gt;
==== Selection function ====&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;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1100</id>
		<title>Complexity:Rules</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1100"/>
		<updated>2010-06-22T14:09:53Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Concrete syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this page is to provide a place for ongoing discussions&lt;br /&gt;
on the rules, and to describe the current rules itself. &lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
=== Lower Bounds ===&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;
(GM: I don't see a problem with that: &amp;quot;YES&amp;quot; indicates that the prover has found a proof. In the case you mention, a proof for non-termination.)&lt;br /&gt;
&lt;br /&gt;
=== Scoring (proposals) ===&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;
* GM: For clarification: I suppose you want to use the following order: POLY &amp;gt;= O(n^7) &amp;gt;= O(n^6) etc. to name an example. And I would insist&lt;br /&gt;
on the use of a virtual prover: getting 0 points although an answer has been given I don't like&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&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;
* 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;
* GM: I don't like the format &amp;quot;POLY(k)&amp;quot; mainly due to presentation reasons: Our first format used exactly this and in presentations I immediately got the question &lt;br /&gt;
what &amp;quot;POLY(k)&amp;quot; should mean. Since &amp;quot;O(k)&amp;quot; is used I don't get this question. With respect to the lower-bound: I agree that &amp;quot;O(k)&amp;quot; should be replaced by&lt;br /&gt;
&amp;quot;Omega(k)&amp;quot;. So let's do that. But I don't see a chance to change this for the upcoming competition ...&lt;br /&gt;
&lt;br /&gt;
== Rules of the Competition ==&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems are 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 respectively.  &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;
=== Scoring ===&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 Sets and Problem Selection ===&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;
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;
&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;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1099</id>
		<title>Complexity:Rules</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1099"/>
		<updated>2010-06-22T14:05:10Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Scoring (proposals) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this page is to provide a place for ongoing discussions&lt;br /&gt;
on the rules, and to describe the current rules itself. &lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
=== Lower Bounds ===&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;
(GM: I don't see a problem with that: &amp;quot;YES&amp;quot; indicates that the prover has found a proof. In the case you mention, a proof for non-termination.)&lt;br /&gt;
&lt;br /&gt;
=== Scoring (proposals) ===&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;
* GM: For clarification: I suppose you want to use the following order: POLY &amp;gt;= O(n^7) &amp;gt;= O(n^6) etc. to name an example. And I would insist&lt;br /&gt;
on the use of a virtual prover: getting 0 points although an answer has been given I don't like&lt;br /&gt;
&lt;br /&gt;
=== Concrete syntax ===&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;
&lt;br /&gt;
== Rules of the Competition ==&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems are 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 respectively.  &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;
=== Scoring ===&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 Sets and Problem Selection ===&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;
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;
&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;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1098</id>
		<title>Complexity:Rules</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Rules&amp;diff=1098"/>
		<updated>2010-06-22T14:01:52Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Lower Bounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this page is to provide a place for ongoing discussions&lt;br /&gt;
on the rules, and to describe the current rules itself. &lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
=== Lower Bounds ===&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;
(GM: I don't see a problem with that: &amp;quot;YES&amp;quot; indicates that the prover has found a proof. In the case you mention, a proof for non-termination.)&lt;br /&gt;
&lt;br /&gt;
=== Scoring (proposals) ===&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;
* 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;
&lt;br /&gt;
== Rules of the Competition ==&lt;br /&gt;
=== Input Format === &lt;br /&gt;
Problems are 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 respectively.  &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;
=== Scoring ===&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 Sets and Problem Selection ===&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;
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;
&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;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1097</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1097"/>
		<updated>2010-05-25T08:36:38Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: new structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides general information on the complexity category;&lt;br /&gt;
(potential) tool authors or others that may want to join the discussion &lt;br /&gt;
on various aspects of the category can also go directly to the &lt;br /&gt;
[[Complexity:Rules|discussion and rules page]]; aficionados &lt;br /&gt;
may be interested in the [[Complexity:Techniques|techniques page]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
It is a  challenging topic to automatically determine  upper and lower bounds on&lt;br /&gt;
the complexity  of term rewrite systems (TRSs for short).  &lt;br /&gt;
Here complexity of a TRS basically refers to the maximal length of derivations, &lt;br /&gt;
measured in the size of the initial terms.&lt;br /&gt;
Still, depending on rewrite strategies and restrictions on the&lt;br /&gt;
set of allowed starting terms, various notions of complexity exist. &lt;br /&gt;
The current focus of the competition is on providing&lt;br /&gt;
&amp;lt;em&amp;gt;polynomial upper bounds&amp;lt;/em&amp;gt; to the complexity of TRSs.&lt;br /&gt;
Presumably the competition will be extended to lower bounds soon.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Complexity Category ==&lt;br /&gt;
Currently, depending on considered set of starting terms and strategy, &lt;br /&gt;
the competition is divided into four categories:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! Derivational Complexity !! Runtime Complexity&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Full Rewriting&lt;br /&gt;
| DC &lt;br /&gt;
| RC&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Innermost Rewriting&lt;br /&gt;
| iDC&lt;br /&gt;
| iRC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Derivational complexity and runtime complexity differ in the sense that for &lt;br /&gt;
derivational complexity, no restrictions on the set of considered starting terms is put. &lt;br /&gt;
For runtime complexity however, only basic terms (i.e. terms where arguments &lt;br /&gt;
are formed from constructor symbols) are taken into account. &lt;br /&gt;
See for example [http://dx.doi.org/10.1007/978-3-540-71070-7_32 (Hirokawa, Moser, 2008)] &lt;br /&gt;
[http://arxiv.org/abs/0907.5527 (Moser, 2009)] &lt;br /&gt;
for further reading on the  notion of runtime&lt;br /&gt;
complexity.  &lt;br /&gt;
&lt;br /&gt;
Furthermore, we  distinguish  between  complexities&lt;br /&gt;
induced  by  full rewriting  as  opposed  to  complexities induced  by&lt;br /&gt;
innermost rewriting.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition ==&lt;br /&gt;
The complexity category is part of the termination competition since 2008.&lt;br /&gt;
The competition is currently hosted at [http://termcomp.uibk.ac.at/termcomp/home.seam], &lt;br /&gt;
where you can find results of the competitions from &lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=15991 2008]&lt;br /&gt;
and [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 2009].&lt;br /&gt;
&lt;br /&gt;
=== Important Dates ===&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! !! Deadline/Date&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Tool Submission&lt;br /&gt;
| TBA&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Problem Submission&lt;br /&gt;
| TBA&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;|Competition &lt;br /&gt;
| TBA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Participate ===&lt;br /&gt;
If you want to participate in the competition, &lt;br /&gt;
go to the [http://termcomp.uibk.ac.at/ Termination Competition Portal], create an account and add your tool. &lt;br /&gt;
Documentation concerning this process can be found&lt;br /&gt;
[http://termcomp.uibk.ac.at/termcomp/help/register.seam?cid=8144 here].&lt;br /&gt;
&lt;br /&gt;
Kindly note that in order to participate, your tool needs to be &lt;br /&gt;
[http://www.opensource.org/ &amp;lt;em&amp;gt;open source&amp;lt;/em&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
==== Participating Teams of Past and Upcoming Competitions ====&lt;br /&gt;
Here you can find a list (sorted by tool name) of participants of past competitions &lt;br /&gt;
and supposed participants of the upcoming competition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tool !! Internal Page !! text-align=&amp;quot;left&amp;quot;|Authors !! 2008 !! 2009 !! 2010&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.imn.htwk-leipzig.de/~waldmann/ Matchbox] &lt;br /&gt;
| [[Tools:Matchbox]]&lt;br /&gt;
| J. Waldmann&lt;br /&gt;
| ---&lt;br /&gt;
| x&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/tct TCT]&lt;br /&gt;
| [[Tools:TCT]]&lt;br /&gt;
| M. Avanzini, G. Moser, A. Schnabl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
! [http://cl-informatik.uibk.ac.at/software/ttt2 CaT]&lt;br /&gt;
| [[Tools:CaT]]&lt;br /&gt;
| M. Korp, C. Sternagel, H. Zankl&lt;br /&gt;
| x&lt;br /&gt;
| x&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An overview of the proof techniques applied by the participants in past competitions can be found [[Complexity_Techniques|here]].&lt;br /&gt;
&lt;br /&gt;
== Past Winners ==&lt;br /&gt;
In 2008, [[Tools:CaT|CaT]] was the winner of both derivational complexity categories, whereas&lt;br /&gt;
for runtime complexity only [[Tools:TCT|TCT]] participated. &lt;br /&gt;
In 2009, all categories where ruled by [[Tools:CaT|CaT]]. Congratulations! &lt;br /&gt;
&lt;br /&gt;
For detailed information on the testsuites employed and the actual results of the&lt;br /&gt;
tools see the [http://termcomp.uibk.ac.at termcomp] pages.&lt;br /&gt;
&lt;br /&gt;
== Overview of the Competition Rules ==&lt;br /&gt;
Problems are given in the new TPDB-format, see&lt;br /&gt;
[http://www.termination-portal.org/wiki/XTC_Format_Specification] and &lt;br /&gt;
are selected randomly from the newest version of the Termination Problem Database.&lt;br /&gt;
&lt;br /&gt;
In the selection process, emphasis is put onto selecting problems that &lt;br /&gt;
could not be automatically verified in past competitions, c.f. page [[Complexity:Rules#Problem Sets and Problem Selection|problem selection]]&lt;br /&gt;
for details. &lt;br /&gt;
Tools are ranked not only by number of succeeded runs, but in the scoring&lt;br /&gt;
also the preciseness of the bounds is taken into account. See page [[Complexity:Rules#scoring|scoring]] for further details.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the database is currently somehow biased towards termination problems. &lt;br /&gt;
We encourage everybody to submit new problems to the TPDB that are interesting from a complexity&lt;br /&gt;
related perspective. (In submission please indicate that these examples should go into the complexity benchmark.)&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1095</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=1095"/>
		<updated>2010-05-25T08:34:24Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: moved Complexity to Complexity:Old&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;
* 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 of the 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>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1096</id>
		<title>Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity&amp;diff=1096"/>
		<updated>2010-05-25T08:34:24Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: moved Complexity to Complexity:Old&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Complexity:Old]]&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=News:XTC_Format_Specification&amp;diff=708</id>
		<title>News:XTC Format Specification</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=News:XTC_Format_Specification&amp;diff=708"/>
		<updated>2009-02-24T14:31:15Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: New page: &amp;lt;!--    Please insert the corresponding information below so that    the news page can be generated automatically.     Line breaks are allowed! You may use MediaWiki syntax here to link to...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
   Please insert the corresponding information below so that&lt;br /&gt;
   the news page can be generated automatically.&lt;br /&gt;
&lt;br /&gt;
   Line breaks are allowed! You may use MediaWiki syntax here to link to articles, highlight text, ...&lt;br /&gt;
   Please add some date to the news entry (e.g. today's date for current news, a time period for the competition, ....).&lt;br /&gt;
   Example:&lt;br /&gt;
       |text = The [[WST]] takes place in [http://en.wikipedia.org/wiki/Juneau Juneau] this year!&lt;br /&gt;
       |date = Sep 8 - Nov 1, 2008&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{News&lt;br /&gt;
|text=XTC Format Specification: [[XTC_Format_Specification]]&lt;br /&gt;
|date=February 24, 2009&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=625</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=625"/>
		<updated>2008-10-30T09:41:09Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Problem selection */&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. &lt;br /&gt;
&lt;br /&gt;
Although there has been some discussion, unfortunately no agreement on a &lt;br /&gt;
new input format specific for the complexity category could be found. &lt;br /&gt;
Hence, as ad-hoc solution for the competition on November 1, the only demand from &lt;br /&gt;
the input is that it includes a well-formed description of a TRS, &lt;br /&gt;
all remaining annotations will be ignored. &lt;br /&gt;
To control the four subcategories, specific runme scripts are to be used. &lt;br /&gt;
&lt;br /&gt;
For the future, one could use an XML input format that is generated on the fly. &lt;br /&gt;
The below proposal extends the current proposal of an XML import/export format, &lt;br /&gt;
see [http://termination-portal.org/wiki/TPDB_XML_Format]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;complexity&amp;gt;&lt;br /&gt;
        &amp;lt;theory&amp;gt;&amp;lt;theorydecl&amp;gt;Multiple&amp;lt;/theorydecl&amp;gt;&amp;lt;/theory&amp;gt;&lt;br /&gt;
        &amp;lt;startterm&amp;gt;&lt;br /&gt;
            &amp;lt;CONSTRUCTOR-BASED/&amp;gt;&lt;br /&gt;
            &amp;lt;FULL/&amp;gt;&lt;br /&gt;
            &amp;lt;AUTOMATON&amp;gt;&lt;br /&gt;
                &amp;lt;automatonstuff/&amp;gt;&lt;br /&gt;
            &amp;lt;/AUTOMATON&amp;gt;&lt;br /&gt;
        &amp;lt;/startterm&amp;gt;&lt;br /&gt;
        &amp;lt;strategy&amp;gt;&lt;br /&gt;
            &amp;lt;INNERMOST/&amp;gt; |&lt;br /&gt;
            &amp;lt;OUTERMOST/&amp;gt; |&lt;br /&gt;
            &amp;lt;CONTEXTSENSITIVE&amp;gt;&lt;br /&gt;
                &amp;lt;contextsensitivestuff/&amp;gt;           &lt;br /&gt;
            &amp;lt;/CONTEXTSENSITIVE&amp;gt;&lt;br /&gt;
            |&amp;lt;NONE/&amp;gt;&lt;br /&gt;
        &amp;lt;/strategy&amp;gt;&lt;br /&gt;
        &amp;lt;conditional type=&amp;quot;ltr|join&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;TRS|SRS&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;/complexity&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
&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 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 the sub-category concerned with &amp;quot;derivational complexity&amp;quot; and &amp;quot;full rewriting&amp;quot;, we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems. (The below given examples show &lt;br /&gt;
that duplicating systems in conjunction with an innermost strategy need not be of exponential&lt;br /&gt;
derivational complexity.)&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;&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),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;
== 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;
&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;
* 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 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;resolved for the competition on Nov 1, see above, for suggestion of XML input format&amp;lt;/em&amp;gt;&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;
== 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;br /&gt;
* N. Hirokawa (Hydra), but might need more time&lt;br /&gt;
* M. Korp, C. Sternagel, H. Zankl (CaT)&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=614</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=614"/>
		<updated>2008-10-28T19:48:12Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Syntax/Semantics for Input/Output */&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. &lt;br /&gt;
&lt;br /&gt;
Although there has been some discussion, unfortunately no agreement on a &lt;br /&gt;
new input format specific for the complexity category could be found. &lt;br /&gt;
Hence, as ad-hoc solution for the competition on November 1, the only demand from &lt;br /&gt;
the input is that it includes a well-formed description of a TRS, &lt;br /&gt;
all remaining annotations will be ignored. &lt;br /&gt;
To control the four subcategories, specific runme scripts are to be used. &lt;br /&gt;
&lt;br /&gt;
For the future, one could use an XML input format that is generated on the fly. &lt;br /&gt;
The below proposal extends the current proposal of an XML import/export format, &lt;br /&gt;
see [http://termination-portal.org/wiki/TPDB_XML_Format]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;complexity&amp;gt;&lt;br /&gt;
        &amp;lt;theory&amp;gt;&amp;lt;theorydecl&amp;gt;Multiple&amp;lt;/theorydecl&amp;gt;&amp;lt;/theory&amp;gt;&lt;br /&gt;
        &amp;lt;startterm&amp;gt;&lt;br /&gt;
            &amp;lt;CONSTRUCTOR-BASED/&amp;gt;&lt;br /&gt;
            &amp;lt;FULL/&amp;gt;&lt;br /&gt;
            &amp;lt;AUTOMATON&amp;gt;&lt;br /&gt;
                &amp;lt;automatonstuff/&amp;gt;&lt;br /&gt;
            &amp;lt;/AUTOMATON&amp;gt;&lt;br /&gt;
        &amp;lt;/startterm&amp;gt;&lt;br /&gt;
        &amp;lt;strategy&amp;gt;&lt;br /&gt;
            &amp;lt;INNERMOST/&amp;gt; |&lt;br /&gt;
            &amp;lt;OUTERMOST/&amp;gt; |&lt;br /&gt;
            &amp;lt;CONTEXTSENSITIVE&amp;gt;&lt;br /&gt;
                &amp;lt;contextsensitivestuff/&amp;gt;           &lt;br /&gt;
            &amp;lt;/CONTEXTSENSITIVE&amp;gt;&lt;br /&gt;
            |&amp;lt;NONE/&amp;gt;&lt;br /&gt;
        &amp;lt;/strategy&amp;gt;&lt;br /&gt;
        &amp;lt;conditional type=&amp;quot;ltr|join&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;TRS|SRS&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;/complexity&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
&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 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 the sub-category concerned with &amp;quot;derivational complexity&amp;quot; and &amp;quot;full rewriting&amp;quot;, we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems. (The below given examples show &lt;br /&gt;
that duplicating systems in conjunction with an innermost strategy need not be of exponential&lt;br /&gt;
derivational complexity.)&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;&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),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))&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 = {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= {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),O(n))&amp;quot; or &amp;quot;YES(?,O(n))&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),O(n))&amp;quot; or &amp;quot;YES(?,O(n))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
&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;
* 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 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;resolved for the competition on Nov 1, see above, for suggestion of XML input format&amp;lt;/em&amp;gt;&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;
== 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;br /&gt;
* N. Hirokawa (Hydra), but might need more time&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=613</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=613"/>
		<updated>2008-10-28T19:00:55Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Syntax/Semantics for Input/Output */&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. &lt;br /&gt;
&lt;br /&gt;
Although there has been some discussion, unfortunately no agreement on a &lt;br /&gt;
new input format specific for the complexity category could be found. &lt;br /&gt;
Hence, as ad-hoc solution for the competition on November 1, the only demand from &lt;br /&gt;
the input is that it includes a well-formed description of a TRS, &lt;br /&gt;
all remaining annotations will be ignored. &lt;br /&gt;
To control the four subcategories, specific runme scripts are to be used. &lt;br /&gt;
&lt;br /&gt;
For the future, one could use an XML input format that is generated on the fly. &lt;br /&gt;
The below proposal extends the earlier proposal on an XML import/export format, &lt;br /&gt;
see [http://termination-portal.org/wiki/TPDB_XML_Format]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;complexity&amp;gt;&lt;br /&gt;
        &amp;lt;theory&amp;gt;&amp;lt;theorydecl&amp;gt;Multiple&amp;lt;/theorydecl&amp;gt;&amp;lt;/theory&amp;gt;&lt;br /&gt;
        &amp;lt;startterm&amp;gt;&lt;br /&gt;
            &amp;lt;CONSTRUCTOR-BASED/&amp;gt;&lt;br /&gt;
            &amp;lt;FULL/&amp;gt;&lt;br /&gt;
            &amp;lt;AUTOMATON&amp;gt;&lt;br /&gt;
                &amp;lt;automatonstuff/&amp;gt;&lt;br /&gt;
            &amp;lt;/AUTOMATON&amp;gt;&lt;br /&gt;
        &amp;lt;/startterm&amp;gt;&lt;br /&gt;
        &amp;lt;strategy&amp;gt;&lt;br /&gt;
            &amp;lt;INNERMOST/&amp;gt; |&lt;br /&gt;
            &amp;lt;OUTERMOST/&amp;gt; |&lt;br /&gt;
            &amp;lt;CONTEXTSENSITIVE&amp;gt;&lt;br /&gt;
                &amp;lt;contextsensitivestuff/&amp;gt;           &lt;br /&gt;
            &amp;lt;/CONTEXTSENSITIVE&amp;gt;&lt;br /&gt;
            |&amp;lt;NONE/&amp;gt;&lt;br /&gt;
        &amp;lt;/strategy&amp;gt;&lt;br /&gt;
        &amp;lt;conditional type=&amp;quot;ltr|join&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;TRS|SRS&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;/complexity&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
&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 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 the sub-category concerned with &amp;quot;derivational complexity&amp;quot; and &amp;quot;full rewriting&amp;quot;, we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems. (The below given examples show &lt;br /&gt;
that duplicating systems in conjunction with an innermost strategy need not be of exponential&lt;br /&gt;
derivational complexity.)&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;&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),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))&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 = {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= {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),O(n))&amp;quot; or &amp;quot;YES(?,O(n))&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),O(n))&amp;quot; or &amp;quot;YES(?,O(n))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
&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;
* 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 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;resolved for the competition on Nov 1, see above, for suggestion of XML input format&amp;lt;/em&amp;gt;&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;
== 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;br /&gt;
* N. Hirokawa (Hydra), but might need more time&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=612</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=612"/>
		<updated>2008-10-28T18:46:05Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Syntax/Semantics for Input/Output */&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. &lt;br /&gt;
&lt;br /&gt;
Although there has been some discussion, unfortunately no agreement on a &lt;br /&gt;
new input format specific for the complexity category could be found. &lt;br /&gt;
Hence, as ad-hoc solution for the competition on November 1, the only demand from &lt;br /&gt;
the input is that it includes a well-formed description of a TRS, &lt;br /&gt;
all remaining annotations will be ignored. &lt;br /&gt;
To control the four subcategories, specific runme scripts are to be used. &lt;br /&gt;
&lt;br /&gt;
For the future, we propose to use an XML input format in the future, &lt;br /&gt;
that extends the earlier proposal on an XML format, see [http://termination-portal.org/wiki/TPDB_XML_Format]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;complexity&amp;gt;&lt;br /&gt;
        &amp;lt;theory&amp;gt;&amp;lt;theorydecl&amp;gt;Multiple&amp;lt;/theorydecl&amp;gt;&amp;lt;/theory&amp;gt;&lt;br /&gt;
        &amp;lt;startterm&amp;gt;&lt;br /&gt;
            &amp;lt;CONSTRUCTOR-BASED/&amp;gt;&lt;br /&gt;
            &amp;lt;FULL/&amp;gt;&lt;br /&gt;
            &amp;lt;AUTOMATON&amp;gt;&lt;br /&gt;
                &amp;lt;automatonstuff/&amp;gt;&lt;br /&gt;
            &amp;lt;/AUTOMATON&amp;gt;&lt;br /&gt;
        &amp;lt;/startterm&amp;gt;&lt;br /&gt;
        &amp;lt;strategy&amp;gt;&lt;br /&gt;
            &amp;lt;INNERMOST/&amp;gt; |&lt;br /&gt;
            &amp;lt;OUTERMOST/&amp;gt; |&lt;br /&gt;
            &amp;lt;CONTEXTSENSITIVE&amp;gt;&lt;br /&gt;
                &amp;lt;contextsensitivestuff/&amp;gt;           &lt;br /&gt;
            &amp;lt;/CONTEXTSENSITIVE&amp;gt;&lt;br /&gt;
            |&amp;lt;NONE/&amp;gt;&lt;br /&gt;
        &amp;lt;/strategy&amp;gt;&lt;br /&gt;
        &amp;lt;conditional type=&amp;quot;ltr|join&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;TRS|SRS&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;/complexity&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
&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 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 the sub-category concerned with &amp;quot;derivational complexity&amp;quot; and &amp;quot;full rewriting&amp;quot;, we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems. (The below given examples show &lt;br /&gt;
that duplicating systems in conjunction with an innermost strategy need not be of exponential&lt;br /&gt;
derivational complexity.)&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;&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),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))&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 = {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= {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),O(n))&amp;quot; or &amp;quot;YES(?,O(n))&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),O(n))&amp;quot; or &amp;quot;YES(?,O(n))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
&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;
* 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 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;resolved for the competition on Nov 1, see above, for suggestion of XML input format&amp;lt;/em&amp;gt;&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;
== 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;br /&gt;
* N. Hirokawa (Hydra), but might need more time&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=611</id>
		<title>Complexity:Old</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Complexity:Old&amp;diff=611"/>
		<updated>2008-10-28T15:37:28Z</updated>

		<summary type="html">&lt;p&gt;Georg.moser: /* Syntax/Semantics for Input/Output */&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. &lt;br /&gt;
&lt;br /&gt;
Although there has been some discussion, unfortunately no agreement on a &lt;br /&gt;
new input format specific for the complexity category could be found. &lt;br /&gt;
Hence, as ad-hoc solution for the competition on November 1, the only demand from &lt;br /&gt;
the input is that it includes a well-formed description of a TRS, &lt;br /&gt;
all remaining annotations will be ignored. &lt;br /&gt;
To control the four subcategories, specific runme scripts are to be used. &lt;br /&gt;
&lt;br /&gt;
For the future, we propose to use an XML input format in the future, &lt;br /&gt;
that extends the earlier proposal on an XML format, see [http://termination-portal.org/wiki/TPDB_XML_Format]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;complexity&amp;gt;&lt;br /&gt;
        &amp;lt;theory&amp;gt;&amp;lt;theorydecl&amp;gt;Multiple&amp;lt;/theorydecl&amp;gt;&amp;lt;/theory&amp;gt;&lt;br /&gt;
        &amp;lt;startterm&amp;gt;&lt;br /&gt;
            &amp;lt;CONSTRUCTOR-BASED/&amp;gt;&lt;br /&gt;
            &amp;lt;FULL/&amp;gt;&lt;br /&gt;
            &amp;lt;AUTOMATON&amp;gt;&lt;br /&gt;
                &amp;lt;automatonstuff/&amp;gt;&lt;br /&gt;
            &amp;lt;/AUTOMATON&amp;gt;&lt;br /&gt;
        &amp;lt;/startterm&amp;gt;&lt;br /&gt;
        &amp;lt;strategy&amp;gt;&lt;br /&gt;
            &amp;lt;INNERMOST/&amp;gt; |&lt;br /&gt;
            &amp;lt;OUTERMOST/&amp;gt; |&lt;br /&gt;
            &amp;lt;CONTEXTSENSITIVE&amp;gt;&lt;br /&gt;
                &amp;lt;contextsensitivestuff/&amp;gt;           &lt;br /&gt;
            &amp;lt;/CONTEXTSENSITIVE&amp;gt;&lt;br /&gt;
            |&amp;lt;NONE/&amp;gt;&lt;br /&gt;
        &amp;lt;/strategy&amp;gt;&lt;br /&gt;
        &amp;lt;conditional type=&amp;quot;ltr|join&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;TRS|SRS&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;status&amp;gt;POLYNOMIAL|EXPONENTIAL&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;/complexity&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
&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 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 the sub-category concerned with &amp;quot;derivational complexity&amp;quot; and &amp;quot;full rewriting&amp;quot;, we&lt;br /&gt;
propose to  restrict our attention  to non-duplicating systems. (The below given examples show &lt;br /&gt;
that duplicating systems in conjunction with an innermost strategy need not be of exponential&lt;br /&gt;
derivational complexity.)&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;&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),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))&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 = {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= {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),O(n))&amp;quot; or &amp;quot;YES(?,O(n))&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),O(n))&amp;quot; or &amp;quot;YES(?,O(n))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
&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;
* 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 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;resolved for the competition on Nov 1, see above, for suggestion of XML input format&amp;lt;/em&amp;gt;&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;
== 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;br /&gt;
* N. Hirokawa (Hydra), but might need more time&lt;/div&gt;</summary>
		<author><name>Georg.moser</name></author>
		
	</entry>
</feed>