Termination proof
1: switching to dependency pairs
The following set of initial dependency pairs has been identified.
a__and#(
tt
,
X
)
|
→ |
mark#(
X
)
|
a__plus#(
N
,
0
)
|
→ |
mark#(
N
)
|
a__plus#(
N
,
s(
M
)
)
|
→ |
a__plus#(
mark(
N
)
,
mark(
M
)
)
|
a__plus#(
N
,
s(
M
)
)
|
→ |
mark#(
N
)
|
a__plus#(
N
,
s(
M
)
)
|
→ |
mark#(
M
)
|
mark#(
and(
X1
,
X2
)
)
|
→ |
a__and#(
mark(
X1
)
,
X2
)
|
mark#(
and(
X1
,
X2
)
)
|
→ |
mark#(
X1
)
|
mark#(
plus(
X1
,
X2
)
)
|
→ |
a__plus#(
mark(
X1
)
,
mark(
X2
)
)
|
mark#(
plus(
X1
,
X2
)
)
|
→ |
mark#(
X1
)
|
mark#(
plus(
X1
,
X2
)
)
|
→ |
mark#(
X2
)
|
mark#(
s(
X
)
)
|
→ |
mark#(
X
)
|
1.1: reduction pair processor
Using the following reduction pair
Linear polynomial
interpretation over
the naturals
[mark
(x1)
]
|
= |
x1
|
[and
(x1, x2)
]
|
= |
x1 + x2
|
[plus
(x1, x2)
]
|
= |
x1 + x2
|
[a__and#
(x1, x2)
]
|
= |
x1
|
[mark#
(x1)
]
|
= |
x1
|
[0]
|
= |
1
|
[s
(x1)
]
|
= |
x1
+
1
|
[a__plus
(x1, x2)
]
|
= |
x1 + x2
|
[a__plus#
(x1, x2)
]
|
= |
x1 + x2
|
[tt]
|
= |
0
|
[a__and
(x1, x2)
]
|
= |
x1 + x2
|
[f(x1, ..., xn)]
|
= |
x1 + ... + xn + 1
|
for all other symbols f of arity n
|
one remains with the following pair(s).
a__and#(
tt
,
X
)
|
→ |
mark#(
X
)
|
mark#(
and(
X1
,
X2
)
)
|
→ |
a__and#(
mark(
X1
)
,
X2
)
|
mark#(
and(
X1
,
X2
)
)
|
→ |
mark#(
X1
)
|
mark#(
plus(
X1
,
X2
)
)
|
→ |
a__plus#(
mark(
X1
)
,
mark(
X2
)
)
|
mark#(
plus(
X1
,
X2
)
)
|
→ |
mark#(
X1
)
|
mark#(
plus(
X1
,
X2
)
)
|
→ |
mark#(
X2
)
|
1.1.1: dependency graph processor
The dependency pairs are split into 1 component(s).