eq#(
s(
x
)
,
s(
y
)
)
|
→ |
eq#(
x
,
y
)
|
le#(
s(
x
)
,
s(
y
)
)
|
→ |
le#(
x
,
y
)
|
app#(
add(
n
,
x
)
,
y
)
|
→ |
app#(
x
,
y
)
|
min#(
add(
n
,
add(
m
,
x
)
)
)
|
→ |
if_min#(
le(
n
,
m
)
,
add(
n
,
add(
m
,
x
)
)
)
|
min#(
add(
n
,
add(
m
,
x
)
)
)
|
→ |
le#(
n
,
m
)
|
if_min#(
true
,
add(
n
,
add(
m
,
x
)
)
)
|
→ |
min#(
add(
n
,
x
)
)
|
if_min#(
false
,
add(
n
,
add(
m
,
x
)
)
)
|
→ |
min#(
add(
m
,
x
)
)
|
rm#(
n
,
add(
m
,
x
)
)
|
→ |
if_rm#(
eq(
n
,
m
)
,
n
,
add(
m
,
x
)
)
|
rm#(
n
,
add(
m
,
x
)
)
|
→ |
eq#(
n
,
m
)
|
if_rm#(
true
,
n
,
add(
m
,
x
)
)
|
→ |
rm#(
n
,
x
)
|
if_rm#(
false
,
n
,
add(
m
,
x
)
)
|
→ |
rm#(
n
,
x
)
|
minsort#(
add(
n
,
x
)
,
y
)
|
→ |
if_minsort#(
eq(
n
,
min(
add(
n
,
x
)
)
)
,
add(
n
,
x
)
,
y
)
|
minsort#(
add(
n
,
x
)
,
y
)
|
→ |
eq#(
n
,
min(
add(
n
,
x
)
)
)
|
minsort#(
add(
n
,
x
)
,
y
)
|
→ |
min#(
add(
n
,
x
)
)
|
if_minsort#(
true
,
add(
n
,
x
)
,
y
)
|
→ |
minsort#(
app(
rm(
n
,
x
)
,
y
)
,
nil
)
|
if_minsort#(
true
,
add(
n
,
x
)
,
y
)
|
→ |
app#(
rm(
n
,
x
)
,
y
)
|
if_minsort#(
true
,
add(
n
,
x
)
,
y
)
|
→ |
rm#(
n
,
x
)
|
if_minsort#(
false
,
add(
n
,
x
)
,
y
)
|
→ |
minsort#(
x
,
add(
n
,
y
)
)
|
The dependency pairs are split into 6 component(s).
-
The
1st
component contains the
pair(s)
if_minsort#(
true
,
add(
n
,
x
)
,
y
)
|
→ |
minsort#(
app(
rm(
n
,
x
)
,
y
)
,
nil
)
|
minsort#(
add(
n
,
x
)
,
y
)
|
→ |
if_minsort#(
eq(
n
,
min(
add(
n
,
x
)
)
)
,
add(
n
,
x
)
,
y
)
|
if_minsort#(
false
,
add(
n
,
x
)
,
y
)
|
→ |
minsort#(
x
,
add(
n
,
y
)
)
|
1.1.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[if_minsort
(x1, x2, x3)
]
|
= |
2
x1 +
2
x2
|
[rm
(x1, x2)
]
|
= |
x1 + x2
|
[eq
(x1, x2)
]
|
= |
0
|
[0]
|
= |
3
|
[nil]
|
= |
0
|
[if_min
(x1, x2)
]
|
= |
x1
|
[minsort#
(x1, x2)
]
|
= |
x1 + x2
|
[minsort
(x1, x2)
]
|
= |
2
x1 +
2
x2
|
[true]
|
= |
0
|
[if_minsort#
(x1, x2, x3)
]
|
= |
x1 + x2
|
[false]
|
= |
0
|
[if_rm
(x1, x2, x3)
]
|
= |
x1 + x2
|
[app
(x1, x2)
]
|
= |
x1 + x2
|
[add
(x1, x2)
]
|
= |
2
x1 + x2
+
2
|
[s
(x1)
]
|
= |
2
x1
+
3
|
[min
(x1)
]
|
= |
x1
|
[le
(x1, x2)
]
|
= |
3
x1 +
3
x2
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
minsort#(
add(
n
,
x
)
,
y
)
|
→ |
if_minsort#(
eq(
n
,
min(
add(
n
,
x
)
)
)
,
add(
n
,
x
)
,
y
)
|
if_minsort#(
false
,
add(
n
,
x
)
,
y
)
|
→ |
minsort#(
x
,
add(
n
,
y
)
)
|
1.1.1.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[if_minsort
(x1, x2, x3)
]
|
= |
2
x1 +
2
x2
|
[rm
(x1, x2)
]
|
= |
x1
|
[eq
(x1, x2)
]
|
= |
0
|
[0]
|
= |
0
|
[nil]
|
= |
0
|
[if_min
(x1, x2)
]
|
= |
2
x1
|
[minsort#
(x1, x2)
]
|
= |
x1
+
2
|
[minsort
(x1, x2)
]
|
= |
2
x1 +
2
x2
|
[true]
|
= |
0
|
[if_minsort#
(x1, x2, x3)
]
|
= |
x1
+
1
|
[false]
|
= |
0
|
[if_rm
(x1, x2, x3)
]
|
= |
x1
|
[app
(x1, x2)
]
|
= |
x1 + x2
|
[add
(x1, x2)
]
|
= |
x1 + x2
+
1
|
[s
(x1)
]
|
= |
2
x1
|
[min
(x1)
]
|
= |
2
x1
|
[le
(x1, x2)
]
|
= |
3
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
if_minsort#(
false
,
add(
n
,
x
)
,
y
)
|
→ |
minsort#(
x
,
add(
n
,
y
)
)
|
1.1.1.1.1: dependency graph processor
The dependency pairs are split into 0 component(s).
-
The
2nd
component contains the
pair(s)
rm#(
n
,
add(
m
,
x
)
)
|
→ |
if_rm#(
eq(
n
,
m
)
,
n
,
add(
m
,
x
)
)
|
if_rm#(
true
,
n
,
add(
m
,
x
)
)
|
→ |
rm#(
n
,
x
)
|
if_rm#(
false
,
n
,
add(
m
,
x
)
)
|
→ |
rm#(
n
,
x
)
|
1.1.2: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[if_minsort
(x1, x2, x3)
]
|
= |
2
x1 +
2
x2
|
[rm
(x1, x2)
]
|
= |
x1 + x2
|
[eq
(x1, x2)
]
|
= |
0
|
[0]
|
= |
0
|
[nil]
|
= |
0
|
[if_min
(x1, x2)
]
|
= |
2
x1
+
1
|
[minsort
(x1, x2)
]
|
= |
2
x1 +
2
x2
|
[true]
|
= |
0
|
[false]
|
= |
0
|
[if_rm
(x1, x2, x3)
]
|
= |
x1 + x2
|
[app
(x1, x2)
]
|
= |
x1 + x2
+
1
|
[add
(x1, x2)
]
|
= |
2
x1 + x2
+
2
|
[min
(x1)
]
|
= |
2
x1
+
2
|
[s
(x1)
]
|
= |
0
|
[le
(x1, x2)
]
|
= |
0
|
[if_rm#
(x1, x2, x3)
]
|
= |
x1
|
[rm#
(x1, x2)
]
|
= |
x1
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
rm#(
n
,
add(
m
,
x
)
)
|
→ |
if_rm#(
eq(
n
,
m
)
,
n
,
add(
m
,
x
)
)
|
1.1.2.1: dependency graph processor
The dependency pairs are split into 0 component(s).
-
The
3rd
component contains the
pair(s)
eq#(
s(
x
)
,
s(
y
)
)
|
→ |
eq#(
x
,
y
)
|
1.1.3: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[if_minsort
(x1, x2, x3)
]
|
= |
x1 + x2
|
[eq
(x1, x2)
]
|
= |
2
x1
|
[rm
(x1, x2)
]
|
= |
x1
|
[0]
|
= |
2
|
[eq#
(x1, x2)
]
|
= |
x1
|
[nil]
|
= |
0
|
[if_min
(x1, x2)
]
|
= |
2
x1
+
1
|
[minsort
(x1, x2)
]
|
= |
x1 + x2
|
[true]
|
= |
3
|
[false]
|
= |
0
|
[if_rm
(x1, x2, x3)
]
|
= |
x1
|
[app
(x1, x2)
]
|
= |
x1 + x2
|
[add
(x1, x2)
]
|
= |
2
x1 + x2
|
[min
(x1)
]
|
= |
2
x1
+
1
|
[s
(x1)
]
|
= |
2
x1
+
1
|
[le
(x1, x2)
]
|
= |
3
x1 +
2
x2
+
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: P is empty
All dependency pairs have been removed.
-
The
4th
component contains the
pair(s)
min#(
add(
n
,
add(
m
,
x
)
)
)
|
→ |
if_min#(
le(
n
,
m
)
,
add(
n
,
add(
m
,
x
)
)
)
|
if_min#(
true
,
add(
n
,
add(
m
,
x
)
)
)
|
→ |
min#(
add(
n
,
x
)
)
|
if_min#(
false
,
add(
n
,
add(
m
,
x
)
)
)
|
→ |
min#(
add(
m
,
x
)
)
|
1.1.4: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[if_minsort
(x1, x2, x3)
]
|
= |
x1 + x2
|
[rm
(x1, x2)
]
|
= |
x1
|
[eq
(x1, x2)
]
|
= |
0
|
[0]
|
= |
0
|
[nil]
|
= |
0
|
[if_min
(x1, x2)
]
|
= |
x1
|
[minsort
(x1, x2)
]
|
= |
x1 + x2
|
[min#
(x1)
]
|
= |
2
x1
+
3
|
[true]
|
= |
0
|
[false]
|
= |
0
|
[if_rm
(x1, x2, x3)
]
|
= |
x1
|
[app
(x1, x2)
]
|
= |
x1 + x2
|
[add
(x1, x2)
]
|
= |
2
x1 + x2
+
2
|
[min
(x1)
]
|
= |
x1
+
2
|
[s
(x1)
]
|
= |
0
|
[le
(x1, x2)
]
|
= |
0
|
[if_min#
(x1, x2)
]
|
= |
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.4.1: P is empty
All dependency pairs have been removed.
-
The
5th
component contains the
pair(s)
le#(
s(
x
)
,
s(
y
)
)
|
→ |
le#(
x
,
y
)
|
1.1.5: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[if_minsort
(x1, x2, x3)
]
|
= |
x1 + x2
|
[le#
(x1, x2)
]
|
= |
x1
|
[eq
(x1, x2)
]
|
= |
2
x1
|
[rm
(x1, x2)
]
|
= |
x1
|
[0]
|
= |
2
|
[nil]
|
= |
0
|
[if_min
(x1, x2)
]
|
= |
2
x1
+
1
|
[minsort
(x1, x2)
]
|
= |
x1 + x2
|
[true]
|
= |
3
|
[false]
|
= |
0
|
[if_rm
(x1, x2, x3)
]
|
= |
x1
|
[app
(x1, x2)
]
|
= |
x1 + x2
|
[add
(x1, x2)
]
|
= |
2
x1 + x2
|
[min
(x1)
]
|
= |
2
x1
+
1
|
[s
(x1)
]
|
= |
2
x1
+
1
|
[le
(x1, x2)
]
|
= |
3
x1 +
2
x2
+
2
|
[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: P is empty
All dependency pairs have been removed.
-
The
6th
component contains the
pair(s)
app#(
add(
n
,
x
)
,
y
)
|
→ |
app#(
x
,
y
)
|
1.1.6: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[if_minsort
(x1, x2, x3)
]
|
= |
2
x1 +
2
x2
|
[eq
(x1, x2)
]
|
= |
2
|
[rm
(x1, x2)
]
|
= |
x1
|
[0]
|
= |
1
|
[app#
(x1, x2)
]
|
= |
2
x1
|
[nil]
|
= |
0
|
[if_min
(x1, x2)
]
|
= |
2
x1
|
[minsort
(x1, x2)
]
|
= |
2
x1 +
2
x2
|
[true]
|
= |
0
|
[false]
|
= |
2
|
[if_rm
(x1, x2, x3)
]
|
= |
x1
|
[app
(x1, x2)
]
|
= |
x1 + x2
|
[add
(x1, x2)
]
|
= |
x1 + x2
+
1
|
[min
(x1)
]
|
= |
2
x1
+
1
|
[s
(x1)
]
|
= |
3
x1
|
[le
(x1, x2)
]
|
= |
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: P is empty
All dependency pairs have been removed.