<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://termination-portal.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=SRS_Relative</id>
	<title>SRS Relative - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://termination-portal.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=SRS_Relative"/>
	<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=SRS_Relative&amp;action=history"/>
	<updated>2026-06-19T10:19:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=SRS_Relative&amp;diff=2205&amp;oldid=prev</id>
		<title>JCKassing: Use the transitive-reflexive closure!</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=SRS_Relative&amp;diff=2205&amp;oldid=prev"/>
		<updated>2026-06-09T12:24:08Z</updated>

		<summary type="html">&lt;p&gt;Use the transitive-reflexive closure!&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:24, 9 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l8&quot; &gt;Line 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 8:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A relative string rewrite system R/S is terminating if there exists no infinite rewrite sequence s&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;sub&amp;gt;0&lt;/del&gt;&amp;lt;sub&amp;gt;0&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/sub&amp;gt;&lt;/del&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&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;/del&gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sub&lt;/del&gt;&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;S&lt;/del&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sub&lt;/del&gt;&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;... &amp;amp;rarr;&lt;/del&gt;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;1&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;/del&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&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;/del&gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sub&lt;/del&gt;&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;S&lt;/del&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sub&lt;/del&gt;&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;... &amp;amp;rarr;&lt;/del&gt;&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; s&amp;lt;sub&amp;gt;2&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;/del&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;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/ins&gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sup&lt;/ins&gt;&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/ins&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sup&lt;/ins&gt;&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&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/ins&gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;rarr;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sup&lt;/ins&gt;&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/ins&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sup&lt;/ins&gt;&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Instead of the two separate sets, one typically gives costs of 0 or 1 to every rule.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Instead of the two separate sets, one typically gives costs of 0 or 1 to every rule.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=SRS_Relative&amp;diff=2204&amp;oldid=prev</id>
		<title>JCKassing: Small fixes</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=SRS_Relative&amp;diff=2204&amp;oldid=prev"/>
		<updated>2026-06-09T12:23:17Z</updated>

		<summary type="html">&lt;p&gt;Small fixes&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:23, 9 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&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;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In other words, if every rule has a cost which is either 0 or 1, then does every possible reduction &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;has &lt;/del&gt;a finite total cost?&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In other words, if every rule has a cost which is either 0 or 1, then does every possible reduction &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;have &lt;/ins&gt;a finite total cost?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Syntax &amp;amp; Semantic ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Syntax &amp;amp; Semantic ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Strings are terms where every function symbol has arity 1, i.e., exactly one argument.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Strings are terms where every function symbol has arity 1, i.e., exactly one argument&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;n&lt;/del&gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr; b&amp;lt;sub&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;n&lt;/del&gt;&amp;lt;/sub&amp;gt;} of finitely many rewrite rules denoted by R/S where all the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;occuring &lt;/del&gt;terms are strings.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Additionally, the same variable appears on both the left and right sides of each rule&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;m&lt;/ins&gt;&amp;lt;/sub&amp;gt; &amp;amp;rarr; b&amp;lt;sub&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;m&lt;/ins&gt;&amp;lt;/sub&amp;gt;} of finitely many rewrite rules denoted by R/S where all the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;occurring &lt;/ins&gt;terms are strings.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Instead of the two &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;seperate &lt;/del&gt;sets, one typically gives costs of 0 or 1 to every rule.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Instead of the two &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;separate &lt;/ins&gt;sets, one typically gives costs of 0 or 1 to every rule.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Rules with cost 1 are in R and rules with costs 0 are in S.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Rules with cost 1 are in R and rules with costs 0 are in S.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then, relative termination is equal to the statement that every possible reduction has a finite total cost.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then, relative termination is equal to the statement that every possible reduction has a finite total cost.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JCKassing</name></author>
		
	</entry>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=SRS_Relative&amp;diff=2117&amp;oldid=prev</id>
		<title>JCKassing: Added SRS Relative Category Page</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=SRS_Relative&amp;diff=2117&amp;oldid=prev"/>
		<updated>2026-03-10T16:27:05Z</updated>

		<summary type="html">&lt;p&gt;Added SRS Relative Category Page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&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>
</feed>