<?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-06-23T22:34:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=PTRS_Innermost&amp;diff=2207</id>
		<title>PTRS Innermost</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=PTRS_Innermost&amp;diff=2207"/>
		<updated>2026-06-09T12:27:14Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PTRS Innermost 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 have 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 at least 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;AST&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;SAST&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=PTRS_Standard&amp;diff=2206</id>
		<title>PTRS Standard</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=PTRS_Standard&amp;diff=2206"/>
		<updated>2026-06-09T12:25:39Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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 have 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 at least 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=SRS_Relative&amp;diff=2205</id>
		<title>SRS Relative</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=SRS_Relative&amp;diff=2205"/>
		<updated>2026-06-09T12:24:08Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Use the transitive-reflexive closure!&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 have 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;
Additionally, the same variable appears on both the left and right sides of each rule.&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;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; b&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;} of finitely many rewrite rules denoted by R/S where all the occurring 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; &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; &amp;amp;rarr;&amp;lt;sup&amp;gt;*&amp;lt;/sup&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; &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;sup&amp;gt;*&amp;lt;/sup&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; &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 separate 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_Relative&amp;diff=2204</id>
		<title>SRS Relative</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=SRS_Relative&amp;diff=2204"/>
		<updated>2026-06-09T12:23:17Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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 have 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;
Additionally, the same variable appears on both the left and right sides of each rule.&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;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; b&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;} of finitely many rewrite rules denoted by R/S where all the occurring 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 separate 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=2203</id>
		<title>SRS Standard</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=SRS_Standard&amp;diff=2203"/>
		<updated>2026-06-09T12:21:27Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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;
Additionally, the same variable appears on both the left and right sides of each rule.&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;2&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_Conditional&amp;diff=2202</id>
		<title>TRS Conditional</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Conditional&amp;diff=2202"/>
		<updated>2026-06-09T12:18:56Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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 rewrite 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 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;
