(0) Obligation:

Clauses:

mergesort([], []).
mergesort(.(E, []), .(E, [])).
mergesort(.(E, .(F, U)), V) :- ','(split(U, L2, L1), ','(mergesort(.(E, L2), X), ','(mergesort(.(F, L1), Z), merge(X, Z, V)))).
merge(X, [], X).
merge([], X, X).
merge(.(A, X), .(B, Y), .(A, Z)) :- ','(le(A, B), merge(X, .(B, Y), Z)).
merge(.(A, X), .(B, Y), .(B, Z)) :- ','(gt(A, B), merge(.(A, X), Y, Z)).
split([], [], []).
split(.(E, U), .(E, V), W) :- split(U, W, V).
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:

merge29(.(T63, T64), .(T65, T66), .(T63, T68)) :- le45(T63, T65).
merge29(.(T63, T64), .(T65, T66), .(T63, T68)) :- ','(lec45(T63, T65), merge29(T64, .(T65, T66), T68)).
merge29(.(T106, T107), .(T108, T109), .(T108, T111)) :- gt62(T106, T108).
merge29(.(T106, T107), .(T108, T109), .(T108, T111)) :- ','(gtc62(T106, T108), merge29(.(T106, T107), T109, T111)).
le45(s(T81), s(T82)) :- le45(T81, T82).
gt62(s(T124), s(T125)) :- gt62(T124, T125).
split74(.(T147, T148), .(T147, X201), X202) :- split74(T148, X202, X201).
mergesort1(.(T10, .(T11, [])), T14) :- mergesort19(T10, X23).
mergesort1(.(T10, .(T11, [])), T14) :- ','(mergesortc19(T10, T18), mergesort19(T11, X24)).
mergesort1(.(T10, .(T11, [])), T14) :- ','(mergesortc19(T10, T18), ','(mergesortc19(T11, T29), merge29(T18, T29, T14))).
mergesort1(.(T10, .(T11, .(T139, T140))), T14) :- split74(T140, X180, X179).
mergesort1(.(T10, .(T11, .(T139, T140))), T14) :- ','(splitc74(T140, T141, T142), mergesort1(.(T10, .(T139, T142)), X23)).
mergesort1(.(T10, .(T11, .(T139, T140))), T14) :- ','(splitc74(T140, T141, T142), ','(mergesortc1(.(T10, .(T139, T142)), T154), mergesort1(.(T11, T141), X24))).
mergesort1(.(T10, .(T11, .(T139, T140))), T14) :- ','(splitc74(T140, T141, T142), ','(mergesortc1(.(T10, .(T139, T142)), T154), ','(mergesortc1(.(T11, T141), T162), merge29(T154, T162, T14)))).

Clauses:

mergesortc19(T24, .(T24, [])).
mergec29(T37, [], T37).
mergec29([], T42, T42).
mergec29(.(T63, T64), .(T65, T66), .(T63, T68)) :- ','(lec45(T63, T65), mergec29(T64, .(T65, T66), T68)).
mergec29(.(T106, T107), .(T108, T109), .(T108, T111)) :- ','(gtc62(T106, T108), mergec29(.(T106, T107), T109, T111)).
lec45(s(T81), s(T82)) :- lec45(T81, T82).
lec45(0, s(T89)).
lec45(0, 0).
gtc62(s(T124), s(T125)) :- gtc62(T124, T125).
gtc62(s(T130), 0).
splitc74([], [], []).
splitc74(.(T147, T148), .(T147, X201), X202) :- splitc74(T148, X202, X201).
mergesortc1([], []).
mergesortc1(.(T4, []), .(T4, [])).
mergesortc1(.(T10, .(T11, [])), T14) :- ','(mergesortc19(T10, T18), ','(mergesortc19(T11, T29), mergec29(T18, T29, T14))).
mergesortc1(.(T10, .(T11, .(T139, T140))), T14) :- ','(splitc74(T140, T141, T142), ','(mergesortc1(.(T10, .(T139, T142)), T154), ','(mergesortc1(.(T11, T141), T162), mergec29(T154, T162, T14)))).

Afs:

mergesort1(x1, x2)  =  mergesort1(x1)

(3) UndefinedPredicateInTriplesTransformerProof (SOUND transformation)

Deleted triples and predicates having undefined goals [UNKNOWN].

(4) Obligation:

Triples:

merge29(.(T63, T64), .(T65, T66), .(T63, T68)) :- le45(T63, T65).
merge29(.(T63, T64), .(T65, T66), .(T63, T68)) :- ','(lec45(T63, T65), merge29(T64, .(T65, T66), T68)).
merge29(.(T106, T107), .(T108, T109), .(T108, T111)) :- gt62(T106, T108).
merge29(.(T106, T107), .(T108, T109), .(T108, T111)) :- ','(gtc62(T106, T108), merge29(.(T106, T107), T109, T111)).
le45(s(T81), s(T82)) :- le45(T81, T82).
gt62(s(T124), s(T125)) :- gt62(T124, T125).
split74(.(T147, T148), .(T147, X201), X202) :- split74(T148, X202, X201).
mergesort1(.(T10, .(T11, [])), T14) :- ','(mergesortc19(T10, T18), ','(mergesortc19(T11, T29), merge29(T18, T29, T14))).
mergesort1(.(T10, .(T11, .(T139, T140))), T14) :- split74(T140, X180, X179).
mergesort1(.(T10, .(T11, .(T139, T140))), T14) :- ','(splitc74(T140, T141, T142), mergesort1(.(T10, .(T139, T142)), X23)).
mergesort1(.(T10, .(T11, .(T139, T140))), T14) :- ','(splitc74(T140, T141, T142), ','(mergesortc1(.(T10, .(T139, T142)), T154), mergesort1(.(T11, T141), X24))).
mergesort1(.(T10, .(T11, .(T139, T140))), T14) :- ','(splitc74(T140, T141, T142), ','(mergesortc1(.(T10, .(T139, T142)), T154), ','(mergesortc1(.(T11, T141), T162), merge29(T154, T162, T14)))).

Clauses:

mergesortc19(T24, .(T24, [])).
mergec29(T37, [], T37).
mergec29([], T42, T42).
mergec29(.(T63, T64), .(T65, T66), .(T63, T68)) :- ','(lec45(T63, T65), mergec29(T64, .(T65, T66), T68)).
mergec29(.(T106, T107), .(T108, T109), .(T108, T111)) :- ','(gtc62(T106, T108), mergec29(.(T106, T107), T109, T111)).
lec45(s(T81), s(T82)) :- lec45(T81, T82).
lec45(0, s(T89)).
lec45(0, 0).
gtc62(s(T124), s(T125)) :- gtc62(T124, T125).
gtc62(s(T130), 0).
splitc74([], [], []).
splitc74(.(T147, T148), .(T147, X201), X202) :- splitc74(T148, X202, X201).
mergesortc1([], []).
mergesortc1(.(T4, []), .(T4, [])).
mergesortc1(.(T10, .(T11, [])), T14) :- ','(mergesortc19(T10, T18), ','(mergesortc19(T11, T29), mergec29(T18, T29, T14))).
mergesortc1(.(T10, .(T11, .(T139, T140))), T14) :- ','(splitc74(T140, T141, T142), ','(mergesortc1(.(T10, .(T139, T142)), T154), ','(mergesortc1(.(T11, T141), T162), mergec29(T154, T162, T14)))).

Afs:

mergesort1(x1, x2)  =  mergesort1(x1)

(5) 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)
merge29_in: (b,b,f)
le45_in: (b,b)
lec45_in: (b,b)
gt62_in: (b,b)
gtc62_in: (b,b)
split74_in: (b,f,f)
splitc74_in: (b,f,f)
mergesortc1_in: (b,f)
mergec29_in: (b,b,f)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

