<?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=JCKassing</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=JCKassing"/>
	<link rel="alternate" type="text/html" href="http://termination-portal.org/wiki/Special:Contributions/JCKassing"/>
	<updated>2026-04-22T11:14:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Suggestions&amp;diff=2184</id>
		<title>Suggestions</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Suggestions&amp;diff=2184"/>
		<updated>2026-03-19T10:44:34Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Updated suggestions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt; Suggestions to improve this web site &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
&lt;br /&gt;
* create/fill the pages on the different categories used in the termination competition (listed here: http://www.termination-portal.org/wiki/Termination_Competition).&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2183</id>
		<title>Termination Competition</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2183"/>
		<updated>2026-03-19T10:38:03Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Complexity pages&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 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 Termination Workshop 2003 (Valencia),&lt;br /&gt;
the community then decided to install an annual termination competition, and to collect benchmarks,&lt;br /&gt;
to spur the development of tools and new termination techniques.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Competitions ==&lt;br /&gt;
&lt;br /&gt;
* The [[Termination Competition 2025]] will be held during [https://www.imn.htwk-leipzig.de/WST2025/ WST 2025], September 3-4, Leipzig, Germany.&lt;br /&gt;
&lt;br /&gt;
== Competition Categories ==&lt;br /&gt;
&lt;br /&gt;
Currently, the competition features the following categories. Since 2007 some of the categories also have [[Certified_Termination|certified categories]], where an additional certifier checks the output of the tools. Categories that were used in the past but not included in the three most recent competitions are marked with an &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories consider the termination of &amp;lt;b&amp;gt;rewrite systems&amp;lt;/b&amp;gt;, a foundational computational model used to represent symbolic computation and program transformations. &lt;br /&gt;
The goal is to automatically prove that no infinite rewrite sequences are possible for the given system. &lt;br /&gt;
Different categories capture variations of rewriting such as relative rewriting, context-sensitive rewriting, conditional rules, or restrictions on the rewriting strategy (e.g., innermost or outermost rewriting).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[TRS Standard|TRS Standard]]&lt;br /&gt;
* [[TRS Relative|TRS Relative]]&lt;br /&gt;
* [[TRS Contextsensitive|TRS Contextsensitive]]&lt;br /&gt;
* [[TRS Equational|TRS Equational]]&lt;br /&gt;
* [[TRS Innermost|TRS Innermost]]&lt;br /&gt;
* [[TRS Outermost|TRS Outermost]]&lt;br /&gt;
* [[TRS Conditional|TRS Conditional]]&lt;br /&gt;
* [[TRS Conditional - Operational Termination|TRS Conditional - Operational Termination]]&lt;br /&gt;
* [[SRS Standard|SRS Standard]]&lt;br /&gt;
* [[SRS Relative|SRS Relative]]&lt;br /&gt;
* [[Cycle_Rewriting|Cycle Rewriting]] &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;&lt;br /&gt;
* [[Higher_Order|Higher Order Rewriting]] (since 2010)&lt;br /&gt;
* [[ITRS|ITRS Innermost]] (since 2014)&lt;br /&gt;
* [[Integer Transition Systems|ITS]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Termination of Probabilistic Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories address &amp;lt;b&amp;gt; probabilistic rewrite systems &amp;lt;/b&amp;gt;, where rewrite rules are applied according to probability distributions. &lt;br /&gt;
Instead of classical termination, the goal is to prove almost-sure termination, i.e., that infinite executions occur with probability zero,&lt;br /&gt;
or strong almost-sure termination, i.e., that the expected runtime is finite. &lt;br /&gt;
This lifts termination analysis to models that capture randomized algorithms or stochastic behavior.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[PTRS Standard|PTRS Standard]]&lt;br /&gt;
* [[PTRS Innermost|PTRS Innermost]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, there are only categories regarding probabilistic rewrite systems, &lt;br /&gt;
but an extension to probabilistic imperative programs may be possible in future competitions.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Programs ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on proving termination of &amp;lt;b&amp;gt; user-friendly programming languages &amp;lt;/b&amp;gt; used in industry. &lt;br /&gt;
The categories differ by the source programming language or program model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Logic_Programming|Termination of logic programs]]&lt;br /&gt;
* [[Functional_Programming|Termination of functional programs]] (since 2007)&lt;br /&gt;
* [[Java_Bytecode|Termination of Java Bytecode programs]] (since 2009)&lt;br /&gt;
* [[C_Programs|Termination of C programs]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories evaluate tools that automatically analyze the &amp;lt;b&amp;gt; asymptotic complexity of rewrite systems &amp;lt;/b&amp;gt;. &lt;br /&gt;
Instead of only proving termination, the goal is to derive upper bounds on the length of rewrite sequences, &lt;br /&gt;
typically expressed as functions of the input size. &lt;br /&gt;
Different categories measure difference runtime complexities under various rewriting strategies and different restrictions on the initial start term.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[TRS Derivational Complexity|TRS Derivational Complexity]]&lt;br /&gt;
* [[TRS Innermost Derivational Complexity|TRS Innermost Derivational Complexity]]&lt;br /&gt;
* [[TRS Runtime Complexity|TRS Runtime Complexity]]&lt;br /&gt;
* [[TRS Innermost Runtime Complexity|TRS Innermost Runtime Complexity]]&lt;br /&gt;
* [[TRS Parallel Innermost Derivational Complexity|TRS Parallel Innermost Derivational Complexity]]&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS Complexity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity Analysis ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on automatically determining &amp;lt;b&amp;gt; time complexity bounds for programs written in user-friendly programming languages &amp;lt;/b&amp;gt;. &lt;br /&gt;
Tools analyze the program’s control flow, data dependencies, and loops to derive asymptotic upper bounds on runtime with respect to the input size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[C_Complexity|Complexity of C programs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Competition Benchmarks ==&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;
== Organization ==&lt;br /&gt;
&lt;br /&gt;
Questions and suggestions regarding the competition&lt;br /&gt;
should go to [[Termtools|the termtools mailing list]].&lt;br /&gt;
Discussion is open and happens primarily on the list.&lt;br /&gt;
Decisions will be made by votes among the [[Termination Competition Steering Committee]], with current members&lt;br /&gt;
* [https://ffrohn.github.io Florian Frohn] (Chair), RWTH Aachen&lt;br /&gt;
* [https://verify.rwth-aachen.de/giesl/ Jürgen Giesl], RWTH Aachen&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/ Georg Moser], University of Innsbruck&lt;br /&gt;
* [http://lim.univ-reunion.fr/staff/epayet/ Étienne Payet], Université de La Réunion&lt;br /&gt;
* [https://group-mmm.org/~ayamada/ Akihisa Yamada], AIST Tokyo Waterfront&lt;br /&gt;
* Dieter Hofbauer, ASW Saarland&lt;br /&gt;
&lt;br /&gt;
From 2004 till 2007, the competition organizer was Claude March&amp;amp;eacute;, [http://www.lri.fr/~marche/termination-competition/ Paris].&lt;br /&gt;
From 2008 to 2013 the competition was run by Ren&amp;amp;eacute; Thiemann, [http://termcomp.uibk.ac.at Innsbruck].&lt;br /&gt;
From 2014 to 2017, the competition organizer was Johannes Waldmann. Jobs were run on the [https://www.starexec.org/ Star Exec] platform at U Iowa.&lt;br /&gt;
From 2018 to 2023, the organizer was Akihisa Yamada.&lt;br /&gt;
From 2024 on, the organizer is Florian Frohn.&lt;br /&gt;
&lt;br /&gt;
== History of Termination Competitions ==&lt;br /&gt;
&lt;br /&gt;
A list of all competitions that have been taken place can be found [[Termination Competition History|here]].&lt;br /&gt;
&lt;br /&gt;
==== Results ====&lt;br /&gt;
&lt;br /&gt;
The results of (almost) all competitions are available [https://termcomp.github.io/ here]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Parallel_Innermost_Derivational_Complexity&amp;diff=2182</id>
		<title>TRS Parallel Innermost Derivational Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Parallel_Innermost_Derivational_Complexity&amp;diff=2182"/>
		<updated>2026-03-19T10:36:30Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Parallel Innermost Derivational Complexity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Innermost Derivational Complexity category is concerned with the question &amp;quot;What is the time complexity of algorithms represented by a given TRS with relation to the size of the initial term if we only consider innermost rewriting&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
Analyzing the time complexity of a rewrite system is interesting because it reveals how its performance scales as input size grows. &lt;br /&gt;
&lt;br /&gt;
Moreover, since innermost rewriting (call-by-value) is one of the most important evaluation strategies, &lt;br /&gt;
it is an interesting restriction to find bounds on the innermost time complexity.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
TODO: clarify the difference to [TRS Innermost Derivational Complexity | TRS Innermost Derivational Complexity]! &lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]] and [https://project-coco.uibk.ac.at/ARI/trs.php here].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules.&lt;br /&gt;
&lt;br /&gt;
Let |t| be the size of the term t, i.e., the number of its positions. &lt;br /&gt;
Then the &amp;lt;i&amp;gt;innermost derivation height&amp;lt;/i&amp;gt; dh(t) of a term t is the supremum over all &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;-rewrite sequences starting with t.&lt;br /&gt;
&lt;br /&gt;
We split the function symbols into defined symbols (those that occur at the root of a left-hand side of a rule, the algorithms)&lt;br /&gt;
and constructor symbols (the remaining function symbols, the data).&lt;br /&gt;
A basic term t has a defined symbol at the root and otherwise only constructors and variables, i.e., it represents an algorithm that is given fixed input data.&lt;br /&gt;
The set of all basic terms is denoted T&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;i&amp;gt;innermost derivational complexity&amp;lt;/i&amp;gt; of an ARS is a function that maps every natural number n&lt;br /&gt;
to the greatest derivation height of all basic terms of size at most n, i.e., dc&amp;lt;sub&amp;gt;&amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; &amp;lt;/sub&amp;gt;(n) = sup{m | t ∈ T&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;, |t| &amp;lt;= n, t &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; s}.&lt;br /&gt;
&lt;br /&gt;
The goal is to find an asymptotic upper bound and lower bound on the innermost derivational complexity of a given TRS R.&lt;br /&gt;
Possible complexity classes are O(1), O(n), O(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;), ..., O(EXP), O(2-EXP).&lt;br /&gt;
The '?' indicates that no bound was found.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: What is the asymptotic innermost derivational complexity of R?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;WORST_CASE(f(n),g(n))&amp;lt;/b&amp;gt;&amp;quot; where f(n) and g(n) are lower and upper complexity bounds, respectively, or '?', followed by a proof of these bounds, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove any complexity bound).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Innermost_Runtime_Complexity&amp;diff=2181</id>
		<title>TRS Innermost Runtime Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Innermost_Runtime_Complexity&amp;diff=2181"/>
		<updated>2026-03-19T10:34:45Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Innermost Runtime Complexity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Innermost Runtime Complexity category is concerned with the question &amp;quot;What is the time complexity of algorithms represented by a given TRS with relation to the size of the initial term if we only consider innermost rewriting&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
Analyzing the time complexity of a rewrite system is interesting because it reveals how its performance scales as input size grows. &lt;br /&gt;
&lt;br /&gt;
While derivational complexity considers arbitrary initial terms, runtime complexity restricts the initial terms to model an algorithm that is given fixed data as arguments,&lt;br /&gt;
which relates to the intuitive definition of time complexity.&lt;br /&gt;
&lt;br /&gt;
Moreover, since innermost rewriting (call-by-value) is one of the most important evaluation strategies, &lt;br /&gt;
it is an interesting restriction to find bounds on the innermost time complexity.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]] and [https://project-coco.uibk.ac.at/ARI/trs.php here].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules.&lt;br /&gt;
&lt;br /&gt;
Let |t| be the size of the term t, i.e., the number of its positions. &lt;br /&gt;
Then the &amp;lt;i&amp;gt;innermost derivation height&amp;lt;/i&amp;gt; dh(t) of a term t is the supremum over all &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;-rewrite sequences starting with t.&lt;br /&gt;
&lt;br /&gt;
We split the function symbols into defined symbols (those that occur at the root of a left-hand side of a rule, the algorithms)&lt;br /&gt;
and constructor symbols (the remaining function symbols, the data).&lt;br /&gt;
A basic term t has a defined symbol at the root and otherwise only constructors and variables, i.e., it represents an algorithm that is given fixed input data.&lt;br /&gt;
The set of all basic terms is denoted T&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;i&amp;gt;innermost runtime complexity&amp;lt;/i&amp;gt; of an ARS is a function that maps every natural number n&lt;br /&gt;
to the greatest derivation height of all basic terms of size at most n, i.e., dc&amp;lt;sub&amp;gt;&amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; &amp;lt;/sub&amp;gt;(n) = sup{m | t ∈ T&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;, |t| &amp;lt;= n, t &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; s}.&lt;br /&gt;
&lt;br /&gt;
The goal is to find an asymptotic upper bound and lower bound on the innermost runtime complexity of a given TRS R.&lt;br /&gt;
Possible complexity classes are O(1), O(n), O(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;), ..., O(EXP), O(2-EXP).&lt;br /&gt;
The '?' indicates that no bound was found.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: What is the asymptotic innermost runtime complexity of R?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;WORST_CASE(f(n),g(n))&amp;lt;/b&amp;gt;&amp;quot; where f(n) and g(n) are lower and upper complexity bounds, respectively, or '?', followed by a proof of these bounds, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove any complexity bound).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Runtime_Complexity&amp;diff=2180</id>
		<title>TRS Runtime Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Runtime_Complexity&amp;diff=2180"/>
		<updated>2026-03-19T10:33:01Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Runtime Complexity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Runtime Complexity category is concerned with the question &amp;quot;What is the time complexity of algorithms represented by a given TRS with relation to the size of the initial term&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
Analyzing the time complexity of a rewrite system is interesting because it reveals how its performance scales as input size grows. &lt;br /&gt;
&lt;br /&gt;
While derivational complexity considers arbitrary initial terms, runtime complexity restricts the initial terms to model an algorithm that is given fixed data as arguments,&lt;br /&gt;
which relates to the intuitive definition of time complexity.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]] and [https://project-coco.uibk.ac.at/ARI/trs.php here].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules.&lt;br /&gt;
&lt;br /&gt;
Let |t| be the size of the term t, i.e., the number of its positions. &lt;br /&gt;
Then the &amp;lt;i&amp;gt;derivation height&amp;lt;/i&amp;gt; dh(t) of a term t is the supremum over all &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;-rewrite sequences starting with t.&lt;br /&gt;
&lt;br /&gt;
We split the function symbols into defined symbols (those that occur at the root of a left-hand side of a rule, the algorithms)&lt;br /&gt;
and constructor symbols (the remaining function symbols, the data).&lt;br /&gt;
A basic term t has a defined symbol at the root and otherwise only constructors and variables, i.e., it represents an algorithm that is given fixed input data.&lt;br /&gt;
The set of all basic terms is denoted T&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;i&amp;gt;runtime complexity&amp;lt;/i&amp;gt; of an ARS is a function that maps every natural number n&lt;br /&gt;
to the greatest derivation height of all basic terms of size at most n, i.e., dc&amp;lt;sub&amp;gt;&amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; &amp;lt;/sub&amp;gt;(n) = sup{m | t ∈ T&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;, |t| &amp;lt;= n, t &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; s}.&lt;br /&gt;
&lt;br /&gt;
The goal is to find an asymptotic upper bound and lower bound on the runtime complexity of a given TRS R.&lt;br /&gt;
Possible complexity classes are O(1), O(n), O(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;), ..., O(EXP), O(2-EXP).&lt;br /&gt;
The '?' indicates that no bound was found.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: What is the asymptotic runtime complexity of R?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;WORST_CASE(f(n),g(n))&amp;lt;/b&amp;gt;&amp;quot; where f(n) and g(n) are lower and upper complexity bounds, respectively, or '?', followed by a proof of these bounds, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove any complexity bound).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Innermost_Derivational_Complexity&amp;diff=2179</id>
		<title>TRS Innermost Derivational Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Innermost_Derivational_Complexity&amp;diff=2179"/>
		<updated>2026-03-19T10:26:59Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Innermost Derivational Complexity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Innermost Derivational Complexity category is concerned with the question &amp;quot;What is the time complexity of a given TRS with relation to the size of the initial term if we only consider innermost rewriting&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
Analyzing the time complexity of a rewrite system is interesting because it reveals how its performance scales as input size grows. &lt;br /&gt;
his helps to detect rewrite systems that seem fine for small inputs but become impractical for large problems.&lt;br /&gt;
&lt;br /&gt;
Moreover, since innermost rewriting (call-by-value) is one of the most important evaluation strategies, &lt;br /&gt;
it is an interesting restriction to find bounds on the innermost time complexity.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]] and [https://project-coco.uibk.ac.at/ARI/trs.php here].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules.&lt;br /&gt;
&lt;br /&gt;
Let |t| be the size of the term t, i.e., the number of its positions. &lt;br /&gt;
Then the &amp;lt;i&amp;gt;innermost derivation height&amp;lt;/i&amp;gt; dh(t) of a term t is the supremum over all innermost &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;-rewrite sequences starting with t.&lt;br /&gt;
The &amp;lt;i&amp;gt;innermost derivational complexity&amp;lt;/i&amp;gt; of an ARS is a function that maps every natural number n&lt;br /&gt;
to the greatest derivation height of all objects of size at most n, i.e., dc&amp;lt;sub&amp;gt;&amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; &amp;lt;/sub&amp;gt;(n) = sup{m | |t| &amp;lt;= n, t &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; s}.&lt;br /&gt;
&lt;br /&gt;
The goal is to find an asymptotic upper bound and lower bound on the derivational complexity of a given TRS R.&lt;br /&gt;
Possible complexity classes are O(1), O(n), O(n^2), O(n^3), ..., O(EXP), O(2-EXP).&lt;br /&gt;
The '?' indicates that no bound was found.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: What is the asymptotic innermost derivational complexity of R?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;WORST_CASE(f(n),g(n))&amp;lt;/b&amp;gt;&amp;quot; where f(n) and g(n) are lower and upper complexity bounds, respectively, or '?', followed by a proof of these bounds, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove any complexity bound).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Derivational_Complexity&amp;diff=2178</id>
		<title>TRS Derivational Complexity</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Derivational_Complexity&amp;diff=2178"/>
		<updated>2026-03-19T10:23:56Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Derivational Complexity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Derivational Complexity category is concerned with the question &amp;quot;What is the time complexity of a given TRS with relation to the size of the initial term&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
Analyzing the time complexity of a rewrite system is interesting because it reveals how its performance scales as input size grows. &lt;br /&gt;
his helps to detect rewrite systems that seem fine for small inputs but become impractical for large problems.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]] and [https://project-coco.uibk.ac.at/ARI/trs.php here].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules.&lt;br /&gt;
&lt;br /&gt;
Let |t| be the size of the term t, i.e., the number of its positions. &lt;br /&gt;
Then the &amp;lt;i&amp;gt;derivation height&amp;lt;/i&amp;gt; dh(t) of a term t is the supremum over all &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;-rewrite sequences starting with t.&lt;br /&gt;
The &amp;lt;i&amp;gt;derivational complexity&amp;lt;/i&amp;gt; of an ARS is a function that maps every natural number n&lt;br /&gt;
to the greatest derivation height of all objects of size at most n, i.e., dc&amp;lt;sub&amp;gt;&amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; &amp;lt;/sub&amp;gt;(n) = sup{m | |t| &amp;lt;= n, t &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; s}.&lt;br /&gt;
&lt;br /&gt;
The goal is to find an asymptotic upper bound and lower bound on the derivational complexity of a given TRS R.&lt;br /&gt;
Possible complexity classes are O(1), O(n), O(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;), ..., O(EXP), O(2-EXP).&lt;br /&gt;
The '?' indicates that no bound was found.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: What is the asymptotic derivational complexity of R?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;WORST_CASE(f(n),g(n))&amp;lt;/b&amp;gt;&amp;quot; where f(n) and g(n) are lower and upper complexity bounds, respectively, or '?', followed by a proof of these bounds, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove any complexity bound).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=String_Rewriting&amp;diff=2177</id>
		<title>String Rewriting</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=String_Rewriting&amp;diff=2177"/>
		<updated>2026-03-18T11:46:09Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Transition_Systems&amp;diff=2176</id>
		<title>Transition Systems</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Transition_Systems&amp;diff=2176"/>
		<updated>2026-03-18T11:43:18Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: No Category anymore&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Syntax and semantics of the format are presented in [https://www.microsoft.com/en-us/research/publication/termcomp-proposal-pushdown-systems-as-a-model-for-programs-with-procedures/].&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2175</id>
		<title>Termination Competition</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2175"/>
		<updated>2026-03-18T11:41:02Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added all termination category subpages&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 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 Termination Workshop 2003 (Valencia),&lt;br /&gt;
the community then decided to install an annual termination competition, and to collect benchmarks,&lt;br /&gt;
to spur the development of tools and new termination techniques.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Competitions ==&lt;br /&gt;
&lt;br /&gt;
* The [[Termination Competition 2025]] will be held during [https://www.imn.htwk-leipzig.de/WST2025/ WST 2025], September 3-4, Leipzig, Germany.&lt;br /&gt;
&lt;br /&gt;
== Competition Categories ==&lt;br /&gt;
&lt;br /&gt;
Currently, the competition features the following categories. Since 2007 some of the categories also have [[Certified_Termination|certified categories]], where an additional certifier checks the output of the tools. Categories that were used in the past but not included in the three most recent competitions are marked with an &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories consider the termination of &amp;lt;b&amp;gt;rewrite systems&amp;lt;/b&amp;gt;, a foundational computational model used to represent symbolic computation and program transformations. &lt;br /&gt;
The goal is to automatically prove that no infinite rewrite sequences are possible for the given system. &lt;br /&gt;
Different categories capture variations of rewriting such as relative rewriting, context-sensitive rewriting, conditional rules, or restrictions on the rewriting strategy (e.g., innermost or outermost rewriting).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[TRS Standard|TRS Standard]]&lt;br /&gt;
* [[TRS Relative|TRS Relative]]&lt;br /&gt;
* [[TRS Contextsensitive|TRS Contextsensitive]]&lt;br /&gt;
* [[TRS Equational|TRS Equational]]&lt;br /&gt;
* [[TRS Innermost|TRS Innermost]]&lt;br /&gt;
* [[TRS Outermost|TRS Outermost]]&lt;br /&gt;
* [[TRS Conditional|TRS Conditional]]&lt;br /&gt;
* [[TRS Conditional - Operational Termination|TRS Conditional - Operational Termination]]&lt;br /&gt;
* [[SRS Standard|SRS Standard]]&lt;br /&gt;
* [[SRS Relative|SRS Relative]]&lt;br /&gt;
* [[Cycle_Rewriting|Cycle Rewriting]] &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;&lt;br /&gt;
* [[Higher_Order|Higher Order Rewriting]] (since 2010)&lt;br /&gt;
* [[ITRS|ITRS Innermost]] (since 2014)&lt;br /&gt;
* [[Integer Transition Systems|ITS]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Termination of Probabilistic Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories address &amp;lt;b&amp;gt; probabilistic rewrite systems &amp;lt;/b&amp;gt;, where rewrite rules are applied according to probability distributions. &lt;br /&gt;
Instead of classical termination, the goal is to prove almost-sure termination, i.e., that infinite executions occur with probability zero,&lt;br /&gt;
or strong almost-sure termination, i.e., that the expected runtime is finite. &lt;br /&gt;
This lifts termination analysis to models that capture randomized algorithms or stochastic behavior.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[PTRS Standard|PTRS Standard]]&lt;br /&gt;
* [[PTRS Innermost|PTRS Innermost]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, there are only categories regarding probabilistic rewrite systems, &lt;br /&gt;
but an extension to probabilistic imperative programs may be possible in future competitions.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Programs ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on proving termination of &amp;lt;b&amp;gt; actual programming languages &amp;lt;/b&amp;gt; used in industry. &lt;br /&gt;
The categories differ by the source programming language or program model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Logic_Programming|Termination of logic programs]]&lt;br /&gt;
* [[Functional_Programming|Termination of functional programs]] (since 2007)&lt;br /&gt;
* [[Java_Bytecode|Termination of Java Bytecode programs]] (since 2009)&lt;br /&gt;
* [[C_Programs|Termination of C programs]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories evaluate tools that automatically analyze the &amp;lt;b&amp;gt; asymptotic complexity of rewrite systems &amp;lt;/b&amp;gt;. &lt;br /&gt;
Instead of only proving termination, the goal is to derive upper bounds on the length of rewrite sequences, &lt;br /&gt;
typically expressed as functions of the input size. &lt;br /&gt;
Different categories measure difference runtime complexities under various rewriting strategies and different restrictions on the initial start term.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Derivational Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Derivational Complexity]]&lt;br /&gt;
* TRS Parallel Innermost Derivational Complexity&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS Complexity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity Analysis ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on automatically determining &amp;lt;b&amp;gt; time complexity bounds for programs written in concrete programming languages &amp;lt;/b&amp;gt;. &lt;br /&gt;
Tools analyze the program’s control flow, data dependencies, and loops to derive asymptotic upper bounds on runtime with respect to the input size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[C_Complexity|Complexity of C programs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Competition Benchmarks ==&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;
== Organization ==&lt;br /&gt;
&lt;br /&gt;
Questions and suggestions regarding the competition&lt;br /&gt;
should go to [[Termtools|the termtools mailing list]].&lt;br /&gt;
Discussion is open and happens primarily on the list.&lt;br /&gt;
Decisions will be made by votes among the [[Termination Competition Steering Committee]], with current members&lt;br /&gt;
* [https://ffrohn.github.io Florian Frohn] (Chair), RWTH Aachen&lt;br /&gt;
* [https://verify.rwth-aachen.de/giesl/ Jürgen Giesl], RWTH Aachen&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/ Georg Moser], University of Innsbruck&lt;br /&gt;
* [http://lim.univ-reunion.fr/staff/epayet/ Étienne Payet], Université de La Réunion&lt;br /&gt;
* [https://group-mmm.org/~ayamada/ Akihisa Yamada], AIST Tokyo Waterfront&lt;br /&gt;
* Dieter Hofbauer, ASW Saarland&lt;br /&gt;
&lt;br /&gt;
From 2004 till 2007, the competition organizer was Claude March&amp;amp;eacute;, [http://www.lri.fr/~marche/termination-competition/ Paris].&lt;br /&gt;
From 2008 to 2013 the competition was run by Ren&amp;amp;eacute; Thiemann, [http://termcomp.uibk.ac.at Innsbruck].&lt;br /&gt;
From 2014 to 2017, the competition organizer was Johannes Waldmann. Jobs were run on the [https://www.starexec.org/ Star Exec] platform at U Iowa.&lt;br /&gt;
From 2018 to 2023, the organizer was Akihisa Yamada.&lt;br /&gt;
From 2024 on, the organizer is Florian Frohn.&lt;br /&gt;
&lt;br /&gt;
== History of Termination Competitions ==&lt;br /&gt;
&lt;br /&gt;
A list of all competitions that have been taken place can be found [[Termination Competition History|here]].&lt;br /&gt;
&lt;br /&gt;
==== Results ====&lt;br /&gt;
&lt;br /&gt;
The results of (almost) all competitions are available [https://termcomp.github.io/ here]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Integer_Transition_Systems&amp;diff=2174</id>
		<title>Integer Transition Systems</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Integer_Transition_Systems&amp;diff=2174"/>
		<updated>2026-03-18T11:40:28Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added ITS Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Integer Transition Systems category is concerned with the question &amp;quot;Will every possible sequence of rewrite steps on an integer program terminate?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
Integer Transition Systems (ITSs) are [https://project-coco.uibk.ac.at/ARI/lctrs.php LCTRSs] with the following restrictions:&lt;br /&gt;
* The theory is always Ints.&lt;br /&gt;
* Rules must comply with the following grammar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rule ::= (rule lhs rhs (:guard term)? (:var (vars))?)&lt;br /&gt;
lhs  ::= (identifier identifier+)&lt;br /&gt;
rhs  ::= (identifier term+)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Moreover, ITSs must declare one and only one entrypoint&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
entrypoint ::= (entrypoint identifier)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where the given identifier refers to a previously declared function symbol.&lt;br /&gt;
&lt;br /&gt;
The goal is to prove termination w.r.t. all well-sorted startterms of the form&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(f c_1 ... c_k)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where f is the entrypoint and c_1,...,c_k are constants from the theory Ints (i.e., integers or Booleans).&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: An ITS R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination of R).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Conditional&amp;diff=2173</id>
		<title>TRS Conditional</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Conditional&amp;diff=2173"/>
		<updated>2026-03-18T11:37:59Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Conditional Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Conditional category is concerned with the question &amp;quot;Will every possible sequence of conditional rewrites steps terminate?&amp;quot;&lt;br /&gt;
where a conditional rewrite step may depend on the reachability between two independent terms, e.g., can 'leq(&amp;lt;i&amp;gt;t&amp;lt;/i&amp;gt;,&amp;lt;i&amp;gt;s&amp;lt;/i&amp;gt;)' be evaluated to 'true'?&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
Formally, a conditional term rewrite system is a set R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; | c&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; | c&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} of finitely many conditional rewrite rules.&lt;br /&gt;
A conditional rewrite rule is a rewrite rule l &amp;amp;rarr; r with an additional condition, a reachability constraint, that has to be satisfied to use the rewrite rule.&lt;br /&gt;
There are multiple different ways one can interpret these conditions, e.g., oriented, joined, and convertible.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A conditional term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination of R).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Conditional_-_Operational_Termination&amp;diff=2172</id>
		<title>TRS Conditional - Operational Termination</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Conditional_-_Operational_Termination&amp;diff=2172"/>
		<updated>2026-03-18T11:37:52Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Conditional - Operation Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Conditional category is concerned with the question &amp;quot;Will every possible sequence of conditional rewrites steps terminate?&amp;quot;&lt;br /&gt;
where a conditional rewrite step may depend on the reachability between two independent terms, e.g., can 'leq(&amp;lt;i&amp;gt;t&amp;lt;/i&amp;gt;,&amp;lt;i&amp;gt;s&amp;lt;/i&amp;gt;)' be evaluated to 'true'?&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
Formally, a conditional term rewrite system is a set R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; | c&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; | c&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} of finitely many conditional rewrite rules.&lt;br /&gt;
A conditional rewrite rule is a rewrite rule l &amp;amp;rarr; r with an additional condition, a reachability constraint, that has to be satisfied to use the rewrite rule.&lt;br /&gt;
There are multiple different ways one can interpret these conditions, e.g., oriented, joined, and convertible.&lt;br /&gt;
&lt;br /&gt;
TODO: clarify the difference to [[TRS Conditional|TRS Conditional]]!&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A conditional term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination of R).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Equational&amp;diff=2171</id>
		<title>TRS Equational</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Equational&amp;diff=2171"/>
		<updated>2026-03-18T11:29:46Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Equational Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Equational category is concerned with the question &amp;quot;Will every possible sequence of rewrites steps on equivalence classes terminate?&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
Formally, an equational term rewrite system is a set R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} of finitely rewrite rules together a set S = {a&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; = b&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,a&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = b&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} of finitely many term equations, called a ''theory''.&lt;br /&gt;
&lt;br /&gt;
An equational term rewrite system R/S is terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;0&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; =&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; ... =&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; =&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; ... =&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;2&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;  ..., i.e., no infinite rewrite sequence that uses infinitely many rules from R where we can use the equations from S mid rewriting.&lt;br /&gt;
&lt;br /&gt;
Here, a ''theory'' may be added to declarations of function symbols.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fun ::= ( fun identifier number theory? )&lt;br /&gt;
theory ::= :theory [A | C | AC]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* full rewriting modulo associativity / commutativity / associativity and commutativity&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: n equational term rewrite system R/S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R/S terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R/S.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence that uses infinitely many rules from R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination of R/S).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Contextsensitive&amp;diff=2170</id>
		<title>TRS Contextsensitive</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Contextsensitive&amp;diff=2170"/>
		<updated>2026-03-18T11:25:18Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Contextsensitive Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Contextsensitive category is concerned with the question &amp;quot;Will every possible sequence of rewrites eventually stop if we prohibit to rewrite within certain arguments of function symbols&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
Context-sensitive rewriting is a restriction of first-order term rewriting which is used, e.g., to model different evaluation strategies for the analysis of functional programming languages.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]] and specifically for context-sensitive rewriting [https://project-coco.uibk.ac.at/ARI/cstrs.php here].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules, see [1].&lt;br /&gt;
Additionally, every n-ary function symbbol f has a corresponding replacement map μ(f) which indicates which arguments of f may be evaluated.&lt;br /&gt;
&lt;br /&gt;
A term rewrite system R is terminating w.r.t. μ if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; ... that respects the replacement map μ.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R and a replacement map μ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R terminate w.r.t. μ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R w.r.t. μ.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence w.r.t. μ.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Franz Baader and Tobias Nipkow. Term Rewriting and All That. Cambridge University Press, 1998.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=PTRS_Standard&amp;diff=2127</id>
		<title>PTRS Standard</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=PTRS_Standard&amp;diff=2127"/>
		<updated>2026-03-11T10:08:02Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added missing reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PTRS Standard category is concerned with the question &amp;quot;Will every rewrite sequence eventually stop with probability 1 (almost-sure termination) and does every start term t has a finite upper bound on the expected runtime of all rewrite sequences starting with t (strong almost sure-termination)?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The category was first used in the termination competition in 2024, after an initial in-person event for probabilistic termination provers at the [[19th_International_Workshop_on_Termination | termination workshop 2023]].&lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
This category investigates different notions of termination of probabilistic term rewrite systems, where rewrite rules are applied according to probability distributions.&lt;br /&gt;
&lt;br /&gt;
Many algorithms can be made more robust by introducing probabilistic choices. &lt;br /&gt;
For example, in probabilistic quicksort the pivot element is chosen uniformly at random. &lt;br /&gt;
This variant is more robust than the standard quicksort algorithm because it achieves an expected runtime of O(n * log(⁡n))&lt;br /&gt;
for every input and avoids the deterministic worst-case runtime of O(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;). &lt;br /&gt;
However, when probabilities are introduced, programmers often quickly lose intuition about expected runtime and termination. &lt;br /&gt;
Therefore, automatic techniques for proving termination and establishing upper bounds on the expected runtime are needed.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Probabilistic_Rewriting | here]] including the definitions of almost-sure termination (AST) and strong almost-sure termination (SAST).&lt;br /&gt;
Note that the third notion of termination 'positive almost-sure termination' (PAST) is currently not supported by any Tool.&lt;br /&gt;
However, in [2] it was shown that PAST and SAST are almost the same for probabilistic rewriting, hence it suffices to analyze the stronger notion SAST.&lt;br /&gt;
In fact, PAST and SAST are equivalent for finite PTRSs that contain at least a single function symbol of arity at least 2 (that has more than 2 arguments).&lt;br /&gt;
&lt;br /&gt;
Formally, a probabilistic term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of probabilistic rewrite rules, see [1].&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A probabilistic term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Is R AST or SAST?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;AST&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving almost-sure termination (AST) of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;SAST&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving strong almost-sure termination (SAST) of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver can neither prove AST nor SAST termination).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Martin Avanzini, Ugo Dal Lago, and Akihisa Yamada. On probabilistic term rewriting. &amp;lt;i&amp;gt;Science of Computer Programming&amp;lt;/i&amp;gt;, 2020.&lt;br /&gt;
* [2] Jan-Christoph Kassing and Jürgen Giesl. From Innermost To Full Probabilistic Term Rewriting: Almost-Sure Termination, Complexity, And Modularity. Logical Methods in Computer Science, 2026.&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=PTRS_Innermost&amp;diff=2126</id>
		<title>PTRS Innermost</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=PTRS_Innermost&amp;diff=2126"/>
		<updated>2026-03-11T10:07:37Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Fixed small typo in reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PTRS Standard category is concerned with the question &amp;quot;Will every &amp;lt;i&amp;gt;innermost&amp;lt;/i&amp;gt; rewrite sequence eventually stop with probability 1 (almost-sure termination) and does every start term t has a finite upper bound on the expected runtime of all &amp;lt;i&amp;gt;innermost&amp;lt;/i&amp;gt; rewrite sequences starting with t (strong almost sure-termination)?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The category was first used in the termination competition in 2024, after an initial in-person event for probabilistic termination provers at the [[19th_International_Workshop_on_Termination | termination workshop 2023]].&lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
