YES Termination Proof

Termination Proof

by ttt2 (version ttt2 1.15)

Input

The rewrite relation of the following TRS is considered.

Begin(c(a(x0))) Wait(Right1(x0))
Begin(a(x0)) Wait(Right2(x0))
Begin(d(x0)) Wait(Right3(x0))
Begin(a(x0)) Wait(Right4(x0))
Right1(b(End(x0))) Left(a(b(a(b(c(End(x0)))))))
Right2(b(c(End(x0)))) Left(a(b(a(b(c(End(x0)))))))
Right3(c(End(x0))) Left(a(b(c(a(End(x0))))))
Right4(a(End(x0))) Left(a(c(b(a(End(x0))))))
Right1(b(x0)) Ab(Right1(x0))
Right2(b(x0)) Ab(Right2(x0))
Right3(b(x0)) Ab(Right3(x0))
Right4(b(x0)) Ab(Right4(x0))
Right1(c(x0)) Ac(Right1(x0))
Right2(c(x0)) Ac(Right2(x0))
Right3(c(x0)) Ac(Right3(x0))
Right4(c(x0)) Ac(Right4(x0))
Right1(a(x0)) Aa(Right1(x0))
Right2(a(x0)) Aa(Right2(x0))
Right3(a(x0)) Aa(Right3(x0))
Right4(a(x0)) Aa(Right4(x0))
Right1(d(x0)) Ad(Right1(x0))
Right2(d(x0)) Ad(Right2(x0))
Right3(d(x0)) Ad(Right3(x0))
Right4(d(x0)) Ad(Right4(x0))
Ab(Left(x0)) Left(b(x0))
Ac(Left(x0)) Left(c(x0))
Aa(Left(x0)) Left(a(x0))
Ad(Left(x0)) Left(d(x0))
Wait(Left(x0)) Begin(x0)
b(c(a(x0))) a(b(a(b(c(x0)))))
b(x0) c(c(x0))
c(d(x0)) a(b(c(a(x0))))
a(a(x0)) a(c(b(a(x0))))

Proof

1 Rule Removal

Using the linear polynomial interpretation over the arctic semiring over the integers
[Wait(x1)] = 0 · x1 + -∞
[Ad(x1)] = 7 · x1 + -∞
[Right4(x1)] = 2 · x1 + -∞
[c(x1)] = 0 · x1 + -∞
[Right1(x1)] = 2 · x1 + -∞
[Right2(x1)] = 2 · x1 + -∞
[b(x1)] = 0 · x1 + -∞
[a(x1)] = 0 · x1 + -∞
[Right3(x1)] = 5 · x1 + -∞
[Aa(x1)] = 0 · x1 + -∞
[Ab(x1)] = 0 · x1 + -∞
[Left(x1)] = 2 · x1 + -∞
[End(x1)] = 6 · x1 + -∞
[Ac(x1)] = 0 · x1 + -∞
[d(x1)] = 7 · x1 + -∞
[Begin(x1)] = 2 · x1 + -∞
the rules
Begin(c(a(x0))) Wait(Right1(x0))
Begin(a(x0)) Wait(Right2(x0))
Begin(a(x0)) Wait(Right4(x0))
Right1(b(End(x0))) Left(a(b(a(b(c(End(x0)))))))
Right2(b(c(End(x0)))) Left(a(b(a(b(c(End(x0)))))))
Right4(a(End(x0))) Left(a(c(b(a(End(x0))))))
Right1(b(x0)) Ab(Right1(x0))
Right2(b(x0)) Ab(Right2(x0))
Right3(b(x0)) Ab(Right3(x0))
Right4(b(x0)) Ab(Right4(x0))
Right1(c(x0)) Ac(Right1(x0))
Right2(c(x0)) Ac(Right2(x0))
Right3(c(x0)) Ac(Right3(x0))
Right4(c(x0)) Ac(Right4(x0))
Right1(a(x0)) Aa(Right1(x0))
Right2(a(x0)) Aa(Right2(x0))
Right3(a(x0)) Aa(Right3(x0))
Right4(a(x0)) Aa(Right4(x0))
Right1(d(x0)) Ad(Right1(x0))
Right2(d(x0)) Ad(Right2(x0))
Right3(d(x0)) Ad(Right3(x0))
Right4(d(x0)) Ad(Right4(x0))
Ab(Left(x0)) Left(b(x0))
Ac(Left(x0)) Left(c(x0))
Aa(Left(x0)) Left(a(x0))
Ad(Left(x0)) Left(d(x0))
Wait(Left(x0)) Begin(x0)
b(c(a(x0))) a(b(a(b(c(x0)))))
b(x0) c(c(x0))
a(a(x0)) a(c(b(a(x0))))
remain.