MERGESORT1_IN_GA(.(T10, .(T11, [])), T14) → U10_GA(T10, T11, T14, mergesortc19_in_ga(T10, T18))
U10_GA(T10, T11, T14, mergesortc19_out_ga(T10, T18)) → U11_GA(T10, T11, T14, T18, mergesortc19_in_ga(T11, T29))
U11_GA(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → U12_GA(T10, T11, T14, merge29_in_gga(T18, T29, T14))
U11_GA(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → MERGE29_IN_GGA(T18, T29, T14)
MERGE29_IN_GGA(.(T63, T64), .(T65, T66), .(T63, T68)) → U1_GGA(T63, T64, T65, T66, T68, le45_in_gg(T63, T65))
MERGE29_IN_GGA(.(T63, T64), .(T65, T66), .(T63, T68)) → LE45_IN_GG(T63, T65)
LE45_IN_GG(s(T81), s(T82)) → U7_GG(T81, T82, le45_in_gg(T81, T82))
LE45_IN_GG(s(T81), s(T82)) → LE45_IN_GG(T81, T82)
MERGE29_IN_GGA(.(T63, T64), .(T65, T66), .(T63, T68)) → U2_GGA(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
U2_GGA(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → U3_GGA(T63, T64, T65, T66, T68, merge29_in_gga(T64, .(T65, T66), T68))
U2_GGA(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → MERGE29_IN_GGA(T64, .(T65, T66), T68)
MERGE29_IN_GGA(.(T106, T107), .(T108, T109), .(T108, T111)) → U4_GGA(T106, T107, T108, T109, T111, gt62_in_gg(T106, T108))
MERGE29_IN_GGA(.(T106, T107), .(T108, T109), .(T108, T111)) → GT62_IN_GG(T106, T108)
GT62_IN_GG(s(T124), s(T125)) → U8_GG(T124, T125, gt62_in_gg(T124, T125))
GT62_IN_GG(s(T124), s(T125)) → GT62_IN_GG(T124, T125)
MERGE29_IN_GGA(.(T106, T107), .(T108, T109), .(T108, T111)) → U5_GGA(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
U5_GGA(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → U6_GGA(T106, T107, T108, T109, T111, merge29_in_gga(.(T106, T107), T109, T111))
U5_GGA(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → MERGE29_IN_GGA(.(T106, T107), T109, T111)
MERGESORT1_IN_GA(.(T10, .(T11, .(T139, T140))), T14) → U13_GA(T10, T11, T139, T140, T14, split74_in_gaa(T140, X180, X179))
MERGESORT1_IN_GA(.(T10, .(T11, .(T139, T140))), T14) → SPLIT74_IN_GAA(T140, X180, X179)
SPLIT74_IN_GAA(.(T147, T148), .(T147, X201), X202) → U9_GAA(T147, T148, X201, X202, split74_in_gaa(T148, X202, X201))
SPLIT74_IN_GAA(.(T147, T148), .(T147, X201), X202) → SPLIT74_IN_GAA(T148, X202, X201)
MERGESORT1_IN_GA(.(T10, .(T11, .(T139, T140))), T14) → U14_GA(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U14_GA(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U15_GA(T10, T11, T139, T140, T14, mergesort1_in_ga(.(T10, .(T139, T142)), X23))
U14_GA(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → MERGESORT1_IN_GA(.(T10, .(T139, T142)), X23)
U14_GA(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U17_GA(T10, T11, T139, T140, T14, mergesort1_in_ga(.(T11, T141), X24))
U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → MERGESORT1_IN_GA(.(T11, T141), X24)
U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U18_GA(T10, T11, T139, T140, T14, T154, mergesortc1_in_ga(.(T11, T141), T162))
U18_GA(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U19_GA(T10, T11, T139, T140, T14, merge29_in_gga(T154, T162, T14))
U18_GA(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → MERGE29_IN_GGA(T154, T162, T14)

The TRS R consists of the following rules:

mergesortc19_in_ga(T24, .(T24, [])) → mergesortc19_out_ga(T24, .(T24, []))
lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))
splitc74_in_gaa([], [], []) → splitc74_out_gaa([], [], [])
splitc74_in_gaa(.(T147, T148), .(T147, X201), X202) → U27_gaa(T147, T148, X201, X202, splitc74_in_gaa(T148, X202, X201))
U27_gaa(T147, T148, X201, X202, splitc74_out_gaa(T148, X202, X201)) → splitc74_out_gaa(.(T147, T148), .(T147, X201), X202)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T10, .(T11, [])), T14) → U28_ga(T10, T11, T14, mergesortc19_in_ga(T10, T18))
U28_ga(T10, T11, T14, mergesortc19_out_ga(T10, T18)) → U29_ga(T10, T11, T14, T18, mergesortc19_in_ga(T11, T29))
U29_ga(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → U30_ga(T10, T11, T14, mergec29_in_gga(T18, T29, T14))
mergec29_in_gga(T37, [], T37) → mergec29_out_gga(T37, [], T37)
mergec29_in_gga([], T42, T42) → mergec29_out_gga([], T42, T42)
mergec29_in_gga(.(T63, T64), .(T65, T66), .(T63, T68)) → U21_gga(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
U21_gga(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → U22_gga(T63, T64, T65, T66, T68, mergec29_in_gga(T64, .(T65, T66), T68))
mergec29_in_gga(.(T106, T107), .(T108, T109), .(T108, T111)) → U23_gga(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
U23_gga(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → U24_gga(T106, T107, T108, T109, T111, mergec29_in_gga(.(T106, T107), T109, T111))
U24_gga(T106, T107, T108, T109, T111, mergec29_out_gga(.(T106, T107), T109, T111)) → mergec29_out_gga(.(T106, T107), .(T108, T109), .(T108, T111))
U22_gga(T63, T64, T65, T66, T68, mergec29_out_gga(T64, .(T65, T66), T68)) → mergec29_out_gga(.(T63, T64), .(T65, T66), .(T63, T68))
U30_ga(T10, T11, T14, mergec29_out_gga(T18, T29, T14)) → mergesortc1_out_ga(.(T10, .(T11, [])), T14)
mergesortc1_in_ga(.(T10, .(T11, .(T139, T140))), T14) → U31_ga(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U31_ga(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_in_ga(.(T11, T141), T162))
U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U34_ga(T10, T11, T139, T140, T14, mergec29_in_gga(T154, T162, T14))
U34_ga(T10, T11, T139, T140, T14, mergec29_out_gga(T154, T162, T14)) → mergesortc1_out_ga(.(T10, .(T11, .(T139, T140))), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
[]  =  []
mergesortc19_in_ga(x1, x2)  =  mergesortc19_in_ga(x1)
mergesortc19_out_ga(x1, x2)  =  mergesortc19_out_ga(x1, x2)
merge29_in_gga(x1, x2, x3)  =  merge29_in_gga(x1, x2)
le45_in_gg(x1, x2)  =  le45_in_gg(x1, x2)
s(x1)  =  s(x1)
lec45_in_gg(x1, x2)  =  lec45_in_gg(x1, x2)
U25_gg(x1, x2, x3)  =  U25_gg(x1, x2, x3)
0  =  0
lec45_out_gg(x1, x2)  =  lec45_out_gg(x1, x2)
gt62_in_gg(x1, x2)  =  gt62_in_gg(x1, x2)
gtc62_in_gg(x1, x2)  =  gtc62_in_gg(x1, x2)
U26_gg(x1, x2, x3)  =  U26_gg(x1, x2, x3)
gtc62_out_gg(x1, x2)  =  gtc62_out_gg(x1, x2)
split74_in_gaa(x1, x2, x3)  =  split74_in_gaa(x1)
splitc74_in_gaa(x1, x2, x3)  =  splitc74_in_gaa(x1)
splitc74_out_gaa(x1, x2, x3)  =  splitc74_out_gaa(x1, x2, x3)
U27_gaa(x1, x2, x3, x4, x5)  =  U27_gaa(x1, x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U28_ga(x1, x2, x3, x4)  =  U28_ga(x1, x2, x4)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x4, x5)
U30_ga(x1, x2, x3, x4)  =  U30_ga(x1, x2, x4)
mergec29_in_gga(x1, x2, x3)  =  mergec29_in_gga(x1, x2)
mergec29_out_gga(x1, x2, x3)  =  mergec29_out_gga(x1, x2, x3)
U21_gga(x1, x2, x3, x4, x5, x6)  =  U21_gga(x1, x2, x3, x4, x6)
U22_gga(x1, x2, x3, x4, x5, x6)  =  U22_gga(x1, x2, x3, x4, x6)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U31_ga(x1, x2, x3, x4, x5, x6)  =  U31_ga(x1, x2, x3, x4, x6)
U32_ga(x1, x2, x3, x4, x5, x6, x7)  =  U32_ga(x1, x2, x3, x4, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6, x7)  =  U33_ga(x1, x2, x3, x4, x6, x7)
U34_ga(x1, x2, x3, x4, x5, x6)  =  U34_ga(x1, x2, x3, x4, x6)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U10_GA(x1, x2, x3, x4)  =  U10_GA(x1, x2, x4)
U11_GA(x1, x2, x3, x4, x5)  =  U11_GA(x1, x2, x4, x5)
U12_GA(x1, x2, x3, x4)  =  U12_GA(x1, x2, x4)
MERGE29_IN_GGA(x1, x2, x3)  =  MERGE29_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3, x4, x5, x6)  =  U1_GGA(x1, x2, x3, x4, x6)
LE45_IN_GG(x1, x2)  =  LE45_IN_GG(x1, x2)
U7_GG(x1, x2, x3)  =  U7_GG(x1, x2, x3)
U2_GGA(x1, x2, x3, x4, x5, x6)  =  U2_GGA(x1, x2, x3, x4, x6)
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)
GT62_IN_GG(x1, x2)  =  GT62_IN_GG(x1, x2)
U8_GG(x1, x2, x3)  =  U8_GG(x1, x2, x3)
U5_GGA(x1, x2, x3, x4, x5, x6)  =  U5_GGA(x1, x2, x3, x4, x6)
U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x1, x2, x3, x4, x6)
U13_GA(x1, x2, x3, x4, x5, x6)  =  U13_GA(x1, x2, x3, x4, x6)
SPLIT74_IN_GAA(x1, x2, x3)  =  SPLIT74_IN_GAA(x1)
U9_GAA(x1, x2, x3, x4, x5)  =  U9_GAA(x1, x2, x5)
U14_GA(x1, x2, x3, x4, x5, x6)  =  U14_GA(x1, x2, x3, x4, x6)
U15_GA(x1, x2, x3, x4, x5, x6)  =  U15_GA(x1, x2, x3, x4, x6)
U16_GA(x1, x2, x3, x4, x5, x6, x7)  =  U16_GA(x1, x2, x3, x4, x6, x7)
U17_GA(x1, x2, x3, x4, x5, x6)  =  U17_GA(x1, x2, x3, x4, x6)
U18_GA(x1, x2, x3, x4, x5, x6, x7)  =  U18_GA(x1, x2, x3, x4, x6, x7)
U19_GA(x1, x2, x3, x4, x5, x6)  =  U19_GA(x1, x2, x3, x4, x6)

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

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(6) Obligation:

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

MERGESORT1_IN_GA(.(T10, .(T11, [])), T14) → U10_GA(T10, T11, T14, mergesortc19_in_ga(T10, T18))
U10_GA(T10, T11, T14, mergesortc19_out_ga(T10, T18)) → U11_GA(T10, T11, T14, T18, mergesortc19_in_ga(T11, T29))
U11_GA(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → U12_GA(T10, T11, T14, merge29_in_gga(T18, T29, T14))
U11_GA(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → MERGE29_IN_GGA(T18, T29, T14)
MERGE29_IN_GGA(.(T63, T64), .(T65, T66), .(T63, T68)) → U1_GGA(T63, T64, T65, T66, T68, le45_in_gg(T63, T65))
MERGE29_IN_GGA(.(T63, T64), .(T65, T66), .(T63, T68)) → LE45_IN_GG(T63, T65)
LE45_IN_GG(s(T81), s(T82)) → U7_GG(T81, T82, le45_in_gg(T81, T82))
LE45_IN_GG(s(T81), s(T82)) → LE45_IN_GG(T81, T82)
MERGE29_IN_GGA(.(T63, T64), .(T65, T66), .(T63, T68)) → U2_GGA(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
U2_GGA(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → U3_GGA(T63, T64, T65, T66, T68, merge29_in_gga(T64, .(T65, T66), T68))
U2_GGA(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → MERGE29_IN_GGA(T64, .(T65, T66), T68)
MERGE29_IN_GGA(.(T106, T107), .(T108, T109), .(T108, T111)) → U4_GGA(T106, T107, T108, T109, T111, gt62_in_gg(T106, T108))
MERGE29_IN_GGA(.(T106, T107), .(T108, T109), .(T108, T111)) → GT62_IN_GG(T106, T108)
GT62_IN_GG(s(T124), s(T125)) → U8_GG(T124, T125, gt62_in_gg(T124, T125))
GT62_IN_GG(s(T124), s(T125)) → GT62_IN_GG(T124, T125)
MERGE29_IN_GGA(.(T106, T107), .(T108, T109), .(T108, T111)) → U5_GGA(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
U5_GGA(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → U6_GGA(T106, T107, T108, T109, T111, merge29_in_gga(.(T106, T107), T109, T111))
U5_GGA(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → MERGE29_IN_GGA(.(T106, T107), T109, T111)
MERGESORT1_IN_GA(.(T10, .(T11, .(T139, T140))), T14) → U13_GA(T10, T11, T139, T140, T14, split74_in_gaa(T140, X180, X179))
MERGESORT1_IN_GA(.(T10, .(T11, .(T139, T140))), T14) → SPLIT74_IN_GAA(T140, X180, X179)
SPLIT74_IN_GAA(.(T147, T148), .(T147, X201), X202) → U9_GAA(T147, T148, X201, X202, split74_in_gaa(T148, X202, X201))
SPLIT74_IN_GAA(.(T147, T148), .(T147, X201), X202) → SPLIT74_IN_GAA(T148, X202, X201)
MERGESORT1_IN_GA(.(T10, .(T11, .(T139, T140))), T14) → U14_GA(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U14_GA(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U15_GA(T10, T11, T139, T140, T14, mergesort1_in_ga(.(T10, .(T139, T142)), X23))
U14_GA(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → MERGESORT1_IN_GA(.(T10, .(T139, T142)), X23)
U14_GA(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U17_GA(T10, T11, T139, T140, T14, mergesort1_in_ga(.(T11, T141), X24))
U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → MERGESORT1_IN_GA(.(T11, T141), X24)
U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U18_GA(T10, T11, T139, T140, T14, T154, mergesortc1_in_ga(.(T11, T141), T162))
U18_GA(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U19_GA(T10, T11, T139, T140, T14, merge29_in_gga(T154, T162, T14))
U18_GA(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → MERGE29_IN_GGA(T154, T162, T14)

The TRS R consists of the following rules:

mergesortc19_in_ga(T24, .(T24, [])) → mergesortc19_out_ga(T24, .(T24, []))
lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))
splitc74_in_gaa([], [], []) → splitc74_out_gaa([], [], [])
splitc74_in_gaa(.(T147, T148), .(T147, X201), X202) → U27_gaa(T147, T148, X201, X202, splitc74_in_gaa(T148, X202, X201))
U27_gaa(T147, T148, X201, X202, splitc74_out_gaa(T148, X202, X201)) → splitc74_out_gaa(.(T147, T148), .(T147, X201), X202)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T10, .(T11, [])), T14) → U28_ga(T10, T11, T14, mergesortc19_in_ga(T10, T18))
U28_ga(T10, T11, T14, mergesortc19_out_ga(T10, T18)) → U29_ga(T10, T11, T14, T18, mergesortc19_in_ga(T11, T29))
U29_ga(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → U30_ga(T10, T11, T14, mergec29_in_gga(T18, T29, T14))
mergec29_in_gga(T37, [], T37) → mergec29_out_gga(T37, [], T37)
mergec29_in_gga([], T42, T42) → mergec29_out_gga([], T42, T42)
mergec29_in_gga(.(T63, T64), .(T65, T66), .(T63, T68)) → U21_gga(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
U21_gga(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → U22_gga(T63, T64, T65, T66, T68, mergec29_in_gga(T64, .(T65, T66), T68))
mergec29_in_gga(.(T106, T107), .(T108, T109), .(T108, T111)) → U23_gga(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
U23_gga(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → U24_gga(T106, T107, T108, T109, T111, mergec29_in_gga(.(T106, T107), T109, T111))
U24_gga(T106, T107, T108, T109, T111, mergec29_out_gga(.(T106, T107), T109, T111)) → mergec29_out_gga(.(T106, T107), .(T108, T109), .(T108, T111))
U22_gga(T63, T64, T65, T66, T68, mergec29_out_gga(T64, .(T65, T66), T68)) → mergec29_out_gga(.(T63, T64), .(T65, T66), .(T63, T68))
U30_ga(T10, T11, T14, mergec29_out_gga(T18, T29, T14)) → mergesortc1_out_ga(.(T10, .(T11, [])), T14)
mergesortc1_in_ga(.(T10, .(T11, .(T139, T140))), T14) → U31_ga(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U31_ga(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_in_ga(.(T11, T141), T162))
U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U34_ga(T10, T11, T139, T140, T14, mergec29_in_gga(T154, T162, T14))
U34_ga(T10, T11, T139, T140, T14, mergec29_out_gga(T154, T162, T14)) → mergesortc1_out_ga(.(T10, .(T11, .(T139, T140))), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
[]  =  []
mergesortc19_in_ga(x1, x2)  =  mergesortc19_in_ga(x1)
mergesortc19_out_ga(x1, x2)  =  mergesortc19_out_ga(x1, x2)
merge29_in_gga(x1, x2, x3)  =  merge29_in_gga(x1, x2)
le45_in_gg(x1, x2)  =  le45_in_gg(x1, x2)
s(x1)  =  s(x1)
lec45_in_gg(x1, x2)  =  lec45_in_gg(x1, x2)
U25_gg(x1, x2, x3)  =  U25_gg(x1, x2, x3)
0  =  0
lec45_out_gg(x1, x2)  =  lec45_out_gg(x1, x2)
gt62_in_gg(x1, x2)  =  gt62_in_gg(x1, x2)
gtc62_in_gg(x1, x2)  =  gtc62_in_gg(x1, x2)
U26_gg(x1, x2, x3)  =  U26_gg(x1, x2, x3)
gtc62_out_gg(x1, x2)  =  gtc62_out_gg(x1, x2)
split74_in_gaa(x1, x2, x3)  =  split74_in_gaa(x1)
splitc74_in_gaa(x1, x2, x3)  =  splitc74_in_gaa(x1)
splitc74_out_gaa(x1, x2, x3)  =  splitc74_out_gaa(x1, x2, x3)
U27_gaa(x1, x2, x3, x4, x5)  =  U27_gaa(x1, x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U28_ga(x1, x2, x3, x4)  =  U28_ga(x1, x2, x4)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x4, x5)
U30_ga(x1, x2, x3, x4)  =  U30_ga(x1, x2, x4)
mergec29_in_gga(x1, x2, x3)  =  mergec29_in_gga(x1, x2)
mergec29_out_gga(x1, x2, x3)  =  mergec29_out_gga(x1, x2, x3)
U21_gga(x1, x2, x3, x4, x5, x6)  =  U21_gga(x1, x2, x3, x4, x6)
U22_gga(x1, x2, x3, x4, x5, x6)  =  U22_gga(x1, x2, x3, x4, x6)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U31_ga(x1, x2, x3, x4, x5, x6)  =  U31_ga(x1, x2, x3, x4, x6)
U32_ga(x1, x2, x3, x4, x5, x6, x7)  =  U32_ga(x1, x2, x3, x4, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6, x7)  =  U33_ga(x1, x2, x3, x4, x6, x7)
U34_ga(x1, x2, x3, x4, x5, x6)  =  U34_ga(x1, x2, x3, x4, x6)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U10_GA(x1, x2, x3, x4)  =  U10_GA(x1, x2, x4)
U11_GA(x1, x2, x3, x4, x5)  =  U11_GA(x1, x2, x4, x5)
U12_GA(x1, x2, x3, x4)  =  U12_GA(x1, x2, x4)
MERGE29_IN_GGA(x1, x2, x3)  =  MERGE29_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3, x4, x5, x6)  =  U1_GGA(x1, x2, x3, x4, x6)
LE45_IN_GG(x1, x2)  =  LE45_IN_GG(x1, x2)
U7_GG(x1, x2, x3)  =  U7_GG(x1, x2, x3)
U2_GGA(x1, x2, x3, x4, x5, x6)  =  U2_GGA(x1, x2, x3, x4, x6)
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)
GT62_IN_GG(x1, x2)  =  GT62_IN_GG(x1, x2)
U8_GG(x1, x2, x3)  =  U8_GG(x1, x2, x3)
U5_GGA(x1, x2, x3, x4, x5, x6)  =  U5_GGA(x1, x2, x3, x4, x6)
U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x1, x2, x3, x4, x6)
U13_GA(x1, x2, x3, x4, x5, x6)  =  U13_GA(x1, x2, x3, x4, x6)
SPLIT74_IN_GAA(x1, x2, x3)  =  SPLIT74_IN_GAA(x1)
U9_GAA(x1, x2, x3, x4, x5)  =  U9_GAA(x1, x2, x5)
U14_GA(x1, x2, x3, x4, x5, x6)  =  U14_GA(x1, x2, x3, x4, x6)
U15_GA(x1, x2, x3, x4, x5, x6)  =  U15_GA(x1, x2, x3, x4, x6)
U16_GA(x1, x2, x3, x4, x5, x6, x7)  =  U16_GA(x1, x2, x3, x4, x6, x7)
U17_GA(x1, x2, x3, x4, x5, x6)  =  U17_GA(x1, x2, x3, x4, x6)
U18_GA(x1, x2, x3, x4, x5, x6, x7)  =  U18_GA(x1, x2, x3, x4, x6, x7)
U19_GA(x1, x2, x3, x4, x5, x6)  =  U19_GA(x1, x2, x3, x4, x6)

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

(7) DependencyGraphProof (EQUIVALENT transformation)

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

(8) Complex Obligation (AND)

(9) Obligation:

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

SPLIT74_IN_GAA(.(T147, T148), .(T147, X201), X202) → SPLIT74_IN_GAA(T148, X202, X201)

The TRS R consists of the following rules:

mergesortc19_in_ga(T24, .(T24, [])) → mergesortc19_out_ga(T24, .(T24, []))
lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))
splitc74_in_gaa([], [], []) → splitc74_out_gaa([], [], [])
splitc74_in_gaa(.(T147, T148), .(T147, X201), X202) → U27_gaa(T147, T148, X201, X202, splitc74_in_gaa(T148, X202, X201))
U27_gaa(T147, T148, X201, X202, splitc74_out_gaa(T148, X202, X201)) → splitc74_out_gaa(.(T147, T148), .(T147, X201), X202)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T10, .(T11, [])), T14) → U28_ga(T10, T11, T14, mergesortc19_in_ga(T10, T18))
U28_ga(T10, T11, T14, mergesortc19_out_ga(T10, T18)) → U29_ga(T10, T11, T14, T18, mergesortc19_in_ga(T11, T29))
U29_ga(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → U30_ga(T10, T11, T14, mergec29_in_gga(T18, T29, T14))
mergec29_in_gga(T37, [], T37) → mergec29_out_gga(T37, [], T37)
mergec29_in_gga([], T42, T42) → mergec29_out_gga([], T42, T42)
mergec29_in_gga(.(T63, T64), .(T65, T66), .(T63, T68)) → U21_gga(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
U21_gga(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → U22_gga(T63, T64, T65, T66, T68, mergec29_in_gga(T64, .(T65, T66), T68))
mergec29_in_gga(.(T106, T107), .(T108, T109), .(T108, T111)) → U23_gga(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
U23_gga(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → U24_gga(T106, T107, T108, T109, T111, mergec29_in_gga(.(T106, T107), T109, T111))
U24_gga(T106, T107, T108, T109, T111, mergec29_out_gga(.(T106, T107), T109, T111)) → mergec29_out_gga(.(T106, T107), .(T108, T109), .(T108, T111))
U22_gga(T63, T64, T65, T66, T68, mergec29_out_gga(T64, .(T65, T66), T68)) → mergec29_out_gga(.(T63, T64), .(T65, T66), .(T63, T68))
U30_ga(T10, T11, T14, mergec29_out_gga(T18, T29, T14)) → mergesortc1_out_ga(.(T10, .(T11, [])), T14)
mergesortc1_in_ga(.(T10, .(T11, .(T139, T140))), T14) → U31_ga(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U31_ga(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_in_ga(.(T11, T141), T162))
U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U34_ga(T10, T11, T139, T140, T14, mergec29_in_gga(T154, T162, T14))
U34_ga(T10, T11, T139, T140, T14, mergec29_out_gga(T154, T162, T14)) → mergesortc1_out_ga(.(T10, .(T11, .(T139, T140))), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
[]  =  []
mergesortc19_in_ga(x1, x2)  =  mergesortc19_in_ga(x1)
mergesortc19_out_ga(x1, x2)  =  mergesortc19_out_ga(x1, x2)
s(x1)  =  s(x1)
lec45_in_gg(x1, x2)  =  lec45_in_gg(x1, x2)
U25_gg(x1, x2, x3)  =  U25_gg(x1, x2, x3)
0  =  0
lec45_out_gg(x1, x2)  =  lec45_out_gg(x1, x2)
gtc62_in_gg(x1, x2)  =  gtc62_in_gg(x1, x2)
U26_gg(x1, x2, x3)  =  U26_gg(x1, x2, x3)
gtc62_out_gg(x1, x2)  =  gtc62_out_gg(x1, x2)
splitc74_in_gaa(x1, x2, x3)  =  splitc74_in_gaa(x1)
splitc74_out_gaa(x1, x2, x3)  =  splitc74_out_gaa(x1, x2, x3)
U27_gaa(x1, x2, x3, x4, x5)  =  U27_gaa(x1, x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U28_ga(x1, x2, x3, x4)  =  U28_ga(x1, x2, x4)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x4, x5)
U30_ga(x1, x2, x3, x4)  =  U30_ga(x1, x2, x4)
mergec29_in_gga(x1, x2, x3)  =  mergec29_in_gga(x1, x2)
mergec29_out_gga(x1, x2, x3)  =  mergec29_out_gga(x1, x2, x3)
U21_gga(x1, x2, x3, x4, x5, x6)  =  U21_gga(x1, x2, x3, x4, x6)
U22_gga(x1, x2, x3, x4, x5, x6)  =  U22_gga(x1, x2, x3, x4, x6)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U31_ga(x1, x2, x3, x4, x5, x6)  =  U31_ga(x1, x2, x3, x4, x6)
U32_ga(x1, x2, x3, x4, x5, x6, x7)  =  U32_ga(x1, x2, x3, x4, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6, x7)  =  U33_ga(x1, x2, x3, x4, x6, x7)
U34_ga(x1, x2, x3, x4, x5, x6)  =  U34_ga(x1, x2, x3, x4, x6)
SPLIT74_IN_GAA(x1, x2, x3)  =  SPLIT74_IN_GAA(x1)

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

(10) UsableRulesProof (EQUIVALENT transformation)

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

(11) Obligation:

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

SPLIT74_IN_GAA(.(T147, T148), .(T147, X201), X202) → SPLIT74_IN_GAA(T148, X202, X201)

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

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

(12) PiDPToQDPProof (SOUND transformation)

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

(13) Obligation:

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

SPLIT74_IN_GAA(.(T147, T148)) → SPLIT74_IN_GAA(T148)

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

(14) 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:

  • SPLIT74_IN_GAA(.(T147, T148)) → SPLIT74_IN_GAA(T148)
    The graph contains the following edges 1 > 1

(15) YES

(16) Obligation:

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

GT62_IN_GG(s(T124), s(T125)) → GT62_IN_GG(T124, T125)

The TRS R consists of the following rules:

mergesortc19_in_ga(T24, .(T24, [])) → mergesortc19_out_ga(T24, .(T24, []))
lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))
splitc74_in_gaa([], [], []) → splitc74_out_gaa([], [], [])
splitc74_in_gaa(.(T147, T148), .(T147, X201), X202) → U27_gaa(T147, T148, X201, X202, splitc74_in_gaa(T148, X202, X201))
U27_gaa(T147, T148, X201, X202, splitc74_out_gaa(T148, X202, X201)) → splitc74_out_gaa(.(T147, T148), .(T147, X201), X202)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T10, .(T11, [])), T14) → U28_ga(T10, T11, T14, mergesortc19_in_ga(T10, T18))
U28_ga(T10, T11, T14, mergesortc19_out_ga(T10, T18)) → U29_ga(T10, T11, T14, T18, mergesortc19_in_ga(T11, T29))
U29_ga(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → U30_ga(T10, T11, T14, mergec29_in_gga(T18, T29, T14))
mergec29_in_gga(T37, [], T37) → mergec29_out_gga(T37, [], T37)
mergec29_in_gga([], T42, T42) → mergec29_out_gga([], T42, T42)
mergec29_in_gga(.(T63, T64), .(T65, T66), .(T63, T68)) → U21_gga(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
U21_gga(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → U22_gga(T63, T64, T65, T66, T68, mergec29_in_gga(T64, .(T65, T66), T68))
mergec29_in_gga(.(T106, T107), .(T108, T109), .(T108, T111)) → U23_gga(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
U23_gga(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → U24_gga(T106, T107, T108, T109, T111, mergec29_in_gga(.(T106, T107), T109, T111))
U24_gga(T106, T107, T108, T109, T111, mergec29_out_gga(.(T106, T107), T109, T111)) → mergec29_out_gga(.(T106, T107), .(T108, T109), .(T108, T111))
U22_gga(T63, T64, T65, T66, T68, mergec29_out_gga(T64, .(T65, T66), T68)) → mergec29_out_gga(.(T63, T64), .(T65, T66), .(T63, T68))
U30_ga(T10, T11, T14, mergec29_out_gga(T18, T29, T14)) → mergesortc1_out_ga(.(T10, .(T11, [])), T14)
mergesortc1_in_ga(.(T10, .(T11, .(T139, T140))), T14) → U31_ga(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U31_ga(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_in_ga(.(T11, T141), T162))
U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U34_ga(T10, T11, T139, T140, T14, mergec29_in_gga(T154, T162, T14))
U34_ga(T10, T11, T139, T140, T14, mergec29_out_gga(T154, T162, T14)) → mergesortc1_out_ga(.(T10, .(T11, .(T139, T140))), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
[]  =  []
mergesortc19_in_ga(x1, x2)  =  mergesortc19_in_ga(x1)
mergesortc19_out_ga(x1, x2)  =  mergesortc19_out_ga(x1, x2)
s(x1)  =  s(x1)
lec45_in_gg(x1, x2)  =  lec45_in_gg(x1, x2)
U25_gg(x1, x2, x3)  =  U25_gg(x1, x2, x3)
0  =  0
lec45_out_gg(x1, x2)  =  lec45_out_gg(x1, x2)
gtc62_in_gg(x1, x2)  =  gtc62_in_gg(x1, x2)
U26_gg(x1, x2, x3)  =  U26_gg(x1, x2, x3)
gtc62_out_gg(x1, x2)  =  gtc62_out_gg(x1, x2)
splitc74_in_gaa(x1, x2, x3)  =  splitc74_in_gaa(x1)
splitc74_out_gaa(x1, x2, x3)  =  splitc74_out_gaa(x1, x2, x3)
U27_gaa(x1, x2, x3, x4, x5)  =  U27_gaa(x1, x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U28_ga(x1, x2, x3, x4)  =  U28_ga(x1, x2, x4)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x4, x5)
U30_ga(x1, x2, x3, x4)  =  U30_ga(x1, x2, x4)
mergec29_in_gga(x1, x2, x3)  =  mergec29_in_gga(x1, x2)
mergec29_out_gga(x1, x2, x3)  =  mergec29_out_gga(x1, x2, x3)
U21_gga(x1, x2, x3, x4, x5, x6)  =  U21_gga(x1, x2, x3, x4, x6)
U22_gga(x1, x2, x3, x4, x5, x6)  =  U22_gga(x1, x2, x3, x4, x6)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U31_ga(x1, x2, x3, x4, x5, x6)  =  U31_ga(x1, x2, x3, x4, x6)
U32_ga(x1, x2, x3, x4, x5, x6, x7)  =  U32_ga(x1, x2, x3, x4, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6, x7)  =  U33_ga(x1, x2, x3, x4, x6, x7)
U34_ga(x1, x2, x3, x4, x5, x6)  =  U34_ga(x1, x2, x3, x4, x6)
GT62_IN_GG(x1, x2)  =  GT62_IN_GG(x1, x2)

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

(17) UsableRulesProof (EQUIVALENT transformation)

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

(18) Obligation:

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

GT62_IN_GG(s(T124), s(T125)) → GT62_IN_GG(T124, T125)

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

(19) PiDPToQDPProof (EQUIVALENT transformation)

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

(20) Obligation:

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

GT62_IN_GG(s(T124), s(T125)) → GT62_IN_GG(T124, T125)

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

(21) 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:

  • GT62_IN_GG(s(T124), s(T125)) → GT62_IN_GG(T124, T125)
    The graph contains the following edges 1 > 1, 2 > 2

(22) YES

(23) Obligation:

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

LE45_IN_GG(s(T81), s(T82)) → LE45_IN_GG(T81, T82)

The TRS R consists of the following rules:

mergesortc19_in_ga(T24, .(T24, [])) → mergesortc19_out_ga(T24, .(T24, []))
lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))
splitc74_in_gaa([], [], []) → splitc74_out_gaa([], [], [])
splitc74_in_gaa(.(T147, T148), .(T147, X201), X202) → U27_gaa(T147, T148, X201, X202, splitc74_in_gaa(T148, X202, X201))
U27_gaa(T147, T148, X201, X202, splitc74_out_gaa(T148, X202, X201)) → splitc74_out_gaa(.(T147, T148), .(T147, X201), X202)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T10, .(T11, [])), T14) → U28_ga(T10, T11, T14, mergesortc19_in_ga(T10, T18))
U28_ga(T10, T11, T14, mergesortc19_out_ga(T10, T18)) → U29_ga(T10, T11, T14, T18, mergesortc19_in_ga(T11, T29))
U29_ga(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → U30_ga(T10, T11, T14, mergec29_in_gga(T18, T29, T14))
mergec29_in_gga(T37, [], T37) → mergec29_out_gga(T37, [], T37)
mergec29_in_gga([], T42, T42) → mergec29_out_gga([], T42, T42)
mergec29_in_gga(.(T63, T64), .(T65, T66), .(T63, T68)) → U21_gga(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
U21_gga(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → U22_gga(T63, T64, T65, T66, T68, mergec29_in_gga(T64, .(T65, T66), T68))
mergec29_in_gga(.(T106, T107), .(T108, T109), .(T108, T111)) → U23_gga(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
U23_gga(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → U24_gga(T106, T107, T108, T109, T111, mergec29_in_gga(.(T106, T107), T109, T111))
U24_gga(T106, T107, T108, T109, T111, mergec29_out_gga(.(T106, T107), T109, T111)) → mergec29_out_gga(.(T106, T107), .(T108, T109), .(T108, T111))
U22_gga(T63, T64, T65, T66, T68, mergec29_out_gga(T64, .(T65, T66), T68)) → mergec29_out_gga(.(T63, T64), .(T65, T66), .(T63, T68))
U30_ga(T10, T11, T14, mergec29_out_gga(T18, T29, T14)) → mergesortc1_out_ga(.(T10, .(T11, [])), T14)
mergesortc1_in_ga(.(T10, .(T11, .(T139, T140))), T14) → U31_ga(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U31_ga(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_in_ga(.(T11, T141), T162))
U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U34_ga(T10, T11, T139, T140, T14, mergec29_in_gga(T154, T162, T14))
U34_ga(T10, T11, T139, T140, T14, mergec29_out_gga(T154, T162, T14)) → mergesortc1_out_ga(.(T10, .(T11, .(T139, T140))), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
[]  =  []
mergesortc19_in_ga(x1, x2)  =  mergesortc19_in_ga(x1)
mergesortc19_out_ga(x1, x2)  =  mergesortc19_out_ga(x1, x2)
s(x1)  =  s(x1)
lec45_in_gg(x1, x2)  =  lec45_in_gg(x1, x2)
U25_gg(x1, x2, x3)  =  U25_gg(x1, x2, x3)
0  =  0
lec45_out_gg(x1, x2)  =  lec45_out_gg(x1, x2)
gtc62_in_gg(x1, x2)  =  gtc62_in_gg(x1, x2)
U26_gg(x1, x2, x3)  =  U26_gg(x1, x2, x3)
gtc62_out_gg(x1, x2)  =  gtc62_out_gg(x1, x2)
splitc74_in_gaa(x1, x2, x3)  =  splitc74_in_gaa(x1)
splitc74_out_gaa(x1, x2, x3)  =  splitc74_out_gaa(x1, x2, x3)
U27_gaa(x1, x2, x3, x4, x5)  =  U27_gaa(x1, x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U28_ga(x1, x2, x3, x4)  =  U28_ga(x1, x2, x4)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x4, x5)
U30_ga(x1, x2, x3, x4)  =  U30_ga(x1, x2, x4)
mergec29_in_gga(x1, x2, x3)  =  mergec29_in_gga(x1, x2)
mergec29_out_gga(x1, x2, x3)  =  mergec29_out_gga(x1, x2, x3)
U21_gga(x1, x2, x3, x4, x5, x6)  =  U21_gga(x1, x2, x3, x4, x6)
U22_gga(x1, x2, x3, x4, x5, x6)  =  U22_gga(x1, x2, x3, x4, x6)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U31_ga(x1, x2, x3, x4, x5, x6)  =  U31_ga(x1, x2, x3, x4, x6)
U32_ga(x1, x2, x3, x4, x5, x6, x7)  =  U32_ga(x1, x2, x3, x4, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6, x7)  =  U33_ga(x1, x2, x3, x4, x6, x7)
U34_ga(x1, x2, x3, x4, x5, x6)  =  U34_ga(x1, x2, x3, x4, x6)
LE45_IN_GG(x1, x2)  =  LE45_IN_GG(x1, x2)

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

(24) UsableRulesProof (EQUIVALENT transformation)

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

(25) Obligation:

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

LE45_IN_GG(s(T81), s(T82)) → LE45_IN_GG(T81, T82)

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

(26) PiDPToQDPProof (EQUIVALENT transformation)

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

(27) Obligation:

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

LE45_IN_GG(s(T81), s(T82)) → LE45_IN_GG(T81, T82)

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

(28) 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:

  • LE45_IN_GG(s(T81), s(T82)) → LE45_IN_GG(T81, T82)
    The graph contains the following edges 1 > 1, 2 > 2

(29) YES

(30) Obligation:

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

MERGE29_IN_GGA(.(T63, T64), .(T65, T66), .(T63, T68)) → U2_GGA(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
U2_GGA(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → MERGE29_IN_GGA(T64, .(T65, T66), T68)
MERGE29_IN_GGA(.(T106, T107), .(T108, T109), .(T108, T111)) → U5_GGA(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
U5_GGA(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → MERGE29_IN_GGA(.(T106, T107), T109, T111)

The TRS R consists of the following rules:

mergesortc19_in_ga(T24, .(T24, [])) → mergesortc19_out_ga(T24, .(T24, []))
lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))
splitc74_in_gaa([], [], []) → splitc74_out_gaa([], [], [])
splitc74_in_gaa(.(T147, T148), .(T147, X201), X202) → U27_gaa(T147, T148, X201, X202, splitc74_in_gaa(T148, X202, X201))
U27_gaa(T147, T148, X201, X202, splitc74_out_gaa(T148, X202, X201)) → splitc74_out_gaa(.(T147, T148), .(T147, X201), X202)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T10, .(T11, [])), T14) → U28_ga(T10, T11, T14, mergesortc19_in_ga(T10, T18))
U28_ga(T10, T11, T14, mergesortc19_out_ga(T10, T18)) → U29_ga(T10, T11, T14, T18, mergesortc19_in_ga(T11, T29))
U29_ga(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → U30_ga(T10, T11, T14, mergec29_in_gga(T18, T29, T14))
mergec29_in_gga(T37, [], T37) → mergec29_out_gga(T37, [], T37)
mergec29_in_gga([], T42, T42) → mergec29_out_gga([], T42, T42)
mergec29_in_gga(.(T63, T64), .(T65, T66), .(T63, T68)) → U21_gga(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
U21_gga(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → U22_gga(T63, T64, T65, T66, T68, mergec29_in_gga(T64, .(T65, T66), T68))
mergec29_in_gga(.(T106, T107), .(T108, T109), .(T108, T111)) → U23_gga(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
U23_gga(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → U24_gga(T106, T107, T108, T109, T111, mergec29_in_gga(.(T106, T107), T109, T111))
U24_gga(T106, T107, T108, T109, T111, mergec29_out_gga(.(T106, T107), T109, T111)) → mergec29_out_gga(.(T106, T107), .(T108, T109), .(T108, T111))
U22_gga(T63, T64, T65, T66, T68, mergec29_out_gga(T64, .(T65, T66), T68)) → mergec29_out_gga(.(T63, T64), .(T65, T66), .(T63, T68))
U30_ga(T10, T11, T14, mergec29_out_gga(T18, T29, T14)) → mergesortc1_out_ga(.(T10, .(T11, [])), T14)
mergesortc1_in_ga(.(T10, .(T11, .(T139, T140))), T14) → U31_ga(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U31_ga(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_in_ga(.(T11, T141), T162))
U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U34_ga(T10, T11, T139, T140, T14, mergec29_in_gga(T154, T162, T14))
U34_ga(T10, T11, T139, T140, T14, mergec29_out_gga(T154, T162, T14)) → mergesortc1_out_ga(.(T10, .(T11, .(T139, T140))), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
[]  =  []
mergesortc19_in_ga(x1, x2)  =  mergesortc19_in_ga(x1)
mergesortc19_out_ga(x1, x2)  =  mergesortc19_out_ga(x1, x2)
s(x1)  =  s(x1)
lec45_in_gg(x1, x2)  =  lec45_in_gg(x1, x2)
U25_gg(x1, x2, x3)  =  U25_gg(x1, x2, x3)
0  =  0
lec45_out_gg(x1, x2)  =  lec45_out_gg(x1, x2)
gtc62_in_gg(x1, x2)  =  gtc62_in_gg(x1, x2)
U26_gg(x1, x2, x3)  =  U26_gg(x1, x2, x3)
gtc62_out_gg(x1, x2)  =  gtc62_out_gg(x1, x2)
splitc74_in_gaa(x1, x2, x3)  =  splitc74_in_gaa(x1)
splitc74_out_gaa(x1, x2, x3)  =  splitc74_out_gaa(x1, x2, x3)
U27_gaa(x1, x2, x3, x4, x5)  =  U27_gaa(x1, x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U28_ga(x1, x2, x3, x4)  =  U28_ga(x1, x2, x4)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x4, x5)
U30_ga(x1, x2, x3, x4)  =  U30_ga(x1, x2, x4)
mergec29_in_gga(x1, x2, x3)  =  mergec29_in_gga(x1, x2)
mergec29_out_gga(x1, x2, x3)  =  mergec29_out_gga(x1, x2, x3)
U21_gga(x1, x2, x3, x4, x5, x6)  =  U21_gga(x1, x2, x3, x4, x6)
U22_gga(x1, x2, x3, x4, x5, x6)  =  U22_gga(x1, x2, x3, x4, x6)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U31_ga(x1, x2, x3, x4, x5, x6)  =  U31_ga(x1, x2, x3, x4, x6)
U32_ga(x1, x2, x3, x4, x5, x6, x7)  =  U32_ga(x1, x2, x3, x4, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6, x7)  =  U33_ga(x1, x2, x3, x4, x6, x7)
U34_ga(x1, x2, x3, x4, x5, x6)  =  U34_ga(x1, x2, x3, x4, x6)
MERGE29_IN_GGA(x1, x2, x3)  =  MERGE29_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4, x5, x6)  =  U2_GGA(x1, x2, x3, x4, x6)
U5_GGA(x1, x2, x3, x4, x5, x6)  =  U5_GGA(x1, x2, x3, x4, x6)

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

(31) UsableRulesProof (EQUIVALENT transformation)

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

(32) Obligation:

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

MERGE29_IN_GGA(.(T63, T64), .(T65, T66), .(T63, T68)) → U2_GGA(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
U2_GGA(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → MERGE29_IN_GGA(T64, .(T65, T66), T68)
MERGE29_IN_GGA(.(T106, T107), .(T108, T109), .(T108, T111)) → U5_GGA(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
U5_GGA(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → MERGE29_IN_GGA(.(T106, T107), T109, T111)

The TRS R consists of the following rules:

lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
s(x1)  =  s(x1)
lec45_in_gg(x1, x2)  =  lec45_in_gg(x1, x2)
U25_gg(x1, x2, x3)  =  U25_gg(x1, x2, x3)
0  =  0
lec45_out_gg(x1, x2)  =  lec45_out_gg(x1, x2)
gtc62_in_gg(x1, x2)  =  gtc62_in_gg(x1, x2)
U26_gg(x1, x2, x3)  =  U26_gg(x1, x2, x3)
gtc62_out_gg(x1, x2)  =  gtc62_out_gg(x1, x2)
MERGE29_IN_GGA(x1, x2, x3)  =  MERGE29_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4, x5, x6)  =  U2_GGA(x1, x2, x3, x4, x6)
U5_GGA(x1, x2, x3, x4, x5, x6)  =  U5_GGA(x1, x2, x3, x4, x6)

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

(33) PiDPToQDPProof (SOUND transformation)

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

(34) Obligation:

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

MERGE29_IN_GGA(.(T63, T64), .(T65, T66)) → U2_GGA(T63, T64, T65, T66, lec45_in_gg(T63, T65))
U2_GGA(T63, T64, T65, T66, lec45_out_gg(T63, T65)) → MERGE29_IN_GGA(T64, .(T65, T66))
MERGE29_IN_GGA(.(T106, T107), .(T108, T109)) → U5_GGA(T106, T107, T108, T109, gtc62_in_gg(T106, T108))
U5_GGA(T106, T107, T108, T109, gtc62_out_gg(T106, T108)) → MERGE29_IN_GGA(.(T106, T107), T109)

The TRS R consists of the following rules:

lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))

The set Q consists of the following terms:

lec45_in_gg(x0, x1)
gtc62_in_gg(x0, x1)
U25_gg(x0, x1, x2)
U26_gg(x0, x1, x2)

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

(35) 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:

MERGE29_IN_GGA(.(T63, T64), .(T65, T66)) → U2_GGA(T63, T64, T65, T66, lec45_in_gg(T63, T65))

Strictly oriented rules of the TRS R:

gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)

Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + 2·x1 + x2   
POL(0) = 0   
POL(MERGE29_IN_GGA(x1, x2)) = 2·x1 + 2·x2   
POL(U25_gg(x1, x2, x3)) = 2·x1 + 2·x2 + x3   
POL(U26_gg(x1, x2, x3)) = x1 + x2 + x3   
POL(U2_GGA(x1, x2, x3, x4, x5)) = 2 + x1 + 2·x2 + 2·x3 + 2·x4 + x5   
POL(U5_GGA(x1, x2, x3, x4, x5)) = 2 + 2·x1 + 2·x2 + 2·x3 + 2·x4 + 2·x5   
POL(gtc62_in_gg(x1, x2)) = 1 + x1 + x2   
POL(gtc62_out_gg(x1, x2)) = x1 + x2   
POL(lec45_in_gg(x1, x2)) = 2·x1 + 2·x2   
POL(lec45_out_gg(x1, x2)) = 2·x1 + 2·x2   
POL(s(x1)) = 2·x1   

(36) Obligation:

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

U2_GGA(T63, T64, T65, T66, lec45_out_gg(T63, T65)) → MERGE29_IN_GGA(T64, .(T65, T66))
MERGE29_IN_GGA(.(T106, T107), .(T108, T109)) → U5_GGA(T106, T107, T108, T109, gtc62_in_gg(T106, T108))
U5_GGA(T106, T107, T108, T109, gtc62_out_gg(T106, T108)) → MERGE29_IN_GGA(.(T106, T107), T109)

The TRS R consists of the following rules:

lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))

The set Q consists of the following terms:

lec45_in_gg(x0, x1)
gtc62_in_gg(x0, x1)
U25_gg(x0, x1, x2)
U26_gg(x0, x1, x2)

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

(37) DependencyGraphProof (EQUIVALENT transformation)

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

(38) Obligation:

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

U5_GGA(T106, T107, T108, T109, gtc62_out_gg(T106, T108)) → MERGE29_IN_GGA(.(T106, T107), T109)
MERGE29_IN_GGA(.(T106, T107), .(T108, T109)) → U5_GGA(T106, T107, T108, T109, gtc62_in_gg(T106, T108))

The TRS R consists of the following rules:

lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))

The set Q consists of the following terms:

lec45_in_gg(x0, x1)
gtc62_in_gg(x0, x1)
U25_gg(x0, x1, x2)
U26_gg(x0, x1, x2)

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

(39) 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.

(40) Obligation:

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

U5_GGA(T106, T107, T108, T109, gtc62_out_gg(T106, T108)) → MERGE29_IN_GGA(.(T106, T107), T109)
MERGE29_IN_GGA(.(T106, T107), .(T108, T109)) → U5_GGA(T106, T107, T108, T109, gtc62_in_gg(T106, T108))

The TRS R consists of the following rules:

gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))

The set Q consists of the following terms:

lec45_in_gg(x0, x1)
gtc62_in_gg(x0, x1)
U25_gg(x0, x1, x2)
U26_gg(x0, x1, x2)

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

(41) 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].

lec45_in_gg(x0, x1)
U25_gg(x0, x1, x2)

(42) Obligation:

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

U5_GGA(T106, T107, T108, T109, gtc62_out_gg(T106, T108)) → MERGE29_IN_GGA(.(T106, T107), T109)
MERGE29_IN_GGA(.(T106, T107), .(T108, T109)) → U5_GGA(T106, T107, T108, T109, gtc62_in_gg(T106, T108))

The TRS R consists of the following rules:

gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))

The set Q consists of the following terms:

gtc62_in_gg(x0, x1)
U26_gg(x0, x1, x2)

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

(43) 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:

  • MERGE29_IN_GGA(.(T106, T107), .(T108, T109)) → U5_GGA(T106, T107, T108, T109, gtc62_in_gg(T106, T108))
    The graph contains the following edges 1 > 1, 1 > 2, 2 > 3, 2 > 4

  • U5_GGA(T106, T107, T108, T109, gtc62_out_gg(T106, T108)) → MERGE29_IN_GGA(.(T106, T107), T109)
    The graph contains the following edges 4 >= 2

(44) YES

(45) Obligation:

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

MERGESORT1_IN_GA(.(T10, .(T11, .(T139, T140))), T14) → U14_GA(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U14_GA(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → MERGESORT1_IN_GA(.(T10, .(T139, T142)), X23)
U14_GA(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → MERGESORT1_IN_GA(.(T11, T141), X24)

The TRS R consists of the following rules:

mergesortc19_in_ga(T24, .(T24, [])) → mergesortc19_out_ga(T24, .(T24, []))
lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))
splitc74_in_gaa([], [], []) → splitc74_out_gaa([], [], [])
splitc74_in_gaa(.(T147, T148), .(T147, X201), X202) → U27_gaa(T147, T148, X201, X202, splitc74_in_gaa(T148, X202, X201))
U27_gaa(T147, T148, X201, X202, splitc74_out_gaa(T148, X202, X201)) → splitc74_out_gaa(.(T147, T148), .(T147, X201), X202)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T10, .(T11, [])), T14) → U28_ga(T10, T11, T14, mergesortc19_in_ga(T10, T18))
U28_ga(T10, T11, T14, mergesortc19_out_ga(T10, T18)) → U29_ga(T10, T11, T14, T18, mergesortc19_in_ga(T11, T29))
U29_ga(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → U30_ga(T10, T11, T14, mergec29_in_gga(T18, T29, T14))
mergec29_in_gga(T37, [], T37) → mergec29_out_gga(T37, [], T37)
mergec29_in_gga([], T42, T42) → mergec29_out_gga([], T42, T42)
mergec29_in_gga(.(T63, T64), .(T65, T66), .(T63, T68)) → U21_gga(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
U21_gga(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → U22_gga(T63, T64, T65, T66, T68, mergec29_in_gga(T64, .(T65, T66), T68))
mergec29_in_gga(.(T106, T107), .(T108, T109), .(T108, T111)) → U23_gga(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
U23_gga(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → U24_gga(T106, T107, T108, T109, T111, mergec29_in_gga(.(T106, T107), T109, T111))
U24_gga(T106, T107, T108, T109, T111, mergec29_out_gga(.(T106, T107), T109, T111)) → mergec29_out_gga(.(T106, T107), .(T108, T109), .(T108, T111))
U22_gga(T63, T64, T65, T66, T68, mergec29_out_gga(T64, .(T65, T66), T68)) → mergec29_out_gga(.(T63, T64), .(T65, T66), .(T63, T68))
U30_ga(T10, T11, T14, mergec29_out_gga(T18, T29, T14)) → mergesortc1_out_ga(.(T10, .(T11, [])), T14)
mergesortc1_in_ga(.(T10, .(T11, .(T139, T140))), T14) → U31_ga(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U31_ga(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_in_ga(.(T11, T141), T162))
U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U34_ga(T10, T11, T139, T140, T14, mergec29_in_gga(T154, T162, T14))
U34_ga(T10, T11, T139, T140, T14, mergec29_out_gga(T154, T162, T14)) → mergesortc1_out_ga(.(T10, .(T11, .(T139, T140))), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
[]  =  []
mergesortc19_in_ga(x1, x2)  =  mergesortc19_in_ga(x1)
mergesortc19_out_ga(x1, x2)  =  mergesortc19_out_ga(x1, x2)
s(x1)  =  s(x1)
lec45_in_gg(x1, x2)  =  lec45_in_gg(x1, x2)
U25_gg(x1, x2, x3)  =  U25_gg(x1, x2, x3)
0  =  0
lec45_out_gg(x1, x2)  =  lec45_out_gg(x1, x2)
gtc62_in_gg(x1, x2)  =  gtc62_in_gg(x1, x2)
U26_gg(x1, x2, x3)  =  U26_gg(x1, x2, x3)
gtc62_out_gg(x1, x2)  =  gtc62_out_gg(x1, x2)
splitc74_in_gaa(x1, x2, x3)  =  splitc74_in_gaa(x1)
splitc74_out_gaa(x1, x2, x3)  =  splitc74_out_gaa(x1, x2, x3)
U27_gaa(x1, x2, x3, x4, x5)  =  U27_gaa(x1, x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U28_ga(x1, x2, x3, x4)  =  U28_ga(x1, x2, x4)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x4, x5)
U30_ga(x1, x2, x3, x4)  =  U30_ga(x1, x2, x4)
mergec29_in_gga(x1, x2, x3)  =  mergec29_in_gga(x1, x2)
mergec29_out_gga(x1, x2, x3)  =  mergec29_out_gga(x1, x2, x3)
U21_gga(x1, x2, x3, x4, x5, x6)  =  U21_gga(x1, x2, x3, x4, x6)
U22_gga(x1, x2, x3, x4, x5, x6)  =  U22_gga(x1, x2, x3, x4, x6)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U31_ga(x1, x2, x3, x4, x5, x6)  =  U31_ga(x1, x2, x3, x4, x6)
U32_ga(x1, x2, x3, x4, x5, x6, x7)  =  U32_ga(x1, x2, x3, x4, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6, x7)  =  U33_ga(x1, x2, x3, x4, x6, x7)
U34_ga(x1, x2, x3, x4, x5, x6)  =  U34_ga(x1, x2, x3, x4, x6)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U14_GA(x1, x2, x3, x4, x5, x6)  =  U14_GA(x1, x2, x3, x4, x6)
U16_GA(x1, x2, x3, x4, x5, x6, x7)  =  U16_GA(x1, x2, x3, x4, x6, x7)

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

(46) UsableRulesProof (EQUIVALENT transformation)

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

(47) Obligation:

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

MERGESORT1_IN_GA(.(T10, .(T11, .(T139, T140))), T14) → U14_GA(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U14_GA(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → MERGESORT1_IN_GA(.(T10, .(T139, T142)), X23)
U14_GA(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
U16_GA(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → MERGESORT1_IN_GA(.(T11, T141), X24)

The TRS R consists of the following rules:

splitc74_in_gaa([], [], []) → splitc74_out_gaa([], [], [])
splitc74_in_gaa(.(T147, T148), .(T147, X201), X202) → U27_gaa(T147, T148, X201, X202, splitc74_in_gaa(T148, X202, X201))
mergesortc1_in_ga(.(T10, .(T11, [])), T14) → U28_ga(T10, T11, T14, mergesortc19_in_ga(T10, T18))
mergesortc1_in_ga(.(T10, .(T11, .(T139, T140))), T14) → U31_ga(T10, T11, T139, T140, T14, splitc74_in_gaa(T140, T141, T142))
U27_gaa(T147, T148, X201, X202, splitc74_out_gaa(T148, X202, X201)) → splitc74_out_gaa(.(T147, T148), .(T147, X201), X202)
U28_ga(T10, T11, T14, mergesortc19_out_ga(T10, T18)) → U29_ga(T10, T11, T14, T18, mergesortc19_in_ga(T11, T29))
U31_ga(T10, T11, T139, T140, T14, splitc74_out_gaa(T140, T141, T142)) → U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_in_ga(.(T10, .(T139, T142)), T154))
mergesortc19_in_ga(T24, .(T24, [])) → mergesortc19_out_ga(T24, .(T24, []))
U29_ga(T10, T11, T14, T18, mergesortc19_out_ga(T11, T29)) → U30_ga(T10, T11, T14, mergec29_in_gga(T18, T29, T14))
U32_ga(T10, T11, T139, T140, T14, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_in_ga(.(T11, T141), T162))
U30_ga(T10, T11, T14, mergec29_out_gga(T18, T29, T14)) → mergesortc1_out_ga(.(T10, .(T11, [])), T14)
U33_ga(T10, T11, T139, T140, T14, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U34_ga(T10, T11, T139, T140, T14, mergec29_in_gga(T154, T162, T14))
mergec29_in_gga(T37, [], T37) → mergec29_out_gga(T37, [], T37)
mergec29_in_gga([], T42, T42) → mergec29_out_gga([], T42, T42)
mergec29_in_gga(.(T63, T64), .(T65, T66), .(T63, T68)) → U21_gga(T63, T64, T65, T66, T68, lec45_in_gg(T63, T65))
mergec29_in_gga(.(T106, T107), .(T108, T109), .(T108, T111)) → U23_gga(T106, T107, T108, T109, T111, gtc62_in_gg(T106, T108))
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
U34_ga(T10, T11, T139, T140, T14, mergec29_out_gga(T154, T162, T14)) → mergesortc1_out_ga(.(T10, .(T11, .(T139, T140))), T14)
U21_gga(T63, T64, T65, T66, T68, lec45_out_gg(T63, T65)) → U22_gga(T63, T64, T65, T66, T68, mergec29_in_gga(T64, .(T65, T66), T68))
U23_gga(T106, T107, T108, T109, T111, gtc62_out_gg(T106, T108)) → U24_gga(T106, T107, T108, T109, T111, mergec29_in_gga(.(T106, T107), T109, T111))
lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
U22_gga(T63, T64, T65, T66, T68, mergec29_out_gga(T64, .(T65, T66), T68)) → mergec29_out_gga(.(T63, T64), .(T65, T66), .(T63, T68))
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U24_gga(T106, T107, T108, T109, T111, mergec29_out_gga(.(T106, T107), T109, T111)) → mergec29_out_gga(.(T106, T107), .(T108, T109), .(T108, T111))
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
[]  =  []
mergesortc19_in_ga(x1, x2)  =  mergesortc19_in_ga(x1)
mergesortc19_out_ga(x1, x2)  =  mergesortc19_out_ga(x1, x2)
s(x1)  =  s(x1)
lec45_in_gg(x1, x2)  =  lec45_in_gg(x1, x2)
U25_gg(x1, x2, x3)  =  U25_gg(x1, x2, x3)
0  =  0
lec45_out_gg(x1, x2)  =  lec45_out_gg(x1, x2)
gtc62_in_gg(x1, x2)  =  gtc62_in_gg(x1, x2)
U26_gg(x1, x2, x3)  =  U26_gg(x1, x2, x3)
gtc62_out_gg(x1, x2)  =  gtc62_out_gg(x1, x2)
splitc74_in_gaa(x1, x2, x3)  =  splitc74_in_gaa(x1)
splitc74_out_gaa(x1, x2, x3)  =  splitc74_out_gaa(x1, x2, x3)
U27_gaa(x1, x2, x3, x4, x5)  =  U27_gaa(x1, x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U28_ga(x1, x2, x3, x4)  =  U28_ga(x1, x2, x4)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x4, x5)
U30_ga(x1, x2, x3, x4)  =  U30_ga(x1, x2, x4)
mergec29_in_gga(x1, x2, x3)  =  mergec29_in_gga(x1, x2)
mergec29_out_gga(x1, x2, x3)  =  mergec29_out_gga(x1, x2, x3)
U21_gga(x1, x2, x3, x4, x5, x6)  =  U21_gga(x1, x2, x3, x4, x6)
U22_gga(x1, x2, x3, x4, x5, x6)  =  U22_gga(x1, x2, x3, x4, x6)
U23_gga(x1, x2, x3, x4, x5, x6)  =  U23_gga(x1, x2, x3, x4, x6)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x4, x6)
U31_ga(x1, x2, x3, x4, x5, x6)  =  U31_ga(x1, x2, x3, x4, x6)
U32_ga(x1, x2, x3, x4, x5, x6, x7)  =  U32_ga(x1, x2, x3, x4, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6, x7)  =  U33_ga(x1, x2, x3, x4, x6, x7)
U34_ga(x1, x2, x3, x4, x5, x6)  =  U34_ga(x1, x2, x3, x4, x6)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U14_GA(x1, x2, x3, x4, x5, x6)  =  U14_GA(x1, x2, x3, x4, x6)
U16_GA(x1, x2, x3, x4, x5, x6, x7)  =  U16_GA(x1, x2, x3, x4, x6, x7)

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

(48) PiDPToQDPProof (SOUND transformation)

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

(49) Obligation:

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

MERGESORT1_IN_GA(.(T10, .(T11, .(T139, T140)))) → U14_GA(T10, T11, T139, T140, splitc74_in_gaa(T140))
U14_GA(T10, T11, T139, T140, splitc74_out_gaa(T140, T141, T142)) → MERGESORT1_IN_GA(.(T10, .(T139, T142)))
U14_GA(T10, T11, T139, T140, splitc74_out_gaa(T140, T141, T142)) → U16_GA(T10, T11, T139, T140, T141, mergesortc1_in_ga(.(T10, .(T139, T142))))
U16_GA(T10, T11, T139, T140, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → MERGESORT1_IN_GA(.(T11, T141))

The TRS R consists of the following rules:

splitc74_in_gaa([]) → splitc74_out_gaa([], [], [])
splitc74_in_gaa(.(T147, T148)) → U27_gaa(T147, T148, splitc74_in_gaa(T148))
mergesortc1_in_ga(.(T10, .(T11, []))) → U28_ga(T10, T11, mergesortc19_in_ga(T10))
mergesortc1_in_ga(.(T10, .(T11, .(T139, T140)))) → U31_ga(T10, T11, T139, T140, splitc74_in_gaa(T140))
U27_gaa(T147, T148, splitc74_out_gaa(T148, X202, X201)) → splitc74_out_gaa(.(T147, T148), .(T147, X201), X202)
U28_ga(T10, T11, mergesortc19_out_ga(T10, T18)) → U29_ga(T10, T11, T18, mergesortc19_in_ga(T11))
U31_ga(T10, T11, T139, T140, splitc74_out_gaa(T140, T141, T142)) → U32_ga(T10, T11, T139, T140, T141, mergesortc1_in_ga(.(T10, .(T139, T142))))
mergesortc19_in_ga(T24) → mergesortc19_out_ga(T24, .(T24, []))
U29_ga(T10, T11, T18, mergesortc19_out_ga(T11, T29)) → U30_ga(T10, T11, mergec29_in_gga(T18, T29))
U32_ga(T10, T11, T139, T140, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U33_ga(T10, T11, T139, T140, T154, mergesortc1_in_ga(.(T11, T141)))
U30_ga(T10, T11, mergec29_out_gga(T18, T29, T14)) → mergesortc1_out_ga(.(T10, .(T11, [])), T14)
U33_ga(T10, T11, T139, T140, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U34_ga(T10, T11, T139, T140, mergec29_in_gga(T154, T162))
mergec29_in_gga(T37, []) → mergec29_out_gga(T37, [], T37)
mergec29_in_gga([], T42) → mergec29_out_gga([], T42, T42)
mergec29_in_gga(.(T63, T64), .(T65, T66)) → U21_gga(T63, T64, T65, T66, lec45_in_gg(T63, T65))
mergec29_in_gga(.(T106, T107), .(T108, T109)) → U23_gga(T106, T107, T108, T109, gtc62_in_gg(T106, T108))
mergesortc1_in_ga(.(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
U34_ga(T10, T11, T139, T140, mergec29_out_gga(T154, T162, T14)) → mergesortc1_out_ga(.(T10, .(T11, .(T139, T140))), T14)
U21_gga(T63, T64, T65, T66, lec45_out_gg(T63, T65)) → U22_gga(T63, T64, T65, T66, mergec29_in_gga(T64, .(T65, T66)))
U23_gga(T106, T107, T108, T109, gtc62_out_gg(T106, T108)) → U24_gga(T106, T107, T108, T109, mergec29_in_gga(.(T106, T107), T109))
lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
U22_gga(T63, T64, T65, T66, mergec29_out_gga(T64, .(T65, T66), T68)) → mergec29_out_gga(.(T63, T64), .(T65, T66), .(T63, T68))
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U24_gga(T106, T107, T108, T109, mergec29_out_gga(.(T106, T107), T109, T111)) → mergec29_out_gga(.(T106, T107), .(T108, T109), .(T108, T111))
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))

The set Q consists of the following terms:

splitc74_in_gaa(x0)
mergesortc1_in_ga(x0)
U27_gaa(x0, x1, x2)
U28_ga(x0, x1, x2)
U31_ga(x0, x1, x2, x3, x4)
mergesortc19_in_ga(x0)
U29_ga(x0, x1, x2, x3)
U32_ga(x0, x1, x2, x3, x4, x5)
U30_ga(x0, x1, x2)
U33_ga(x0, x1, x2, x3, x4, x5)
mergec29_in_gga(x0, x1)
U34_ga(x0, x1, x2, x3, x4)
U21_gga(x0, x1, x2, x3, x4)
U23_gga(x0, x1, x2, x3, x4)
lec45_in_gg(x0, x1)
U22_gga(x0, x1, x2, x3, x4)
gtc62_in_gg(x0, x1)
U24_gga(x0, x1, x2, x3, x4)
U25_gg(x0, x1, x2)
U26_gg(x0, x1, x2)

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

(50) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MERGESORT1_IN_GA(.(T10, .(T11, .(T139, T140)))) → U14_GA(T10, T11, T139, T140, splitc74_in_gaa(T140))
U14_GA(T10, T11, T139, T140, splitc74_out_gaa(T140, T141, T142)) → U16_GA(T10, T11, T139, T140, T141, mergesortc1_in_ga(.(T10, .(T139, T142))))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + x2   
POL(0) = 1   
POL(MERGESORT1_IN_GA(x1)) = x1   
POL(U14_GA(x1, x2, x3, x4, x5)) = 1 + x5   
POL(U16_GA(x1, x2, x3, x4, x5, x6)) = 1 + x5   
POL(U21_gga(x1, x2, x3, x4, x5)) = 0   
POL(U22_gga(x1, x2, x3, x4, x5)) = 0   
POL(U23_gga(x1, x2, x3, x4, x5)) = 0   
POL(U24_gga(x1, x2, x3, x4, x5)) = 0   
POL(U25_gg(x1, x2, x3)) = 1   
POL(U26_gg(x1, x2, x3)) = 0   
POL(U27_gaa(x1, x2, x3)) = 1 + x3   
POL(U28_ga(x1, x2, x3)) = 0   
POL(U29_ga(x1, x2, x3, x4)) = 0   
POL(U30_ga(x1, x2, x3)) = 0   
POL(U31_ga(x1, x2, x3, x4, x5)) = 0   
POL(U32_ga(x1, x2, x3, x4, x5, x6)) = 0   
POL(U33_ga(x1, x2, x3, x4, x5, x6)) = 0   
POL(U34_ga(x1, x2, x3, x4, x5)) = 0   
POL([]) = 0   
POL(gtc62_in_gg(x1, x2)) = 0   
POL(gtc62_out_gg(x1, x2)) = 0   
POL(lec45_in_gg(x1, x2)) = 1 + x1   
POL(lec45_out_gg(x1, x2)) = 1   
POL(mergec29_in_gga(x1, x2)) = 0   
POL(mergec29_out_gga(x1, x2, x3)) = 0   
POL(mergesortc19_in_ga(x1)) = 0   
POL(mergesortc19_out_ga(x1, x2)) = 0   
POL(mergesortc1_in_ga(x1)) = 0   
POL(mergesortc1_out_ga(x1, x2)) = 0   
POL(s(x1)) = 1 + x1   
POL(splitc74_in_gaa(x1)) = 1 + x1   
POL(splitc74_out_gaa(x1, x2, x3)) = 1 + x2 + x3   

The following usable rules [FROCOS05] were oriented:

splitc74_in_gaa([]) → splitc74_out_gaa([], [], [])
splitc74_in_gaa(.(T147, T148)) → U27_gaa(T147, T148, splitc74_in_gaa(T148))
U27_gaa(T147, T148, splitc74_out_gaa(T148, X202, X201)) → splitc74_out_gaa(.(T147, T148), .(T147, X201), X202)

(51) Obligation:

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

U14_GA(T10, T11, T139, T140, splitc74_out_gaa(T140, T141, T142)) → MERGESORT1_IN_GA(.(T10, .(T139, T142)))
U16_GA(T10, T11, T139, T140, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → MERGESORT1_IN_GA(.(T11, T141))

The TRS R consists of the following rules:

splitc74_in_gaa([]) → splitc74_out_gaa([], [], [])
splitc74_in_gaa(.(T147, T148)) → U27_gaa(T147, T148, splitc74_in_gaa(T148))
mergesortc1_in_ga(.(T10, .(T11, []))) → U28_ga(T10, T11, mergesortc19_in_ga(T10))
mergesortc1_in_ga(.(T10, .(T11, .(T139, T140)))) → U31_ga(T10, T11, T139, T140, splitc74_in_gaa(T140))
U27_gaa(T147, T148, splitc74_out_gaa(T148, X202, X201)) → splitc74_out_gaa(.(T147, T148), .(T147, X201), X202)
U28_ga(T10, T11, mergesortc19_out_ga(T10, T18)) → U29_ga(T10, T11, T18, mergesortc19_in_ga(T11))
U31_ga(T10, T11, T139, T140, splitc74_out_gaa(T140, T141, T142)) → U32_ga(T10, T11, T139, T140, T141, mergesortc1_in_ga(.(T10, .(T139, T142))))
mergesortc19_in_ga(T24) → mergesortc19_out_ga(T24, .(T24, []))
U29_ga(T10, T11, T18, mergesortc19_out_ga(T11, T29)) → U30_ga(T10, T11, mergec29_in_gga(T18, T29))
U32_ga(T10, T11, T139, T140, T141, mergesortc1_out_ga(.(T10, .(T139, T142)), T154)) → U33_ga(T10, T11, T139, T140, T154, mergesortc1_in_ga(.(T11, T141)))
U30_ga(T10, T11, mergec29_out_gga(T18, T29, T14)) → mergesortc1_out_ga(.(T10, .(T11, [])), T14)
U33_ga(T10, T11, T139, T140, T154, mergesortc1_out_ga(.(T11, T141), T162)) → U34_ga(T10, T11, T139, T140, mergec29_in_gga(T154, T162))
mergec29_in_gga(T37, []) → mergec29_out_gga(T37, [], T37)
mergec29_in_gga([], T42) → mergec29_out_gga([], T42, T42)
mergec29_in_gga(.(T63, T64), .(T65, T66)) → U21_gga(T63, T64, T65, T66, lec45_in_gg(T63, T65))
mergec29_in_gga(.(T106, T107), .(T108, T109)) → U23_gga(T106, T107, T108, T109, gtc62_in_gg(T106, T108))
mergesortc1_in_ga(.(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
U34_ga(T10, T11, T139, T140, mergec29_out_gga(T154, T162, T14)) → mergesortc1_out_ga(.(T10, .(T11, .(T139, T140))), T14)
U21_gga(T63, T64, T65, T66, lec45_out_gg(T63, T65)) → U22_gga(T63, T64, T65, T66, mergec29_in_gga(T64, .(T65, T66)))
U23_gga(T106, T107, T108, T109, gtc62_out_gg(T106, T108)) → U24_gga(T106, T107, T108, T109, mergec29_in_gga(.(T106, T107), T109))
lec45_in_gg(s(T81), s(T82)) → U25_gg(T81, T82, lec45_in_gg(T81, T82))
lec45_in_gg(0, s(T89)) → lec45_out_gg(0, s(T89))
lec45_in_gg(0, 0) → lec45_out_gg(0, 0)
U22_gga(T63, T64, T65, T66, mergec29_out_gga(T64, .(T65, T66), T68)) → mergec29_out_gga(.(T63, T64), .(T65, T66), .(T63, T68))
gtc62_in_gg(s(T124), s(T125)) → U26_gg(T124, T125, gtc62_in_gg(T124, T125))
gtc62_in_gg(s(T130), 0) → gtc62_out_gg(s(T130), 0)
U24_gga(T106, T107, T108, T109, mergec29_out_gga(.(T106, T107), T109, T111)) → mergec29_out_gga(.(T106, T107), .(T108, T109), .(T108, T111))
U25_gg(T81, T82, lec45_out_gg(T81, T82)) → lec45_out_gg(s(T81), s(T82))
U26_gg(T124, T125, gtc62_out_gg(T124, T125)) → gtc62_out_gg(s(T124), s(T125))

The set Q consists of the following terms:

splitc74_in_gaa(x0)
mergesortc1_in_ga(x0)
U27_gaa(x0, x1, x2)
U28_ga(x0, x1, x2)
U31_ga(x0, x1, x2, x3, x4)
mergesortc19_in_ga(x0)
U29_ga(x0, x1, x2, x3)
U32_ga(x0, x1, x2, x3, x4, x5)
U30_ga(x0, x1, x2)
U33_ga(x0, x1, x2, x3, x4, x5)
mergec29_in_gga(x0, x1)
U34_ga(x0, x1, x2, x3, x4)
U21_gga(x0, x1, x2, x3, x4)
U23_gga(x0, x1, x2, x3, x4)
lec45_in_gg(x0, x1)
U22_gga(x0, x1, x2, x3, x4)
gtc62_in_gg(x0, x1)
U24_gga(x0, x1, x2, x3, x4)
U25_gg(x0, x1, x2)
U26_gg(x0, x1, x2)

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

(52) DependencyGraphProof (EQUIVALENT transformation)

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

(53) TRUE