This category investigates different notions of termination of probabilistic term rewrite systems, where rewrite rules are applied according to probability distributions.&lt;br /&gt;
It restricts the analysis of probabilistic algorithms to a call-by-value evaluation strategy, which is one of the most used evaluation strategies in probabilistic programming languages.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Probabilistic_Rewriting | here]] including the definitions of almost-sure termination (AST) and strong almost-sure termination (SAST).&lt;br /&gt;
Note that the third notion of termination 'positive almost-sure termination' (PAST) is currently not supported by any Tool.&lt;br /&gt;
However, in [2] it was shown that PAST and SAST are almost the same for probabilistic rewriting, hence it suffices to analyze the stronger notion SAST.&lt;br /&gt;
In fact, PAST and SAST are equivalent for finite PTRSs that contain at least a single function symbol of arity at least 2 (that has more than 2 arguments).&lt;br /&gt;
&lt;br /&gt;
Formally, a probabilistic term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of probabilistic rewrite rules, see [1].&lt;br /&gt;
&lt;br /&gt;
An innermost rewrite step is a rewrite step that rewrites an innermost reducible expression, i.e., no proper subterm is reducible using the rules from R.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A probabilistic term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Is R innermost AST or innermost SAST?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;iAST&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving innermost almost-sure termination (iAST) of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;iSAST&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving innermost strong almost-sure termination (iSAST) of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver can neither prove iAST nor iSAST termination).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Martin Avanzini, Ugo Dal Lago, and Akihisa Yamada. On probabilistic term rewriting. &amp;lt;i&amp;gt;Science of Computer Programming&amp;lt;/i&amp;gt;, 2020.&lt;br /&gt;
* [2] Jan-Christoph Kassing and Jürgen Giesl. From Innermost To Full Probabilistic Term Rewriting: Almost-Sure Termination, Complexity, And Modularity. &amp;lt;i&amp;gt;Logical Methods in Computer Science&amp;lt;/i&amp;gt;, 2026.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Probabilistic_Rewriting&amp;diff=2125</id>
		<title>Probabilistic Rewriting</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Probabilistic_Rewriting&amp;diff=2125"/>
		<updated>2026-03-11T10:05:58Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Removed Categories from this page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
