Difference between revisions of "SRS Relative"
(Added SRS Relative Category Page) |
m (Use the transitive-reflexive closure!) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
The SRS Relative category is concerned with the question "Will every possible sequence of rewrite steps on strings eventually stop using a certain subset of the given rewrite rules?". | The SRS Relative category is concerned with the question "Will every possible sequence of rewrite steps on strings eventually stop using a certain subset of the given rewrite rules?". | ||
| − | In other words, if every rule has a cost which is either 0 or 1, then does every possible reduction | + | 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? |
== Syntax & Semantic == | == Syntax & Semantic == | ||
| − | Strings are terms where every function symbol has arity 1, i.e., exactly one argument. | + | Strings are terms where every function symbol has arity 1, i.e., exactly one argument. |
| − | Formally, a relative string rewrite system is a set R = {l<sub>1</sub> → r<sub>1</sub>,...,l<sub>n</sub> → r<sub>n</sub>} and a set S = {a<sub>1</sub> → b<sub>1</sub>,...,a<sub> | + | Additionally, the same variable appears on both the left and right sides of each rule. |
| + | Formally, a relative string rewrite system is a set R = {l<sub>1</sub> → r<sub>1</sub>,...,l<sub>n</sub> → r<sub>n</sub>} and a set S = {a<sub>1</sub> → b<sub>1</sub>,...,a<sub>m</sub> → b<sub>m</sub>} of finitely many rewrite rules denoted by R/S where all the occurring terms are strings. | ||
| − | A relative string rewrite system R/S is terminating if there exists no infinite rewrite sequence s | + | A relative string rewrite system R/S is terminating if there exists no infinite rewrite sequence s<sub>0</sub> →<sub>R</sub> s'<sub>0</sub> →<sup>*</sup><sub>S</sub> s<sub>1</sub> →<sub>R</sub> s'<sub>1</sub> →<sup>*</sup><sub>S</sub> s<sub>2</sub> →<sub>R</sub> ..., i.e., no infinite rewrite sequence that uses infinitely many rules from R. |
| − | Instead of the two | + | Instead of the two separate sets, one typically gives costs of 0 or 1 to every rule. |
Rules with cost 1 are in R and rules with costs 0 are in S. | Rules with cost 1 are in R and rules with costs 0 are in S. | ||
Then, relative termination is equal to the statement that every possible reduction has a finite total cost. | Then, relative termination is equal to the statement that every possible reduction has a finite total cost. | ||
Latest revision as of 12:24, 9 June 2026
The SRS Relative category is concerned with the question "Will every possible sequence of rewrite steps on strings eventually stop using a certain subset of the given rewrite rules?". 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?
Syntax & Semantic
Strings are terms where every function symbol has arity 1, i.e., exactly one argument. Additionally, the same variable appears on both the left and right sides of each rule. Formally, a relative string rewrite system is a set R = {l1 → r1,...,ln → rn} and a set S = {a1 → b1,...,am → bm} of finitely many rewrite rules denoted by R/S where all the occurring terms are strings.
A relative string rewrite system R/S is terminating if there exists no infinite rewrite sequence s0 →R s'0 →*S s1 →R s'1 →*S s2 →R ..., i.e., no infinite rewrite sequence that uses infinitely many rules from R.
Instead of the two separate sets, one typically gives costs of 0 or 1 to every rule. Rules with cost 1 are in R and rules with costs 0 are in S. Then, relative termination is equal to the statement that every possible reduction has a finite total cost. The syntax and the semantics of string rewrite systems with costs at the rules are described here.
Problem
Input: A relative string rewrite system R/S.
Question: Does R/S terminate?
Possible Outputs:
- "YES" followed by a termination proof, e.g., a ranking function proving termination of R/S.
- "NO" followed by a nontermination proof, e.g., a loop that indicates an infinite rewrite sequence that uses infinitely many rules from R.
- "MAYBE" (indicating that the solver cannot prove termination of R/S).