[[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=2201</id>
		<title>TRS Contextsensitive</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Contextsensitive&amp;diff=2201"/>
		<updated>2026-06-09T12:17:24Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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 symbol 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;2&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=TRS_Derivational_Complexity&amp;diff=2200</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=2200"/>
		<updated>2026-06-09T12:16:25Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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;
This 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 TRS 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, dh(t) &amp;gt;= m}.&lt;br /&gt;
&lt;br /&gt;
The goal is to find an asymptotic upper bound and lower bound on the derivational complexity 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) of a given TRS 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 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;
[[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=2199</id>
		<title>TRS Equational</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Equational&amp;diff=2199"/>
		<updated>2026-06-09T12:15:33Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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 rewrite 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 many rewrite rules together with 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;m&amp;lt;/sub&amp;gt; = b&amp;lt;sub&amp;gt;m&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;: An 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;
[[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=2198</id>
		<title>TRS Innermost</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Innermost&amp;diff=2198"/>
		<updated>2026-06-09T12:14:02Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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 innermost 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_Derivational_Complexity&amp;diff=2197</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=2197"/>
		<updated>2026-06-09T12:13:18Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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;
This 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; idh(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 TRS 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., idc&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, idh(t) &amp;gt;= m}.&lt;br /&gt;
&lt;br /&gt;
The goal is to find an asymptotic upper bound and lower bound on the innermost derivational complexity idc&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) of a given TRS 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 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;
[[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=2196</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=2196"/>
		<updated>2026-06-09T12:11:18Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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; idh(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 TRS 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., irc&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, idh(t) &amp;gt;= m}.&lt;br /&gt;
&lt;br /&gt;
The goal is to find an asymptotic upper bound and lower bound on the innermost runtime complexity irc&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) of a given TRS 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 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;
[[Category:Categories]]&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=2195</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=2195"/>
		<updated>2026-06-09T12:08:25Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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_Relative&amp;diff=2194</id>
		<title>TRS Relative</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Relative&amp;diff=2194"/>
		<updated>2026-06-09T12:06:00Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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, if every rule has a cost which is either 0 or 1, then does every possible reduction have a finite total cost?&lt;br /&gt;
&lt;br /&gt;
== Category Motivation ==&lt;br /&gt;
&lt;br /&gt;
Relative termination isolates the rules whose usage should be finite while allowing auxiliary rules to be used freely in between and is used in different termination and complexity analysis techniques.&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;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; b&amp;lt;sub&amp;gt;m&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; &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; &amp;amp;rarr;&amp;lt;sup&amp;gt;*&amp;lt;/sup&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; &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;sup&amp;gt;*&amp;lt;/sup&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; &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 separate 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_Runtime_Complexity&amp;diff=2193</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=2193"/>
		<updated>2026-06-09T11:59:30Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Small fixes&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., rc&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, dh(t) &amp;gt;= m}.&lt;br /&gt;
&lt;br /&gt;
The goal is to find an asymptotic upper bound and lower bound on the runtime complexity rc&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) of a given TRS 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 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;
[[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=2192</id>
		<title>TRS Standard</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=TRS_Standard&amp;diff=2192"/>
		<updated>2026-06-09T11:54:35Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Fixed wrong indice&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;2&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_2026&amp;diff=2191</id>
		<title>Termination Competition 2026</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition_2026&amp;diff=2191"/>
		<updated>2026-06-08T11:13:39Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Update on the rules for the 2026 TermComp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Termination and Complexity Competition (TermComp) 2026 will be affiliated with [https://termination-portal.org/wiki/21st_International_Workshop_on_Termination WST 2026], which takes place at [https://www.floc26.org/ FLoC 2026].&lt;br /&gt;
&lt;br /&gt;
The competition will be run on the RWTH Aachen High Performance Computing Cluster.&lt;br /&gt;
Test runs will take place right after the submission deadline, followed by a bug/conflict reporting phase.&lt;br /&gt;
Bug fixes will be possible until shortly before the full run.&lt;br /&gt;
A live run on a subset of the benchmark collection, and a presentation of the final results will take place at WST.&lt;br /&gt;
Presumably, there will also be a presentation at IJCAR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Results ==&lt;br /&gt;
[https://termcomp.github.io/Y2025/ Results]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dates  ==&lt;br /&gt;
&lt;br /&gt;
* Contributions to the [https://github.com/TermCOMP/termcomp-reference Competition Rules]: June 26&lt;br /&gt;
* Tool and Benchmark Submission: June 26&lt;br /&gt;
* Full Run: July 13-17&lt;br /&gt;
* Live Run: July 24/25&lt;br /&gt;
* Presentation of the results at WST: July 25&lt;br /&gt;
&lt;br /&gt;
== Competition Categories ==&lt;br /&gt;
&lt;br /&gt;
The competition contains several categories for termination and complexity from the areas of term rewriting (all categories with HO/FO-TRSs, with- or without strategies) and programming languages (Logic Programming, Haskell, Java, C, integer transition systems, ...), see [[Termination Competition]] for more details on all the categories.&lt;br /&gt;
&lt;br /&gt;
Proposals for new categories are welcome!&lt;br /&gt;
&lt;br /&gt;
A category is only run at the competition if there are at least 2 participants, at least 40 examples &lt;br /&gt;
for this category in the underlying termination problem data base, and clearly defined rules in the [https://github.com/TermCOMP/termcomp-reference termination competition reference].&lt;br /&gt;
&lt;br /&gt;
== Competition Procedure ==&lt;br /&gt;
&lt;br /&gt;
All participants in the same category will be run on the existing problems of this category.&lt;br /&gt;
There might be modifications of the rules suggested by the organizer and decided by the SC.&lt;br /&gt;
&lt;br /&gt;
There will be a full run on the entire benchmark collection '''before''' WST, and a live run on a subset of the benchmark collection at WST.&lt;br /&gt;
The timeout for the full run will be 300 seconds.&lt;br /&gt;
The timeout for the live run will be significantly smaller (presumably 30 seconds).&lt;br /&gt;
The results of the full run will be announced at WST.&lt;br /&gt;
&lt;br /&gt;
Further technical information is available [[Termination Competition 2026 technical details|here]].&lt;br /&gt;
&lt;br /&gt;
The tools are expected to give an answer (YES, NO, MAYBE) in the first line on stdout, followed by a proof in ASCII, HTML, or CPF format. Exceptions to these rules are the [http://www.termination-portal.org/wiki/Termination_Competition_Certified_Categories_Competition certified] (see also the [http://cl-informatik.uibk.ac.at/software/cpf/ CPF-website]) and [http://cl-informatik.uibk.ac.at/users/georg/cbr/competition/ complexity] categories. See all existing [http://www.termination-portal.org/wiki/Category:Categories categories] for more details.&lt;br /&gt;
&lt;br /&gt;
For those categories devoted to prove only termination or non-termination, the score of a tool is the number of non-contradictory answers minus the given penalization (if any).&lt;br /&gt;
&lt;br /&gt;
A proof or answer that is known to be wrong will be penalized by -10 points, if it remains after the bugfix deadline.&lt;br /&gt;
The SC will decide what should be penalized, depending on the discussion among the participants.&lt;br /&gt;
&lt;br /&gt;
== Registration ==&lt;br /&gt;
&lt;br /&gt;
To submit a tool, please follow the instruction at [https://github.com/TermCOMP/registration this repository].&lt;br /&gt;
Every participant must submit at least five new '''secret''' benchmarks via email to florian.frohn@cs.rwth-aachen.de (unless the size of the benchmarks exceeds 5MB -- in that case, please get in touch to figure out another way).&lt;br /&gt;
Please also include a README with a (short) description of the origin of the benchmarks.&lt;br /&gt;
After the competition, these benchmarks will become part of TPDB.&lt;br /&gt;
&lt;br /&gt;
To submit a benchmark, please follow the instruction at the [https://github.com/TermCOMP/TPDB-ARI TPDB ARI repository]&lt;br /&gt;
&lt;br /&gt;
We recommend to register early, and update information as needed.&lt;br /&gt;
&lt;br /&gt;
It is highly recommended that participants also subscribe to the [https://lists.rwth-aachen.de/postorius/lists/termtools.lists.rwth-aachen.de/ termtools] mailing list, because that is where announcements will be made, and where discussion takes place.&lt;br /&gt;
&lt;br /&gt;
== Technical Details ==&lt;br /&gt;
&lt;br /&gt;
Competition data will be presented via [https://github.com/TermCOMP/starexec-master starexec-master]&lt;br /&gt;
(a successor of [https://github.com/stefanvonderkrone/star-exec-presenter star-exec-presenter] developed at HTWK Leipzig).&lt;br /&gt;
&lt;br /&gt;
Technical details about the execution platform are available [[Termination Competition 2026 technical details|here]].&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
Any questions or suggestions regarding the termination competition should go to, and discussed at termtools&amp;lt;at&amp;gt;lists.rwth-aachen.de&lt;br /&gt;
&lt;br /&gt;
To contact the steering committee, send an email to terminationcompetitionsc&amp;lt;at&amp;gt;lists.rwth-aachen.de. &lt;br /&gt;
&lt;br /&gt;
== Steering Committee ==&lt;br /&gt;
&lt;br /&gt;
* Florian Frohn (Chair and Organizer), RWTH Aachen&lt;br /&gt;
* Jürgen Giesl, RWTH Aachen &lt;br /&gt;
* Georg Moser, University of Innsbruck&lt;br /&gt;
* Étienne Payet, Université de La Réunion&lt;br /&gt;
* Akihisa Yamada&lt;br /&gt;
* Dieter Hofbauer, ASW Saarland&lt;br /&gt;
&lt;br /&gt;
== Changes with respect to 2025 ==&lt;br /&gt;
&lt;br /&gt;
These lists reflect the discussion in the community, and in the steering committee. Items are preliminary, and not officially binding. &lt;br /&gt;
Please do not edit this list (unless you're in the SC). Instead, send proposals to termtools or terminationcompetitionsc mailing list,&lt;br /&gt;
or create a new wiki page and put a link here.&lt;br /&gt;
&lt;br /&gt;
Proposed changes:&lt;br /&gt;
&lt;br /&gt;
* In addition to the usual tracks, we will try to organize a '''knockout tournament'''.&lt;br /&gt;
&lt;br /&gt;
Adopted changes:&lt;br /&gt;
&lt;br /&gt;
* We will only run categories with clearly defined rules in the [https://github.com/TermCOMP/termcomp-reference termination competition reference].&lt;br /&gt;
* Every participant has to submit at least five new '''secret''' benchmarks&lt;br /&gt;
* Demo categories will only be run on request to the steering committee, and this request has to be justified somehow (e.g., by a paper, significant tool improvements, ...). The final decision is up to the SC.&lt;br /&gt;
* Submissions to TPDB must have a README with a (short) description of the origin of the benchmarks.&lt;br /&gt;
* We will do a full run and a live run, as described above.&lt;/div&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2187</id>
		<title>Termination Competition</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition&amp;diff=2187"/>
		<updated>2026-05-20T18:17:27Z</updated>

		<summary type="html">&lt;p&gt;JCKassing: Update Upcoming Competition&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 2026]] will be held during [[21st International Workshop on Termination]] at [https://www.floc26.org/ FLoC 2026], Lisbon, Portugal, July 25, 2026&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=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>
</feed>