As in the non-probabilistic setting, we use an adaption of the [https://project-coco.uibk.ac.at/ARI/ ARI format], so probabilistic TRSs (PTRSs) are represented as S-Expressions (see [https://smt-lib.org/papers/smt-lib-reference-v2.6-r2021-05-12.pdf here, Sec. 3.1]). The format of TRSs is explained [[Term Rewriting|here]]. To extend this format for PTRSs, rules are replaced by probabilistic rules that are defined as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
prule ::= ( prule term dist cost? )&lt;br /&gt;
cost ::= :cost number&lt;br /&gt;
dist ::= ( ( term prob? )* )&lt;br /&gt;
prob ::= :prob number&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some examples of valid PTRSs are shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
===== P1 =====&lt;br /&gt;
(format PTRS)&lt;br /&gt;
(fun f 0)&lt;br /&gt;
(fun stop 0)&lt;br /&gt;
(prule f (( f :prob 1 ) (stop :prob 1 )))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* P1 models a coin flip that stops once it flips heads and keeps on going if it flips tails.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
===== P2 =====&lt;br /&gt;
(format PTRS)&lt;br /&gt;
(fun g 1)&lt;br /&gt;
(prule (g x) (( (g (g x)) :prob 1 ) (x :prob 1 )))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* P2 models a symmetric random walk on the numbers of f symbols in a term.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
===== P3 =====&lt;br /&gt;
(format PTRS)&lt;br /&gt;
(fun h 1)&lt;br /&gt;
(prule (h x) (( (h (h x)) :prob 2 ) (x :prob 1 )))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* P3 models a biased random walk on the numbers of h symbols in a term which is biased towards nontermination.&lt;br /&gt;
&lt;br /&gt;
== Probabilistic Termination ==&lt;br /&gt;
&lt;br /&gt;
There are several notions of ``termination'' in the probabilistic setting.&lt;br /&gt;
As in ordinary term rewriting, we consider universal termination, i.e., we have no fixed start term, but consider every possible reduction.&lt;br /&gt;
For the formal definitions of all notions of termination, see [https://www.sciencedirect.com/science/article/pii/S0167642319301339 here].&lt;br /&gt;
&lt;br /&gt;
===== Certain Termination =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is certainly terminating if every possible reduction eventuelly terminates.&lt;br /&gt;
As this boils down to termination of TRSs, we usually try to omit certainly terminating examples in the following category,&lt;br /&gt;
and hence, have no allowed answer for a certainly terminating PTRS.&lt;br /&gt;
&lt;br /&gt;
Example: None of the PTRSs P1, P2, or P3 are certainly terminating.&lt;br /&gt;
&lt;br /&gt;
===== Almost-Sure Termination (AST) =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is almost-surely terminating if every non-terminating reduction occurs with probability 0.&lt;br /&gt;
&lt;br /&gt;
Example: While P1 and P2 are AST, P3 is not AST.&lt;br /&gt;
&lt;br /&gt;
===== Positive Almost-Sure Termination (PAST) =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is positive almost-surely terminating if the expected derivation length of every possible reduction is finite.&lt;br /&gt;
&lt;br /&gt;
Example: Only P1 is PAST, but P2 and P3 are not PAST.&lt;br /&gt;
&lt;br /&gt;
===== Strong Almost-Sure Termination (SAST) =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is strong almost-surely terminating if for every start term t there exists a bound C_t such that &lt;br /&gt;
the expected derivation length of every possible reduction starting in t is at most C_t.&lt;br /&gt;
&lt;br /&gt;
Example: Again only P1 is PAST, but P2 and P3 are not PAST.&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2124</id>
		<title>Termination Competition</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2124"/>
		<updated>2026-03-11T10:03:58Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added links to some defined categories&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 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 Termination Workshop 2003 (Valencia),&lt;br /&gt;
the community then decided to install an annual termination competition, and to collect benchmarks,&lt;br /&gt;
to spur the development of tools and new termination techniques.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Competitions ==&lt;br /&gt;
&lt;br /&gt;
* The [[Termination Competition 2025]] will be held during [https://www.imn.htwk-leipzig.de/WST2025/ WST 2025], September 3-4, Leipzig, Germany.&lt;br /&gt;
&lt;br /&gt;
== Competition Categories ==&lt;br /&gt;
&lt;br /&gt;
Currently, the competition features the following categories. Since 2007 some of the categories also have [[Certified_Termination|certified categories]], where an additional certifier checks the output of the tools. Categories that were used in the past but not included in the three most recent competitions are marked with an &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories consider the termination of &amp;lt;b&amp;gt;rewrite systems&amp;lt;/b&amp;gt;, a foundational computational model used to represent symbolic computation and program transformations. &lt;br /&gt;
The goal is to automatically prove that no infinite rewrite sequences are possible for the given system. &lt;br /&gt;
Different categories capture variations of rewriting such as relative rewriting, context-sensitive rewriting, conditional rules, or restrictions on the rewriting strategy (e.g., innermost or outermost rewriting).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[TRS Standard|TRS Standard]]&lt;br /&gt;
* [[TRS Relative|TRS Relative]]&lt;br /&gt;
* [[Term Rewriting#TRS Contextsensitive|TRS Contextsensitive]]&lt;br /&gt;
* [[Term Rewriting#TRS Equational|TRS Equational]]&lt;br /&gt;
* [[TRS Innermost|TRS Innermost]]&lt;br /&gt;
* [[TRS Outermost|TRS Outermost]]&lt;br /&gt;
* [[Term Rewriting#TRS Conditional|TRS Conditional]]&lt;br /&gt;
* [[Term Rewriting#TRS Conditional - Operational Termination|TRS Conditional - Operational Termination]]&lt;br /&gt;
* [[SRS Standard|SRS Standard]]&lt;br /&gt;
* [[SRS Relative|SRS Relative]]&lt;br /&gt;
* [[Cycle_Rewriting|Cycle Rewriting]] &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;&lt;br /&gt;
* [[Higher_Order|Higher Order Rewriting]] (since 2010)&lt;br /&gt;
* [[ITRS|ITRS Innermost]] (since 2014)&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Termination of Probabilistic Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories address &amp;lt;b&amp;gt; probabilistic rewrite systems &amp;lt;/b&amp;gt;, where rewrite rules are applied according to probability distributions. &lt;br /&gt;
Instead of classical termination, the goal is to prove almost-sure termination, i.e., that infinite executions occur with probability zero,&lt;br /&gt;
or strong almost-sure termination, i.e., that the expected runtime is finite. &lt;br /&gt;
This lifts termination analysis to models that capture randomized algorithms or stochastic behavior.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[PTRS Standard|PTRS Standard]]&lt;br /&gt;
* [[PTRS Innermost|PTRS Innermost]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, there are only categories regarding probabilistic rewrite systems, &lt;br /&gt;
but an extension to probabilistic imperative programs may be possible in future competitions.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Programs ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on proving termination of &amp;lt;b&amp;gt; actual programming languages &amp;lt;/b&amp;gt; used in industry. &lt;br /&gt;
The categories differ by the source programming language or program model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Logic_Programming|Termination of logic programs]]&lt;br /&gt;
* [[Functional_Programming|Termination of functional programs]] (since 2007)&lt;br /&gt;
* [[Java_Bytecode|Termination of Java Bytecode programs]] (since 2009)&lt;br /&gt;
* [[C_Programs|Termination of C programs]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories evaluate tools that automatically analyze the &amp;lt;b&amp;gt; asymptotic complexity of rewrite systems &amp;lt;/b&amp;gt;. &lt;br /&gt;
Instead of only proving termination, the goal is to derive upper bounds on the length of rewrite sequences, &lt;br /&gt;
typically expressed as functions of the input size. &lt;br /&gt;
Different categories measure difference runtime complexities under various rewriting strategies and different restrictions on the initial start term.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Derivational Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Derivational Complexity]]&lt;br /&gt;
* TRS Parallel Innermost Derivational Complexity&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS Complexity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity Analysis ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on automatically determining &amp;lt;b&amp;gt; time complexity bounds for programs written in concrete programming languages &amp;lt;/b&amp;gt;. &lt;br /&gt;
Tools analyze the program’s control flow, data dependencies, and loops to derive asymptotic upper bounds on runtime with respect to the input size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[C_Complexity|Complexity of C programs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Competition Benchmarks ==&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;
== Organization ==&lt;br /&gt;
&lt;br /&gt;
Questions and suggestions regarding the competition&lt;br /&gt;
should go to [[Termtools|the termtools mailing list]].&lt;br /&gt;
Discussion is open and happens primarily on the list.&lt;br /&gt;
Decisions will be made by votes among the [[Termination Competition Steering Committee]], with current members&lt;br /&gt;
* [https://ffrohn.github.io Florian Frohn] (Chair), RWTH Aachen&lt;br /&gt;
* [https://verify.rwth-aachen.de/giesl/ Jürgen Giesl], RWTH Aachen&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/ Georg Moser], University of Innsbruck&lt;br /&gt;
* [http://lim.univ-reunion.fr/staff/epayet/ Étienne Payet], Université de La Réunion&lt;br /&gt;
* [https://group-mmm.org/~ayamada/ Akihisa Yamada], AIST Tokyo Waterfront&lt;br /&gt;
* Dieter Hofbauer, ASW Saarland&lt;br /&gt;
&lt;br /&gt;
From 2004 till 2007, the competition organizer was Claude March&amp;amp;eacute;, [http://www.lri.fr/~marche/termination-competition/ Paris].&lt;br /&gt;
From 2008 to 2013 the competition was run by Ren&amp;amp;eacute; Thiemann, [http://termcomp.uibk.ac.at Innsbruck].&lt;br /&gt;
From 2014 to 2017, the competition organizer was Johannes Waldmann. Jobs were run on the [https://www.starexec.org/ Star Exec] platform at U Iowa.&lt;br /&gt;
From 2018 to 2023, the organizer was Akihisa Yamada.&lt;br /&gt;
From 2024 on, the organizer is Florian Frohn.&lt;br /&gt;
&lt;br /&gt;
== History of Termination Competitions ==&lt;br /&gt;
&lt;br /&gt;
A list of all competitions that have been taken place can be found [[Termination Competition History|here]].&lt;br /&gt;
&lt;br /&gt;
==== Results ====&lt;br /&gt;
&lt;br /&gt;
The results of (almost) all competitions are available [https://termcomp.github.io/ here]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=PTRS_Innermost&amp;diff=2123</id>
		<title>PTRS Innermost</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=PTRS_Innermost&amp;diff=2123"/>
		<updated>2026-03-11T10:03:05Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added PTRS Innermost category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PTRS Standard category is concerned with the question &amp;quot;Will every &amp;lt;i&amp;gt;innermost&amp;lt;/i&amp;gt; rewrite sequence eventually stop with probability 1 (almost-sure termination) and does every start term t has a finite upper bound on the expected runtime of all &amp;lt;i&amp;gt;innermost&amp;lt;/i&amp;gt; rewrite sequences starting with t (strong almost sure-termination)?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The category was first used in the termination competition in 2024, after an initial in-person event for probabilistic termination provers at the [[19th_International_Workshop_on_Termination | termination workshop 2023]].&lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
This category investigates different notions of termination of probabilistic term rewrite systems, where rewrite rules are applied according to probability distributions.&lt;br /&gt;
It restricts the analysis of probabilistic algorithms to a call-by-value evaluation strategy, which is one of the most used evaluation strategies in probabilistic programming languages.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Probabilistic_Rewriting | here]] including the definitions of almost-sure termination (AST) and strong almost-sure termination (SAST).&lt;br /&gt;
Note that the third notion of termination 'positive almost-sure termination' (PAST) is currently not supported by any Tool.&lt;br /&gt;
However, in [2] it was shown that PAST and SAST are almost the same for probabilistic rewriting, hence it suffices to analyze the stronger notion SAST.&lt;br /&gt;
In fact, PAST and SAST are equivalent for finite PTRSs that contain at least a single function symbol of arity at least 2 (that has more than 2 arguments).&lt;br /&gt;
&lt;br /&gt;
Formally, a probabilistic term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of probabilistic rewrite rules, see [1].&lt;br /&gt;
&lt;br /&gt;
An innermost rewrite step is a rewrite step that rewrites an innermost reducible expression, i.e., no proper subterm is reducible using the rules from R.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A probabilistic term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Is R innermost AST or innermost SAST?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;iAST&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving innermost almost-sure termination (iAST) of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;iSAST&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving innermost strong almost-sure termination (iSAST) of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver can neither prove iAST nor iSAST termination).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Martin Avanzini, Ugo Dal Lago, and Akihisa Yamada. On probabilistic term rewriting. &amp;lt;i&amp;gt;Science of Computer Programming&amp;lt;/i&amp;gt;, 2020.&lt;br /&gt;
* [1] Jan-Christoph Kassing and Jürgen Giesl. From Innermost To Full Probabilistic Term Rewriting: Almost-Sure Termination, Complexity, And Modularity. &amp;lt;i&amp;gt;Logical Methods in Computer Science&amp;lt;/i&amp;gt;, 2026.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=PTRS_Standard&amp;diff=2122</id>
		<title>PTRS Standard</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=PTRS_Standard&amp;diff=2122"/>
		<updated>2026-03-11T09:57:07Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added PTRS Standard category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PTRS Standard category is concerned with the question &amp;quot;Will every rewrite sequence eventually stop with probability 1 (almost-sure termination) and does every start term t has a finite upper bound on the expected runtime of all rewrite sequences starting with t (strong almost sure-termination)?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The category was first used in the termination competition in 2024, after an initial in-person event for probabilistic termination provers at the [[19th_International_Workshop_on_Termination | termination workshop 2023]].&lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
This category investigates different notions of termination of probabilistic term rewrite systems, where rewrite rules are applied according to probability distributions.&lt;br /&gt;
&lt;br /&gt;
Many algorithms can be made more robust by introducing probabilistic choices. &lt;br /&gt;
For example, in probabilistic quicksort the pivot element is chosen uniformly at random. &lt;br /&gt;
This variant is more robust than the standard quicksort algorithm because it achieves an expected runtime of O(n * log(⁡n))&lt;br /&gt;
for every input and avoids the deterministic worst-case runtime of O(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;). &lt;br /&gt;
However, when probabilities are introduced, programmers often quickly lose intuition about expected runtime and termination. &lt;br /&gt;
Therefore, automatic techniques for proving termination and establishing upper bounds on the expected runtime are needed.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Probabilistic_Rewriting | here]] including the definitions of almost-sure termination (AST) and strong almost-sure termination (SAST).&lt;br /&gt;
Note that the third notion of termination 'positive almost-sure termination' (PAST) is currently not supported by any Tool.&lt;br /&gt;
However, in [2] it was shown that PAST and SAST are almost the same for probabilistic rewriting, hence it suffices to analyze the stronger notion SAST.&lt;br /&gt;
In fact, PAST and SAST are equivalent for finite PTRSs that contain at least a single function symbol of arity at least 2 (that has more than 2 arguments).&lt;br /&gt;
&lt;br /&gt;
Formally, a probabilistic term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of probabilistic rewrite rules, see [1].&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A probabilistic term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Is R AST or SAST?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;AST&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving outermost termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;SAST&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving outermost termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove outermost termination).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Martin Avanzini, Ugo Dal Lago, and Akihisa Yamada. On probabilistic term rewriting. &amp;lt;i&amp;gt;Science of Computer Programming&amp;lt;/i&amp;gt;, 2020.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Outermost&amp;diff=2121</id>
		<title>TRS Outermost</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Outermost&amp;diff=2121"/>
		<updated>2026-03-11T09:11:45Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added a motivation and link to the ari format (TRS Outermost)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Outermost category is concerned with the question &amp;quot;Will every outermost rewrite sequence eventually stop?&amp;quot;. &lt;br /&gt;
In other words, does every computation defined by the rewrite rules that only evaluates outermost reducible expressions eventually reach a normal form (a term where no rule applies)?&lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
This category investigates termination under the outermost rewriting strategy, roughly corresponding to a call-by-name or lazy evaluation strategy.&lt;br /&gt;
Although it is not the most common evaluation strategy in programming languages, it is still used by some widely used languages, such as Haskell.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]] and [https://project-coco.uibk.ac.at/ARI/trs.php here].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules, see [1].&lt;br /&gt;
&lt;br /&gt;
An outermost rewrite step is a rewrite step that rewrites an outermost reducible expression, i.e., there is no other redex at a position above the redex we want to rewrite.&lt;br /&gt;
A term rewrite system R is outermost terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R outermost terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving outermost termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite outermost rewrite sequence.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove outermost termination).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Franz Baader and Tobias Nipkow. Term Rewriting and All That. Cambridge University Press, 1998.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Innermost&amp;diff=2120</id>
		<title>TRS Innermost</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Innermost&amp;diff=2120"/>
		<updated>2026-03-11T09:08:30Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added a motivation and link to the ari format (TRS Innermost)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Innermost category is concerned with the question &amp;quot;Will every innermost rewrite sequence eventually stop?&amp;quot;. &lt;br /&gt;
In other words, does every computation defined by the rewrite rules that only evaluates innermost reducible expressions eventually reach a normal form (a term where no rule applies)?&lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
This category investigates termination under the innermost rewriting strategy, roughly corresponding to a call-by-value evaluation strategy in programming languages,&lt;br /&gt;
which is one of the most used evaluation strategies.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]]  and [https://project-coco.uibk.ac.at/ARI/trs.php here].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules, see [1].&lt;br /&gt;
&lt;br /&gt;
An innermost rewrite step is a rewrite step that rewrites an innermost reducible expression, i.e., no proper subterm is reducible using the rules from R.&lt;br /&gt;
A term rewrite system R is innermost terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R innermost terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving innermost termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite innermost rewrite sequence.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Franz Baader and Tobias Nipkow. Term Rewriting and All That. Cambridge University Press, 1998.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Standard&amp;diff=2119</id>
		<title>TRS Standard</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Standard&amp;diff=2119"/>
		<updated>2026-03-11T09:04:19Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added a motivation and link to the ari format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Standard category is concerned with the question &amp;quot;Will every possible sequence of rewrites eventually stop?&amp;quot;. &lt;br /&gt;
In other words, does every computation defined by the rewrite rules eventually reach a normal form (a term where no rule applies)?&lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
This category evaluates tools on termination of standard first-order term rewrite systems with unrestricted rewriting which is one of the basic problems in the competition. Many of the other termination problems are either special forms of this problem, or can be reduced to this problem.&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]] and [https://project-coco.uibk.ac.at/ARI/trs.php here].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules, see [1].&lt;br /&gt;
&lt;br /&gt;
A term rewrite system R is terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Franz Baader and Tobias Nipkow. Term Rewriting and All That. Cambridge University Press, 1998.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=SRS_Standard&amp;diff=2118</id>
		<title>SRS Standard</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=SRS_Standard&amp;diff=2118"/>
		<updated>2026-03-10T16:27:46Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Mentioned strings in the def of SRSs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The SRS Standard category is concerned with the question &amp;quot;Will every possible sequence of rewrite steps on strings eventually stop?&amp;quot;. &lt;br /&gt;
In other words, does every computation defined by the string rewrite rules eventually reach a normal form (a string where no rule applies)?&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of string rewrite systems are described [[Term Rewriting | here]].&lt;br /&gt;
Strings are terms where every function symbol has arity 1, i.e., exactly one argument.&lt;br /&gt;
&lt;br /&gt;
Formally, a string rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules where all occurring terms are strings.&lt;br /&gt;
&lt;br /&gt;
A string rewrite system R is terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; ... of strings.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A string rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=SRS_Relative&amp;diff=2117</id>
		<title>SRS Relative</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=SRS_Relative&amp;diff=2117"/>
		<updated>2026-03-10T16:27:05Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added SRS Relative Category Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The SRS Relative category is concerned with the question &amp;quot;Will every possible sequence of rewrite steps on strings eventually stop using a certain subset of the given rewrite rules?&amp;quot;. &lt;br /&gt;
In other words, if every rule has a cost which is either 0 or 1, then does every possible reduction has a finite total cost?&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
Strings are terms where every function symbol has arity 1, i.e., exactly one argument. &lt;br /&gt;
Formally, a relative string rewrite system is a set R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} and a set S = {a&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; b&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,a&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; b&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} of finitely many rewrite rules denoted by R/S where all the occuring terms are strings.&lt;br /&gt;
&lt;br /&gt;
A relative string rewrite system R/S is terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;0&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; ... &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; ... &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;2&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;  ..., i.e., no infinite rewrite sequence that uses infinitely many rules from R.&lt;br /&gt;
&lt;br /&gt;
Instead of the two seperate sets, one typically gives costs of 0 or 1 to every rule.&lt;br /&gt;
Rules with cost 1 are in R and rules with costs 0 are in S.&lt;br /&gt;
Then, relative termination is equal to the statement that every possible reduction has a finite total cost.&lt;br /&gt;
The syntax and the semantics of string rewrite systems with costs at the rules are described [[Term Rewriting | here]].&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A relative string rewrite system R/S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R/S terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R/S.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence that uses infinitely many rules from R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination of R/S).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=SRS_Standard&amp;diff=2116</id>
		<title>SRS Standard</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=SRS_Standard&amp;diff=2116"/>
		<updated>2026-03-10T16:24:41Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added SRS Standard Category Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The SRS Standard category is concerned with the question &amp;quot;Will every possible sequence of rewrite steps on strings eventually stop?&amp;quot;. &lt;br /&gt;
In other words, does every computation defined by the string rewrite rules eventually reach a normal form (a string where no rule applies)?&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of string rewrite systems are described [[Term Rewriting | here]].&lt;br /&gt;
Strings are terms where every function symbol has arity 1, i.e., exactly one argument.&lt;br /&gt;
&lt;br /&gt;
Formally, a string rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules.&lt;br /&gt;
&lt;br /&gt;
A string rewrite system R is terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; ... of strings.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A string rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Relative&amp;diff=2115</id>
		<title>TRS Relative</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Relative&amp;diff=2115"/>
		<updated>2026-03-09T17:12:38Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Fixed some typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Relative category is concerned with the question &amp;quot;Will every possible sequence of rewrites eventually stop using a certain subset of the given rewrite rules?&amp;quot;. &lt;br /&gt;
In other words, ifevery rule has a cost which is either 0 or 1, then does every possible reduction has a finite total cost?&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
Formally, a relative term rewrite system is a set R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} and a set S = {a&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; b&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,a&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; b&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} of finitely many rewrite rules denoted by R/S, see [1].&lt;br /&gt;
&lt;br /&gt;
A relative term rewrite system R/S is terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;0&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; ... &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; ... &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;2&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;  ..., i.e., no infinite rewrite sequence that uses infinitely many rules from R.&lt;br /&gt;
&lt;br /&gt;
Instead of the two seperate sets, one typically gives costs of 0 or 1 to every rule.&lt;br /&gt;
Rules with cost 1 are in R and rules with costs 0 are in S.&lt;br /&gt;
Then, relative termination is equal to the statement that every possible reduction has a finite total cost.&lt;br /&gt;
The syntax and the semantics of term rewrite systems with costs at the rules are described [[Term Rewriting | here]].&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A relative term rewrite system R/S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R/S terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R/S.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence that uses infinitely many rules from R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination of R/S).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Franz Baader and Tobias Nipkow. Term Rewriting and All That. Cambridge University Press, 1998.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Outermost&amp;diff=2114</id>
		<title>TRS Outermost</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Outermost&amp;diff=2114"/>
		<updated>2026-03-09T17:11:44Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Outermost Category Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Outermost category is concerned with the question &amp;quot;Will every outermost rewrite sequence eventually stop?&amp;quot;. &lt;br /&gt;
In other words, does every computation defined by the rewrite rules that only evaluates outermost reducible expressions eventually reach a normal form (a term where no rule applies)?&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules, see [1].&lt;br /&gt;
&lt;br /&gt;
An outermost rewrite step is a rewrite step that rewrites an outermost reducible expression, i.e., there is no other redex at a position above the redex we want to rewrite.&lt;br /&gt;
A term rewrite system R is outermost terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R outermost terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving outermost termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite outermost rewrite sequence.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove outermost termination).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Franz Baader and Tobias Nipkow. Term Rewriting and All That. Cambridge University Press, 1998.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Innermost&amp;diff=2113</id>
		<title>TRS Innermost</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Innermost&amp;diff=2113"/>
		<updated>2026-03-09T17:09:10Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Innermost Category Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Innermost category is concerned with the question &amp;quot;Will every innermost rewrite sequence eventually stop?&amp;quot;. &lt;br /&gt;
In other words, does every computation defined by the rewrite rules that only evaluates innermost reducible expressions eventually reach a normal form (a term where no rule applies)?&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules, see [1].&lt;br /&gt;
&lt;br /&gt;
An innermost rewrite step is a rewrite step that rewrites an innermost reducible expression, i.e., no proper subterm is reducible using the rules from R.&lt;br /&gt;
A term rewrite system R is innermost terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R innermost terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving innermost termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite innermost rewrite sequence.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Franz Baader and Tobias Nipkow. Term Rewriting and All That. Cambridge University Press, 1998.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Relative&amp;diff=2109</id>
		<title>TRS Relative</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Relative&amp;diff=2109"/>
		<updated>2026-03-09T09:48:02Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Relative Category Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Relative category is concerned with the question &amp;quot;Will every possible sequence of rewrites eventually stop using a certain subset of the given rewrite rules?&amp;quot;. &lt;br /&gt;
In other words, ifevery rule has a cost which is either 0 or 1, then does every possible reduction has a finite total cost?&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
Formally, a relative term rewrite system is a set R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} and a set S = {a&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; b&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,a&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; b&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} of finitely many rewrite rules denoted by R/S, see [1].&lt;br /&gt;
&lt;br /&gt;
A relative term rewrite system R is terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;0&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; ... &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; ... &amp;amp;rarr;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;2&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;  ..., i.e., no infinite rewrite sequence that uses infinitely many rules from R.&lt;br /&gt;
&lt;br /&gt;
Instead of the two seperate sets, one typically gives costs of 0 or 1 to every rule.&lt;br /&gt;
Rules with cost 1 are in R and rules with costs 0 are in S.&lt;br /&gt;
Then, relative termination is equal to the statement that every possible reduction has a finite total cost.&lt;br /&gt;
The syntax and the semantics of term rewrite systems with costs at the rules are described [[Term Rewriting | here]].&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A relative term rewrite system R/S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R/S.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence that uses infinitely many rules from R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Franz Baader and Tobias Nipkow. Term Rewriting and All That. Cambridge University Press, 1998.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2108</id>
		<title>Termination Competition</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2108"/>
		<updated>2026-03-09T09:31:03Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added Link to new TRS Standard category page&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 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 Termination Workshop 2003 (Valencia),&lt;br /&gt;
