(0) Obligation:

Clauses:

mergesort([], []).
mergesort(.(X, []), .(X, [])).
mergesort(.(X, .(Y, L1)), L2) :- ','(split2(.(X, .(Y, L1)), L3, L4), ','(mergesort(L3, L5), ','(mergesort(L4, L6), merge(L5, L6, L2)))).
split(L1, L2, L3) :- split0(L1, L2, L3).
split(L1, L2, L3) :- split1(L1, L2, L3).
split(L1, L2, L3) :- split2(L1, L2, L3).
split0([], [], []).
split1(.(X, []), .(X, []), []).
split2(.(X, .(Y, L1)), .(X, L2), .(Y, L3)) :- split(L1, L2, L3).
merge([], L1, L1).
merge(L1, [], L1).
merge(.(X, L1), .(Y, L2), .(X, L3)) :- ','(le(X, Y), merge(L1, .(Y, L2), L3)).
merge(.(X, L1), .(Y, L2), .(Y, L3)) :- ','(gt(X, Y), merge(.(X, L1), L2, L3)).
gt(s(X), s(Y)) :- gt(X, Y).
gt(s(X), 0).
le(s(X), s(Y)) :- le(X, Y).
le(0, s(Y)).
le(0, 0).

Queries:

mergesort(g,a).

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph.

(2) Obligation:

Triples:

split16(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) :- split16(T59, X167, X168).
merge40(.(T103, T104), .(T105, T106), .(T103, T108)) :- le56(T103, T105).
merge40(.(T103, T104), .(T105, T106), .(T103, T108)) :- ','(lec56(T103, T105), merge40(T104, .(T105, T106), T108)).
merge40(.(T144, T145), .(T146, T147), .(T146, T149)) :- gt73(T144, T146).
merge40(.(T144, T145), .(T146, T147), .(T146, T149)) :- ','(gtc73(T144, T146), merge40(.(T144, T145), T147, T149)).
le56(s(T121), s(T122)) :- le56(T121, T122).
gt73(s(T162), s(T163)) :- gt73(T162, T163).
mergesort1(.(T22, .(T23, T24)), T14) :- split16(T24, X53, X54).
mergesort1(.(T22, .(T23, T24)), T14) :- ','(splitc16(T24, T26, T27), mergesort1(.(T22, T26), X23)).
mergesort1(.(T22, .(T23, T24)), T14) :- ','(splitc16(T24, T26, T27), ','(mergesortc1(.(T22, T26), T63), mergesort1(.(T23, T27), X24))).
mergesort1(.(T22, .(T23, T24)), T14) :- ','(splitc16(T24, T26, T27), ','(mergesortc1(.(T22, T26), T63), ','(mergesortc1(.(T23, T27), T68), merge40(T63, T68, T14)))).

Clauses:

splitc16([], [], []).
splitc16(.(T41, []), .(T41, []), []).
splitc16(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) :- splitc16(T59, X167, X168).
mergesortc1([], []).
mergesortc1(.(T4, []), .(T4, [])).
mergesortc1(.(T22, .(T23, T24)), T14) :- ','(splitc16(T24, T26, T27), ','(mergesortc1(.(T22, T26), T63), ','(mergesortc1(.(T23, T27), T68), mergec40(T63, T68, T14)))).
mergec40([], T77, T77).
mergec40(T82, [], T82).
mergec40(.(T103, T104), .(T105, T106), .(T103, T108)) :- ','(lec56(T103, T105), mergec40(T104, .(T105, T106), T108)).
mergec40(.(T144, T145), .(T146, T147), .(T146, T149)) :- ','(gtc73(T144, T146), mergec40(.(T144, T145), T147, T149)).
lec56(s(T121), s(T122)) :- lec56(T121, T122).
lec56(0, s(T129)).
lec56(0, 0).
gtc73(s(T162), s(T163)) :- gtc73(T162, T163).
gtc73(s(T168), 0).

Afs:

mergesort1(x1, x2)  =  mergesort1(x1)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
mergesort1_in: (b,f)
split16_in: (b,f,f)
splitc16_in: (b,f,f)
mergesortc1_in: (b,f)
mergec40_in: (b,b,f)
lec56_in: (b,b)
gtc73_in: (b,b)
merge40_in: (b,b,f)
le56_in: (b,b)
gt73_in: (b,b)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U10_GA(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → SPLIT16_IN_GAA(T24, X53, X54)
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_GAA(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → SPLIT16_IN_GAA(T59, X167, X168)
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U11_GA(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U11_GA(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U12_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U11_GA(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U11_GA(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U13_GA(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U13_GA(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U14_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U13_GA(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)
U13_GA(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U15_GA(T22, T23, T24, T14, T63, mergesortc1_in_ga(.(T23, T27), T68))
U15_GA(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U16_GA(T22, T23, T24, T14, merge40_in_gga(T63, T68, T14))
U15_GA(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → MERGE40_IN_GGA(T63, T68, T14)
MERGE40_IN_GGA(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_GGA(T103, T104, T105, T106, T108, le56_in_gg(T103, T105))
MERGE40_IN_GGA(.(T103, T104), .(T105, T106), .(T103, T108)) → LE56_IN_GG(T103, T105)
LE56_IN_GG(s(T121), s(T122)) → U8_GG(T121, T122, le56_in_gg(T121, T122))
LE56_IN_GG(s(T121), s(T122)) → LE56_IN_GG(T121, T122)
MERGE40_IN_GGA(.(T103, T104), .(T105, T106), .(T103, T108)) → U3_GGA(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
U3_GGA(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → U4_GGA(T103, T104, T105, T106, T108, merge40_in_gga(T104, .(T105, T106), T108))
U3_GGA(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → MERGE40_IN_GGA(T104, .(T105, T106), T108)
MERGE40_IN_GGA(.(T144, T145), .(T146, T147), .(T146, T149)) → U5_GGA(T144, T145, T146, T147, T149, gt73_in_gg(T144, T146))
MERGE40_IN_GGA(.(T144, T145), .(T146, T147), .(T146, T149)) → GT73_IN_GG(T144, T146)
GT73_IN_GG(s(T162), s(T163)) → U9_GG(T162, T163, gt73_in_gg(T162, T163))
GT73_IN_GG(s(T162), s(T163)) → GT73_IN_GG(T162, T163)
MERGE40_IN_GGA(.(T144, T145), .(T146, T147), .(T146, T149)) → U6_GGA(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
U6_GGA(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → U7_GGA(T144, T145, T146, T147, T149, merge40_in_gga(.(T144, T145), T147, T149))
U6_GGA(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → MERGE40_IN_GGA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

splitc16_in_gaa([], [], []) → splitc16_out_gaa([], [], [])
splitc16_in_gaa(.(T41, []), .(T41, []), []) → splitc16_out_gaa(.(T41, []), .(T41, []), [])
splitc16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U18_gaa(T57, T58, T59, X167, X168, splitc16_in_gaa(T59, X167, X168))
U18_gaa(T57, T58, T59, X167, X168, splitc16_out_gaa(T59, X167, X168)) → splitc16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T22, .(T23, T24)), T14) → U19_ga(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U19_ga(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U20_ga(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U20_ga(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U21_ga(T22, T23, T24, T14, T63, mergesortc1_in_ga(.(T23, T27), T68))
U21_ga(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U22_ga(T22, T23, T24, T14, mergec40_in_gga(T63, T68, T14))
mergec40_in_gga([], T77, T77) → mergec40_out_gga([], T77, T77)
mergec40_in_gga(T82, [], T82) → mergec40_out_gga(T82, [], T82)
mergec40_in_gga(.(T103, T104), .(T105, T106), .(T103, T108)) → U23_gga(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U23_gga(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → U24_gga(T103, T104, T105, T106, T108, mergec40_in_gga(T104, .(T105, T106), T108))
mergec40_in_gga(.(T144, T145), .(T146, T147), .(T146, T149)) → U25_gga(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))
U25_gga(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → U26_gga(T144, T145, T146, T147, T149, mergec40_in_gga(.(T144, T145), T147, T149))
U26_gga(T144, T145, T146, T147, T149, mergec40_out_gga(.(T144, T145), T147, T149)) → mergec40_out_gga(.(T144, T145), .(T146, T147), .(T146, T149))
U24_gga(T103, T104, T105, T106, T108, mergec40_out_gga(T104, .(T105, T106), T108)) → mergec40_out_gga(.(T103, T104), .(T105, T106), .(T103, T108))
U22_ga(T22, T23, T24, T14, mergec40_out_gga(T63, T68, T14)) → mergesortc1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
splitc16_in_gaa(x1, x2, x3)  =  splitc16_in_gaa(x1)
[]  =  []
splitc16_out_gaa(x1, x2, x3)  =  splitc16_out_gaa(x1, x2, x3)
U18_gaa(x1, x2, x3, x4, x5, x6)  =  U18_gaa(x1, x2, x3, x6)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U19_ga(x1, x2, x3, x4, x5)  =  U19_ga(x1, x2, x3, x5)
U20_ga(x1, x2, x3, x4, x5, x6)  =  U20_ga(x1, x2, x3, x5, x6)
U21_ga(x1, x2, x3, x4, x5, x6)  =  U21_ga(x1, x2, x3, x5, x6)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x1, x2, x3, x5)
mergec40_in_gga(x1, x2, x3)  =  mergec40_in_gga(x1, x2)
mergec40_out_gga(x1, x2, x3)  =  mergec40_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
lec56_in_gg(x1, x2)  =  lec56_in_gg(x1, x2)
s(x1)  =  s(x1)
U27_gg(x1, x2, x3)  =  U27_gg(x1, x2, x3)
0  =  0
lec56_out_gg(x1, x2)  =  lec56_out_gg(x1, x2)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x4, x6)
gtc73_in_gg(x1, x2)  =  gtc73_in_gg(x1, x2)
U28_gg(x1, x2, x3)  =  U28_gg(x1, x2, x3)
gtc73_out_gg(x1, x2)  =  gtc73_out_gg(x1, x2)
U26_gga(x1, x2, x3, x4, x5, x6)  =  U26_gga(x1, x2, x3, x4, x6)
merge40_in_gga(x1, x2, x3)  =  merge40_in_gga(x1, x2)
le56_in_gg(x1, x2)  =  le56_in_gg(x1, x2)
gt73_in_gg(x1, x2)  =  gt73_in_gg(x1, x2)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x1, x2, x3, x5)
SPLIT16_IN_GAA(x1, x2, x3)  =  SPLIT16_IN_GAA(x1)
U1_GAA(x1, x2, x3, x4, x5, x6)  =  U1_GAA(x1, x2, x3, x6)
U11_GA(x1, x2, x3, x4, x5)  =  U11_GA(x1, x2, x3, x5)
U12_GA(x1, x2, x3, x4, x5)  =  U12_GA(x1, x2, x3, x5)
U13_GA(x1, x2, x3, x4, x5, x6)  =  U13_GA(x1, x2, x3, x5, x6)
U14_GA(x1, x2, x3, x4, x5)  =  U14_GA(x1, x2, x3, x5)
U15_GA(x1, x2, x3, x4, x5, x6)  =  U15_GA(x1, x2, x3, x5, x6)
U16_GA(x1, x2, x3, x4, x5)  =  U16_GA(x1, x2, x3, x5)
MERGE40_IN_GGA(x1, x2, x3)  =  MERGE40_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4, x5, x6)  =  U2_GGA(x1, x2, x3, x4, x6)
LE56_IN_GG(x1, x2)  =  LE56_IN_GG(x1, x2)
U8_GG(x1, x2, x3)  =  U8_GG(x1, x2, x3)
U3_GGA(x1, x2, x3, x4, x5, x6)  =  U3_GGA(x1, x2, x3, x4, x6)
U4_GGA(x1, x2, x3, x4, x5, x6)  =  U4_GGA(x1, x2, x3, x4, x6)
U5_GGA(x1, x2, x3, x4, x5, x6)  =  U5_GGA(x1, x2, x3, x4, x6)
GT73_IN_GG(x1, x2)  =  GT73_IN_GG(x1, x2)
U9_GG(x1, x2, x3)  =  U9_GG(x1, x2, x3)
U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x1, x2, x3, x4, x6)
U7_GGA(x1, x2, x3, x4, x5, x6)  =  U7_GGA(x1, x2, x3, x4, x6)

We have to consider all (P,R,Pi)-chains

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(4) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U10_GA(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → SPLIT16_IN_GAA(T24, X53, X54)
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_GAA(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → SPLIT16_IN_GAA(T59, X167, X168)
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U11_GA(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U11_GA(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U12_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U11_GA(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U11_GA(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U13_GA(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U13_GA(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U14_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U13_GA(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)
U13_GA(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U15_GA(T22, T23, T24, T14, T63, mergesortc1_in_ga(.(T23, T27), T68))
U15_GA(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U16_GA(T22, T23, T24, T14, merge40_in_gga(T63, T68, T14))
U15_GA(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → MERGE40_IN_GGA(T63, T68, T14)
MERGE40_IN_GGA(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_GGA(T103, T104, T105, T106, T108, le56_in_gg(T103, T105))
MERGE40_IN_GGA(.(T103, T104), .(T105, T106), .(T103, T108)) → LE56_IN_GG(T103, T105)
LE56_IN_GG(s(T121), s(T122)) → U8_GG(T121, T122, le56_in_gg(T121, T122))
LE56_IN_GG(s(T121), s(T122)) → LE56_IN_GG(T121, T122)
MERGE40_IN_GGA(.(T103, T104), .(T105, T106), .(T103, T108)) → U3_GGA(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
U3_GGA(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → U4_GGA(T103, T104, T105, T106, T108, merge40_in_gga(T104, .(T105, T106), T108))
U3_GGA(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → MERGE40_IN_GGA(T104, .(T105, T106), T108)
MERGE40_IN_GGA(.(T144, T145), .(T146, T147), .(T146, T149)) → U5_GGA(T144, T145, T146, T147, T149, gt73_in_gg(T144, T146))
MERGE40_IN_GGA(.(T144, T145), .(T146, T147), .(T146, T149)) → GT73_IN_GG(T144, T146)
GT73_IN_GG(s(T162), s(T163)) → U9_GG(T162, T163, gt73_in_gg(T162, T163))
GT73_IN_GG(s(T162), s(T163)) → GT73_IN_GG(T162, T163)
MERGE40_IN_GGA(.(T144, T145), .(T146, T147), .(T146, T149)) → U6_GGA(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
U6_GGA(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → U7_GGA(T144, T145, T146, T147, T149, merge40_in_gga(.(T144, T145), T147, T149))
U6_GGA(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → MERGE40_IN_GGA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

splitc16_in_gaa([], [], []) → splitc16_out_gaa([], [], [])
splitc16_in_gaa(.(T41, []), .(T41, []), []) → splitc16_out_gaa(.(T41, []), .(T41, []), [])
splitc16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U18_gaa(T57, T58, T59, X167, X168, splitc16_in_gaa(T59, X167, X168))
U18_gaa(T57, T58, T59, X167, X168, splitc16_out_gaa(T59, X167, X168)) → splitc16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T22, .(T23, T24)), T14) → U19_ga(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U19_ga(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U20_ga(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U20_ga(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U21_ga(T22, T23, T24, T14, T63, mergesortc1_in_ga(.(T23, T27), T68))
U21_ga(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U22_ga(T22, T23, T24, T14, mergec40_in_gga(T63, T68, T14))
mergec40_in_gga([], T77, T77) → mergec40_out_gga([], T77, T77)
mergec40_in_gga(T82, [], T82) → mergec40_out_gga(T82, [], T82)
mergec40_in_gga(.(T103, T104), .(T105, T106), .(T103, T108)) → U23_gga(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U23_gga(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → U24_gga(T103, T104, T105, T106, T108, mergec40_in_gga(T104, .(T105, T106), T108))
mergec40_in_gga(.(T144, T145), .(T146, T147), .(T146, T149)) → U25_gga(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))
U25_gga(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → U26_gga(T144, T145, T146, T147, T149, mergec40_in_gga(.(T144, T145), T147, T149))
U26_gga(T144, T145, T146, T147, T149, mergec40_out_gga(.(T144, T145), T147, T149)) → mergec40_out_gga(.(T144, T145), .(T146, T147), .(T146, T149))
U24_gga(T103, T104, T105, T106, T108, mergec40_out_gga(T104, .(T105, T106), T108)) → mergec40_out_gga(.(T103, T104), .(T105, T106), .(T103, T108))
U22_ga(T22, T23, T24, T14, mergec40_out_gga(T63, T68, T14)) → mergesortc1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
splitc16_in_gaa(x1, x2, x3)  =  splitc16_in_gaa(x1)
[]  =  []
splitc16_out_gaa(x1, x2, x3)  =  splitc16_out_gaa(x1, x2, x3)
U18_gaa(x1, x2, x3, x4, x5, x6)  =  U18_gaa(x1, x2, x3, x6)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U19_ga(x1, x2, x3, x4, x5)  =  U19_ga(x1, x2, x3, x5)
U20_ga(x1, x2, x3, x4, x5, x6)  =  U20_ga(x1, x2, x3, x5, x6)
U21_ga(x1, x2, x3, x4, x5, x6)  =  U21_ga(x1, x2, x3, x5, x6)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x1, x2, x3, x5)
mergec40_in_gga(x1, x2, x3)  =  mergec40_in_gga(x1, x2)
mergec40_out_gga(x1, x2, x3)  =  mergec40_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
lec56_in_gg(x1, x2)  =  lec56_in_gg(x1, x2)
s(x1)  =  s(x1)
U27_gg(x1, x2, x3)  =  U27_gg(x1, x2, x3)
0  =  0
lec56_out_gg(x1, x2)  =  lec56_out_gg(x1, x2)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x4, x6)
gtc73_in_gg(x1, x2)  =  gtc73_in_gg(x1, x2)
U28_gg(x1, x2, x3)  =  U28_gg(x1, x2, x3)
gtc73_out_gg(x1, x2)  =  gtc73_out_gg(x1, x2)
U26_gga(x1, x2, x3, x4, x5, x6)  =  U26_gga(x1, x2, x3, x4, x6)
merge40_in_gga(x1, x2, x3)  =  merge40_in_gga(x1, x2)
le56_in_gg(x1, x2)  =  le56_in_gg(x1, x2)
gt73_in_gg(x1, x2)  =  gt73_in_gg(x1, x2)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x1, x2, x3, x5)
SPLIT16_IN_GAA(x1, x2, x3)  =  SPLIT16_IN_GAA(x1)
U1_GAA(x1, x2, x3, x4, x5, x6)  =  U1_GAA(x1, x2, x3, x6)
U11_GA(x1, x2, x3, x4, x5)  =  U11_GA(x1, x2, x3, x5)
U12_GA(x1, x2, x3, x4, x5)  =  U12_GA(x1, x2, x3, x5)
U13_GA(x1, x2, x3, x4, x5, x6)  =  U13_GA(x1, x2, x3, x5, x6)
U14_GA(x1, x2, x3, x4, x5)  =  U14_GA(x1, x2, x3, x5)
U15_GA(x1, x2, x3, x4, x5, x6)  =  U15_GA(x1, x2, x3, x5, x6)
U16_GA(x1, x2, x3, x4, x5)  =  U16_GA(x1, x2, x3, x5)
MERGE40_IN_GGA(x1, x2, x3)  =  MERGE40_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4, x5, x6)  =  U2_GGA(x1, x2, x3, x4, x6)
LE56_IN_GG(x1, x2)  =  LE56_IN_GG(x1, x2)
U8_GG(x1, x2, x3)  =  U8_GG(x1, x2, x3)
U3_GGA(x1, x2, x3, x4, x5, x6)  =  U3_GGA(x1, x2, x3, x4, x6)
U4_GGA(x1, x2, x3, x4, x5, x6)  =  U4_GGA(x1, x2, x3, x4, x6)
U5_GGA(x1, x2, x3, x4, x5, x6)  =  U5_GGA(x1, x2, x3, x4, x6)
GT73_IN_GG(x1, x2)  =  GT73_IN_GG(x1, x2)
U9_GG(x1, x2, x3)  =  U9_GG(x1, x2, x3)
U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x1, x2, x3, x4, x6)
U7_GGA(x1, x2, x3, x4, x5, x6)  =  U7_GGA(x1, x2, x3, x4, x6)

We have to consider all (P,R,Pi)-chains

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 5 SCCs with 16 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

GT73_IN_GG(s(T162), s(T163)) → GT73_IN_GG(T162, T163)

The TRS R consists of the following rules:

splitc16_in_gaa([], [], []) → splitc16_out_gaa([], [], [])
splitc16_in_gaa(.(T41, []), .(T41, []), []) → splitc16_out_gaa(.(T41, []), .(T41, []), [])
splitc16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U18_gaa(T57, T58, T59, X167, X168, splitc16_in_gaa(T59, X167, X168))
U18_gaa(T57, T58, T59, X167, X168, splitc16_out_gaa(T59, X167, X168)) → splitc16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T22, .(T23, T24)), T14) → U19_ga(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U19_ga(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U20_ga(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U20_ga(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U21_ga(T22, T23, T24, T14, T63, mergesortc1_in_ga(.(T23, T27), T68))
U21_ga(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U22_ga(T22, T23, T24, T14, mergec40_in_gga(T63, T68, T14))
mergec40_in_gga([], T77, T77) → mergec40_out_gga([], T77, T77)
mergec40_in_gga(T82, [], T82) → mergec40_out_gga(T82, [], T82)
mergec40_in_gga(.(T103, T104), .(T105, T106), .(T103, T108)) → U23_gga(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U23_gga(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → U24_gga(T103, T104, T105, T106, T108, mergec40_in_gga(T104, .(T105, T106), T108))
mergec40_in_gga(.(T144, T145), .(T146, T147), .(T146, T149)) → U25_gga(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))
U25_gga(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → U26_gga(T144, T145, T146, T147, T149, mergec40_in_gga(.(T144, T145), T147, T149))
U26_gga(T144, T145, T146, T147, T149, mergec40_out_gga(.(T144, T145), T147, T149)) → mergec40_out_gga(.(T144, T145), .(T146, T147), .(T146, T149))
U24_gga(T103, T104, T105, T106, T108, mergec40_out_gga(T104, .(T105, T106), T108)) → mergec40_out_gga(.(T103, T104), .(T105, T106), .(T103, T108))
U22_ga(T22, T23, T24, T14, mergec40_out_gga(T63, T68, T14)) → mergesortc1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
splitc16_in_gaa(x1, x2, x3)  =  splitc16_in_gaa(x1)
[]  =  []
splitc16_out_gaa(x1, x2, x3)  =  splitc16_out_gaa(x1, x2, x3)
U18_gaa(x1, x2, x3, x4, x5, x6)  =  U18_gaa(x1, x2, x3, x6)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U19_ga(x1, x2, x3, x4, x5)  =  U19_ga(x1, x2, x3, x5)
U20_ga(x1, x2, x3, x4, x5, x6)  =  U20_ga(x1, x2, x3, x5, x6)
U21_ga(x1, x2, x3, x4, x5, x6)  =  U21_ga(x1, x2, x3, x5, x6)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x1, x2, x3, x5)
mergec40_in_gga(x1, x2, x3)  =  mergec40_in_gga(x1, x2)
mergec40_out_gga(x1, x2, x3)  =  mergec40_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
lec56_in_gg(x1, x2)  =  lec56_in_gg(x1, x2)
s(x1)  =  s(x1)
U27_gg(x1, x2, x3)  =  U27_gg(x1, x2, x3)
0  =  0
lec56_out_gg(x1, x2)  =  lec56_out_gg(x1, x2)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x4, x6)
gtc73_in_gg(x1, x2)  =  gtc73_in_gg(x1, x2)
U28_gg(x1, x2, x3)  =  U28_gg(x1, x2, x3)
gtc73_out_gg(x1, x2)  =  gtc73_out_gg(x1, x2)
U26_gga(x1, x2, x3, x4, x5, x6)  =  U26_gga(x1, x2, x3, x4, x6)
GT73_IN_GG(x1, x2)  =  GT73_IN_GG(x1, x2)

We have to consider all (P,R,Pi)-chains

(8) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

GT73_IN_GG(s(T162), s(T163)) → GT73_IN_GG(T162, T163)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains

(10) PiDPToQDPProof (EQUIVALENT transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(11) Obligation:

Q DP problem:
The TRS P consists of the following rules:

GT73_IN_GG(s(T162), s(T163)) → GT73_IN_GG(T162, T163)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(12) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • GT73_IN_GG(s(T162), s(T163)) → GT73_IN_GG(T162, T163)
    The graph contains the following edges 1 > 1, 2 > 2

(13) YES

(14) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

LE56_IN_GG(s(T121), s(T122)) → LE56_IN_GG(T121, T122)

The TRS R consists of the following rules:

splitc16_in_gaa([], [], []) → splitc16_out_gaa([], [], [])
splitc16_in_gaa(.(T41, []), .(T41, []), []) → splitc16_out_gaa(.(T41, []), .(T41, []), [])
splitc16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U18_gaa(T57, T58, T59, X167, X168, splitc16_in_gaa(T59, X167, X168))
U18_gaa(T57, T58, T59, X167, X168, splitc16_out_gaa(T59, X167, X168)) → splitc16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T22, .(T23, T24)), T14) → U19_ga(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U19_ga(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U20_ga(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U20_ga(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U21_ga(T22, T23, T24, T14, T63, mergesortc1_in_ga(.(T23, T27), T68))
U21_ga(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U22_ga(T22, T23, T24, T14, mergec40_in_gga(T63, T68, T14))
mergec40_in_gga([], T77, T77) → mergec40_out_gga([], T77, T77)
mergec40_in_gga(T82, [], T82) → mergec40_out_gga(T82, [], T82)
mergec40_in_gga(.(T103, T104), .(T105, T106), .(T103, T108)) → U23_gga(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U23_gga(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → U24_gga(T103, T104, T105, T106, T108, mergec40_in_gga(T104, .(T105, T106), T108))
mergec40_in_gga(.(T144, T145), .(T146, T147), .(T146, T149)) → U25_gga(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))
U25_gga(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → U26_gga(T144, T145, T146, T147, T149, mergec40_in_gga(.(T144, T145), T147, T149))
U26_gga(T144, T145, T146, T147, T149, mergec40_out_gga(.(T144, T145), T147, T149)) → mergec40_out_gga(.(T144, T145), .(T146, T147), .(T146, T149))
U24_gga(T103, T104, T105, T106, T108, mergec40_out_gga(T104, .(T105, T106), T108)) → mergec40_out_gga(.(T103, T104), .(T105, T106), .(T103, T108))
U22_ga(T22, T23, T24, T14, mergec40_out_gga(T63, T68, T14)) → mergesortc1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
splitc16_in_gaa(x1, x2, x3)  =  splitc16_in_gaa(x1)
[]  =  []
splitc16_out_gaa(x1, x2, x3)  =  splitc16_out_gaa(x1, x2, x3)
U18_gaa(x1, x2, x3, x4, x5, x6)  =  U18_gaa(x1, x2, x3, x6)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U19_ga(x1, x2, x3, x4, x5)  =  U19_ga(x1, x2, x3, x5)
U20_ga(x1, x2, x3, x4, x5, x6)  =  U20_ga(x1, x2, x3, x5, x6)
U21_ga(x1, x2, x3, x4, x5, x6)  =  U21_ga(x1, x2, x3, x5, x6)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x1, x2, x3, x5)
mergec40_in_gga(x1, x2, x3)  =  mergec40_in_gga(x1, x2)
mergec40_out_gga(x1, x2, x3)  =  mergec40_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
lec56_in_gg(x1, x2)  =  lec56_in_gg(x1, x2)
s(x1)  =  s(x1)
U27_gg(x1, x2, x3)  =  U27_gg(x1, x2, x3)
0  =  0
lec56_out_gg(x1, x2)  =  lec56_out_gg(x1, x2)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x4, x6)
gtc73_in_gg(x1, x2)  =  gtc73_in_gg(x1, x2)
U28_gg(x1, x2, x3)  =  U28_gg(x1, x2, x3)
gtc73_out_gg(x1, x2)  =  gtc73_out_gg(x1, x2)
U26_gga(x1, x2, x3, x4, x5, x6)  =  U26_gga(x1, x2, x3, x4, x6)
LE56_IN_GG(x1, x2)  =  LE56_IN_GG(x1, x2)

We have to consider all (P,R,Pi)-chains

(15) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

LE56_IN_GG(s(T121), s(T122)) → LE56_IN_GG(T121, T122)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains

(17) PiDPToQDPProof (EQUIVALENT transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

LE56_IN_GG(s(T121), s(T122)) → LE56_IN_GG(T121, T122)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(19) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • LE56_IN_GG(s(T121), s(T122)) → LE56_IN_GG(T121, T122)
    The graph contains the following edges 1 > 1, 2 > 2

(20) YES

(21) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MERGE40_IN_GGA(.(T103, T104), .(T105, T106), .(T103, T108)) → U3_GGA(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
U3_GGA(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → MERGE40_IN_GGA(T104, .(T105, T106), T108)
MERGE40_IN_GGA(.(T144, T145), .(T146, T147), .(T146, T149)) → U6_GGA(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
U6_GGA(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → MERGE40_IN_GGA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

splitc16_in_gaa([], [], []) → splitc16_out_gaa([], [], [])
splitc16_in_gaa(.(T41, []), .(T41, []), []) → splitc16_out_gaa(.(T41, []), .(T41, []), [])
splitc16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U18_gaa(T57, T58, T59, X167, X168, splitc16_in_gaa(T59, X167, X168))
U18_gaa(T57, T58, T59, X167, X168, splitc16_out_gaa(T59, X167, X168)) → splitc16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T22, .(T23, T24)), T14) → U19_ga(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U19_ga(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U20_ga(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U20_ga(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U21_ga(T22, T23, T24, T14, T63, mergesortc1_in_ga(.(T23, T27), T68))
U21_ga(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U22_ga(T22, T23, T24, T14, mergec40_in_gga(T63, T68, T14))
mergec40_in_gga([], T77, T77) → mergec40_out_gga([], T77, T77)
mergec40_in_gga(T82, [], T82) → mergec40_out_gga(T82, [], T82)
mergec40_in_gga(.(T103, T104), .(T105, T106), .(T103, T108)) → U23_gga(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U23_gga(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → U24_gga(T103, T104, T105, T106, T108, mergec40_in_gga(T104, .(T105, T106), T108))
mergec40_in_gga(.(T144, T145), .(T146, T147), .(T146, T149)) → U25_gga(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))
U25_gga(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → U26_gga(T144, T145, T146, T147, T149, mergec40_in_gga(.(T144, T145), T147, T149))
U26_gga(T144, T145, T146, T147, T149, mergec40_out_gga(.(T144, T145), T147, T149)) → mergec40_out_gga(.(T144, T145), .(T146, T147), .(T146, T149))
U24_gga(T103, T104, T105, T106, T108, mergec40_out_gga(T104, .(T105, T106), T108)) → mergec40_out_gga(.(T103, T104), .(T105, T106), .(T103, T108))
U22_ga(T22, T23, T24, T14, mergec40_out_gga(T63, T68, T14)) → mergesortc1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
splitc16_in_gaa(x1, x2, x3)  =  splitc16_in_gaa(x1)
[]  =  []
splitc16_out_gaa(x1, x2, x3)  =  splitc16_out_gaa(x1, x2, x3)
U18_gaa(x1, x2, x3, x4, x5, x6)  =  U18_gaa(x1, x2, x3, x6)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U19_ga(x1, x2, x3, x4, x5)  =  U19_ga(x1, x2, x3, x5)
U20_ga(x1, x2, x3, x4, x5, x6)  =  U20_ga(x1, x2, x3, x5, x6)
U21_ga(x1, x2, x3, x4, x5, x6)  =  U21_ga(x1, x2, x3, x5, x6)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x1, x2, x3, x5)
mergec40_in_gga(x1, x2, x3)  =  mergec40_in_gga(x1, x2)
mergec40_out_gga(x1, x2, x3)  =  mergec40_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
lec56_in_gg(x1, x2)  =  lec56_in_gg(x1, x2)
s(x1)  =  s(x1)
U27_gg(x1, x2, x3)  =  U27_gg(x1, x2, x3)
0  =  0
lec56_out_gg(x1, x2)  =  lec56_out_gg(x1, x2)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x4, x6)
gtc73_in_gg(x1, x2)  =  gtc73_in_gg(x1, x2)
U28_gg(x1, x2, x3)  =  U28_gg(x1, x2, x3)
gtc73_out_gg(x1, x2)  =  gtc73_out_gg(x1, x2)
U26_gga(x1, x2, x3, x4, x5, x6)  =  U26_gga(x1, x2, x3, x4, x6)
MERGE40_IN_GGA(x1, x2, x3)  =  MERGE40_IN_GGA(x1, x2)
U3_GGA(x1, x2, x3, x4, x5, x6)  =  U3_GGA(x1, x2, x3, x4, x6)
U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x1, x2, x3, x4, x6)

We have to consider all (P,R,Pi)-chains

(22) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(23) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MERGE40_IN_GGA(.(T103, T104), .(T105, T106), .(T103, T108)) → U3_GGA(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
U3_GGA(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → MERGE40_IN_GGA(T104, .(T105, T106), T108)
MERGE40_IN_GGA(.(T144, T145), .(T146, T147), .(T146, T149)) → U6_GGA(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
U6_GGA(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → MERGE40_IN_GGA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
lec56_in_gg(x1, x2)  =  lec56_in_gg(x1, x2)
s(x1)  =  s(x1)
U27_gg(x1, x2, x3)  =  U27_gg(x1, x2, x3)
0  =  0
lec56_out_gg(x1, x2)  =  lec56_out_gg(x1, x2)
gtc73_in_gg(x1, x2)  =  gtc73_in_gg(x1, x2)
U28_gg(x1, x2, x3)  =  U28_gg(x1, x2, x3)
gtc73_out_gg(x1, x2)  =  gtc73_out_gg(x1, x2)
MERGE40_IN_GGA(x1, x2, x3)  =  MERGE40_IN_GGA(x1, x2)
U3_GGA(x1, x2, x3, x4, x5, x6)  =  U3_GGA(x1, x2, x3, x4, x6)
U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x1, x2, x3, x4, x6)

We have to consider all (P,R,Pi)-chains

(24) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(25) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MERGE40_IN_GGA(.(T103, T104), .(T105, T106)) → U3_GGA(T103, T104, T105, T106, lec56_in_gg(T103, T105))
U3_GGA(T103, T104, T105, T106, lec56_out_gg(T103, T105)) → MERGE40_IN_GGA(T104, .(T105, T106))
MERGE40_IN_GGA(.(T144, T145), .(T146, T147)) → U6_GGA(T144, T145, T146, T147, gtc73_in_gg(T144, T146))
U6_GGA(T144, T145, T146, T147, gtc73_out_gg(T144, T146)) → MERGE40_IN_GGA(.(T144, T145), T147)

The TRS R consists of the following rules:

lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))

The set Q consists of the following terms:

lec56_in_gg(x0, x1)
gtc73_in_gg(x0, x1)
U27_gg(x0, x1, x2)
U28_gg(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(26) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

MERGE40_IN_GGA(.(T103, T104), .(T105, T106)) → U3_GGA(T103, T104, T105, T106, lec56_in_gg(T103, T105))

Strictly oriented rules of the TRS R:

gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)

Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + 2·x1 + x2   
POL(0) = 0   
POL(MERGE40_IN_GGA(x1, x2)) = 2·x1 + 2·x2   
POL(U27_gg(x1, x2, x3)) = 2·x1 + 2·x2 + x3   
POL(U28_gg(x1, x2, x3)) = x1 + x2 + x3   
POL(U3_GGA(x1, x2, x3, x4, x5)) = 2 + x1 + 2·x2 + 2·x3 + 2·x4 + x5   
POL(U6_GGA(x1, x2, x3, x4, x5)) = 2 + 2·x1 + 2·x2 + 2·x3 + 2·x4 + 2·x5   
POL(gtc73_in_gg(x1, x2)) = 1 + x1 + x2   
POL(gtc73_out_gg(x1, x2)) = x1 + x2   
POL(lec56_in_gg(x1, x2)) = 2·x1 + 2·x2   
POL(lec56_out_gg(x1, x2)) = 2·x1 + 2·x2   
POL(s(x1)) = 2·x1   

(27) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U3_GGA(T103, T104, T105, T106, lec56_out_gg(T103, T105)) → MERGE40_IN_GGA(T104, .(T105, T106))
MERGE40_IN_GGA(.(T144, T145), .(T146, T147)) → U6_GGA(T144, T145, T146, T147, gtc73_in_gg(T144, T146))
U6_GGA(T144, T145, T146, T147, gtc73_out_gg(T144, T146)) → MERGE40_IN_GGA(.(T144, T145), T147)

The TRS R consists of the following rules:

lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))

The set Q consists of the following terms:

lec56_in_gg(x0, x1)
gtc73_in_gg(x0, x1)
U27_gg(x0, x1, x2)
U28_gg(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(28) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(29) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U6_GGA(T144, T145, T146, T147, gtc73_out_gg(T144, T146)) → MERGE40_IN_GGA(.(T144, T145), T147)
MERGE40_IN_GGA(.(T144, T145), .(T146, T147)) → U6_GGA(T144, T145, T146, T147, gtc73_in_gg(T144, T146))

The TRS R consists of the following rules:

lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))

The set Q consists of the following terms:

lec56_in_gg(x0, x1)
gtc73_in_gg(x0, x1)
U27_gg(x0, x1, x2)
U28_gg(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(30) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(31) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U6_GGA(T144, T145, T146, T147, gtc73_out_gg(T144, T146)) → MERGE40_IN_GGA(.(T144, T145), T147)
MERGE40_IN_GGA(.(T144, T145), .(T146, T147)) → U6_GGA(T144, T145, T146, T147, gtc73_in_gg(T144, T146))

The TRS R consists of the following rules:

gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))

The set Q consists of the following terms:

lec56_in_gg(x0, x1)
gtc73_in_gg(x0, x1)
U27_gg(x0, x1, x2)
U28_gg(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(32) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

lec56_in_gg(x0, x1)
U27_gg(x0, x1, x2)

(33) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U6_GGA(T144, T145, T146, T147, gtc73_out_gg(T144, T146)) → MERGE40_IN_GGA(.(T144, T145), T147)
MERGE40_IN_GGA(.(T144, T145), .(T146, T147)) → U6_GGA(T144, T145, T146, T147, gtc73_in_gg(T144, T146))

The TRS R consists of the following rules:

gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))

The set Q consists of the following terms:

gtc73_in_gg(x0, x1)
U28_gg(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(34) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MERGE40_IN_GGA(.(T144, T145), .(T146, T147)) → U6_GGA(T144, T145, T146, T147, gtc73_in_gg(T144, T146))
    The graph contains the following edges 1 > 1, 1 > 2, 2 > 3, 2 > 4

  • U6_GGA(T144, T145, T146, T147, gtc73_out_gg(T144, T146)) → MERGE40_IN_GGA(.(T144, T145), T147)
    The graph contains the following edges 4 >= 2

(35) YES

(36) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → SPLIT16_IN_GAA(T59, X167, X168)

The TRS R consists of the following rules:

splitc16_in_gaa([], [], []) → splitc16_out_gaa([], [], [])
splitc16_in_gaa(.(T41, []), .(T41, []), []) → splitc16_out_gaa(.(T41, []), .(T41, []), [])
splitc16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U18_gaa(T57, T58, T59, X167, X168, splitc16_in_gaa(T59, X167, X168))
U18_gaa(T57, T58, T59, X167, X168, splitc16_out_gaa(T59, X167, X168)) → splitc16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T22, .(T23, T24)), T14) → U19_ga(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U19_ga(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U20_ga(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U20_ga(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U21_ga(T22, T23, T24, T14, T63, mergesortc1_in_ga(.(T23, T27), T68))
U21_ga(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U22_ga(T22, T23, T24, T14, mergec40_in_gga(T63, T68, T14))
mergec40_in_gga([], T77, T77) → mergec40_out_gga([], T77, T77)
mergec40_in_gga(T82, [], T82) → mergec40_out_gga(T82, [], T82)
mergec40_in_gga(.(T103, T104), .(T105, T106), .(T103, T108)) → U23_gga(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U23_gga(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → U24_gga(T103, T104, T105, T106, T108, mergec40_in_gga(T104, .(T105, T106), T108))
mergec40_in_gga(.(T144, T145), .(T146, T147), .(T146, T149)) → U25_gga(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))
U25_gga(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → U26_gga(T144, T145, T146, T147, T149, mergec40_in_gga(.(T144, T145), T147, T149))
U26_gga(T144, T145, T146, T147, T149, mergec40_out_gga(.(T144, T145), T147, T149)) → mergec40_out_gga(.(T144, T145), .(T146, T147), .(T146, T149))
U24_gga(T103, T104, T105, T106, T108, mergec40_out_gga(T104, .(T105, T106), T108)) → mergec40_out_gga(.(T103, T104), .(T105, T106), .(T103, T108))
U22_ga(T22, T23, T24, T14, mergec40_out_gga(T63, T68, T14)) → mergesortc1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
splitc16_in_gaa(x1, x2, x3)  =  splitc16_in_gaa(x1)
[]  =  []
splitc16_out_gaa(x1, x2, x3)  =  splitc16_out_gaa(x1, x2, x3)
U18_gaa(x1, x2, x3, x4, x5, x6)  =  U18_gaa(x1, x2, x3, x6)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U19_ga(x1, x2, x3, x4, x5)  =  U19_ga(x1, x2, x3, x5)
U20_ga(x1, x2, x3, x4, x5, x6)  =  U20_ga(x1, x2, x3, x5, x6)
U21_ga(x1, x2, x3, x4, x5, x6)  =  U21_ga(x1, x2, x3, x5, x6)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x1, x2, x3, x5)
mergec40_in_gga(x1, x2, x3)  =  mergec40_in_gga(x1, x2)
mergec40_out_gga(x1, x2, x3)  =  mergec40_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
lec56_in_gg(x1, x2)  =  lec56_in_gg(x1, x2)
s(x1)  =  s(x1)
U27_gg(x1, x2, x3)  =  U27_gg(x1, x2, x3)
0  =  0
lec56_out_gg(x1, x2)  =  lec56_out_gg(x1, x2)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x4, x6)
gtc73_in_gg(x1, x2)  =  gtc73_in_gg(x1, x2)
U28_gg(x1, x2, x3)  =  U28_gg(x1, x2, x3)
gtc73_out_gg(x1, x2)  =  gtc73_out_gg(x1, x2)
U26_gga(x1, x2, x3, x4, x5, x6)  =  U26_gga(x1, x2, x3, x4, x6)
SPLIT16_IN_GAA(x1, x2, x3)  =  SPLIT16_IN_GAA(x1)

We have to consider all (P,R,Pi)-chains

(37) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(38) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → SPLIT16_IN_GAA(T59, X167, X168)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
SPLIT16_IN_GAA(x1, x2, x3)  =  SPLIT16_IN_GAA(x1)

We have to consider all (P,R,Pi)-chains

(39) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(40) Obligation:

Q DP problem:
The TRS P consists of the following rules:

SPLIT16_IN_GAA(.(T57, .(T58, T59))) → SPLIT16_IN_GAA(T59)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(41) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • SPLIT16_IN_GAA(.(T57, .(T58, T59))) → SPLIT16_IN_GAA(T59)
    The graph contains the following edges 1 > 1

(42) YES

(43) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U11_GA(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U11_GA(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U11_GA(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U13_GA(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U13_GA(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)

The TRS R consists of the following rules:

splitc16_in_gaa([], [], []) → splitc16_out_gaa([], [], [])
splitc16_in_gaa(.(T41, []), .(T41, []), []) → splitc16_out_gaa(.(T41, []), .(T41, []), [])
splitc16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U18_gaa(T57, T58, T59, X167, X168, splitc16_in_gaa(T59, X167, X168))
U18_gaa(T57, T58, T59, X167, X168, splitc16_out_gaa(T59, X167, X168)) → splitc16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T22, .(T23, T24)), T14) → U19_ga(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U19_ga(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U20_ga(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U20_ga(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U21_ga(T22, T23, T24, T14, T63, mergesortc1_in_ga(.(T23, T27), T68))
U21_ga(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U22_ga(T22, T23, T24, T14, mergec40_in_gga(T63, T68, T14))
mergec40_in_gga([], T77, T77) → mergec40_out_gga([], T77, T77)
mergec40_in_gga(T82, [], T82) → mergec40_out_gga(T82, [], T82)
mergec40_in_gga(.(T103, T104), .(T105, T106), .(T103, T108)) → U23_gga(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U23_gga(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → U24_gga(T103, T104, T105, T106, T108, mergec40_in_gga(T104, .(T105, T106), T108))
mergec40_in_gga(.(T144, T145), .(T146, T147), .(T146, T149)) → U25_gga(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))
U25_gga(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → U26_gga(T144, T145, T146, T147, T149, mergec40_in_gga(.(T144, T145), T147, T149))
U26_gga(T144, T145, T146, T147, T149, mergec40_out_gga(.(T144, T145), T147, T149)) → mergec40_out_gga(.(T144, T145), .(T146, T147), .(T146, T149))
U24_gga(T103, T104, T105, T106, T108, mergec40_out_gga(T104, .(T105, T106), T108)) → mergec40_out_gga(.(T103, T104), .(T105, T106), .(T103, T108))
U22_ga(T22, T23, T24, T14, mergec40_out_gga(T63, T68, T14)) → mergesortc1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
splitc16_in_gaa(x1, x2, x3)  =  splitc16_in_gaa(x1)
[]  =  []
splitc16_out_gaa(x1, x2, x3)  =  splitc16_out_gaa(x1, x2, x3)
U18_gaa(x1, x2, x3, x4, x5, x6)  =  U18_gaa(x1, x2, x3, x6)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U19_ga(x1, x2, x3, x4, x5)  =  U19_ga(x1, x2, x3, x5)
U20_ga(x1, x2, x3, x4, x5, x6)  =  U20_ga(x1, x2, x3, x5, x6)
U21_ga(x1, x2, x3, x4, x5, x6)  =  U21_ga(x1, x2, x3, x5, x6)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x1, x2, x3, x5)
mergec40_in_gga(x1, x2, x3)  =  mergec40_in_gga(x1, x2)
mergec40_out_gga(x1, x2, x3)  =  mergec40_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
lec56_in_gg(x1, x2)  =  lec56_in_gg(x1, x2)
s(x1)  =  s(x1)
U27_gg(x1, x2, x3)  =  U27_gg(x1, x2, x3)
0  =  0
lec56_out_gg(x1, x2)  =  lec56_out_gg(x1, x2)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x4, x6)
gtc73_in_gg(x1, x2)  =  gtc73_in_gg(x1, x2)
U28_gg(x1, x2, x3)  =  U28_gg(x1, x2, x3)
gtc73_out_gg(x1, x2)  =  gtc73_out_gg(x1, x2)
U26_gga(x1, x2, x3, x4, x5, x6)  =  U26_gga(x1, x2, x3, x4, x6)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U11_GA(x1, x2, x3, x4, x5)  =  U11_GA(x1, x2, x3, x5)
U13_GA(x1, x2, x3, x4, x5, x6)  =  U13_GA(x1, x2, x3, x5, x6)

We have to consider all (P,R,Pi)-chains

(44) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(45) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U11_GA(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U11_GA(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U11_GA(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U13_GA(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U13_GA(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)

The TRS R consists of the following rules:

splitc16_in_gaa([], [], []) → splitc16_out_gaa([], [], [])
splitc16_in_gaa(.(T41, []), .(T41, []), []) → splitc16_out_gaa(.(T41, []), .(T41, []), [])
splitc16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U18_gaa(T57, T58, T59, X167, X168, splitc16_in_gaa(T59, X167, X168))
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T22, .(T23, T24)), T14) → U19_ga(T22, T23, T24, T14, splitc16_in_gaa(T24, T26, T27))
U18_gaa(T57, T58, T59, X167, X168, splitc16_out_gaa(T59, X167, X168)) → splitc16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U19_ga(T22, T23, T24, T14, splitc16_out_gaa(T24, T26, T27)) → U20_ga(T22, T23, T24, T14, T27, mergesortc1_in_ga(.(T22, T26), T63))
U20_ga(T22, T23, T24, T14, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U21_ga(T22, T23, T24, T14, T63, mergesortc1_in_ga(.(T23, T27), T68))
U21_ga(T22, T23, T24, T14, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U22_ga(T22, T23, T24, T14, mergec40_in_gga(T63, T68, T14))
U22_ga(T22, T23, T24, T14, mergec40_out_gga(T63, T68, T14)) → mergesortc1_out_ga(.(T22, .(T23, T24)), T14)
mergec40_in_gga([], T77, T77) → mergec40_out_gga([], T77, T77)
mergec40_in_gga(T82, [], T82) → mergec40_out_gga(T82, [], T82)
mergec40_in_gga(.(T103, T104), .(T105, T106), .(T103, T108)) → U23_gga(T103, T104, T105, T106, T108, lec56_in_gg(T103, T105))
mergec40_in_gga(.(T144, T145), .(T146, T147), .(T146, T149)) → U25_gga(T144, T145, T146, T147, T149, gtc73_in_gg(T144, T146))
U23_gga(T103, T104, T105, T106, T108, lec56_out_gg(T103, T105)) → U24_gga(T103, T104, T105, T106, T108, mergec40_in_gga(T104, .(T105, T106), T108))
U25_gga(T144, T145, T146, T147, T149, gtc73_out_gg(T144, T146)) → U26_gga(T144, T145, T146, T147, T149, mergec40_in_gga(.(T144, T145), T147, T149))
lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
U24_gga(T103, T104, T105, T106, T108, mergec40_out_gga(T104, .(T105, T106), T108)) → mergec40_out_gga(.(T103, T104), .(T105, T106), .(T103, T108))
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U26_gga(T144, T145, T146, T147, T149, mergec40_out_gga(.(T144, T145), T147, T149)) → mergec40_out_gga(.(T144, T145), .(T146, T147), .(T146, T149))
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
splitc16_in_gaa(x1, x2, x3)  =  splitc16_in_gaa(x1)
[]  =  []
splitc16_out_gaa(x1, x2, x3)  =  splitc16_out_gaa(x1, x2, x3)
U18_gaa(x1, x2, x3, x4, x5, x6)  =  U18_gaa(x1, x2, x3, x6)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U19_ga(x1, x2, x3, x4, x5)  =  U19_ga(x1, x2, x3, x5)
U20_ga(x1, x2, x3, x4, x5, x6)  =  U20_ga(x1, x2, x3, x5, x6)
U21_ga(x1, x2, x3, x4, x5, x6)  =  U21_ga(x1, x2, x3, x5, x6)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x1, x2, x3, x5)
mergec40_in_gga(x1, x2, x3)  =  mergec40_in_gga(x1, x2)
mergec40_out_gga(x1, x2, x3)  =  mergec40_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
lec56_in_gg(x1, x2)  =  lec56_in_gg(x1, x2)
s(x1)  =  s(x1)
U27_gg(x1, x2, x3)  =  U27_gg(x1, x2, x3)
0  =  0
lec56_out_gg(x1, x2)  =  lec56_out_gg(x1, x2)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x4, x6)
gtc73_in_gg(x1, x2)  =  gtc73_in_gg(x1, x2)
U28_gg(x1, x2, x3)  =  U28_gg(x1, x2, x3)
gtc73_out_gg(x1, x2)  =  gtc73_out_gg(x1, x2)
U26_gga(x1, x2, x3, x4, x5, x6)  =  U26_gga(x1, x2, x3, x4, x6)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U11_GA(x1, x2, x3, x4, x5)  =  U11_GA(x1, x2, x3, x5)
U13_GA(x1, x2, x3, x4, x5, x6)  =  U13_GA(x1, x2, x3, x5, x6)

We have to consider all (P,R,Pi)-chains

(46) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(47) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MERGESORT1_IN_GA(.(T22, .(T23, T24))) → U11_GA(T22, T23, T24, splitc16_in_gaa(T24))
U11_GA(T22, T23, T24, splitc16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26))
U11_GA(T22, T23, T24, splitc16_out_gaa(T24, T26, T27)) → U13_GA(T22, T23, T24, T27, mergesortc1_in_ga(.(T22, T26)))
U13_GA(T22, T23, T24, T27, mergesortc1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27))

The TRS R consists of the following rules:

splitc16_in_gaa([]) → splitc16_out_gaa([], [], [])
splitc16_in_gaa(.(T41, [])) → splitc16_out_gaa(.(T41, []), .(T41, []), [])
splitc16_in_gaa(.(T57, .(T58, T59))) → U18_gaa(T57, T58, T59, splitc16_in_gaa(T59))
mergesortc1_in_ga(.(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T22, .(T23, T24))) → U19_ga(T22, T23, T24, splitc16_in_gaa(T24))
U18_gaa(T57, T58, T59, splitc16_out_gaa(T59, X167, X168)) → splitc16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U19_ga(T22, T23, T24, splitc16_out_gaa(T24, T26, T27)) → U20_ga(T22, T23, T24, T27, mergesortc1_in_ga(.(T22, T26)))
U20_ga(T22, T23, T24, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U21_ga(T22, T23, T24, T63, mergesortc1_in_ga(.(T23, T27)))
U21_ga(T22, T23, T24, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U22_ga(T22, T23, T24, mergec40_in_gga(T63, T68))
U22_ga(T22, T23, T24, mergec40_out_gga(T63, T68, T14)) → mergesortc1_out_ga(.(T22, .(T23, T24)), T14)
mergec40_in_gga([], T77) → mergec40_out_gga([], T77, T77)
mergec40_in_gga(T82, []) → mergec40_out_gga(T82, [], T82)
mergec40_in_gga(.(T103, T104), .(T105, T106)) → U23_gga(T103, T104, T105, T106, lec56_in_gg(T103, T105))
mergec40_in_gga(.(T144, T145), .(T146, T147)) → U25_gga(T144, T145, T146, T147, gtc73_in_gg(T144, T146))
U23_gga(T103, T104, T105, T106, lec56_out_gg(T103, T105)) → U24_gga(T103, T104, T105, T106, mergec40_in_gga(T104, .(T105, T106)))
U25_gga(T144, T145, T146, T147, gtc73_out_gg(T144, T146)) → U26_gga(T144, T145, T146, T147, mergec40_in_gga(.(T144, T145), T147))
lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
U24_gga(T103, T104, T105, T106, mergec40_out_gga(T104, .(T105, T106), T108)) → mergec40_out_gga(.(T103, T104), .(T105, T106), .(T103, T108))
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U26_gga(T144, T145, T146, T147, mergec40_out_gga(.(T144, T145), T147, T149)) → mergec40_out_gga(.(T144, T145), .(T146, T147), .(T146, T149))
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))

The set Q consists of the following terms:

splitc16_in_gaa(x0)
mergesortc1_in_ga(x0)
U18_gaa(x0, x1, x2, x3)
U19_ga(x0, x1, x2, x3)
U20_ga(x0, x1, x2, x3, x4)
U21_ga(x0, x1, x2, x3, x4)
U22_ga(x0, x1, x2, x3)
mergec40_in_gga(x0, x1)
U23_gga(x0, x1, x2, x3, x4)
U25_gga(x0, x1, x2, x3, x4)
lec56_in_gg(x0, x1)
U24_gga(x0, x1, x2, x3, x4)
gtc73_in_gg(x0, x1)
U26_gga(x0, x1, x2, x3, x4)
U27_gg(x0, x1, x2)
U28_gg(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(48) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U11_GA(T22, T23, T24, splitc16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26))
U13_GA(T22, T23, T24, T27, mergesortc1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation:

POL( U11_GA(x1, ..., x4) ) = 2x1 + 2x2 + 2x4 + 2


POL( U13_GA(x1, ..., x5) ) = 2x2 + 2x4 + 2


POL( U19_ga(x1, ..., x4) ) = x1 + x2 + 2x3 + x4 + 2


POL( splitc16_in_gaa(x1) ) = 2x1


POL( [] ) = 2


POL( splitc16_out_gaa(x1, ..., x3) ) = x2 + x3


POL( .(x1, x2) ) = 2x1 + 2x2 + 1


POL( U18_gaa(x1, ..., x4) ) = 2x1 + 2x2 + x3 + 2x4 + 2


POL( mergesortc1_in_ga(x1) ) = 2


POL( mergesortc1_out_ga(x1, x2) ) = 2x2 + 1


POL( U20_ga(x1, ..., x5) ) = 2x2 + 2x4 + x5 + 2


POL( U21_ga(x1, ..., x5) ) = x1 + x2 + 2


POL( U22_ga(x1, ..., x4) ) = 2x1 + 2x2 + 2x3


POL( mergec40_in_gga(x1, x2) ) = max{0, 2x1 - 1}


POL( mergec40_out_gga(x1, ..., x3) ) = max{0, 2x2 + 2x3 - 2}


POL( U23_gga(x1, ..., x5) ) = max{0, x1 + 2x2 + 2x3 + 2x5 - 2}


POL( lec56_in_gg(x1, x2) ) = max{0, 2x1 - 2}


POL( U25_gga(x1, ..., x5) ) = x3 + 2x4 + 1


POL( gtc73_in_gg(x1, x2) ) = 2x2 + 2


POL( s(x1) ) = max{0, -2}


POL( U27_gg(x1, ..., x3) ) = max{0, x1 + x2 + x3 - 2}


POL( 0 ) = 2


POL( lec56_out_gg(x1, x2) ) = max{0, 2x1 + 2x2 - 1}


POL( U24_gga(x1, ..., x5) ) = 2x1 + x2 + 2x3 + x4 + 2x5 + 2


POL( U28_gg(x1, ..., x3) ) = x1 + 2x2 + 2


POL( gtc73_out_gg(x1, x2) ) = max{0, -1}


POL( U26_gga(x1, ..., x5) ) = 2x1 + 2x3 + 2


POL( MERGESORT1_IN_GA(x1) ) = max{0, x1 - 1}



The following usable rules [FROCOS05] were oriented:

splitc16_in_gaa([]) → splitc16_out_gaa([], [], [])
splitc16_in_gaa(.(T41, [])) → splitc16_out_gaa(.(T41, []), .(T41, []), [])
splitc16_in_gaa(.(T57, .(T58, T59))) → U18_gaa(T57, T58, T59, splitc16_in_gaa(T59))
U18_gaa(T57, T58, T59, splitc16_out_gaa(T59, X167, X168)) → splitc16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))

(49) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MERGESORT1_IN_GA(.(T22, .(T23, T24))) → U11_GA(T22, T23, T24, splitc16_in_gaa(T24))
U11_GA(T22, T23, T24, splitc16_out_gaa(T24, T26, T27)) → U13_GA(T22, T23, T24, T27, mergesortc1_in_ga(.(T22, T26)))

The TRS R consists of the following rules:

splitc16_in_gaa([]) → splitc16_out_gaa([], [], [])
splitc16_in_gaa(.(T41, [])) → splitc16_out_gaa(.(T41, []), .(T41, []), [])
splitc16_in_gaa(.(T57, .(T58, T59))) → U18_gaa(T57, T58, T59, splitc16_in_gaa(T59))
mergesortc1_in_ga(.(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T22, .(T23, T24))) → U19_ga(T22, T23, T24, splitc16_in_gaa(T24))
U18_gaa(T57, T58, T59, splitc16_out_gaa(T59, X167, X168)) → splitc16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U19_ga(T22, T23, T24, splitc16_out_gaa(T24, T26, T27)) → U20_ga(T22, T23, T24, T27, mergesortc1_in_ga(.(T22, T26)))
U20_ga(T22, T23, T24, T27, mergesortc1_out_ga(.(T22, T26), T63)) → U21_ga(T22, T23, T24, T63, mergesortc1_in_ga(.(T23, T27)))
U21_ga(T22, T23, T24, T63, mergesortc1_out_ga(.(T23, T27), T68)) → U22_ga(T22, T23, T24, mergec40_in_gga(T63, T68))
U22_ga(T22, T23, T24, mergec40_out_gga(T63, T68, T14)) → mergesortc1_out_ga(.(T22, .(T23, T24)), T14)
mergec40_in_gga([], T77) → mergec40_out_gga([], T77, T77)
mergec40_in_gga(T82, []) → mergec40_out_gga(T82, [], T82)
mergec40_in_gga(.(T103, T104), .(T105, T106)) → U23_gga(T103, T104, T105, T106, lec56_in_gg(T103, T105))
mergec40_in_gga(.(T144, T145), .(T146, T147)) → U25_gga(T144, T145, T146, T147, gtc73_in_gg(T144, T146))
U23_gga(T103, T104, T105, T106, lec56_out_gg(T103, T105)) → U24_gga(T103, T104, T105, T106, mergec40_in_gga(T104, .(T105, T106)))
U25_gga(T144, T145, T146, T147, gtc73_out_gg(T144, T146)) → U26_gga(T144, T145, T146, T147, mergec40_in_gga(.(T144, T145), T147))
lec56_in_gg(s(T121), s(T122)) → U27_gg(T121, T122, lec56_in_gg(T121, T122))
lec56_in_gg(0, s(T129)) → lec56_out_gg(0, s(T129))
lec56_in_gg(0, 0) → lec56_out_gg(0, 0)
U24_gga(T103, T104, T105, T106, mergec40_out_gga(T104, .(T105, T106), T108)) → mergec40_out_gga(.(T103, T104), .(T105, T106), .(T103, T108))
gtc73_in_gg(s(T162), s(T163)) → U28_gg(T162, T163, gtc73_in_gg(T162, T163))
gtc73_in_gg(s(T168), 0) → gtc73_out_gg(s(T168), 0)
U26_gga(T144, T145, T146, T147, mergec40_out_gga(.(T144, T145), T147, T149)) → mergec40_out_gga(.(T144, T145), .(T146, T147), .(T146, T149))
U27_gg(T121, T122, lec56_out_gg(T121, T122)) → lec56_out_gg(s(T121), s(T122))
U28_gg(T162, T163, gtc73_out_gg(T162, T163)) → gtc73_out_gg(s(T162), s(T163))

The set Q consists of the following terms:

splitc16_in_gaa(x0)
mergesortc1_in_ga(x0)
U18_gaa(x0, x1, x2, x3)
U19_ga(x0, x1, x2, x3)
U20_ga(x0, x1, x2, x3, x4)
U21_ga(x0, x1, x2, x3, x4)
U22_ga(x0, x1, x2, x3)
mergec40_in_gga(x0, x1)
U23_gga(x0, x1, x2, x3, x4)
U25_gga(x0, x1, x2, x3, x4)
lec56_in_gg(x0, x1)
U24_gga(x0, x1, x2, x3, x4)
gtc73_in_gg(x0, x1)
U26_gga(x0, x1, x2, x3, x4)
U27_gg(x0, x1, x2)
U28_gg(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(50) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(51) TRUE