1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[Wait(x1)] = 1 · x1 + 0
[Ad(x1)] = 1 · x1 + 8
[Right4(x1)] = 1 · x1 + 0
[c(x1)] = 1 · x1 + 0
[Right1(x1)] = 1 · x1 + 0
[Right2(x1)] = 1 · x1 + 0
[b(x1)] = 1 · x1 + 0
[a(x1)] = 1 · x1 + 0
[Right3(x1)] = 3 · x1 + 0
[Aa(x1)] = 1 · x1 + 0
[Ab(x1)] = 1 · x1 + 0
[Left(x1)] = 1 · x1 + 0
[End(x1)] = 1 · x1 + 0
[Ac(x1)] = 1 · x1 + 0
[d(x1)] = 1 · x1 + 8
[Begin(x1)] = 1 · x1 + 0
the rules
Begin(c(a(x0))) Wait(Right1(x0))
Begin(a(x0)) Wait(Right2(x0))
Begin(a(x0)) Wait(Right4(x0))
Right1(b(End(x0))) Left(a(b(a(b(c(End(x0)))))))
Right2(b(c(End(x0)))) Left(a(b(a(b(c(End(x0)))))))
Right4(a(End(x0))) Left(a(c(b(a(End(x0))))))
Right1(b(x0)) Ab(Right1(x0))
Right2(b(x0)) Ab(Right2(x0))
Right3(b(x0)) Ab(Right3(x0))
Right4(b(x0)) Ab(Right4(x0))
Right1(c(x0)) Ac(Right1(x0))
Right2(c(x0)) Ac(Right2(x0))
Right3(c(x0)) Ac(Right3(x0))
Right4(c(x0)) Ac(Right4(x0))
Right1(a(x0)) Aa(Right1(x0))
Right2(a(x0)) Aa(Right2(x0))
Right3(a(x0)) Aa(Right3(x0))
Right4(a(x0)) Aa(Right4(x0))
Right1(d(x0)) Ad(Right1(x0))
Right2(d(x0)) Ad(Right2(x0))
Right4(d(x0)) Ad(Right4(x0))
Ab(Left(x0)) Left(b(x0))
Ac(Left(x0)) Left(c(x0))
Aa(Left(x0)) Left(a(x0))
Ad(Left(x0)) Left(d(x0))
Wait(Left(x0)) Begin(x0)
b(c(a(x0))) a(b(a(b(c(x0)))))
b(x0) c(c(x0))
a(a(x0)) a(c(b(a(x0))))
remain.

1.1.1 String Reversal

Since only unary symbols occur, one can reverse all terms and obtains the TRS
a(c(Begin(x0))) Right1(Wait(x0))
a(Begin(x0)) Right2(Wait(x0))
a(Begin(x0)) Right4(Wait(x0))
End(b(Right1(x0))) End(c(b(a(b(a(Left(x0)))))))
End(c(b(Right2(x0)))) End(c(b(a(b(a(Left(x0)))))))
End(a(Right4(x0))) End(a(b(c(a(Left(x0))))))
b(Right1(x0)) Right1(Ab(x0))
b(Right2(x0)) Right2(Ab(x0))
b(Right3(x0)) Right3(Ab(x0))
b(Right4(x0)) Right4(Ab(x0))
c(Right1(x0)) Right1(Ac(x0))
c(Right2(x0)) Right2(Ac(x0))
c(Right3(x0)) Right3(Ac(x0))
c(Right4(x0)) Right4(Ac(x0))
a(Right1(x0)) Right1(Aa(x0))
a(Right2(x0)) Right2(Aa(x0))
a(Right3(x0)) Right3(Aa(x0))
a(Right4(x0)) Right4(Aa(x0))
d(Right1(x0)) Right1(Ad(x0))
d(Right2(x0)) Right2(Ad(x0))
d(Right4(x0)) Right4(Ad(x0))
Left(Ab(x0)) b(Left(x0))
Left(Ac(x0)) c(Left(x0))
Left(Aa(x0)) a(Left(x0))
Left(Ad(x0)) d(Left(x0))
Left(Wait(x0)) Begin(x0)
a(c(b(x0))) c(b(a(b(a(x0)))))
b(x0) c(c(x0))
a(a(x0)) a(b(c(a(x0))))

