MAYBE Termination Proof

Termination Proof

by ttt2 (version ttt2 1.15)

Input

The rewrite relation of the following TRS is considered.

begin(end(x0)) rewrite(end(x0))
begin(P(x0)) rotate(cut(CP(guess(x0))))
begin(Q(x0)) rotate(cut(CQ(guess(x0))))
begin(p(x0)) rotate(cut(Cp(guess(x0))))
begin(q(x0)) rotate(cut(Cq(guess(x0))))
guess(P(x0)) CP(guess(x0))
guess(Q(x0)) CQ(guess(x0))
guess(p(x0)) Cp(guess(x0))
guess(q(x0)) Cq(guess(x0))
guess(P(x0)) moveleft(BP(wait(x0)))
guess(Q(x0)) moveleft(BQ(wait(x0)))
guess(p(x0)) moveleft(Bp(wait(x0)))
guess(q(x0)) moveleft(Bq(wait(x0)))
guess(end(x0)) finish(end(x0))
CP(moveleft(BP(x0))) moveleft(BP(AP(x0)))
CQ(moveleft(BP(x0))) moveleft(BP(AQ(x0)))
Cp(moveleft(BP(x0))) moveleft(BP(Ap(x0)))
Cq(moveleft(BP(x0))) moveleft(BP(Aq(x0)))
CP(moveleft(BQ(x0))) moveleft(BQ(AP(x0)))
CQ(moveleft(BQ(x0))) moveleft(BQ(AQ(x0)))
Cp(moveleft(BQ(x0))) moveleft(BQ(Ap(x0)))
Cq(moveleft(BQ(x0))) moveleft(BQ(Aq(x0)))
CP(moveleft(Bp(x0))) moveleft(Bp(AP(x0)))
CQ(moveleft(Bp(x0))) moveleft(Bp(AQ(x0)))
Cp(moveleft(Bp(x0))) moveleft(Bp(Ap(x0)))
Cq(moveleft(Bp(x0))) moveleft(Bp(Aq(x0)))
CP(moveleft(Bq(x0))) moveleft(Bq(AP(x0)))
CQ(moveleft(Bq(x0))) moveleft(Bq(AQ(x0)))
Cp(moveleft(Bq(x0))) moveleft(Bq(Ap(x0)))
Cq(moveleft(Bq(x0))) moveleft(Bq(Aq(x0)))
cut(moveleft(BP(x0))) DP(cut(goright(x0)))
cut(moveleft(BQ(x0))) DQ(cut(goright(x0)))
cut(moveleft(Bp(x0))) Dp(cut(goright(x0)))
cut(moveleft(Bq(x0))) Dq(cut(goright(x0)))
goright(AP(x0)) CP(goright(x0))
goright(AQ(x0)) CQ(goright(x0))
goright(Ap(x0)) Cp(goright(x0))
goright(Aq(x0)) Cq(goright(x0))
goright(wait(P(x0))) moveleft(BP(wait(x0)))
goright(wait(Q(x0))) moveleft(BQ(wait(x0)))
goright(wait(p(x0))) moveleft(Bp(wait(x0)))
goright(wait(q(x0))) moveleft(Bq(wait(x0)))
goright(wait(end(x0))) finish(end(x0))
CP(finish(x0)) finish(P(x0))
CQ(finish(x0)) finish(Q(x0))
Cp(finish(x0)) finish(p(x0))
Cq(finish(x0)) finish(q(x0))
cut(finish(x0)) finish2(x0)
DP(finish2(x0)) finish2(P(x0))
DQ(finish2(x0)) finish2(Q(x0))
Dp(finish2(x0)) finish2(p(x0))
Dq(finish2(x0)) finish2(q(x0))
rotate(finish2(x0)) rewrite(x0)
rewrite(P(x0)) begin(Q(Q(p(x0))))
rewrite(p(p(x0))) begin(q(q(x0)))
rewrite(p(Q(Q(x0)))) begin(Q(Q(p(x0))))
rewrite(Q(p(q(x0)))) begin(q(p(Q(x0))))
rewrite(q(q(p(x0)))) begin(p(q(q(x0))))
rewrite(q(Q(x0))) begin(x0)
rewrite(Q(q(x0))) begin(x0)
rewrite(p(P(x0))) begin(x0)
rewrite(P(p(x0))) begin(x0)

