active#(
add(
s(
X
)
,
Y
)
)
|
→ |
s#(
add(
X
,
Y
)
)
|
active#(
add(
s(
X
)
,
Y
)
)
|
→ |
add#(
X
,
Y
)
|
active#(
first(
s(
X
)
,
cons(
Y
,
Z
)
)
)
|
→ |
cons#(
Y
,
first(
X
,
Z
)
)
|
active#(
first(
s(
X
)
,
cons(
Y
,
Z
)
)
)
|
→ |
first#(
X
,
Z
)
|
active#(
from(
X
)
)
|
→ |
cons#(
X
,
from(
s(
X
)
)
)
|
active#(
from(
X
)
)
|
→ |
from#(
s(
X
)
)
|
active#(
from(
X
)
)
|
→ |
s#(
X
)
|
active#(
and(
X1
,
X2
)
)
|
→ |
and#(
active(
X1
)
,
X2
)
|
active#(
and(
X1
,
X2
)
)
|
→ |
active#(
X1
)
|
active#(
if(
X1
,
X2
,
X3
)
)
|
→ |
if#(
active(
X1
)
,
X2
,
X3
)
|
active#(
if(
X1
,
X2
,
X3
)
)
|
→ |
active#(
X1
)
|
active#(
add(
X1
,
X2
)
)
|
→ |
add#(
active(
X1
)
,
X2
)
|
active#(
add(
X1
,
X2
)
)
|
→ |
active#(
X1
)
|
active#(
first(
X1
,
X2
)
)
|
→ |
first#(
active(
X1
)
,
X2
)
|
active#(
first(
X1
,
X2
)
)
|
→ |
active#(
X1
)
|
active#(
first(
X1
,
X2
)
)
|
→ |
first#(
X1
,
active(
X2
)
)
|
active#(
first(
X1
,
X2
)
)
|
→ |
active#(
X2
)
|
and#(
mark(
X1
)
,
X2
)
|
→ |
and#(
X1
,
X2
)
|
if#(
mark(
X1
)
,
X2
,
X3
)
|
→ |
if#(
X1
,
X2
,
X3
)
|
add#(
mark(
X1
)
,
X2
)
|
→ |
add#(
X1
,
X2
)
|
first#(
mark(
X1
)
,
X2
)
|
→ |
first#(
X1
,
X2
)
|
first#(
X1
,
mark(
X2
)
)
|
→ |
first#(
X1
,
X2
)
|
proper#(
and(
X1
,
X2
)
)
|
→ |
and#(
proper(
X1
)
,
proper(
X2
)
)
|
proper#(
and(
X1
,
X2
)
)
|
→ |
proper#(
X1
)
|
proper#(
and(
X1
,
X2
)
)
|
→ |
proper#(
X2
)
|
proper#(
if(
X1
,
X2
,
X3
)
)
|
→ |
if#(
proper(
X1
)
,
proper(
X2
)
,
proper(
X3
)
)
|
proper#(
if(
X1
,
X2
,
X3
)
)
|
→ |
proper#(
X1
)
|
proper#(
if(
X1
,
X2
,
X3
)
)
|
→ |
proper#(
X2
)
|
proper#(
if(
X1
,
X2
,
X3
)
)
|
→ |
proper#(
X3
)
|
proper#(
add(
X1
,
X2
)
)
|
→ |
add#(
proper(
X1
)
,
proper(
X2
)
)
|
proper#(
add(
X1
,
X2
)
)
|
→ |
proper#(
X1
)
|
proper#(
add(
X1
,
X2
)
)
|
→ |
proper#(
X2
)
|
proper#(
s(
X
)
)
|
→ |
s#(
proper(
X
)
)
|
proper#(
s(
X
)
)
|
→ |
proper#(
X
)
|
proper#(
first(
X1
,
X2
)
)
|
→ |
first#(
proper(
X1
)
,
proper(
X2
)
)
|
proper#(
first(
X1
,
X2
)
)
|
→ |
proper#(
X1
)
|
proper#(
first(
X1
,
X2
)
)
|
→ |
proper#(
X2
)
|
proper#(
cons(
X1
,
X2
)
)
|
→ |
cons#(
proper(
X1
)
,
proper(
X2
)
)
|
proper#(
cons(
X1
,
X2
)
)
|
→ |
proper#(
X1
)
|
proper#(
cons(
X1
,
X2
)
)
|
→ |
proper#(
X2
)
|
proper#(
from(
X
)
)
|
→ |
from#(
proper(
X
)
)
|
proper#(
from(
X
)
)
|
→ |
proper#(
X
)
|
and#(
ok(
X1
)
,
ok(
X2
)
)
|
→ |
and#(
X1
,
X2
)
|
if#(
ok(
X1
)
,
ok(
X2
)
,
ok(
X3
)
)
|
→ |
if#(
X1
,
X2
,
X3
)
|
add#(
ok(
X1
)
,
ok(
X2
)
)
|
→ |
add#(
X1
,
X2
)
|
s#(
ok(
X
)
)
|
→ |
s#(
X
)
|
first#(
ok(
X1
)
,
ok(
X2
)
)
|
→ |
first#(
X1
,
X2
)
|
cons#(
ok(
X1
)
,
ok(
X2
)
)
|
→ |
cons#(
X1
,
X2
)
|
from#(
ok(
X
)
)
|
→ |
from#(
X
)
|
top#(
mark(
X
)
)
|
→ |
top#(
proper(
X
)
)
|
top#(
mark(
X
)
)
|
→ |
proper#(
X
)
|
top#(
ok(
X
)
)
|
→ |
top#(
active(
X
)
)
|
top#(
ok(
X
)
)
|
→ |
active#(
X
)
|
The dependency pairs are split into 10 component(s).
-
The
1st
component contains the
pair(s)
top#(
ok(
X
)
)
|
→ |
top#(
active(
X
)
)
|
top#(
mark(
X
)
)
|
→ |
top#(
proper(
X
)
)
|
1.1.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
1
|
[mark
(x1)
]
|
= |
x1
+
1
|
[if
(x1, x2, x3)
]
|
= |
2
x1 +
2
x2 +
3
x3
+
3
|
[first
(x1, x2)
]
|
= |
2
x1 + x2
+
2
|
[active
(x1)
]
|
= |
x1
|
[0]
|
= |
1
|
[nil]
|
= |
1
|
[cons
(x1, x2)
]
|
= |
0
|
[true]
|
= |
0
|
[and
(x1, x2)
]
|
= |
2
x1 + x2
+
1
|
[false]
|
= |
0
|
[add
(x1, x2)
]
|
= |
2
x1 +
2
x2
|
[s
(x1)
]
|
= |
2
|
[top#
(x1)
]
|
= |
x1
|
[ok
(x1)
]
|
= |
x1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
top#(
ok(
X
)
)
|
→ |
top#(
active(
X
)
)
|
1.1.1.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
x1
|
[mark
(x1)
]
|
= |
0
|
[if
(x1, x2, x3)
]
|
= |
3
x1 +
3
x2 + x3
|
[first
(x1, x2)
]
|
= |
2
x1
|
[active
(x1)
]
|
= |
x1
|
[0]
|
= |
2
|
[nil]
|
= |
2
|
[cons
(x1, x2)
]
|
= |
x1
|
[true]
|
= |
2
|
[and
(x1, x2)
]
|
= |
x1
|
[false]
|
= |
3
|
[add
(x1, x2)
]
|
= |
3
x1
+
1
|
[s
(x1)
]
|
= |
x1
+
1
|
[top#
(x1)
]
|
= |
x1
|
[ok
(x1)
]
|
= |
x1
+
1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
1.1.1.1.1: P is empty
All dependency pairs have been removed.
-
The
2nd
component contains the
pair(s)
active#(
if(
X1
,
X2
,
X3
)
)
|
→ |
active#(
X1
)
|
active#(
and(
X1
,
X2
)
)
|
→ |
active#(
X1
)
|
active#(
add(
X1
,
X2
)
)
|
→ |
active#(
X1
)
|
active#(
first(
X1
,
X2
)
)
|
→ |
active#(
X1
)
|
active#(
first(
X1
,
X2
)
)
|
→ |
active#(
X2
)
|
1.1.2: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
2
x1
+
1
|
[if
(x1, x2, x3)
]
|
= |
x1 +
3
x2
+
1
|
[mark
(x1)
]
|
= |
2
|
[active#
(x1)
]
|
= |
2
x1
|
[first
(x1, x2)
]
|
= |
2
x1 + x2
+
2
|
[active
(x1)
]
|
= |
2
x1
|
[0]
|
= |
2
|
[nil]
|
= |
2
|
[cons
(x1, x2)
]
|
= |
2
x1 +
2
x2
+
2
|
[true]
|
= |
2
|
[and
(x1, x2)
]
|
= |
3
x1
|
[false]
|
= |
2
|
[add
(x1, x2)
]
|
= |
2
x1 +
3
x2
|
[s
(x1)
]
|
= |
1
|
[ok
(x1)
]
|
= |
0
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
active#(
and(
X1
,
X2
)
)
|
→ |
active#(
X1
)
|
active#(
add(
X1
,
X2
)
)
|
→ |
active#(
X1
)
|
1.1.2.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
2
|
[mark
(x1)
]
|
= |
1
|
[if
(x1, x2, x3)
]
|
= |
2
x1 +
2
x2
|
[active#
(x1)
]
|
= |
2
x1
|
[first
(x1, x2)
]
|
= |
x1 + x2
|
[active
(x1)
]
|
= |
2
x1
|
[0]
|
= |
3
|
[nil]
|
= |
3
|
[cons
(x1, x2)
]
|
= |
2
x1 +
2
x2
+
3
|
[true]
|
= |
1
|
[and
(x1, x2)
]
|
= |
2
x1 + x2
|
[false]
|
= |
1
|
[add
(x1, x2)
]
|
= |
x1 +
3
x2
+
2
|
[s
(x1)
]
|
= |
2
x1
+
1
|
[ok
(x1)
]
|
= |
x1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
active#(
and(
X1
,
X2
)
)
|
→ |
active#(
X1
)
|
1.1.2.1.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
3
|
[mark
(x1)
]
|
= |
2
|
[if
(x1, x2, x3)
]
|
= |
2
x1 +
2
x2 +
2
x3
+
2
|
[active#
(x1)
]
|
= |
x1
|
[first
(x1, x2)
]
|
= |
2
x1 + x2
|
[active
(x1)
]
|
= |
x1
|
[0]
|
= |
2
|
[nil]
|
= |
2
|
[cons
(x1, x2)
]
|
= |
2
x1 + x2
+
3
|
[true]
|
= |
2
|
[and
(x1, x2)
]
|
= |
2
x1 + x2
+
2
|
[false]
|
= |
3
|
[add
(x1, x2)
]
|
= |
2
|
[s
(x1)
]
|
= |
2
|
[ok
(x1)
]
|
= |
1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
1.1.2.1.1.1: P is empty
All dependency pairs have been removed.
-
The
3rd
component contains the
pair(s)
proper#(
and(
X1
,
X2
)
)
|
→ |
proper#(
X2
)
|
proper#(
and(
X1
,
X2
)
)
|
→ |
proper#(
X1
)
|
proper#(
if(
X1
,
X2
,
X3
)
)
|
→ |
proper#(
X1
)
|
proper#(
if(
X1
,
X2
,
X3
)
)
|
→ |
proper#(
X2
)
|
proper#(
if(
X1
,
X2
,
X3
)
)
|
→ |
proper#(
X3
)
|
proper#(
add(
X1
,
X2
)
)
|
→ |
proper#(
X1
)
|
proper#(
add(
X1
,
X2
)
)
|
→ |
proper#(
X2
)
|
proper#(
s(
X
)
)
|
→ |
proper#(
X
)
|
proper#(
first(
X1
,
X2
)
)
|
→ |
proper#(
X1
)
|
proper#(
first(
X1
,
X2
)
)
|
→ |
proper#(
X2
)
|
proper#(
cons(
X1
,
X2
)
)
|
→ |
proper#(
X1
)
|
proper#(
cons(
X1
,
X2
)
)
|
→ |
proper#(
X2
)
|
proper#(
from(
X
)
)
|
→ |
proper#(
X
)
|
1.1.3: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
x1
+
1
|
[if
(x1, x2, x3)
]
|
= |
x1 +
2
x2 +
2
x3
+
3
|
[mark
(x1)
]
|
= |
0
|
[first
(x1, x2)
]
|
= |
x1 +
3
x2
+
1
|
[active
(x1)
]
|
= |
2
x1
|
[0]
|
= |
2
|
[nil]
|
= |
2
|
[cons
(x1, x2)
]
|
= |
x1 + x2
+
3
|
[true]
|
= |
2
|
[and
(x1, x2)
]
|
= |
x1 +
2
x2
+
1
|
[proper#
(x1)
]
|
= |
2
x1
|
[false]
|
= |
2
|
[add
(x1, x2)
]
|
= |
3
x1 +
2
x2
+
3
|
[s
(x1)
]
|
= |
x1
|
[ok
(x1)
]
|
= |
1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
proper#(
s(
X
)
)
|
→ |
proper#(
X
)
|
1.1.3.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
x1
+
1
|
[mark
(x1)
]
|
= |
0
|
[if
(x1, x2, x3)
]
|
= |
0
|
[first
(x1, x2)
]
|
= |
0
|
[active
(x1)
]
|
= |
0
|
[0]
|
= |
3
|
[nil]
|
= |
3
|
[cons
(x1, x2)
]
|
= |
x1 + x2
+
3
|
[true]
|
= |
3
|
[and
(x1, x2)
]
|
= |
0
|
[proper#
(x1)
]
|
= |
x1
|
[false]
|
= |
3
|
[add
(x1, x2)
]
|
= |
0
|
[s
(x1)
]
|
= |
2
x1
+
3
|
[ok
(x1)
]
|
= |
0
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
+
2
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
1.1.3.1.1: P is empty
All dependency pairs have been removed.
-
The
4th
component contains the
pair(s)
and#(
ok(
X1
)
,
ok(
X2
)
)
|
→ |
and#(
X1
,
X2
)
|
and#(
mark(
X1
)
,
X2
)
|
→ |
and#(
X1
,
X2
)
|
1.1.4: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
0
|
[mark
(x1)
]
|
= |
x1
+
1
|
[if
(x1, x2, x3)
]
|
= |
x1 +
2
x2 + x3
|
[first
(x1, x2)
]
|
= |
x1 +
2
x2
+
2
|
[active
(x1)
]
|
= |
3
x1
+
2
|
[0]
|
= |
0
|
[nil]
|
= |
0
|
[cons
(x1, x2)
]
|
= |
1
|
[true]
|
= |
0
|
[and
(x1, x2)
]
|
= |
x1 + x2
|
[false]
|
= |
0
|
[add
(x1, x2)
]
|
= |
x1 +
3
x2
|
[s
(x1)
]
|
= |
1
|
[ok
(x1)
]
|
= |
x1
|
[and#
(x1, x2)
]
|
= |
x1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
and#(
ok(
X1
)
,
ok(
X2
)
)
|
→ |
and#(
X1
,
X2
)
|
1.1.4.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
3
x1
+
1
|
[mark
(x1)
]
|
= |
0
|
[if
(x1, x2, x3)
]
|
= |
x1 +
2
x2
+
2
|
[first
(x1, x2)
]
|
= |
2
x1
|
[active
(x1)
]
|
= |
x1
|
[0]
|
= |
2
|
[nil]
|
= |
2
|
[cons
(x1, x2)
]
|
= |
2
x1
|
[true]
|
= |
2
|
[and
(x1, x2)
]
|
= |
3
x1
+
1
|
[false]
|
= |
3
|
[add
(x1, x2)
]
|
= |
2
x1
|
[s
(x1)
]
|
= |
2
x1
+
2
|
[ok
(x1)
]
|
= |
2
x1
+
2
|
[and#
(x1, x2)
]
|
= |
3
x1 +
3
x2
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
3
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
1.1.4.1.1: P is empty
All dependency pairs have been removed.
-
The
5th
component contains the
pair(s)
if#(
ok(
X1
)
,
ok(
X2
)
,
ok(
X3
)
)
|
→ |
if#(
X1
,
X2
,
X3
)
|
if#(
mark(
X1
)
,
X2
,
X3
)
|
→ |
if#(
X1
,
X2
,
X3
)
|
1.1.5: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
2
x1
|
[mark
(x1)
]
|
= |
0
|
[if
(x1, x2, x3)
]
|
= |
x1
|
[first
(x1, x2)
]
|
= |
x1
|
[if#
(x1, x2, x3)
]
|
= |
3
x1 +
3
x2
|
[active
(x1)
]
|
= |
x1
+
1
|
[0]
|
= |
2
|
[nil]
|
= |
3
|
[cons
(x1, x2)
]
|
= |
x1
|
[true]
|
= |
1
|
[and
(x1, x2)
]
|
= |
x1
|
[false]
|
= |
1
|
[add
(x1, x2)
]
|
= |
2
x1
|
[s
(x1)
]
|
= |
2
x1
|
[ok
(x1)
]
|
= |
2
x1
+
1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
3
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
if#(
mark(
X1
)
,
X2
,
X3
)
|
→ |
if#(
X1
,
X2
,
X3
)
|
1.1.5.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
0
|
[mark
(x1)
]
|
= |
x1
+
1
|
[if
(x1, x2, x3)
]
|
= |
x1 + x2 +
3
x3
|
[first
(x1, x2)
]
|
= |
x1 + x2
|
[if#
(x1, x2, x3)
]
|
= |
x1
|
[active
(x1)
]
|
= |
2
x1
+
1
|
[0]
|
= |
0
|
[nil]
|
= |
0
|
[cons
(x1, x2)
]
|
= |
0
|
[true]
|
= |
1
|
[and
(x1, x2)
]
|
= |
x1 + x2
|
[false]
|
= |
0
|
[add
(x1, x2)
]
|
= |
2
x1 + x2
+
1
|
[s
(x1)
]
|
= |
0
|
[ok
(x1)
]
|
= |
0
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
1.1.5.1.1: P is empty
All dependency pairs have been removed.
-
The
6th
component contains the
pair(s)
add#(
ok(
X1
)
,
ok(
X2
)
)
|
→ |
add#(
X1
,
X2
)
|
add#(
mark(
X1
)
,
X2
)
|
→ |
add#(
X1
,
X2
)
|
1.1.6: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
0
|
[mark
(x1)
]
|
= |
x1
+
1
|
[if
(x1, x2, x3)
]
|
= |
x1 +
2
x2 + x3
|
[first
(x1, x2)
]
|
= |
x1 +
2
x2
+
2
|
[active
(x1)
]
|
= |
3
x1
+
2
|
[0]
|
= |
0
|
[add#
(x1, x2)
]
|
= |
x1
|
[nil]
|
= |
0
|
[cons
(x1, x2)
]
|
= |
1
|
[true]
|
= |
0
|
[and
(x1, x2)
]
|
= |
x1 + x2
|
[false]
|
= |
0
|
[add
(x1, x2)
]
|
= |
x1 +
3
x2
|
[s
(x1)
]
|
= |
1
|
[ok
(x1)
]
|
= |
x1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
add#(
ok(
X1
)
,
ok(
X2
)
)
|
→ |
add#(
X1
,
X2
)
|
1.1.6.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
3
x1
+
1
|
[mark
(x1)
]
|
= |
0
|
[if
(x1, x2, x3)
]
|
= |
x1 +
2
x2
+
2
|
[first
(x1, x2)
]
|
= |
2
x1
|
[active
(x1)
]
|
= |
x1
|
[0]
|
= |
2
|
[add#
(x1, x2)
]
|
= |
3
x1 +
3
x2
|
[nil]
|
= |
2
|
[cons
(x1, x2)
]
|
= |
2
x1
|
[true]
|
= |
2
|
[and
(x1, x2)
]
|
= |
3
x1
+
1
|
[false]
|
= |
3
|
[add
(x1, x2)
]
|
= |
2
x1
|
[s
(x1)
]
|
= |
2
x1
+
2
|
[ok
(x1)
]
|
= |
2
x1
+
2
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
3
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
1.1.6.1.1: P is empty
All dependency pairs have been removed.
-
The
7th
component contains the
pair(s)
first#(
X1
,
mark(
X2
)
)
|
→ |
first#(
X1
,
X2
)
|
first#(
mark(
X1
)
,
X2
)
|
→ |
first#(
X1
,
X2
)
|
first#(
ok(
X1
)
,
ok(
X2
)
)
|
→ |
first#(
X1
,
X2
)
|
1.1.7: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
0
|
[mark
(x1)
]
|
= |
x1
+
1
|
[if
(x1, x2, x3)
]
|
= |
2
x1 + x2 + x3
+
2
|
[first
(x1, x2)
]
|
= |
2
x1 +
2
x2
+
2
|
[active
(x1)
]
|
= |
2
x1
+
1
|
[first#
(x1, x2)
]
|
= |
2
x1
|
[0]
|
= |
3
|
[nil]
|
= |
1
|
[cons
(x1, x2)
]
|
= |
2
x1
|
[true]
|
= |
0
|
[and
(x1, x2)
]
|
= |
x1 + x2
+
1
|
[false]
|
= |
1
|
[add
(x1, x2)
]
|
= |
x1 + x2
|
[s
(x1)
]
|
= |
2
x1
+
2
|
[ok
(x1)
]
|
= |
x1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
first#(
mark(
X1
)
,
X2
)
|
→ |
first#(
X1
,
X2
)
|
first#(
ok(
X1
)
,
ok(
X2
)
)
|
→ |
first#(
X1
,
X2
)
|
1.1.7.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
2
x1
|
[mark
(x1)
]
|
= |
0
|
[if
(x1, x2, x3)
]
|
= |
2
x1
+
1
|
[first
(x1, x2)
]
|
= |
x1
|
[active
(x1)
]
|
= |
x1
+
1
|
[first#
(x1, x2)
]
|
= |
3
x1
|
[0]
|
= |
2
|
[nil]
|
= |
1
|
[cons
(x1, x2)
]
|
= |
x1
|
[true]
|
= |
1
|
[and
(x1, x2)
]
|
= |
x1
|
[false]
|
= |
1
|
[add
(x1, x2)
]
|
= |
2
x1
+
1
|
[s
(x1)
]
|
= |
x1
|
[ok
(x1)
]
|
= |
2
x1
+
1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
3
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
first#(
mark(
X1
)
,
X2
)
|
→ |
first#(
X1
,
X2
)
|
1.1.7.1.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
0
|
[mark
(x1)
]
|
= |
x1
+
1
|
[if
(x1, x2, x3)
]
|
= |
3
x1 + x2 + x3
+
2
|
[first
(x1, x2)
]
|
= |
x1 + x2
+
2
|
[active
(x1)
]
|
= |
2
x1
+
1
|
[first#
(x1, x2)
]
|
= |
x1
|
[0]
|
= |
2
|
[nil]
|
= |
0
|
[cons
(x1, x2)
]
|
= |
0
|
[true]
|
= |
0
|
[and
(x1, x2)
]
|
= |
x1 + x2
|
[false]
|
= |
3
|
[add
(x1, x2)
]
|
= |
2
x1 +
3
x2
+
1
|
[s
(x1)
]
|
= |
0
|
[ok
(x1)
]
|
= |
x1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
1.1.7.1.1.1: P is empty
All dependency pairs have been removed.
-
The
8th
component contains the
pair(s)
1.1.8: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
2
x1
|
[mark
(x1)
]
|
= |
0
|
[if
(x1, x2, x3)
]
|
= |
x1
+
2
|
[first
(x1, x2)
]
|
= |
3
x1 +
3
x2
+
3
|
[active
(x1)
]
|
= |
x1
|
[0]
|
= |
2
|
[nil]
|
= |
2
|
[cons
(x1, x2)
]
|
= |
x1
|
[s#
(x1)
]
|
= |
x1
|
[true]
|
= |
1
|
[and
(x1, x2)
]
|
= |
x1
+
1
|
[false]
|
= |
2
|
[add
(x1, x2)
]
|
= |
2
x1
+
2
|
[s
(x1)
]
|
= |
x1
|
[ok
(x1)
]
|
= |
x1
+
1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
1.1.8.1: P is empty
All dependency pairs have been removed.
-
The
9th
component contains the
pair(s)
cons#(
ok(
X1
)
,
ok(
X2
)
)
|
→ |
cons#(
X1
,
X2
)
|
1.1.9: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
3
x1
+
1
|
[mark
(x1)
]
|
= |
0
|
[if
(x1, x2, x3)
]
|
= |
x1 +
2
x2
+
2
|
[first
(x1, x2)
]
|
= |
2
x1
|
[active
(x1)
]
|
= |
x1
|
[0]
|
= |
2
|
[nil]
|
= |
2
|
[cons
(x1, x2)
]
|
= |
2
x1
|
[true]
|
= |
2
|
[and
(x1, x2)
]
|
= |
3
x1
+
1
|
[false]
|
= |
3
|
[cons#
(x1, x2)
]
|
= |
3
x1 +
3
x2
|
[add
(x1, x2)
]
|
= |
2
x1
|
[s
(x1)
]
|
= |
2
x1
+
2
|
[ok
(x1)
]
|
= |
2
x1
+
2
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
3
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
1.1.9.1: P is empty
All dependency pairs have been removed.
-
The
10th
component contains the
pair(s)
from#(
ok(
X
)
)
|
→ |
from#(
X
)
|
1.1.10: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[from
(x1)
]
|
= |
2
x1
|
[mark
(x1)
]
|
= |
0
|
[if
(x1, x2, x3)
]
|
= |
x1
+
2
|
[first
(x1, x2)
]
|
= |
3
x1 +
3
x2
+
3
|
[active
(x1)
]
|
= |
x1
|
[0]
|
= |
2
|
[from#
(x1)
]
|
= |
x1
|
[nil]
|
= |
2
|
[cons
(x1, x2)
]
|
= |
x1
|
[true]
|
= |
1
|
[and
(x1, x2)
]
|
= |
x1
+
1
|
[false]
|
= |
2
|
[add
(x1, x2)
]
|
= |
2
x1
+
2
|
[s
(x1)
]
|
= |
x1
|
[ok
(x1)
]
|
= |
x1
+
1
|
[top
(x1)
]
|
= |
0
|
[proper
(x1)
]
|
= |
2
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
1.1.10.1: P is empty
All dependency pairs have been removed.