the community then decided to install an annual termination competition, and to collect benchmarks,&lt;br /&gt;
to spur the development of tools and new termination techniques.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Competitions ==&lt;br /&gt;
&lt;br /&gt;
* The [[Termination Competition 2025]] will be held during [https://www.imn.htwk-leipzig.de/WST2025/ WST 2025], September 3-4, Leipzig, Germany.&lt;br /&gt;
&lt;br /&gt;
== Competition Categories ==&lt;br /&gt;
&lt;br /&gt;
Currently, the competition features the following categories. Since 2007 some of the categories also have [[Certified_Termination|certified categories]], where an additional certifier checks the output of the tools. Categories that were used in the past but not included in the three most recent competitions are marked with an &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories consider the termination of &amp;lt;b&amp;gt;rewrite systems&amp;lt;/b&amp;gt;, a foundational computational model used to represent symbolic computation and program transformations. &lt;br /&gt;
The goal is to automatically prove that no infinite rewrite sequences are possible for the given system. &lt;br /&gt;
Different categories capture variations of rewriting such as relative rewriting, context-sensitive rewriting, conditional rules, or restrictions on the rewriting strategy (e.g., innermost or outermost rewriting).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[TRS Standard|TRS Standard]]&lt;br /&gt;
* [[Term Rewriting#TRS Relative|TRS Relative]]&lt;br /&gt;
* [[Term Rewriting#TRS Contextsensitive|TRS Contextsensitive]]&lt;br /&gt;
* [[Term Rewriting#TRS Equational|TRS Equational]]&lt;br /&gt;
* [[Term Rewriting#TRS Innermost|TRS Innermost]]&lt;br /&gt;
* [[Term Rewriting#TRS Outermost|TRS Outermost]]&lt;br /&gt;
* [[Term Rewriting#TRS Conditional|TRS Conditional]]&lt;br /&gt;
* [[Term Rewriting#TRS Conditional - Operational Termination|TRS Conditional - Operational Termination]]&lt;br /&gt;
* [[Term Rewriting#SRS Standard|SRS Standard]]&lt;br /&gt;
* [[Term Rewriting#SRS Relative|SRS Relative]]&lt;br /&gt;
* [[Cycle_Rewriting|Cycle Rewriting]] &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;&lt;br /&gt;
* [[Higher_Order|Higher Order Rewriting]] (since 2010)&lt;br /&gt;
* [[ITRS|ITRS Innermost]] (since 2014)&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Termination of Probabilistic Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories address &amp;lt;b&amp;gt; probabilistic rewrite systems &amp;lt;/b&amp;gt;, where rewrite rules are applied according to probability distributions. &lt;br /&gt;
Instead of classical termination, the goal is to prove almost-sure termination, i.e., that infinite executions occur with probability zero,&lt;br /&gt;
or strong almost-sure termination, i.e., that the expected runtime is finite. &lt;br /&gt;
This lifts termination analysis to models that capture randomized algorithms or stochastic behavior.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Probabilistic Rewriting#PTRS Standard|PTRS Standard]] (since 2024)&lt;br /&gt;
* [[Probabilistic Rewriting#PTRS Innermost|PTRS Innermost]] (since 2024)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, there are only categories regarding probabilistic rewrite systems, &lt;br /&gt;
but an extension to probabilistic imperative programs may be possible in future competitions.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Programs ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on proving termination of &amp;lt;b&amp;gt; actual programming languages &amp;lt;/b&amp;gt; used in industry. &lt;br /&gt;
The categories differ by the source programming language or program model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Logic_Programming|Termination of logic programs]]&lt;br /&gt;
* [[Functional_Programming|Termination of functional programs]] (since 2007)&lt;br /&gt;
* [[Java_Bytecode|Termination of Java Bytecode programs]] (since 2009)&lt;br /&gt;
* [[C_Programs|Termination of C programs]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories evaluate tools that automatically analyze the &amp;lt;b&amp;gt; asymptotic complexity of rewrite systems &amp;lt;/b&amp;gt;. &lt;br /&gt;
Instead of only proving termination, the goal is to derive upper bounds on the length of rewrite sequences, &lt;br /&gt;
typically expressed as functions of the input size. &lt;br /&gt;
Different categories measure difference runtime complexities under various rewriting strategies and different restrictions on the initial start term.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Derivational Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Derivational Complexity]]&lt;br /&gt;
* TRS Parallel Innermost Derivational Complexity&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS Complexity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity Analysis ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on automatically determining &amp;lt;b&amp;gt; time complexity bounds for programs written in concrete programming languages &amp;lt;/b&amp;gt;. &lt;br /&gt;
Tools analyze the program’s control flow, data dependencies, and loops to derive asymptotic upper bounds on runtime with respect to the input size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[C_Complexity|Complexity of C programs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Competition Benchmarks ==&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;
== Organization ==&lt;br /&gt;
&lt;br /&gt;
Questions and suggestions regarding the competition&lt;br /&gt;
should go to [[Termtools|the termtools mailing list]].&lt;br /&gt;
Discussion is open and happens primarily on the list.&lt;br /&gt;
Decisions will be made by votes among the [[Termination Competition Steering Committee]], with current members&lt;br /&gt;
* [https://ffrohn.github.io Florian Frohn] (Chair), RWTH Aachen&lt;br /&gt;
* [https://verify.rwth-aachen.de/giesl/ Jürgen Giesl], RWTH Aachen&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/ Georg Moser], University of Innsbruck&lt;br /&gt;
* [http://lim.univ-reunion.fr/staff/epayet/ Étienne Payet], Université de La Réunion&lt;br /&gt;
* [https://group-mmm.org/~ayamada/ Akihisa Yamada], AIST Tokyo Waterfront&lt;br /&gt;
* Dieter Hofbauer, ASW Saarland&lt;br /&gt;
&lt;br /&gt;
From 2004 till 2007, the competition organizer was Claude March&amp;amp;eacute;, [http://www.lri.fr/~marche/termination-competition/ Paris].&lt;br /&gt;
From 2008 to 2013 the competition was run by Ren&amp;amp;eacute; Thiemann, [http://termcomp.uibk.ac.at Innsbruck].&lt;br /&gt;
From 2014 to 2017, the competition organizer was Johannes Waldmann. Jobs were run on the [https://www.starexec.org/ Star Exec] platform at U Iowa.&lt;br /&gt;
From 2018 to 2023, the organizer was Akihisa Yamada.&lt;br /&gt;
From 2024 on, the organizer is Florian Frohn.&lt;br /&gt;
&lt;br /&gt;
== History of Termination Competitions ==&lt;br /&gt;
&lt;br /&gt;
A list of all competitions that have been taken place can be found [[Termination Competition History|here]].&lt;br /&gt;
&lt;br /&gt;
==== Results ====&lt;br /&gt;
&lt;br /&gt;
The results of (almost) all competitions are available [https://termcomp.github.io/ here]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Standard&amp;diff=2106</id>
		<title>TRS Standard</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Standard&amp;diff=2106"/>
		<updated>2026-03-09T09:29:55Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: JCKassing moved page Category TRS Standard to TRS Standard: removed Category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Standard category is concerned with the question &amp;quot;Will every possible sequence of rewrites eventually stop?&amp;quot;. &lt;br /&gt;
In other words, does every computation defined by the rewrite rules eventually reach a normal form (a term where no rule applies)?&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules, see [1].&lt;br /&gt;
&lt;br /&gt;
A term rewrite system R is terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Franz Baader and Tobias Nipkow. Term Rewriting and All That. Cambridge University Press, 1998.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Category_TRS_Standard&amp;diff=2107</id>
		<title>Category TRS Standard</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Category_TRS_Standard&amp;diff=2107"/>
		<updated>2026-03-09T09:29:55Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: JCKassing moved page Category TRS Standard to TRS Standard: removed Category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[TRS Standard]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=TRS_Standard&amp;diff=2105</id>
		<title>TRS Standard</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Standard&amp;diff=2105"/>
		<updated>2026-03-09T09:28:57Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added TRS Standard Category Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TRS Standard category is concerned with the question &amp;quot;Will every possible sequence of rewrites eventually stop?&amp;quot;. &lt;br /&gt;
In other words, does every computation defined by the rewrite rules eventually reach a normal form (a term where no rule applies)?&lt;br /&gt;
&lt;br /&gt;
== Syntax &amp;amp; Semantic ==&lt;br /&gt;
&lt;br /&gt;
The syntax and the semantics of term rewrite systems are described [[Term Rewriting | here]].&lt;br /&gt;
&lt;br /&gt;
Formally, a term rewrite system R = {l&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,l&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; &amp;amp;rarr; r&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;} is a finite set of rewrite rules, see [1].&lt;br /&gt;
&lt;br /&gt;
A term rewrite system R is terminating if there exists no infinite rewrite sequence s&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Input&amp;lt;/b&amp;gt;: A term rewrite system R.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;: Does R terminate?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Possible Outputs&amp;lt;/b&amp;gt;: &lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;YES&amp;lt;/b&amp;gt;&amp;quot; followed by a termination proof, e.g., a ranking function proving termination of R.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;NO&amp;lt;/b&amp;gt;&amp;quot; followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence.&lt;br /&gt;
* &amp;quot;&amp;lt;b&amp;gt;MAYBE&amp;lt;/b&amp;gt;&amp;quot; (indicating that the solver cannot prove termination).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] Franz Baader and Tobias Nipkow. Term Rewriting and All That. Cambridge University Press, 1998.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition_History&amp;diff=2104</id>
		<title>Termination Competition History</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition_History&amp;diff=2104"/>
		<updated>2026-03-08T12:40:18Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added results&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following competitions have taken place:&lt;br /&gt;
&lt;br /&gt;
* [[Termination Competition 2025]] affiliated with [https://www.imn.htwk-leipzig.de/WST2025/ WST 2025], [https://termcomp.github.io/Y2025/ Results].&lt;br /&gt;
* [[Termination Competition 2024]] affiliated with [https://merz.gitlabpages.inria.fr/2024-ijcar/ IJCAR 2024], [https://termcomp.github.io/Y2024/ Results].&lt;br /&gt;
* [[Termination Competition 2023]] affiliated with [[WST2023]], [https://termcomp.github.io/Y2023/ Results].&lt;br /&gt;
* [[Termination Competition 2022]] affiliated with [https://easychair.org/smart-program/FLoC2022/IJCAR-index.html IJCAR 2022], [https://termcomp.github.io/Y2022/ Results].&lt;br /&gt;
* [[Termination Competition 2021]] affiliated with [http://www.cs.cmu.edu/~mheule/CADE28/ CADE 2021], [https://termcomp.github.io/Y2021/ Results].&lt;br /&gt;
* [[Termination Competition 2020]] affiliated with [https://ijcar2020.org/ IJCAR 2020], [https://termcomp.github.io/Y2020/ Results].&lt;br /&gt;
* [[Termination Competition 2019]] affiliated with [https://tacas.info/toolympics.php Toolympics at TACAS 2019], [https://termcomp.github.io/Y2019/ Results].&lt;br /&gt;
* [[Termination Competition 2018]] affiliated with FLoC 2018, Oxford, UK, July 13, 2018, [https://termcomp.github.io/Y2018/ Results].&lt;br /&gt;
&lt;br /&gt;
* [[Termination_Competition_2017|Termination Competition 2017]] affiliated with [http://www.cs.ox.ac.uk/conferences/fscd2017/ FSCD], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2017 Results of Competition], [http://termcomp.imn.htwk-leipzig.de/competitions/67 Results of demonstration]. &lt;br /&gt;
&lt;br /&gt;
* [[Termination_Competition_2016|Termination Competition 2016]] affiliated with [http://cl-informatik.uibk.ac.at/events/wst-2016/ WST (Workshop on Termination)], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2016 Results of Competition]. [http://www.cs.upc.edu/~albert/papers/termcomp2016_slides.pdf Presentation at WST]&lt;br /&gt;
&lt;br /&gt;
* [[Termination Competition 2015]], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2015 Results of Competition], [http://www.cs.upc.edu/~albert/papers/termCompCADE2015.pdf Description paper at CADE-25] [http://www.cs.upc.edu/~albert/papers/termcomp2015_slides.pdf Report]&lt;br /&gt;
&lt;br /&gt;
* [[Termination Competition 2014]], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2014 Results of Competition], [http://nfa.imn.htwk-leipzig.de/termcomp/competition/23 Results of Demonstration]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2013]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=437763 Results], [http://termcomp.uibk.ac.at/2013/competition2013.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2012]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=362062 Results], [http://verify.rwth-aachen.de/giesl/competition2012.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2011]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=230715 Results], [http://termcomp.uibk.ac.at/2011/competition2011.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2010]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=185404 Results] &lt;br /&gt;
&lt;br /&gt;
*  Termination Competition 2009 [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 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 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;br /&gt;
&lt;br /&gt;
At the &amp;quot;tool demonstration&amp;quot; in 2003, participating provers (including AProVe, Torpa, Matchbox)&lt;br /&gt;
were run on the laptop computers of their developers in the room. Termination problems were announced &lt;br /&gt;
on the spot by participants, then written on the blackboard, then typed in by everyone, and when a team's program&lt;br /&gt;
could solve it, they shouted &amp;quot;solved&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
The results of (almost) all competitions are available [https://termcomp.github.io/ here]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2103</id>
		<title>Termination Competition</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2103"/>
		<updated>2026-03-08T12:39:38Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Simplified the competition page and moved important parts to the top&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 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 Termination Workshop 2003 (Valencia),&lt;br /&gt;
the community then decided to install an annual termination competition, and to collect benchmarks,&lt;br /&gt;
to spur the development of tools and new termination techniques.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Competitions ==&lt;br /&gt;
&lt;br /&gt;
* The [[Termination Competition 2025]] will be held during [https://www.imn.htwk-leipzig.de/WST2025/ WST 2025], September 3-4, Leipzig, Germany.&lt;br /&gt;
&lt;br /&gt;
== Competition Categories ==&lt;br /&gt;
&lt;br /&gt;
Currently, the competition features the following categories. Since 2007 some of the categories also have [[Certified_Termination|certified categories]], where an additional certifier checks the output of the tools. Categories that were used in the past but not included in the three most recent competitions are marked with an &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories consider the termination of &amp;lt;b&amp;gt;rewrite systems&amp;lt;/b&amp;gt;, a foundational computational model used to represent symbolic computation and program transformations. &lt;br /&gt;
The goal is to automatically prove that no infinite rewrite sequences are possible for the given system. &lt;br /&gt;
Different categories capture variations of rewriting such as relative rewriting, context-sensitive rewriting, conditional rules, or restrictions on the rewriting strategy (e.g., innermost or outermost rewriting).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Term Rewriting#TRS Standard|TRS Standard]]&lt;br /&gt;
* [[Term Rewriting#TRS Relative|TRS Relative]]&lt;br /&gt;
* [[Term Rewriting#TRS Contextsensitive|TRS Contextsensitive]]&lt;br /&gt;
* [[Term Rewriting#TRS Equational|TRS Equational]]&lt;br /&gt;
* [[Term Rewriting#TRS Innermost|TRS Innermost]]&lt;br /&gt;
* [[Term Rewriting#TRS Outermost|TRS Outermost]]&lt;br /&gt;
* [[Term Rewriting#TRS Conditional|TRS Conditional]]&lt;br /&gt;
* [[Term Rewriting#TRS Conditional - Operational Termination|TRS Conditional - Operational Termination]]&lt;br /&gt;
* [[Term Rewriting#SRS Standard|SRS Standard]]&lt;br /&gt;
* [[Term Rewriting#SRS Relative|SRS Relative]]&lt;br /&gt;
* [[Cycle_Rewriting|Cycle Rewriting]] &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;&lt;br /&gt;
* [[Higher_Order|Higher Order Rewriting]] (since 2010)&lt;br /&gt;
* [[ITRS|ITRS Innermost]] (since 2014)&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Termination of Probabilistic Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories address &amp;lt;b&amp;gt; probabilistic rewrite systems &amp;lt;/b&amp;gt;, where rewrite rules are applied according to probability distributions. &lt;br /&gt;
Instead of classical termination, the goal is to prove almost-sure termination, i.e., that infinite executions occur with probability zero,&lt;br /&gt;
or strong almost-sure termination, i.e., that the expected runtime is finite. &lt;br /&gt;
This lifts termination analysis to models that capture randomized algorithms or stochastic behavior.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Probabilistic Rewriting#PTRS Standard|PTRS Standard]] (since 2024)&lt;br /&gt;
* [[Probabilistic Rewriting#PTRS Innermost|PTRS Innermost]] (since 2024)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, there are only categories regarding probabilistic rewrite systems, &lt;br /&gt;
but an extension to probabilistic imperative programs may be possible in future competitions.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Programs ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on proving termination of &amp;lt;b&amp;gt; actual programming languages &amp;lt;/b&amp;gt; used in industry. &lt;br /&gt;
The categories differ by the source programming language or program model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Logic_Programming|Termination of logic programs]]&lt;br /&gt;
* [[Functional_Programming|Termination of functional programs]] (since 2007)&lt;br /&gt;
* [[Java_Bytecode|Termination of Java Bytecode programs]] (since 2009)&lt;br /&gt;
* [[C_Programs|Termination of C programs]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories evaluate tools that automatically analyze the &amp;lt;b&amp;gt; asymptotic complexity of rewrite systems &amp;lt;/b&amp;gt;. &lt;br /&gt;
Instead of only proving termination, the goal is to derive upper bounds on the length of rewrite sequences, &lt;br /&gt;
typically expressed as functions of the input size. &lt;br /&gt;
Different categories measure difference runtime complexities under various rewriting strategies and different restrictions on the initial start term.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Derivational Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Derivational Complexity]]&lt;br /&gt;
* TRS Parallel Innermost Derivational Complexity&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS Complexity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity Analysis ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on automatically determining &amp;lt;b&amp;gt; time complexity bounds for programs written in concrete programming languages &amp;lt;/b&amp;gt;. &lt;br /&gt;
Tools analyze the program’s control flow, data dependencies, and loops to derive asymptotic upper bounds on runtime with respect to the input size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[C_Complexity|Complexity of C programs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Competition Benchmarks ==&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;
== Organization ==&lt;br /&gt;
&lt;br /&gt;
Questions and suggestions regarding the competition&lt;br /&gt;
should go to [[Termtools|the termtools mailing list]].&lt;br /&gt;
Discussion is open and happens primarily on the list.&lt;br /&gt;
Decisions will be made by votes among the [[Termination Competition Steering Committee]], with current members&lt;br /&gt;
* [https://ffrohn.github.io Florian Frohn] (Chair), RWTH Aachen&lt;br /&gt;
* [https://verify.rwth-aachen.de/giesl/ Jürgen Giesl], RWTH Aachen&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/ Georg Moser], University of Innsbruck&lt;br /&gt;
* [http://lim.univ-reunion.fr/staff/epayet/ Étienne Payet], Université de La Réunion&lt;br /&gt;
* [https://group-mmm.org/~ayamada/ Akihisa Yamada], AIST Tokyo Waterfront&lt;br /&gt;
* Dieter Hofbauer, ASW Saarland&lt;br /&gt;
&lt;br /&gt;
From 2004 till 2007, the competition organizer was Claude March&amp;amp;eacute;, [http://www.lri.fr/~marche/termination-competition/ Paris].&lt;br /&gt;
From 2008 to 2013 the competition was run by Ren&amp;amp;eacute; Thiemann, [http://termcomp.uibk.ac.at Innsbruck].&lt;br /&gt;
From 2014 to 2017, the competition organizer was Johannes Waldmann. Jobs were run on the [https://www.starexec.org/ Star Exec] platform at U Iowa.&lt;br /&gt;
From 2018 to 2023, the organizer was Akihisa Yamada.&lt;br /&gt;
From 2024 on, the organizer is Florian Frohn.&lt;br /&gt;
&lt;br /&gt;
== History of Termination Competitions ==&lt;br /&gt;
&lt;br /&gt;
A list of all competitions that have been taken place can be found [[Termination Competition History|here]].&lt;br /&gt;
&lt;br /&gt;
==== Results ====&lt;br /&gt;
&lt;br /&gt;
The results of (almost) all competitions are available [https://termcomp.github.io/ here]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition_History&amp;diff=2102</id>
		<title>Termination Competition History</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition_History&amp;diff=2102"/>
		<updated>2026-03-08T12:36:50Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added an additional page for the history of the termination competition&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following competitions have taken place:&lt;br /&gt;
&lt;br /&gt;
* [[Termination Competition 2025]] affiliated with [https://www.imn.htwk-leipzig.de/WST2025/ WST 2025], [https://termcomp.github.io/Y2025/ Results].&lt;br /&gt;
* [[Termination Competition 2024]] affiliated with [https://merz.gitlabpages.inria.fr/2024-ijcar/ IJCAR 2024], [https://termcomp.github.io/Y2024/ Results].&lt;br /&gt;
* [[Termination Competition 2023]] affiliated with [[WST2023]], [https://termcomp.github.io/Y2023/ Results].&lt;br /&gt;
* [[Termination Competition 2022]] affiliated with [https://easychair.org/smart-program/FLoC2022/IJCAR-index.html IJCAR 2022], [https://termcomp.github.io/Y2022/ Results].&lt;br /&gt;
* [[Termination Competition 2021]] affiliated with [http://www.cs.cmu.edu/~mheule/CADE28/ CADE 2021], [https://termcomp.github.io/Y2021/ Results].&lt;br /&gt;
* [[Termination Competition 2020]] affiliated with [https://ijcar2020.org/ IJCAR 2020], [https://termcomp.github.io/Y2020/ Results].&lt;br /&gt;
* [[Termination Competition 2019]] affiliated with [https://tacas.info/toolympics.php Toolympics at TACAS 2019], [https://termcomp.github.io/Y2019/ Results].&lt;br /&gt;
* [[Termination Competition 2018]] affiliated with FLoC 2018, Oxford, UK, July 13, 2018, [https://termcomp.github.io/Y2018/ Results].&lt;br /&gt;
&lt;br /&gt;
* [[Termination_Competition_2017|Termination Competition 2017]] affiliated with [http://www.cs.ox.ac.uk/conferences/fscd2017/ FSCD], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2017 Results of Competition], [http://termcomp.imn.htwk-leipzig.de/competitions/67 Results of demonstration]. &lt;br /&gt;
&lt;br /&gt;
* [[Termination_Competition_2016|Termination Competition 2016]] affiliated with [http://cl-informatik.uibk.ac.at/events/wst-2016/ WST (Workshop on Termination)], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2016 Results of Competition]. [http://www.cs.upc.edu/~albert/papers/termcomp2016_slides.pdf Presentation at WST]&lt;br /&gt;
&lt;br /&gt;
* [[Termination Competition 2015]], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2015 Results of Competition], [http://www.cs.upc.edu/~albert/papers/termCompCADE2015.pdf Description paper at CADE-25] [http://www.cs.upc.edu/~albert/papers/termcomp2015_slides.pdf Report]&lt;br /&gt;
&lt;br /&gt;
* [[Termination Competition 2014]], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2014 Results of Competition], [http://nfa.imn.htwk-leipzig.de/termcomp/competition/23 Results of Demonstration]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2013]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=437763 Results], [http://termcomp.uibk.ac.at/2013/competition2013.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2012]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=362062 Results], [http://verify.rwth-aachen.de/giesl/competition2012.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2011]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=230715 Results], [http://termcomp.uibk.ac.at/2011/competition2011.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2010]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=185404 Results] &lt;br /&gt;
&lt;br /&gt;
*  Termination Competition 2009 [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 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 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;br /&gt;
&lt;br /&gt;
At the &amp;quot;tool demonstration&amp;quot; in 2003, participating provers (including AProVe, Torpa, Matchbox)&lt;br /&gt;
were run on the laptop computers of their developers in the room. Termination problems were announced &lt;br /&gt;
on the spot by participants, then written on the blackboard, then typed in by everyone, and when a team's program&lt;br /&gt;
could solve it, they shouted &amp;quot;solved&amp;quot;.&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2101</id>
		<title>Termination Competition</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2101"/>
		<updated>2026-03-08T12:33:20Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added explanations for each of the category types&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 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 Termination Workshop 2003 (Valencia),&lt;br /&gt;
the community then decided to install an annual termination competition, and to collect benchmarks,&lt;br /&gt;
to spur the development of tools and new termination techniques.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Competitions ==&lt;br /&gt;
&lt;br /&gt;
* The [[Termination Competition 2025]] will be held during [https://www.imn.htwk-leipzig.de/WST2025/ WST 2025], September 3-4, Leipzig, Germany.&lt;br /&gt;
&lt;br /&gt;
== Organization ==&lt;br /&gt;
&lt;br /&gt;
Questions and suggestions regarding the competition&lt;br /&gt;
should go to [[Termtools|the termtools mailing list]].&lt;br /&gt;
Discussion is open and happens primarily on the list.&lt;br /&gt;
Decisions will be made by votes among the [[Termination Competition Steering Committee]], with current members&lt;br /&gt;
* [https://ffrohn.github.io Florian Frohn] (Chair), RWTH Aachen&lt;br /&gt;
* [https://verify.rwth-aachen.de/giesl/ Jürgen Giesl], RWTH Aachen&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/ Georg Moser], University of Innsbruck&lt;br /&gt;
* [http://lim.univ-reunion.fr/staff/epayet/ Étienne Payet], Université de La Réunion&lt;br /&gt;
* [https://group-mmm.org/~ayamada/ Akihisa Yamada], AIST Tokyo Waterfront&lt;br /&gt;
* Dieter Hofbauer, ASW Saarland&lt;br /&gt;
&lt;br /&gt;
From 2004 till 2007, the competition organizer was Claude March&amp;amp;eacute;, [http://www.lri.fr/~marche/termination-competition/ Paris].&lt;br /&gt;
From 2008 to 2013 the competition was run by Ren&amp;amp;eacute; Thiemann, [http://termcomp.uibk.ac.at Innsbruck].&lt;br /&gt;
From 2014 to 2017, the competition organizer was Johannes Waldmann. Jobs were run on the [https://www.starexec.org/ Star Exec] platform at U Iowa.&lt;br /&gt;
From 2018 to 2023, the organizer was Akihisa Yamada.&lt;br /&gt;
From 2024 on, the organizer is Florian Frohn.&lt;br /&gt;
&lt;br /&gt;
== Competition Categories ==&lt;br /&gt;
&lt;br /&gt;
Currently, the competition features the following categories. Since 2007 some of the categories also have [[Certified_Termination|certified categories]], where an additional certifier checks the output of the tools. Categories that were used in the past but not included in the three most recent competitions are marked with an &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories consider the termination of &amp;lt;b&amp;gt;rewrite systems&amp;lt;/b&amp;gt;, a foundational computational model used to represent symbolic computation and program transformations. &lt;br /&gt;
The goal is to automatically prove that no infinite rewrite sequences are possible for the given system. &lt;br /&gt;
Different categories capture variations of rewriting such as relative rewriting, context-sensitive rewriting, conditional rules, or restrictions on the rewriting strategy (e.g., innermost or outermost rewriting).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Term Rewriting#TRS Standard|TRS Standard]]&lt;br /&gt;
* [[Term Rewriting#TRS Relative|TRS Relative]]&lt;br /&gt;
* [[Term Rewriting#TRS Contextsensitive|TRS Contextsensitive]]&lt;br /&gt;
* [[Term Rewriting#TRS Equational|TRS Equational]]&lt;br /&gt;
* [[Term Rewriting#TRS Innermost|TRS Innermost]]&lt;br /&gt;
* [[Term Rewriting#TRS Outermost|TRS Outermost]]&lt;br /&gt;
* [[Term Rewriting#TRS Conditional|TRS Conditional]]&lt;br /&gt;
* [[Term Rewriting#TRS Conditional - Operational Termination|TRS Conditional - Operational Termination]]&lt;br /&gt;
* [[Term Rewriting#SRS Standard|SRS Standard]]&lt;br /&gt;
* [[Term Rewriting#SRS Relative|SRS Relative]]&lt;br /&gt;
* [[Cycle_Rewriting|Cycle Rewriting]] &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;&lt;br /&gt;
* [[Higher_Order|Higher Order Rewriting]] (since 2010)&lt;br /&gt;
* [[ITRS|ITRS Innermost]] (since 2014)&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Termination of Probabilistic Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories address &amp;lt;b&amp;gt; probabilistic rewrite systems &amp;lt;/b&amp;gt;, where rewrite rules are applied according to probability distributions. &lt;br /&gt;
Instead of classical termination, the goal is to prove almost-sure termination, i.e., that infinite executions occur with probability zero,&lt;br /&gt;
or strong almost-sure termination, i.e., that the expected runtime is finite. &lt;br /&gt;
This lifts termination analysis to models that capture randomized algorithms or stochastic behavior.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Probabilistic Rewriting#PTRS Standard|PTRS Standard]] (since 2024)&lt;br /&gt;
* [[Probabilistic Rewriting#PTRS Innermost|PTRS Innermost]] (since 2024)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, there are only categories regarding probabilistic rewrite systems, &lt;br /&gt;
but an extension to probabilistic imperative programs may be possible in future competitions.&lt;br /&gt;
&lt;br /&gt;
=== Termination of Programs ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on proving termination of &amp;lt;b&amp;gt; actual programming languages &amp;lt;/b&amp;gt; used in industry. &lt;br /&gt;
The categories differ by the source programming language or program model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Logic_Programming|Termination of logic programs]]&lt;br /&gt;
* [[Functional_Programming|Termination of functional programs]] (since 2007)&lt;br /&gt;
* [[Java_Bytecode|Termination of Java Bytecode programs]] (since 2009)&lt;br /&gt;
* [[C_Programs|Termination of C programs]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
These categories evaluate tools that automatically analyze the &amp;lt;b&amp;gt; asymptotic complexity of rewrite systems &amp;lt;/b&amp;gt;. &lt;br /&gt;
Instead of only proving termination, the goal is to derive upper bounds on the length of rewrite sequences, &lt;br /&gt;
typically expressed as functions of the input size. &lt;br /&gt;
Different categories measure difference runtime complexities under various rewriting strategies and different restrictions on the initial start term.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Derivational Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Derivational Complexity]]&lt;br /&gt;
* TRS Parallel Innermost Derivational Complexity&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS Complexity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity Analysis ===&lt;br /&gt;
&lt;br /&gt;
These categories focus on automatically determining &amp;lt;b&amp;gt; time complexity bounds for programs written in concrete programming languages &amp;lt;/b&amp;gt;. &lt;br /&gt;
Tools analyze the program’s control flow, data dependencies, and loops to derive asymptotic upper bounds on runtime with respect to the input size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[C_Complexity|Complexity of C programs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&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 2025]] affiliated with [https://www.imn.htwk-leipzig.de/WST2025/ WST 2025], [https://termcomp.github.io/Y2025/ Results].&lt;br /&gt;
* [[Termination Competition 2024]] affiliated with [https://merz.gitlabpages.inria.fr/2024-ijcar/ IJCAR 2024], [https://termcomp.github.io/Y2024/ Results].&lt;br /&gt;
* [[Termination Competition 2023]] affiliated with [[WST2023]], [https://termcomp.github.io/Y2023/ Results].&lt;br /&gt;
* [[Termination Competition 2022]] affiliated with [https://easychair.org/smart-program/FLoC2022/IJCAR-index.html IJCAR 2022], [https://termcomp.github.io/Y2022/ Results].&lt;br /&gt;
* [[Termination Competition 2021]] affiliated with [http://www.cs.cmu.edu/~mheule/CADE28/ CADE 2021], [https://termcomp.github.io/Y2021/ Results].&lt;br /&gt;
* [[Termination Competition 2020]] affiliated with [https://ijcar2020.org/ IJCAR 2020], [https://termcomp.github.io/Y2020/ Results].&lt;br /&gt;
* [[Termination Competition 2019]] affiliated with [https://tacas.info/toolympics.php Toolympics at TACAS 2019], [https://termcomp.github.io/Y2019/ Results].&lt;br /&gt;
* [[Termination Competition 2018]] affiliated with FLoC 2018, Oxford, UK, July 13, 2018, [https://termcomp.github.io/Y2018/ Results].&lt;br /&gt;
&lt;br /&gt;
* [[Termination_Competition_2017|Termination Competition 2017]] affiliated with [http://www.cs.ox.ac.uk/conferences/fscd2017/ FSCD], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2017 Results of Competition], [http://termcomp.imn.htwk-leipzig.de/competitions/67 Results of demonstration]. &lt;br /&gt;
&lt;br /&gt;
* [[Termination_Competition_2016|Termination Competition 2016]] affiliated with [http://cl-informatik.uibk.ac.at/events/wst-2016/ WST (Workshop on Termination)], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2016 Results of Competition]. [http://www.cs.upc.edu/~albert/papers/termcomp2016_slides.pdf Presentation at WST]&lt;br /&gt;
&lt;br /&gt;
* [[Termination Competition 2015]], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2015 Results of Competition], [http://www.cs.upc.edu/~albert/papers/termCompCADE2015.pdf Description paper at CADE-25] [http://www.cs.upc.edu/~albert/papers/termcomp2015_slides.pdf Report]&lt;br /&gt;
&lt;br /&gt;
* [[Termination Competition 2014]], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2014 Results of Competition], [http://nfa.imn.htwk-leipzig.de/termcomp/competition/23 Results of Demonstration]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2013]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=437763 Results], [http://termcomp.uibk.ac.at/2013/competition2013.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2012]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=362062 Results], [http://verify.rwth-aachen.de/giesl/competition2012.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2011]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=230715 Results], [http://termcomp.uibk.ac.at/2011/competition2011.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2010]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=185404 Results] &lt;br /&gt;
&lt;br /&gt;
*  Termination Competition 2009 [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 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 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;br /&gt;
&lt;br /&gt;
At the &amp;quot;tool demonstration&amp;quot; in 2003, participating provers (including AProVe, Torpa, Matchbox)&lt;br /&gt;
were run on the laptop computers of their developers in the room. Termination problems were announced &lt;br /&gt;
on the spot by participants, then written on the blackboard, then typed in by everyone, and when a team's program&lt;br /&gt;
could solve it, they shouted &amp;quot;solved&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
The results of (almost) all competitions are available [https://termcomp.github.io/ here]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Tools:AProVE&amp;diff=2100</id>
		<title>Tools:AProVE</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Tools:AProVE&amp;diff=2100"/>
		<updated>2026-03-06T22:23:03Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Changed the developer list to the current website list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
       Please fill in the data so that you can be added to some default&lt;br /&gt;
       categories and a simple user page can be created. You may extend&lt;br /&gt;
       that user page yourself after the following code block.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tool&lt;br /&gt;
|shortname=AProVE&lt;br /&gt;
|longname=Automated Program Verification Environment&lt;br /&gt;
|homepage=http://aprove.informatik.rwth-aachen.de&lt;br /&gt;
|country=Germany&lt;br /&gt;
|university=RWTH Aachen&lt;br /&gt;
|developers=https://aprove.informatik.rwth-aachen.de/contact&lt;br /&gt;
|publication=[[Bibtex:AProVE14|Proving Termination of Programs Automatically with AProVE]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If you want to add some additional information to the tool page, you can do so after this comment. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Aprove_logo_new.png|400px|thumb|center|AProVE logo]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2099</id>
		<title>Termination Competition</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2099"/>
		<updated>2026-02-24T15:10:03Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Improved the categorization of all competition categories&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 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 Termination Workshop 2003 (Valencia),&lt;br /&gt;
the community then decided to install an annual termination competition, and to collect benchmarks,&lt;br /&gt;
to spur the development of tools and new termination techniques.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Competitions ==&lt;br /&gt;
&lt;br /&gt;
* The [[Termination Competition 2025]] will be held during [https://www.imn.htwk-leipzig.de/WST2025/ WST 2025], September 3-4, Leipzig, Germany.&lt;br /&gt;
&lt;br /&gt;
== Organization ==&lt;br /&gt;
&lt;br /&gt;
Questions and suggestions regarding the competition&lt;br /&gt;
should go to [[Termtools|the termtools mailing list]].&lt;br /&gt;
Discussion is open and happens primarily on the list.&lt;br /&gt;
Decisions will be made by votes among the [[Termination Competition Steering Committee]], with current members&lt;br /&gt;
* [https://ffrohn.github.io Florian Frohn] (Chair), RWTH Aachen&lt;br /&gt;
* [https://verify.rwth-aachen.de/giesl/ Jürgen Giesl], RWTH Aachen&lt;br /&gt;
* [http://cl-informatik.uibk.ac.at/users/georg/ Georg Moser], University of Innsbruck&lt;br /&gt;
* [http://lim.univ-reunion.fr/staff/epayet/ Étienne Payet], Université de La Réunion&lt;br /&gt;
* [https://group-mmm.org/~ayamada/ Akihisa Yamada], AIST Tokyo Waterfront&lt;br /&gt;
* Dieter Hofbauer, ASW Saarland&lt;br /&gt;
&lt;br /&gt;
From 2004 till 2007, the competition organizer was Claude March&amp;amp;eacute;, [http://www.lri.fr/~marche/termination-competition/ Paris].&lt;br /&gt;
From 2008 to 2013 the competition was run by Ren&amp;amp;eacute; Thiemann, [http://termcomp.uibk.ac.at Innsbruck].&lt;br /&gt;
From 2014 to 2017, the competition organizer was Johannes Waldmann. Jobs were run on the [https://www.starexec.org/ Star Exec] platform at U Iowa.&lt;br /&gt;
From 2018 to 2023, the organizer was Akihisa Yamada.&lt;br /&gt;
From 2024 on, the organizer is Florian Frohn.&lt;br /&gt;
&lt;br /&gt;
== Competition Categories ==&lt;br /&gt;
&lt;br /&gt;
Currently, the competition features the following categories. Since 2007 some of the categories also have [[Certified_Termination|certified categories]], where an additional certifier checks the ouput of the tools. Categories that were used in the past but not included in the three most recent competitions are marked with an &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== Termination of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Term Rewriting#TRS Standard|TRS Standard]]&lt;br /&gt;
* [[Term Rewriting#TRS Relative|TRS Relative]]&lt;br /&gt;
* [[Term Rewriting#TRS Contextsensitive|TRS Contextsensitive]]&lt;br /&gt;
* [[Term Rewriting#TRS Equational|TRS Equational]]&lt;br /&gt;
* [[Term Rewriting#TRS Innermost|TRS Innermost]]&lt;br /&gt;
* [[Term Rewriting#TRS Outermost|TRS Outermost]]&lt;br /&gt;
* [[Term Rewriting#TRS Conditional|TRS Conditional]]&lt;br /&gt;
* [[Term Rewriting#TRS Conditional - Operational Termination|TRS Conditional - Operational Termination]]&lt;br /&gt;
* [[Term Rewriting#SRS Standard|SRS Standard]]&lt;br /&gt;
* [[Term Rewriting#SRS Relative|SRS Relative]]&lt;br /&gt;
* [[Cycle_Rewriting|Cycle Rewriting]] &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;✖&amp;lt;/span&amp;gt;&lt;br /&gt;
* [[Higher_Order|Higher Order Rewriting]] (since 2010)&lt;br /&gt;
* [[ITRS|ITRS Innermost]] (since 2014)&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Termination of Probabilistic Rewriting ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Probabilistic Rewriting#PTRS Standard|PTRS Standard]] (since 2024)&lt;br /&gt;
* [[Probabilistic Rewriting#PTRS Innermost|PTRS Innermost]] (since 2024)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Termination of Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Logic_Programming|termination of logic programs]]&lt;br /&gt;
* [[Functional_Programming|termination of functional programs]] (since 2007)&lt;br /&gt;
* [[Java_Bytecode|termination of Java Bytecode programs]] (since 2009)&lt;br /&gt;
* [[C_Programs|termination of C programs]] (since 2014)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity of Rewriting ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Runtime Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Derivational Complexity]]&lt;br /&gt;
* [[Term Rewriting#Runtime Complexity|TRS Innermost Derivational Complexity]]&lt;br /&gt;
* TRS Parallel Innermost Derivational Complexity&lt;br /&gt;
* [[Term Rewriting#Integer Transition Systems|ITS Complexity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complexity Analysis ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3; column-gap:2em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[C_Complexity|Complexity of C programs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&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 2025]] affiliated with [https://www.imn.htwk-leipzig.de/WST2025/ WST 2025], [https://termcomp.github.io/Y2025/ Results].&lt;br /&gt;
* [[Termination Competition 2024]] affiliated with [https://merz.gitlabpages.inria.fr/2024-ijcar/ IJCAR 2024], [https://termcomp.github.io/Y2024/ Results].&lt;br /&gt;
* [[Termination Competition 2023]] affiliated with [[WST2023]], [https://termcomp.github.io/Y2023/ Results].&lt;br /&gt;
* [[Termination Competition 2022]] affiliated with [https://easychair.org/smart-program/FLoC2022/IJCAR-index.html IJCAR 2022], [https://termcomp.github.io/Y2022/ Results].&lt;br /&gt;
* [[Termination Competition 2021]] affiliated with [http://www.cs.cmu.edu/~mheule/CADE28/ CADE 2021], [https://termcomp.github.io/Y2021/ Results].&lt;br /&gt;
* [[Termination Competition 2020]] affiliated with [https://ijcar2020.org/ IJCAR 2020], [https://termcomp.github.io/Y2020/ Results].&lt;br /&gt;
* [[Termination Competition 2019]] affiliated with [https://tacas.info/toolympics.php Toolympics at TACAS 2019], [https://termcomp.github.io/Y2019/ Results].&lt;br /&gt;
* [[Termination Competition 2018]] affiliated with FLoC 2018, Oxford, UK, July 13, 2018, [https://termcomp.github.io/Y2018/ Results].&lt;br /&gt;
&lt;br /&gt;
* [[Termination_Competition_2017|Termination Competition 2017]] affiliated with [http://www.cs.ox.ac.uk/conferences/fscd2017/ FSCD], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2017 Results of Competition], [http://termcomp.imn.htwk-leipzig.de/competitions/67 Results of demonstration]. &lt;br /&gt;
&lt;br /&gt;
* [[Termination_Competition_2016|Termination Competition 2016]] affiliated with [http://cl-informatik.uibk.ac.at/events/wst-2016/ WST (Workshop on Termination)], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2016 Results of Competition]. [http://www.cs.upc.edu/~albert/papers/termcomp2016_slides.pdf Presentation at WST]&lt;br /&gt;
&lt;br /&gt;
* [[Termination Competition 2015]], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2015 Results of Competition], [http://www.cs.upc.edu/~albert/papers/termCompCADE2015.pdf Description paper at CADE-25] [http://www.cs.upc.edu/~albert/papers/termcomp2015_slides.pdf Report]&lt;br /&gt;
&lt;br /&gt;
* [[Termination Competition 2014]], [http://termcomp.imn.htwk-leipzig.de/competitions/Y2014 Results of Competition], [http://nfa.imn.htwk-leipzig.de/termcomp/competition/23 Results of Demonstration]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2013]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=437763 Results], [http://termcomp.uibk.ac.at/2013/competition2013.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2012]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=362062 Results], [http://verify.rwth-aachen.de/giesl/competition2012.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2011]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=230715 Results], [http://termcomp.uibk.ac.at/2011/competition2011.pdf Report]&lt;br /&gt;
&lt;br /&gt;
*  [[Termination Competition 2010]], [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=185404 Results] &lt;br /&gt;
&lt;br /&gt;
*  Termination Competition 2009 [http://termcomp.uibk.ac.at/termcomp/competition/competitionSummary.seam?comp=101722 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 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;br /&gt;
&lt;br /&gt;
At the &amp;quot;tool demonstration&amp;quot; in 2003, participating provers (including AProVe, Torpa, Matchbox)&lt;br /&gt;
were run on the laptop computers of their developers in the room. Termination problems were announced &lt;br /&gt;
on the spot by participants, then written on the blackboard, then typed in by everyone, and when a team's program&lt;br /&gt;
could solve it, they shouted &amp;quot;solved&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
The results of (almost) all competitions are available [https://termcomp.github.io/ here]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=People:Jan-Christoph_Kassing&amp;diff=2083</id>
		<title>People:Jan-Christoph Kassing</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=People:Jan-Christoph_Kassing&amp;diff=2083"/>
		<updated>2026-01-15T12:44:22Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added profile pic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
       Please fill in the data so that you can be added to some default&lt;br /&gt;
       categories and a simple user page can be created. You may extend&lt;br /&gt;
       that user page yourself after the following code block.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Person&lt;br /&gt;
|firstname=Jan-Christoph&lt;br /&gt;
|middlenames=&lt;br /&gt;
|lastname=Kassing&lt;br /&gt;
|titles=&lt;br /&gt;
|email=Kassing@cs.rwth-aachen.de&lt;br /&gt;
|homepage=http://jckassing.com/&lt;br /&gt;
|country=Germany&lt;br /&gt;
|university=RWTH Aachen&lt;br /&gt;
|department=Research Group Computer Science 2&lt;br /&gt;
|role=PhD Student       &amp;lt;!-- role: Student, Professor, PhD Student, ... --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If you want to add some personal data to your userpage, you can do so after this comment. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://jckassing.com/ https://jckassing.com/images/Kassing_close.png]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Category:Categories&amp;diff=2082</id>
		<title>Category:Categories</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Category:Categories&amp;diff=2082"/>
		<updated>2026-01-15T12:42:43Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Improving Category text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The tools developed by the community address different types of problems. &lt;br /&gt;
This page lists all problem categories supported by tools in the Termination Portal. &lt;br /&gt;
Each category represents a class of programs together with a specific analysis goal, &lt;br /&gt;
such as proving termination or deriving upper bounds on the runtime complexity.&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Probabilistic_Rewriting&amp;diff=2081</id>
		<title>Probabilistic Rewriting</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Probabilistic_Rewriting&amp;diff=2081"/>
		<updated>2026-01-15T12:36:09Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added to the category group&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
As in the non-probabilistic setting, we use an adaption of the [https://project-coco.uibk.ac.at/ARI/ ARI format], so probabilistic TRSs (PTRSs) are represented as S-Expressions (see [https://smt-lib.org/papers/smt-lib-reference-v2.6-r2021-05-12.pdf here, Sec. 3.1]). The format of TRSs is explained [[Term Rewriting|here]]. To extend this format for PTRSs, rules are replaced by probabilistic rules that are defined as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
prule ::= ( prule term dist cost? )&lt;br /&gt;
cost ::= :cost number&lt;br /&gt;
dist ::= ( ( term prob? )* )&lt;br /&gt;
prob ::= :prob number&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some examples of valid PTRSs are shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
===== P1 =====&lt;br /&gt;
(format PTRS)&lt;br /&gt;
(fun f 0)&lt;br /&gt;
(fun stop 0)&lt;br /&gt;
(prule f (( f :prob 1 ) (stop :prob 1 )))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* P1 models a coin flip that stops once it flips heads and keeps on going if it flips tails.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
===== P2 =====&lt;br /&gt;
(format PTRS)&lt;br /&gt;
(fun g 1)&lt;br /&gt;
(prule (g x) (( (g (g x)) :prob 1 ) (x :prob 1 )))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* P2 models a symmetric random walk on the numbers of f symbols in a term.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
===== P3 =====&lt;br /&gt;
(format PTRS)&lt;br /&gt;
(fun h 1)&lt;br /&gt;
(prule (h x) (( (h (h x)) :prob 2 ) (x :prob 1 )))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* P3 models a biased random walk on the numbers of h symbols in a term which is biased towards nontermination.&lt;br /&gt;
&lt;br /&gt;
== Probabilistic Termination ==&lt;br /&gt;
&lt;br /&gt;
There are several notions of ``termination'' in the probabilistic setting.&lt;br /&gt;
As in ordinary term rewriting, we consider universal termination, i.e., we have no fixed start term, but consider every possible reduction.&lt;br /&gt;
For the formal definitions of all notions of termination, see [https://www.sciencedirect.com/science/article/pii/S0167642319301339 here].&lt;br /&gt;
&lt;br /&gt;
===== Certain Termination =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is certainly terminating if every possible reduction eventuelly terminates.&lt;br /&gt;
As this boils down to termination of TRSs, we usually try to omit certainly terminating examples in the following category,&lt;br /&gt;
and hence, have no allowed answer for a certainly terminating PTRS.&lt;br /&gt;
&lt;br /&gt;
Example: None of the PTRSs P1, P2, or P3 are certainly terminating.&lt;br /&gt;
&lt;br /&gt;
===== Almost-Sure Termination (AST) =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is almost-surely terminating if every non-terminating reduction occurs with probability 0.&lt;br /&gt;
&lt;br /&gt;
Example: While P1 and P2 are AST, P3 is not AST.&lt;br /&gt;
&lt;br /&gt;
===== Positive Almost-Sure Termination (PAST) =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is positive almost-surely terminating if the expected derivation length of every possible reduction is finite.&lt;br /&gt;
&lt;br /&gt;
Example: Only P1 is PAST, but P2 and P3 are not PAST.&lt;br /&gt;
&lt;br /&gt;
===== Strong Almost-Sure Termination (SAST) =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is strong almost-surely terminating if for every start term t there exists a bound C_t such that &lt;br /&gt;
the expected derivation length of every possible reduction starting in t is at most C_t.&lt;br /&gt;
&lt;br /&gt;
Example: Again only P1 is PAST, but P2 and P3 are not PAST.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
=== PTRS Standard ===&lt;br /&gt;
&lt;br /&gt;
In this category, we have to prove termination for the given PTRS with relation to an arbitrary rewrite strategy.&lt;br /&gt;
&lt;br /&gt;
The tools can give the following answers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MAYBE, AST, PAST, SAST&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PTRS Innermost ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this category, we have to prove termination for the given PTRS with relation to an innermost rewrite strategy.&lt;br /&gt;
&lt;br /&gt;
The tools can give the following answers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MAYBE, AST, PAST, SAST&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=People:Jan-Christoph_Kassing&amp;diff=2080</id>
		<title>People:Jan-Christoph Kassing</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=People:Jan-Christoph_Kassing&amp;diff=2080"/>
		<updated>2026-01-15T12:33:56Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Added myself as a person&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
       Please fill in the data so that you can be added to some default&lt;br /&gt;
       categories and a simple user page can be created. You may extend&lt;br /&gt;
       that user page yourself after the following code block.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Person&lt;br /&gt;
|firstname=Jan-Christoph&lt;br /&gt;
|middlenames=&lt;br /&gt;
|lastname=Kassing&lt;br /&gt;
|titles=&lt;br /&gt;
|email=Kassing@cs.rwth-aachen.de&lt;br /&gt;
|homepage=http://jckassing.com/&lt;br /&gt;
|country=Germany&lt;br /&gt;
|university=RWTH Aachen&lt;br /&gt;
|department=Research Group Computer Science 2&lt;br /&gt;
|role=PhD Student       &amp;lt;!-- role: Student, Professor, PhD Student, ... --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If you want to add some personal data to your userpage, you can do so after this comment. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=People:J%C3%BCrgen_Giesl&amp;diff=2079</id>
		<title>People:Jürgen Giesl</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=People:J%C3%BCrgen_Giesl&amp;diff=2079"/>
		<updated>2026-01-15T12:27:36Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Fixed Link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
       Please fill in the data so that you can be added to some default&lt;br /&gt;
       categories and a simple user page can be created. You may extend&lt;br /&gt;
       that user page yourself after the following code block.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Person&lt;br /&gt;
|firstname=Jürgen&lt;br /&gt;
|middlenames=&lt;br /&gt;
|lastname=Giesl&lt;br /&gt;
|titles=&lt;br /&gt;
|email=giesl@informatik.rwth-aachen.de&lt;br /&gt;
|homepage=http://verify.rwth-aachen.de/giesl/&lt;br /&gt;
|country=Germany&lt;br /&gt;
|university=RWTH Aachen&lt;br /&gt;
|department=Research Group Computer Science 2&lt;br /&gt;
|role=Professor       &amp;lt;!-- role: Student, Professor, PhD Student, ... --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If you want to add some personal data to your userpage, you can do so after this comment. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://verify.rwth-aachen.de/giesl/ https://verify.rwth-aachen.de/giesl/index-Dateien/Giesl_Small.jpg]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=People:J%C3%BCrgen_Giesl&amp;diff=2078</id>
		<title>People:Jürgen Giesl</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=People:J%C3%BCrgen_Giesl&amp;diff=2078"/>
		<updated>2026-01-15T12:27:13Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Update Image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
       Please fill in the data so that you can be added to some default&lt;br /&gt;
       categories and a simple user page can be created. You may extend&lt;br /&gt;
       that user page yourself after the following code block.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Person&lt;br /&gt;
|firstname=Jürgen&lt;br /&gt;
|middlenames=&lt;br /&gt;
|lastname=Giesl&lt;br /&gt;
|titles=&lt;br /&gt;
|email=giesl@informatik.rwth-aachen.de&lt;br /&gt;
|homepage=http://verify.rwth-aachen.de/giesl/&lt;br /&gt;
|country=Germany&lt;br /&gt;
|university=RWTH Aachen&lt;br /&gt;
|department=Research Group Computer Science 2&lt;br /&gt;
|role=Professor       &amp;lt;!-- role: Student, Professor, PhD Student, ... --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If you want to add some personal data to your userpage, you can do so after this comment. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://verify.rwth-aachen.de/giesl/index-Dateien/ https://verify.rwth-aachen.de/giesl/index-Dateien/Giesl_Small.jpg]&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Probabilistic_Rewriting&amp;diff=2077</id>
		<title>Probabilistic Rewriting</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Probabilistic_Rewriting&amp;diff=2077"/>
		<updated>2026-01-15T11:19:07Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: some additional information on the probabilistic rewriting site&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
As in the non-probabilistic setting, we use an adaption of the [https://project-coco.uibk.ac.at/ARI/ ARI format], so probabilistic TRSs (PTRSs) are represented as S-Expressions (see [https://smt-lib.org/papers/smt-lib-reference-v2.6-r2021-05-12.pdf here, Sec. 3.1]). The format of TRSs is explained [[Term Rewriting|here]]. To extend this format for PTRSs, rules are replaced by probabilistic rules that are defined as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
prule ::= ( prule term dist cost? )&lt;br /&gt;
cost ::= :cost number&lt;br /&gt;
dist ::= ( ( term prob? )* )&lt;br /&gt;
prob ::= :prob number&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some examples of valid PTRSs are shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
===== P1 =====&lt;br /&gt;
(format PTRS)&lt;br /&gt;
(fun f 0)&lt;br /&gt;
(fun stop 0)&lt;br /&gt;
(prule f (( f :prob 1 ) (stop :prob 1 )))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* P1 models a coin flip that stops once it flips heads and keeps on going if it flips tails.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
===== P2 =====&lt;br /&gt;
(format PTRS)&lt;br /&gt;
(fun g 1)&lt;br /&gt;
(prule (g x) (( (g (g x)) :prob 1 ) (x :prob 1 )))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* P2 models a symmetric random walk on the numbers of f symbols in a term.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
===== P3 =====&lt;br /&gt;
(format PTRS)&lt;br /&gt;
(fun h 1)&lt;br /&gt;
(prule (h x) (( (h (h x)) :prob 2 ) (x :prob 1 )))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* P3 models a biased random walk on the numbers of h symbols in a term which is biased towards nontermination.&lt;br /&gt;
&lt;br /&gt;
== Probabilistic Termination ==&lt;br /&gt;
&lt;br /&gt;
There are several notions of ``termination'' in the probabilistic setting.&lt;br /&gt;
As in ordinary term rewriting, we consider universal termination, i.e., we have no fixed start term, but consider every possible reduction.&lt;br /&gt;
For the formal definitions of all notions of termination, see [https://www.sciencedirect.com/science/article/pii/S0167642319301339 here].&lt;br /&gt;
&lt;br /&gt;
===== Certain Termination =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is certainly terminating if every possible reduction eventuelly terminates.&lt;br /&gt;
As this boils down to termination of TRSs, we usually try to omit certainly terminating examples in the following category,&lt;br /&gt;
and hence, have no allowed answer for a certainly terminating PTRS.&lt;br /&gt;
&lt;br /&gt;
Example: None of the PTRSs P1, P2, or P3 are certainly terminating.&lt;br /&gt;
&lt;br /&gt;
===== Almost-Sure Termination (AST) =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is almost-surely terminating if every non-terminating reduction occurs with probability 0.&lt;br /&gt;
&lt;br /&gt;
Example: While P1 and P2 are AST, P3 is not AST.&lt;br /&gt;
&lt;br /&gt;
===== Positive Almost-Sure Termination (PAST) =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is positive almost-surely terminating if the expected derivation length of every possible reduction is finite.&lt;br /&gt;
&lt;br /&gt;
Example: Only P1 is PAST, but P2 and P3 are not PAST.&lt;br /&gt;
&lt;br /&gt;
===== Strong Almost-Sure Termination (SAST) =====&lt;br /&gt;
&lt;br /&gt;
A PTRS is strong almost-surely terminating if for every start term t there exists a bound C_t such that &lt;br /&gt;
the expected derivation length of every possible reduction starting in t is at most C_t.&lt;br /&gt;
&lt;br /&gt;
Example: Again only P1 is PAST, but P2 and P3 are not PAST.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
=== PTRS Standard ===&lt;br /&gt;
&lt;br /&gt;
In this category, we have to prove termination for the given PTRS with relation to an arbitrary rewrite strategy.&lt;br /&gt;
&lt;br /&gt;
The tools can give the following answers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MAYBE, AST, PAST, SAST&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PTRS Innermost ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this category, we have to prove termination for the given PTRS with relation to an innermost rewrite strategy.&lt;br /&gt;
&lt;br /&gt;
The tools can give the following answers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MAYBE, AST, PAST, SAST&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition_2025_technical_details&amp;diff=2052</id>
		<title>Termination Competition 2025 technical details</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition_2025_technical_details&amp;diff=2052"/>
		<updated>2025-07-23T13:20:06Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: /* Testing Locally */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Execution Environment ==&lt;br /&gt;
&lt;br /&gt;
Starting from 2025, TermComp runs on the RWTH HPC cluster.&lt;br /&gt;
&lt;br /&gt;
Tools must be submitted as Docker images. The competition will run using Apptainer (which can run Docker images). During the competition, the following two commands will be executed in your container:&lt;br /&gt;
&lt;br /&gt;
* solver --name&lt;br /&gt;
* solver --timeout=$timeout --category=$category $benchmark&lt;br /&gt;
&lt;br /&gt;
So an executable named &amp;quot;solver&amp;quot; must be available in your container.&lt;br /&gt;
The former command must print the name of your solver to stdout.&lt;br /&gt;
The latter must analyze the provided $benchmark w.r.t.\ the rules of the given $category, taking the given $timeout into account.&lt;br /&gt;
&lt;br /&gt;
A list with the exact category names will be published before the competition.&lt;br /&gt;
They will essentially be identical to the names of the corresponding TPDB directories.&lt;br /&gt;
&lt;br /&gt;
== Testing Locally ==&lt;br /&gt;
&lt;br /&gt;
* Install [https://apptainer.org/docs/admin/main/installation.html Apptainer].&lt;br /&gt;
* Build and tag your docker image locally. In my case, its full name is loat/loat-termcomp:445e86.&lt;br /&gt;
* Convert your docker image to an Apptainer image via&lt;br /&gt;
&amp;lt;code&amp;gt;apptainer build $apptainer_image.sif docker-daemon://$docker_image&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
So in my case, the full command is&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;apptainer build loat.sif docker-daemon:loat/loat-termcomp:445e86&amp;lt;/code&amp;gt;&lt;br /&gt;
* First test&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apptainer exec $apptainer_image.sif solver --name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
In my case, I get:&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apptainer exec loat.sif solver --name&lt;br /&gt;
&lt;br /&gt;
LoAT&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Then test&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apptainer exec solver --timeout=60 --category=$category $benchmark&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
In my case, I get:&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apptainer exec loat.sif solver --timeout=60 --category=Integer_Transition_Systems TPDB/Integer_Transition_Systems/From_AProVE_2014/Velroyen08-alternDiv.jar-obl-8.smt2 &lt;br /&gt;
&lt;br /&gt;
NO&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lessons Learned from Testing ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* The image must be for an '''amd64-architecture'''.&lt;br /&gt;
&lt;br /&gt;
=== Docker - Apptainer incompatibilities ===&lt;br /&gt;
&lt;br /&gt;
The following things must be taken into account if you submit a Docker image.&lt;br /&gt;
&lt;br /&gt;
* The solver-command must behave as intended '''for all users''', not just for a specific one.&lt;br /&gt;
* The solver-command must behave as intended '''independently from the current working directory'''.&lt;br /&gt;
&lt;br /&gt;
== Registration ==&lt;br /&gt;
&lt;br /&gt;
To register, you need to create a pull request for [https://github.com/TermCOMP/registration this repository].&lt;br /&gt;
More specifically, to register for a certain $category, checkout the branch for the corresponding competition (e.g., the branch 2025 for termCOMP '25) and add a line to $category.txt.&lt;br /&gt;
The content of the line must be the identifier of your Docker image on [https://hub.docker.com/ Docker Hub], so that it can directly be passed to &amp;quot;docker pull&amp;quot;.&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Term_Rewriting&amp;diff=1988</id>
		<title>Term Rewriting</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Term_Rewriting&amp;diff=1988"/>
		<updated>2024-05-13T13:17:47Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
We use an adaption of the [https://project-coco.uibk.ac.at/ARI/ ARI format], so TRSs are represented as S-Expressions (see [https://smt-lib.org/papers/smt-lib-reference-v2.6-r2021-05-12.pdf here, Sec. 3.1]). Our format differs from the format used at CoCo as follows:&lt;br /&gt;
&lt;br /&gt;
* We do not impose any variable conditions, so a rewrite rule is a pair of arbitrary terms.&lt;br /&gt;
* Identifiers must be valid SMT-LIB symbols (see [https://smt-lib.org/papers/smt-lib-reference-v2.6-r2021-05-12.pdf here, Sec. 3.2]), whereas CoCo uses a more liberal definition. Both simple and quoted symbols are allowed. As in SMT-LIB, simple symbols must not be equal to reserved words. In our case, the reserved words are: &amp;lt;pre&amp;gt;fun, rule, format, sort, theory, define-fun, prule&amp;lt;/pre&amp;gt; To ease parsing, we impose the following additional restrictions:&lt;br /&gt;
** Quoted identifiers must be non-empty.&lt;br /&gt;
** Quoted identifiers must not contain whitespace, parantheses, or semicolons.&lt;br /&gt;
** All occurrences of the same identifier must be either quoted or unquoted. So &amp;lt;pre&amp;gt;(rule |a| |a|)&amp;lt;/pre&amp;gt; is valid, but &amp;lt;pre&amp;gt;(rule a |a|)&amp;lt;/pre&amp;gt; is invalid.&lt;br /&gt;
* Rules are annotated with optional costs, which are natural numbers. This allows, e.g., to model relative rewriting (by setting the cost of relative rules to 0). Categories may disallow costs. So rules are defined as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rule ::= ( rule term term cost? )&lt;br /&gt;
cost ::= :cost number&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In contrast to the former XTC format, the goal of the analysis is implicitly specified by the category.&lt;br /&gt;
&lt;br /&gt;
== Termination ==&lt;br /&gt;
&lt;br /&gt;
All termination categories consider termination w.r.t. arbitrary start terms.&lt;br /&gt;
&lt;br /&gt;
=== Relative Termination ===&lt;br /&gt;
&lt;br /&gt;
All categories for relative termination consider full rewriting.&lt;br /&gt;
See [https://project-coco.uibk.ac.at/ARI/trs.php here] for the format of all categories for relative termination.&lt;br /&gt;
&lt;br /&gt;
==== TRS Relative ====&lt;br /&gt;
&lt;br /&gt;
* no further restrictions&lt;br /&gt;
&lt;br /&gt;
==== SRS Relative ====&lt;br /&gt;
&lt;br /&gt;
* just unary function symbols&lt;br /&gt;
&lt;br /&gt;
=== Non-Relative Termination ===&lt;br /&gt;
&lt;br /&gt;
All categories for non-relative termination disallow costs.&lt;br /&gt;
&lt;br /&gt;
==== TRS Standard ====&lt;br /&gt;
&lt;br /&gt;
* full rewriting&lt;br /&gt;
* see [https://project-coco.uibk.ac.at/ARI/trs.php here]&lt;br /&gt;
&lt;br /&gt;
==== SRS Standard ====&lt;br /&gt;
&lt;br /&gt;
* full rewriting&lt;br /&gt;
* just unary function symbols&lt;br /&gt;
* see [https://project-coco.uibk.ac.at/ARI/trs.php here]&lt;br /&gt;
&lt;br /&gt;
==== TRS Contextsensitive ====&lt;br /&gt;
&lt;br /&gt;
* context-sensitive rewriting&lt;br /&gt;
* see [https://project-coco.uibk.ac.at/ARI/cstrs.php here]&lt;br /&gt;
&lt;br /&gt;
==== TRS Equational ====&lt;br /&gt;
&lt;br /&gt;
Here, a ''theory'' may be added to declarations of function symbols.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fun ::= ( fun identifier number theory? )&lt;br /&gt;
theory ::= :theory [A | C | AC]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* full rewriting modulo associativity / commutativity / associativity and commutativity&lt;br /&gt;
&lt;br /&gt;
==== TRS Innermost ====&lt;br /&gt;
&lt;br /&gt;
* innermost rewriting&lt;br /&gt;
* see [https://project-coco.uibk.ac.at/ARI/trs.php here]&lt;br /&gt;
&lt;br /&gt;
==== TRS Outermost ====&lt;br /&gt;
&lt;br /&gt;
* outermost rewriting&lt;br /&gt;
* see [https://project-coco.uibk.ac.at/ARI/trs.php here]&lt;br /&gt;
&lt;br /&gt;
==== TRS Conditional ====&lt;br /&gt;
&lt;br /&gt;
* full conditional rewriting&lt;br /&gt;
* see [https://project-coco.uibk.ac.at/ARI/ctrs.php here]&lt;br /&gt;
* currently, we only support the condition-type ''oriented''&lt;br /&gt;
&lt;br /&gt;
==== TRS Conditional - Operational Termination ====&lt;br /&gt;
&lt;br /&gt;
* TODO clarify the difference to ''TRS Conditional''&lt;br /&gt;
* see [https://project-coco.uibk.ac.at/ARI/ctrs.php here]&lt;br /&gt;
* currently, we only support the condition-type ''oriented''&lt;br /&gt;
&lt;br /&gt;
== Complexity ==&lt;br /&gt;
&lt;br /&gt;
See [https://project-coco.uibk.ac.at/ARI/trs.php here] for all complexity categories.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Complexity ===&lt;br /&gt;
&lt;br /&gt;
All categories for runtime complexity consider basic start terms only.&lt;br /&gt;
&lt;br /&gt;
==== Runtime Complexity Innermost ====&lt;br /&gt;
&lt;br /&gt;
* innermost rewriting&lt;br /&gt;
&lt;br /&gt;
==== Runtime Complexity Full ====&lt;br /&gt;
&lt;br /&gt;
* full rewriting&lt;br /&gt;
&lt;br /&gt;
=== Derivational Complexity ===&lt;br /&gt;
&lt;br /&gt;
All categories for derivational complexity consider arbitrary start terms.&lt;br /&gt;
&lt;br /&gt;
==== Derivational Complexity Innermost ====&lt;br /&gt;
&lt;br /&gt;
* innermost rewriting&lt;br /&gt;
&lt;br /&gt;
==== Derivational Complexity Full ====&lt;br /&gt;
&lt;br /&gt;
* full rewriting&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
</feed>