1.1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[Wait(x1)] =
1 1 1
0 0 0
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[Ad(x1)] =
1 0 0
1 0 1
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[Right4(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[c(x1)] =
1 0 0
0 0 0
1 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[Right1(x1)] =
1 0 0
0 0 0
1 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[Right2(x1)] =
1 0 0
0 0 0
1 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[b(x1)] =
1 0 0
0 0 0
1 1 1
· x1 +
0 0 0
1 0 0
0 0 0
[a(x1)] =
1 0 0
0 1 0
1 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[Right3(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[Aa(x1)] =
1 0 0
1 0 0
0 1 1
· x1 +
0 0 0
0 0 0
1 0 0
[Ab(x1)] =
1 0 0
1 1 1
0 0 0
· x1 +
0 0 0
1 0 0
1 0 0
[Left(x1)] =
1 0 0
0 0 1
0 1 0
· x1 +
0 0 0
0 0 0
1 0 0
[End(x1)] =
1 1 1
0 0 1
0 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[Ac(x1)] =
1 0 0
1 0 0
0 0 0
· x1 +
0 0 0
0 0 0
1 0 0
[d(x1)] =
1 0 0
0 1 0
1 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[Begin(x1)] =
1 1 1
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
the rules
a(c(Begin(x0))) Right1(Wait(x0))
a(Begin(x0)) Right2(Wait(x0))
a(Begin(x0)) Right4(Wait(x0))
End(c(b(Right2(x0)))) End(c(b(a(b(a(Left(x0)))))))
End(a(Right4(x0))) End(a(b(c(a(Left(x0))))))
b(Right1(x0)) Right1(Ab(x0))
b(Right2(x0)) Right2(Ab(x0))
b(Right3(x0)) Right3(Ab(x0))
b(Right4(x0)) Right4(Ab(x0))
c(Right1(x0)) Right1(Ac(x0))
c(Right2(x0)) Right2(Ac(x0))
c(Right3(x0)) Right3(Ac(x0))
c(Right4(x0)) Right4(Ac(x0))
a(Right1(x0)) Right1(Aa(x0))
a(Right2(x0)) Right2(Aa(x0))
a(Right3(x0)) Right3(Aa(x0))
a(Right4(x0)) Right4(Aa(x0))
d(Right1(x0)) Right1(Ad(x0))
d(Right2(x0)) Right2(Ad(x0))
d(Right4(x0)) Right4(Ad(x0))
Left(Ab(x0)) b(Left(x0))
Left(Ac(x0)) c(Left(x0))
Left(Aa(x0)) a(Left(x0))
Left(Ad(x0)) d(Left(x0))
Left(Wait(x0)) Begin(x0)
a(c(b(x0))) c(b(a(b(a(x0)))))
b(x0) c(c(x0))
a(a(x0)) a(b(c(a(x0))))
remain.

1.1.1.1.1 Rule Removal

Using the linear polynomial interpretation over the arctic semiring over the integers
[Wait(x1)] = 0 · x1 + -∞
[Ad(x1)] = 0 · x1 + -∞
[Right4(x1)] = 4 · x1 + -∞
[c(x1)] = 0 · x1 + -∞
[Right1(x1)] = 0 · x1 + -∞
[Right2(x1)] = 4 · x1 + -∞
[b(x1)] = 0 · x1 + -∞
[a(x1)] = 0 · x1 + -∞
[Right3(x1)] = 0 · x1 + -∞
[Aa(x1)] = 0 · x1 + -∞
[Ab(x1)] = 0 · x1 + -∞
[Left(x1)] = 4 · x1 + -∞
[End(x1)] = 0 · x1 + -∞
[Ac(x1)] = 0 · x1 + -∞
[d(x1)] = 0 · x1 + -∞
[Begin(x1)] = 4 · x1 + -∞
the rules
a(Begin(x0)) Right2(Wait(x0))
a(Begin(x0)) Right4(Wait(x0))
End(c(b(Right2(x0)))) End(c(b(a(b(a(Left(x0)))))))
End(a(Right4(x0))) End(a(b(c(a(Left(x0))))))
b(Right1(x0)) Right1(Ab(x0))
b(Right2(x0)) Right2(Ab(x0))
b(Right3(x0)) Right3(Ab(x0))
b(Right4(x0)) Right4(Ab(x0))
c(Right1(x0)) Right1(Ac(x0))
c(Right2(x0)) Right2(Ac(x0))
c(Right3(x0)) Right3(Ac(x0))
c(Right4(x0)) Right4(Ac(x0))
a(Right1(x0)) Right1(Aa(x0))
a(Right2(x0)) Right2(Aa(x0))
a(Right3(x0)) Right3(Aa(x0))
a(Right4(x0)) Right4(Aa(x0))
d(Right1(x0)) Right1(Ad(x0))
d(Right2(x0)) Right2(Ad(x0))
d(Right4(x0)) Right4(Ad(x0))
Left(Ab(x0)) b(Left(x0))
Left(Ac(x0)) c(Left(x0))
Left(Aa(x0)) a(Left(x0))
Left(Ad(x0)) d(Left(x0))
Left(Wait(x0)) Begin(x0)
a(c(b(x0))) c(b(a(b(a(x0)))))
b(x0) c(c(x0))
a(a(x0)) a(b(c(a(x0))))
remain.

1.1.1.1.1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[Wait(x1)] = 4 · x1 + 0
[Ad(x1)] = 2 · x1 + 8
[Right4(x1)] = 1 · x1 + 0
[c(x1)] = 1 · x1 + 0
[Right1(x1)] = 1 · x1 + 6
[Right2(x1)] = 1 · x1 + 0
[b(x1)] = 1 · x1 + 0
[a(x1)] = 1 · x1 + 0
[Right3(x1)] = 1 · x1 + 0
[Aa(x1)] = 1 · x1 + 0
[Ab(x1)] = 1 · x1 + 0
[Left(x1)] = 1 · x1 + 0
[End(x1)] = 1 · x1 + 8
[Ac(x1)] = 1 · x1 + 0
[d(x1)] = 2 · x1 + 8
[Begin(x1)] = 4 · x1 + 0
the rules
a(Begin(x0)) Right2(Wait(x0))
a(Begin(x0)) Right4(Wait(x0))
End(c(b(Right2(x0)))) End(c(b(a(b(a(Left(x0)))))))
End(a(Right4(x0))) End(a(b(c(a(Left(x0))))))
b(Right1(x0)) Right1(Ab(x0))
b(Right2(x0)) Right2(Ab(x0))
b(Right3(x0)) Right3(Ab(x0))
b(Right4(x0)) Right4(Ab(x0))
c(Right1(x0)) Right1(Ac(x0))
c(Right2(x0)) Right2(Ac(x0))
c(Right3(x0)) Right3(Ac(x0))
c(Right4(x0)) Right4(Ac(x0))
a(Right1(x0)) Right1(Aa(x0))
a(Right2(x0)) Right2(Aa(x0))
a(Right3(x0)) Right3(Aa(x0))
a(Right4(x0)) Right4(Aa(x0))
d(Right2(x0)) Right2(Ad(x0))
d(Right4(x0)) Right4(Ad(x0))
Left(Ab(x0)) b(Left(x0))
Left(Ac(x0)) c(Left(x0))
Left(Aa(x0)) a(Left(x0))
Left(Ad(x0)) d(Left(x0))
Left(Wait(x0)) Begin(x0)
a(c(b(x0))) c(b(a(b(a(x0)))))
b(x0) c(c(x0))
a(a(x0)) a(b(c(a(x0))))
remain.

1.1.1.1.1.1.1 String Reversal

Since only unary symbols occur, one can reverse all terms and obtains the TRS
Begin(a(x0)) Wait(Right2(x0))
Begin(a(x0)) Wait(Right4(x0))
Right2(b(c(End(x0)))) Left(a(b(a(b(c(End(x0)))))))
Right4(a(End(x0))) Left(a(c(b(a(End(x0))))))
Right1(b(x0)) Ab(Right1(x0))
Right2(b(x0)) Ab(Right2(x0))
Right3(b(x0)) Ab(Right3(x0))
Right4(b(x0)) Ab(Right4(x0))
Right1(c(x0)) Ac(Right1(x0))
Right2(c(x0)) Ac(Right2(x0))
Right3(c(x0)) Ac(Right3(x0))
Right4(c(x0)) Ac(Right4(x0))
Right1(a(x0)) Aa(Right1(x0))
Right2(a(x0)) Aa(Right2(x0))
Right3(a(x0)) Aa(Right3(x0))
Right4(a(x0)) Aa(Right4(x0))
Right2(d(x0)) Ad(Right2(x0))
Right4(d(x0)) Ad(Right4(x0))
Ab(Left(x0)) Left(b(x0))
Ac(Left(x0)) Left(c(x0))
Aa(Left(x0)) Left(a(x0))
Ad(Left(x0)) Left(d(x0))
Wait(Left(x0)) Begin(x0)
b(c(a(x0))) a(b(a(b(c(x0)))))
b(x0) c(c(x0))
a(a(x0)) a(c(b(a(x0))))

1.1.1.1.1.1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
Begin#(a(x0)) Right2#(x0)
Begin#(a(x0)) Wait#(Right2(x0))
Begin#(a(x0)) Right4#(x0)
Begin#(a(x0)) Wait#(Right4(x0))
Right2#(b(c(End(x0)))) a#(b(c(End(x0))))
Right2#(b(c(End(x0)))) b#(a(b(c(End(x0)))))
Right2#(b(c(End(x0)))) a#(b(a(b(c(End(x0))))))
Right4#(a(End(x0))) b#(a(End(x0)))
Right4#(a(End(x0))) a#(c(b(a(End(x0)))))
Right1#(b(x0)) Right1#(x0)
Right1#(b(x0)) Ab#(Right1(x0))
Right2#(b(x0)) Right2#(x0)
Right2#(b(x0)) Ab#(Right2(x0))
Right3#(b(x0)) Right3#(x0)
Right3#(b(x0)) Ab#(Right3(x0))
Right4#(b(x0)) Right4#(x0)
Right4#(b(x0)) Ab#(Right4(x0))
Right1#(c(x0)) Right1#(x0)
Right1#(c(x0)) Ac#(Right1(x0))
Right2#(c(x0)) Right2#(x0)
Right2#(c(x0)) Ac#(Right2(x0))
Right3#(c(x0)) Right3#(x0)
Right3#(c(x0)) Ac#(Right3(x0))
Right4#(c(x0)) Right4#(x0)
Right4#(c(x0)) Ac#(Right4(x0))
Right1#(a(x0)) Right1#(x0)
Right1#(a(x0)) Aa#(Right1(x0))
Right2#(a(x0)) Right2#(x0)
Right2#(a(x0)) Aa#(Right2(x0))
Right3#(a(x0)) Right3#(x0)
Right3#(a(x0)) Aa#(Right3(x0))
Right4#(a(x0)) Right4#(x0)
Right4#(a(x0)) Aa#(Right4(x0))
Right2#(d(x0)) Right2#(x0)
Right2#(d(x0)) Ad#(Right2(x0))
Right4#(d(x0)) Right4#(x0)
Right4#(d(x0)) Ad#(Right4(x0))
Ab#(Left(x0)) b#(x0)
Aa#(Left(x0)) a#(x0)
Wait#(Left(x0)) Begin#(x0)
b#(c(a(x0))) b#(c(x0))
b#(c(a(x0))) a#(b(c(x0)))
b#(c(a(x0))) b#(a(b(c(x0))))
b#(c(a(x0))) a#(b(a(b(c(x0)))))
a#(a(x0)) b#(a(x0))
a#(a(x0)) a#(c(b(a(x0))))

1.1.1.1.1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 2 components.