16.01.2013 Views

Proceedings of the 13 ESSLLI Student Session - Multiple Choices ...

Proceedings of the 13 ESSLLI Student Session - Multiple Choices ...

Proceedings of the 13 ESSLLI Student Session - Multiple Choices ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Proceedings</strong> <strong>of</strong> <strong>the</strong> <strong>13</strong> th <strong>ESSLLI</strong> <strong>Student</strong> <strong>Session</strong><br />

A translation <strong>of</strong> infinite semantic labeling in conjunction with RPOs has already been<br />

given in (Koprowski and Middeldorp, 2007). Unfortunately, this approach is inapplicable<br />

in our context since <strong>the</strong> runtime complexity <strong>of</strong> <strong>the</strong> original system cannot be related to <strong>the</strong><br />

runtime complexity <strong>of</strong> <strong>the</strong> infinite labeled system in general. Fur<strong>the</strong>rmore, finite semantic<br />

labeling using heuristics is implemented in <strong>the</strong> termination prover TPA (Koprowski, 2006)<br />

for instance. We consider <strong>the</strong> here presented approach favorable, as <strong>the</strong> choice <strong>of</strong> labeling<br />

suitable for <strong>the</strong> base order can be left to a state-<strong>of</strong>-<strong>the</strong>-art SAT-solver.<br />

1 The Polynomial Path Order<br />

We briefly recall <strong>the</strong> basic concepts <strong>of</strong> term rewriting, for details (Baader and Nipkow,<br />

1998) provides a good resource. Let V denote a countably infinite set <strong>of</strong> variables and F<br />

a signature. The set <strong>of</strong> terms over F and V is denoted by T (F, V). We write ✂ for <strong>the</strong><br />

subterm relation, <strong>the</strong> converse is denoted by ☎ and <strong>the</strong> <strong>the</strong> strict part <strong>of</strong> ☎ by ✄.<br />

A term rewrite system (TRS for short) R over T (F, V) is a set <strong>of</strong> rewrite rules l → r<br />

such that l, r ∈ T (F, V), l �∈ V and all variables <strong>of</strong> r also appear in l. In <strong>the</strong> following, R<br />

will always denote a TRS and in our context, R is finite. A binary relation on T (F, V) is a<br />

rewrite relation if it is compatible with F-operations and closed under substitutions. The<br />

smallest extension <strong>of</strong> R that is a rewrite relation is denoted by →R. The innermost rewrite<br />

relation i −→R is a restriction <strong>of</strong> →R, where innermost terms have to be reduced first. The<br />

transitive and reflexive closure <strong>of</strong> a rewrite relation → is denoted by →∗ and we write<br />

s →n t for <strong>the</strong> contraction <strong>of</strong> s to t in n steps. We say that R is (innermost) terminating<br />

i<br />

if <strong>the</strong>re exists no infinite chain <strong>of</strong> terms t0, t1, . . . such that ti →R ti+1 (ti −→R ti+1) for<br />

all i ∈ N.<br />

The root symbols <strong>of</strong> left-hand sides <strong>of</strong> rewrite rules in R are called defined symbols and<br />

collected in D(R), while all o<strong>the</strong>r symbols are called constructor symbols and collected<br />

in C(R). A term f(s1, . . . , sn) is constructor-based with respect to R if f ∈ D(R) and<br />

s1, . . . , sn ∈ T (C(R), V). We write T cb(R) for <strong>the</strong> set <strong>of</strong> all constructor-based terms<br />

over R. If every left-hand side <strong>of</strong> R is constructor-based <strong>the</strong>n R is called constructor<br />

TRS. Constructor TRSs allow us to model <strong>the</strong> computation <strong>of</strong> functions in a very natural<br />

way. Consider <strong>the</strong> following TRS:<br />

Example 1 The constructor TRS Rmult is defined by<br />

add(0, y) → y mult(0, y) → 0<br />

add(s(x), y) → s(add(x, y)) mult(s(x), y) → add(y, mult(x, y)).<br />

Rmult defines <strong>the</strong> function symbols add and mult, i.e. D(R) = {add, mult}. Natural<br />

numbers are represented using <strong>the</strong> constructor symbols from C(R) = {s, 0}. Define <strong>the</strong><br />

encoding function �·� : Σ ∗ → T (C(R), ∅) by �0� = 0 and �n + 1� = s(�n�). Then for<br />

all n, m ∈ N, mult(�n�, �m�) i −→ ∗ R �n ∗ m�. We say that Rmult computes multiplication<br />

(and addition) on natural numbers. For instance, <strong>the</strong> system admits <strong>the</strong> innermost rewrite<br />

sequence mult(s(0), 0) i −→ add(0, mult(0, 0)) i −→ add(0, 0) i −→ 0, computing 1 ∗ 0. Notice<br />

that we have to reduce in <strong>the</strong> second step <strong>the</strong> innermost redex mult(0, 0) first.<br />

In (Lescanne, 1995) it is proposed to conceive <strong>the</strong> complexity <strong>of</strong> a rewrite system<br />

R as <strong>the</strong> complexity <strong>of</strong> <strong>the</strong> functions computed by R. Whereas this view falls into <strong>the</strong><br />

realm <strong>of</strong> implicit complexity analysis, we conceive rewriting under R as <strong>the</strong> evaluation<br />

8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!