Proof

1 Termination Assumption

We assume termination of the following TRS
begin(end(x0)) rewrite(end(x0))
begin(P(x0)) rotate(cut(CP(guess(x0))))
begin(Q(x0)) rotate(cut(CQ(guess(x0))))
begin(p(x0)) rotate(cut(Cp(guess(x0))))
begin(q(x0)) rotate(cut(Cq(guess(x0))))
guess(P(x0)) CP(guess(x0))
guess(Q(x0)) CQ(guess(x0))
guess(p(x0)) Cp(guess(x0))
guess(q(x0)) Cq(guess(x0))
guess(P(x0)) moveleft(BP(wait(x0)))
guess(Q(x0)) moveleft(BQ(wait(x0)))
guess(p(x0)) moveleft(Bp(wait(x0)))
guess(q(x0)) moveleft(Bq(wait(x0)))
guess(end(x0)) finish(end(x0))
CP(moveleft(BP(x0))) moveleft(BP(AP(x0)))
CQ(moveleft(BP(x0))) moveleft(BP(AQ(x0)))
Cp(moveleft(BP(x0))) moveleft(BP(Ap(x0)))
Cq(moveleft(BP(x0))) moveleft(BP(Aq(x0)))
CP(moveleft(BQ(x0))) moveleft(BQ(AP(x0)))
CQ(moveleft(BQ(x0))) moveleft(BQ(AQ(x0)))
Cp(moveleft(BQ(x0))) moveleft(BQ(Ap(x0)))
Cq(moveleft(BQ(x0))) moveleft(BQ(Aq(x0)))
CP(moveleft(Bp(x0))) moveleft(Bp(AP(x0)))
CQ(moveleft(Bp(x0))) moveleft(Bp(AQ(x0)))
Cp(moveleft(Bp(x0))) moveleft(Bp(Ap(x0)))
Cq(moveleft(Bp(x0))) moveleft(Bp(Aq(x0)))
CP(moveleft(Bq(x0))) moveleft(Bq(AP(x0)))
CQ(moveleft(Bq(x0))) moveleft(Bq(AQ(x0)))
Cp(moveleft(Bq(x0))) moveleft(Bq(Ap(x0)))
Cq(moveleft(Bq(x0))) moveleft(Bq(Aq(x0)))
cut(moveleft(BP(x0))) DP(cut(goright(x0)))
cut(moveleft(BQ(x0))) DQ(cut(goright(x0)))
cut(moveleft(Bp(x0))) Dp(cut(goright(x0)))
cut(moveleft(Bq(x0))) Dq(cut(goright(x0)))
goright(AP(x0)) CP(goright(x0))
goright(AQ(x0)) CQ(goright(x0))
goright(Ap(x0)) Cp(goright(x0))
goright(Aq(x0)) Cq(goright(x0))
goright(wait(P(x0))) moveleft(BP(wait(x0)))
goright(wait(Q(x0))) moveleft(BQ(wait(x0)))
goright(wait(p(x0))) moveleft(Bp(wait(x0)))
goright(wait(q(x0))) moveleft(Bq(wait(x0)))
goright(wait(end(x0))) finish(end(x0))
CP(finish(x0)) finish(P(x0))
CQ(finish(x0)) finish(Q(x0))
Cp(finish(x0)) finish(p(x0))
Cq(finish(x0)) finish(q(x0))
cut(finish(x0)) finish2(x0)
DP(finish2(x0)) finish2(P(x0))
DQ(finish2(x0)) finish2(Q(x0))
Dp(finish2(x0)) finish2(p(x0))
Dq(finish2(x0)) finish2(q(x0))
rotate(finish2(x0)) rewrite(x0)
rewrite(P(x0)) begin(Q(Q(p(x0))))
rewrite(p(p(x0))) begin(q(q(x0)))
rewrite(p(Q(Q(x0)))) begin(Q(Q(p(x0))))
rewrite(Q(p(q(x0)))) begin(q(p(Q(x0))))
rewrite(q(q(p(x0)))) begin(p(q(q(x0))))
rewrite(q(Q(x0))) begin(x0)
rewrite(Q(q(x0))) begin(x0)
rewrite(p(P(x0))) begin(x0)
rewrite(P(p(x0))) begin(x0)