(0) Obligation:

Clauses:

mergesort([], []).
mergesort(.(X, []), .(X, [])).
mergesort(.(X, .(Y, Xs)), Ys) :- ','(split(.(X, .(Y, Xs)), X1s, X2s), ','(mergesort(X1s, Y1s), ','(mergesort(X2s, Y2s), merge(Y1s, Y2s, Ys)))).
split([], [], []).
split(.(X, Xs), .(X, Ys), Zs) :- split(Xs, Zs, Ys).
merge([], Xs, Xs).
merge(Xs, [], Xs).
merge(.(X, Xs), .(Y, Ys), .(X, Zs)) :- ','(=(X, Y), merge(.(X, Xs), Ys, Zs)).

Queries:

mergesort(g,a).

(1) PredefinedPredicateTransformerProof (SOUND transformation)

Added definitions of predefined predicates [PROLOG].

(2) Obligation:

Clauses:

mergesort([], []).
mergesort(.(X, []), .(X, [])).
mergesort(.(X, .(Y, Xs)), Ys) :- ','(split(.(X, .(Y, Xs)), X1s, X2s), ','(mergesort(X1s, Y1s), ','(mergesort(X2s, Y2s), merge(Y1s, Y2s, Ys)))).
split([], [], []).
split(.(X, Xs), .(X, Ys), Zs) :- split(Xs, Zs, Ys).
merge([], Xs, Xs).
merge(Xs, [], Xs).
merge(.(X, Xs), .(Y, Ys), .(X, Zs)) :- ','(=(X, Y), merge(.(X, Xs), Ys, Zs)).
=(X, X).

Queries:

mergesort(g,a).

(3) BuiltinConflictTransformerProof (SOUND transformation)

Renamed defined predicates conflicting with built-in predicates [PROLOG].

(4) Obligation:

Clauses:

mergesort([], []).
mergesort(.(X, []), .(X, [])).
mergesort(.(X, .(Y, Xs)), Ys) :- ','(split(.(X, .(Y, Xs)), X1s, X2s), ','(mergesort(X1s, Y1s), ','(mergesort(X2s, Y2s), merge(Y1s, Y2s, Ys)))).
split([], [], []).
split(.(X, Xs), .(X, Ys), Zs) :- split(Xs, Zs, Ys).
merge([], Xs, Xs).
merge(Xs, [], Xs).
merge(.(X, Xs), .(Y, Ys), .(X, Zs)) :- ','(user_defined_=(X, Y), merge(.(X, Xs), Ys, Zs)).
user_defined_=(X, X).

Queries:

mergesort(g,a).

(5) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph.

(6) Obligation:

Triples:

split21(.(T42, T43), .(T42, X99), X100) :- split21(T43, X100, X99).
split17(T36, T37, .(T36, X81), X82) :- split21(T37, X82, X81).
mergesort32(.(T61, .(T62, T63)), X137) :- split17(T61, .(T62, T63), X133, X134).
mergesort32(.(T61, .(T62, T63)), X137) :- ','(splitc17(T61, .(T62, T63), T67, T68), mergesort32(T67, X135)).
mergesort32(.(T61, .(T62, T63)), X137) :- ','(splitc17(T61, .(T62, T63), T67, T68), ','(mergesortc32(T67, T72), mergesort32(T68, X136))).
mergesort32(.(T61, .(T62, T63)), .(T104, X185)) :- ','(splitc17(T61, .(T62, T63), T67, T68), ','(mergesortc32(T67, .(T104, T95)), ','(mergesortc32(T68, .(T104, T97)), merge33(.(T104, T95), T97, X185)))).
merge33(.(T143, T132), .(T143, T134), .(T143, T136)) :- merge33(.(T143, T132), T134, T136).
mergesort1(.(T23, .(T24, T25)), T14) :- split17(T24, T25, X52, X51).
mergesort1(.(T23, .(T24, T25)), T14) :- ','(splitc17(T24, T25, T28, T29), mergesort1(.(T23, T29), X23)).
mergesort1(.(T23, .(T24, T25)), T14) :- ','(splitc17(T24, T25, T28, T29), ','(mergesortc1(.(T23, T29), T46), mergesort32(T28, X24))).
mergesort1(.(T23, .(T24, T25)), T14) :- ','(splitc17(T24, T25, T28, T29), ','(mergesortc1(.(T23, T29), T46), ','(mergesortc32(T28, T49), merge33(T46, T49, T14)))).

Clauses:

splitc21([], [], []).
splitc21(.(T42, T43), .(T42, X99), X100) :- splitc21(T43, X100, X99).
mergesortc1([], []).
mergesortc1(.(T4, []), .(T4, [])).
mergesortc1(.(T23, .(T24, T25)), T14) :- ','(splitc17(T24, T25, T28, T29), ','(mergesortc1(.(T23, T29), T46), ','(mergesortc32(T28, T49), mergec33(T46, T49, T14)))).
splitc17(T36, T37, .(T36, X81), X82) :- splitc21(T37, X82, X81).
mergesortc32([], []).
mergesortc32(.(T54, []), .(T54, [])).
mergesortc32(.(T61, .(T62, T63)), T80) :- ','(splitc17(T61, .(T62, T63), T67, T68), ','(mergesortc32(T67, []), mergesortc32(T68, T80))).
mergesortc32(.(T61, .(T62, T63)), T85) :- ','(splitc17(T61, .(T62, T63), T67, T68), ','(mergesortc32(T67, T85), mergesortc32(T68, []))).
mergesortc32(.(T61, .(T62, T63)), .(T104, X185)) :- ','(splitc17(T61, .(T62, T63), T67, T68), ','(mergesortc32(T67, .(T104, T95)), ','(mergesortc32(T68, .(T104, T97)), mergec33(.(T104, T95), T97, X185)))).
mergec33([], T115, T115).
mergec33(T120, [], T120).
mergec33(.(T143, T132), .(T143, T134), .(T143, T136)) :- mergec33(.(T143, T132), T134, T136).

Afs:

mergesort1(x1, x2)  =  mergesort1(x1)

(7) 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)
split17_in: (f,b,f,f)
split21_in: (b,f,f)
splitc17_in: (f,b,f,f)
splitc21_in: (b,f,f)
mergesortc1_in: (b,f)
mergesortc32_in: (b,f) (b,b)
mergec33_in: (b,b,f) (b,b,b)
mergesort32_in: (b,f)
merge33_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(.(T23, .(T24, T25)), T14) → U13_GA(T23, T24, T25, T14, split17_in_agaa(T24, T25, X52, X51))
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → SPLIT17_IN_AGAA(T24, T25, X52, X51)
SPLIT17_IN_AGAA(T36, T37, .(T36, X81), X82) → U2_AGAA(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
SPLIT17_IN_AGAA(T36, T37, .(T36, X81), X82) → SPLIT21_IN_GAA(T37, X82, X81)
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → U1_GAA(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U14_GA(T23, T24, T25, T14, splitc17_in_agaa(T24, T25, T28, T29))
U14_GA(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → U15_GA(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U14_GA(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)
U14_GA(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → U16_GA(T23, T24, T25, T14, T28, mergesortc1_in_ga(.(T23, T29), T46))
U16_GA(T23, T24, T25, T14, T28, mergesortc1_out_ga(.(T23, T29), T46)) → U17_GA(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
U16_GA(T23, T24, T25, T14, T28, mergesortc1_out_ga(.(T23, T29), T46)) → MERGESORT32_IN_GA(T28, X24)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U3_GA(T61, T62, T63, X137, split17_in_agaa(T61, .(T62, T63), X133, X134))
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → SPLIT17_IN_AGAA(T61, .(T62, T63), X133, X134)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U5_GA(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U4_GA(T61, T62, T63, X137, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), .(T104, X185)) → U8_GA(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U8_GA(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U9_GA(T61, T62, T63, T104, X185, T68, mergesortc32_in_ga(T67, .(T104, T95)))
U9_GA(T61, T62, T63, T104, X185, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U10_GA(T61, T62, T63, T104, X185, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U10_GA(T61, T62, T63, T104, X185, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U11_GA(T61, T62, T63, T104, X185, merge33_in_gga(.(T104, T95), T97, X185))
U10_GA(T61, T62, T63, T104, X185, T95, mergesortc32_out_ga(T68, .(T104, T97))) → MERGE33_IN_GGA(.(T104, T95), T97, X185)
MERGE33_IN_GGA(.(T143, T132), .(T143, T134), .(T143, T136)) → U12_GGA(T143, T132, T134, T136, merge33_in_gga(.(T143, T132), T134, T136))
MERGE33_IN_GGA(.(T143, T132), .(T143, T134), .(T143, T136)) → MERGE33_IN_GGA(.(T143, T132), T134, T136)
U4_GA(T61, T62, T63, X137, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesortc32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesortc32_out_ga(T67, T72)) → U7_GA(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U6_GA(T61, T62, T63, X137, T68, mergesortc32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)
U16_GA(T23, T24, T25, T14, T28, mergesortc1_out_ga(.(T23, T29), T46)) → U18_GA(T23, T24, T25, T14, T46, mergesortc32_in_ga(T28, T49))
U18_GA(T23, T24, T25, T14, T46, mergesortc32_out_ga(T28, T49)) → U19_GA(T23, T24, T25, T14, merge33_in_gga(T46, T49, T14))
U18_GA(T23, T24, T25, T14, T46, mergesortc32_out_ga(T28, T49)) → MERGE33_IN_GGA(T46, T49, T14)

The TRS R consists of the following rules:

splitc17_in_agaa(T36, T37, .(T36, X81), X82) → U26_agaa(T36, T37, X81, X82, splitc21_in_gaa(T37, X82, X81))
splitc21_in_gaa([], [], []) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T42, T43), .(T42, X99), X100) → U21_gaa(T42, T43, X99, X100, splitc21_in_gaa(T43, X100, X99))
U21_gaa(T42, T43, X99, X100, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T42, T43), .(T42, X99), X100)
U26_agaa(T36, T37, X81, X82, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T36, T37, .(T36, X81), X82)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T23, .(T24, T25)), T14) → U22_ga(T23, T24, T25, T14, splitc17_in_agaa(T24, T25, T28, T29))
U22_ga(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_in_ga(.(T23, T29), T46))
U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_out_ga(.(T23, T29), T46)) → U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_in_ga(T28, T49))
mergesortc32_in_ga([], []) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.(T54, []), .(T54, [])) → mergesortc32_out_ga(.(T54, []), .(T54, []))
mergesortc32_in_ga(.(T61, .(T62, T63)), T80) → U27_ga(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_ga(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(T54, []), .(T54, [])) → mergesortc32_out_gg(.(T54, []), .(T54, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T80) → U27_gg(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_gg(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T85) → U30_gg(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_gg(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_in_gg(T67, T85))
mergesortc32_in_gg(.(T61, .(T62, T63)), .(T104, X185)) → U33_gg(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_gg(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
mergesortc32_in_ga(.(T61, .(T62, T63)), T85) → U30_ga(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_ga(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_in_ga(T67, T85))
mergesortc32_in_ga(.(T61, .(T62, T63)), .(T104, X185)) → U33_ga(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_ga(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_ga(T61, T62, T63, T104, X185, mergec33_in_gga(.(T104, T95), T97, X185))
mergec33_in_gga([], T115, T115) → mergec33_out_gga([], T115, T115)
mergec33_in_gga(T120, [], T120) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_gga(T143, T132, T134, T136, mergec33_in_gga(.(T143, T132), T134, T136))
U37_gga(T143, T132, T134, T136, mergec33_out_gga(.(T143, T132), T134, T136)) → mergec33_out_gga(.(T143, T132), .(T143, T134), .(T143, T136))
U36_ga(T61, T62, T63, T104, X185, mergec33_out_gga(.(T104, T95), T97, X185)) → mergesortc32_out_ga(.(T61, .(T62, T63)), .(T104, X185))
U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_ga(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(T61, .(T62, T63)), T85)
U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_gg(T61, T62, T63, T104, X185, mergec33_in_ggg(.(T104, T95), T97, X185))
mergec33_in_ggg([], T115, T115) → mergec33_out_ggg([], T115, T115)
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_ggg(T143, T132, T134, T136, mergec33_in_ggg(.(T143, T132), T134, T136))
U37_ggg(T143, T132, T134, T136, mergec33_out_ggg(.(T143, T132), T134, T136)) → mergec33_out_ggg(.(T143, T132), .(T143, T134), .(T143, T136))
U36_gg(T61, T62, T63, T104, X185, mergec33_out_ggg(.(T104, T95), T97, X185)) → mergesortc32_out_gg(.(T61, .(T62, T63)), .(T104, X185))
U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_gg(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(T61, .(T62, T63)), T85)
U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T61, T62, T63, T80, mergesortc32_in_gg(T68, T80))
U29_gg(T61, T62, T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(T61, .(T62, T63)), T80)
U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T61, T62, T63, T80, mergesortc32_in_ga(T68, T80))
U29_ga(T61, T62, T63, T80, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(T61, .(T62, T63)), T80)
U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_out_ga(T28, T49)) → U25_ga(T23, T24, T25, T14, mergec33_in_gga(T46, T49, T14))
U25_ga(T23, T24, T25, T14, mergec33_out_gga(T46, T49, T14)) → mergesortc1_out_ga(.(T23, .(T24, T25)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
.(x1, x2)  =  .(x2)
split21_in_gaa(x1, x2, x3)  =  split21_in_gaa(x1)
splitc21_in_gaa(x1, x2, x3)  =  splitc21_in_gaa(x1)
[]  =  []
splitc21_out_gaa(x1, x2, x3)  =  splitc21_out_gaa(x1, x2, x3)
U21_gaa(x1, x2, x3, x4, x5)  =  U21_gaa(x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x3, x5)
U23_ga(x1, x2, x3, x4, x5, x6, x7)  =  U23_ga(x3, x5, x7)
U24_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U24_ga(x3, x7, x8)
mergesortc32_in_ga(x1, x2)  =  mergesortc32_in_ga(x1)
mergesortc32_out_ga(x1, x2)  =  mergesortc32_out_ga(x1, x2)
U27_ga(x1, x2, x3, x4, x5)  =  U27_ga(x3, x5)
U28_ga(x1, x2, x3, x4, x5, x6, x7)  =  U28_ga(x3, x6, x7)
mergesortc32_in_gg(x1, x2)  =  mergesortc32_in_gg(x1, x2)
mergesortc32_out_gg(x1, x2)  =  mergesortc32_out_gg(x1, x2)
U27_gg(x1, x2, x3, x4, x5)  =  U27_gg(x3, x4, x5)
U28_gg(x1, x2, x3, x4, x5, x6, x7)  =  U28_gg(x3, x4, x6, x7)
U30_gg(x1, x2, x3, x4, x5)  =  U30_gg(x3, x4, x5)
U31_gg(x1, x2, x3, x4, x5, x6, x7)  =  U31_gg(x3, x4, x6, x7)
U33_gg(x1, x2, x3, x4, x5, x6)  =  U33_gg(x3, x5, x6)
U34_gg(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_gg(x3, x5, x7, x8)
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x3, x5)
U31_ga(x1, x2, x3, x4, x5, x6, x7)  =  U31_ga(x3, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6)  =  U33_ga(x3, x6)
U34_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_ga(x3, x7, x8)
split17_in_agaa(x1, x2, x3, x4)  =  split17_in_agaa(x2)
splitc17_in_agaa(x1, x2, x3, x4)  =  splitc17_in_agaa(x2)
U26_agaa(x1, x2, x3, x4, x5)  =  U26_agaa(x2, x5)
splitc17_out_agaa(x1, x2, x3, x4)  =  splitc17_out_agaa(x2, x3, x4)
U35_ga(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_ga(x3, x8, x9)
U36_ga(x1, x2, x3, x4, x5, x6)  =  U36_ga(x3, x6)
mergec33_in_gga(x1, x2, x3)  =  mergec33_in_gga(x1, x2)
mergec33_out_gga(x1, x2, x3)  =  mergec33_out_gga(x1, x2, x3)
U37_gga(x1, x2, x3, x4, x5)  =  U37_gga(x2, x3, x5)
U32_ga(x1, x2, x3, x4, x5)  =  U32_ga(x3, x4, x5)
U35_gg(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_gg(x3, x5, x8, x9)
U36_gg(x1, x2, x3, x4, x5, x6)  =  U36_gg(x3, x5, x6)
mergec33_in_ggg(x1, x2, x3)  =  mergec33_in_ggg(x1, x2, x3)
mergec33_out_ggg(x1, x2, x3)  =  mergec33_out_ggg(x1, x2, x3)
U37_ggg(x1, x2, x3, x4, x5)  =  U37_ggg(x2, x3, x4, x5)
U32_gg(x1, x2, x3, x4, x5)  =  U32_gg(x3, x4, x5)
U29_gg(x1, x2, x3, x4, x5)  =  U29_gg(x3, x4, x5)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x3, x5)
U25_ga(x1, x2, x3, x4, x5)  =  U25_ga(x3, x5)
mergesort32_in_ga(x1, x2)  =  mergesort32_in_ga(x1)
merge33_in_gga(x1, x2, x3)  =  merge33_in_gga(x1, x2)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U13_GA(x1, x2, x3, x4, x5)  =  U13_GA(x3, x5)
SPLIT17_IN_AGAA(x1, x2, x3, x4)  =  SPLIT17_IN_AGAA(x2)
U2_AGAA(x1, x2, x3, x4, x5)  =  U2_AGAA(x2, x5)
SPLIT21_IN_GAA(x1, x2, x3)  =  SPLIT21_IN_GAA(x1)
U1_GAA(x1, x2, x3, x4, x5)  =  U1_GAA(x2, x5)
U14_GA(x1, x2, x3, x4, x5)  =  U14_GA(x3, x5)
U15_GA(x1, x2, x3, x4, x5)  =  U15_GA(x3, x5)
U16_GA(x1, x2, x3, x4, x5, x6)  =  U16_GA(x3, x5, x6)
U17_GA(x1, x2, x3, x4, x5)  =  U17_GA(x3, x5)
MERGESORT32_IN_GA(x1, x2)  =  MERGESORT32_IN_GA(x1)
U3_GA(x1, x2, x3, x4, x5)  =  U3_GA(x3, x5)
U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x3, x5)
U5_GA(x1, x2, x3, x4, x5)  =  U5_GA(x3, x5)
U8_GA(x1, x2, x3, x4, x5, x6)  =  U8_GA(x3, x6)
U9_GA(x1, x2, x3, x4, x5, x6, x7)  =  U9_GA(x3, x6, x7)
U10_GA(x1, x2, x3, x4, x5, x6, x7)  =  U10_GA(x3, x6, x7)
U11_GA(x1, x2, x3, x4, x5, x6)  =  U11_GA(x3, x6)
MERGE33_IN_GGA(x1, x2, x3)  =  MERGE33_IN_GGA(x1, x2)
U12_GGA(x1, x2, x3, x4, x5)  =  U12_GGA(x2, x3, x5)
U6_GA(x1, x2, x3, x4, x5, x6)  =  U6_GA(x3, x5, x6)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x3, x5)
U18_GA(x1, x2, x3, x4, x5, x6)  =  U18_GA(x3, x5, x6)
U19_GA(x1, x2, x3, x4, x5)  =  U19_GA(x3, x5)

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

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(8) Obligation:

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

MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U13_GA(T23, T24, T25, T14, split17_in_agaa(T24, T25, X52, X51))
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → SPLIT17_IN_AGAA(T24, T25, X52, X51)
SPLIT17_IN_AGAA(T36, T37, .(T36, X81), X82) → U2_AGAA(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
SPLIT17_IN_AGAA(T36, T37, .(T36, X81), X82) → SPLIT21_IN_GAA(T37, X82, X81)
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → U1_GAA(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U14_GA(T23, T24, T25, T14, splitc17_in_agaa(T24, T25, T28, T29))
U14_GA(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → U15_GA(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U14_GA(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)
U14_GA(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → U16_GA(T23, T24, T25, T14, T28, mergesortc1_in_ga(.(T23, T29), T46))
U16_GA(T23, T24, T25, T14, T28, mergesortc1_out_ga(.(T23, T29), T46)) → U17_GA(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
U16_GA(T23, T24, T25, T14, T28, mergesortc1_out_ga(.(T23, T29), T46)) → MERGESORT32_IN_GA(T28, X24)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U3_GA(T61, T62, T63, X137, split17_in_agaa(T61, .(T62, T63), X133, X134))
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → SPLIT17_IN_AGAA(T61, .(T62, T63), X133, X134)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U5_GA(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U4_GA(T61, T62, T63, X137, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), .(T104, X185)) → U8_GA(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U8_GA(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U9_GA(T61, T62, T63, T104, X185, T68, mergesortc32_in_ga(T67, .(T104, T95)))
U9_GA(T61, T62, T63, T104, X185, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U10_GA(T61, T62, T63, T104, X185, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U10_GA(T61, T62, T63, T104, X185, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U11_GA(T61, T62, T63, T104, X185, merge33_in_gga(.(T104, T95), T97, X185))
U10_GA(T61, T62, T63, T104, X185, T95, mergesortc32_out_ga(T68, .(T104, T97))) → MERGE33_IN_GGA(.(T104, T95), T97, X185)
MERGE33_IN_GGA(.(T143, T132), .(T143, T134), .(T143, T136)) → U12_GGA(T143, T132, T134, T136, merge33_in_gga(.(T143, T132), T134, T136))
MERGE33_IN_GGA(.(T143, T132), .(T143, T134), .(T143, T136)) → MERGE33_IN_GGA(.(T143, T132), T134, T136)
U4_GA(T61, T62, T63, X137, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesortc32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesortc32_out_ga(T67, T72)) → U7_GA(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U6_GA(T61, T62, T63, X137, T68, mergesortc32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)
U16_GA(T23, T24, T25, T14, T28, mergesortc1_out_ga(.(T23, T29), T46)) → U18_GA(T23, T24, T25, T14, T46, mergesortc32_in_ga(T28, T49))
U18_GA(T23, T24, T25, T14, T46, mergesortc32_out_ga(T28, T49)) → U19_GA(T23, T24, T25, T14, merge33_in_gga(T46, T49, T14))
U18_GA(T23, T24, T25, T14, T46, mergesortc32_out_ga(T28, T49)) → MERGE33_IN_GGA(T46, T49, T14)

The TRS R consists of the following rules:

splitc17_in_agaa(T36, T37, .(T36, X81), X82) → U26_agaa(T36, T37, X81, X82, splitc21_in_gaa(T37, X82, X81))
splitc21_in_gaa([], [], []) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T42, T43), .(T42, X99), X100) → U21_gaa(T42, T43, X99, X100, splitc21_in_gaa(T43, X100, X99))
U21_gaa(T42, T43, X99, X100, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T42, T43), .(T42, X99), X100)
U26_agaa(T36, T37, X81, X82, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T36, T37, .(T36, X81), X82)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T23, .(T24, T25)), T14) → U22_ga(T23, T24, T25, T14, splitc17_in_agaa(T24, T25, T28, T29))
U22_ga(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_in_ga(.(T23, T29), T46))
U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_out_ga(.(T23, T29), T46)) → U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_in_ga(T28, T49))
mergesortc32_in_ga([], []) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.(T54, []), .(T54, [])) → mergesortc32_out_ga(.(T54, []), .(T54, []))
mergesortc32_in_ga(.(T61, .(T62, T63)), T80) → U27_ga(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_ga(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(T54, []), .(T54, [])) → mergesortc32_out_gg(.(T54, []), .(T54, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T80) → U27_gg(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_gg(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T85) → U30_gg(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_gg(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_in_gg(T67, T85))
mergesortc32_in_gg(.(T61, .(T62, T63)), .(T104, X185)) → U33_gg(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_gg(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
mergesortc32_in_ga(.(T61, .(T62, T63)), T85) → U30_ga(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_ga(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_in_ga(T67, T85))
mergesortc32_in_ga(.(T61, .(T62, T63)), .(T104, X185)) → U33_ga(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_ga(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_ga(T61, T62, T63, T104, X185, mergec33_in_gga(.(T104, T95), T97, X185))
mergec33_in_gga([], T115, T115) → mergec33_out_gga([], T115, T115)
mergec33_in_gga(T120, [], T120) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_gga(T143, T132, T134, T136, mergec33_in_gga(.(T143, T132), T134, T136))
U37_gga(T143, T132, T134, T136, mergec33_out_gga(.(T143, T132), T134, T136)) → mergec33_out_gga(.(T143, T132), .(T143, T134), .(T143, T136))
U36_ga(T61, T62, T63, T104, X185, mergec33_out_gga(.(T104, T95), T97, X185)) → mergesortc32_out_ga(.(T61, .(T62, T63)), .(T104, X185))
U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_ga(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(T61, .(T62, T63)), T85)
U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_gg(T61, T62, T63, T104, X185, mergec33_in_ggg(.(T104, T95), T97, X185))
mergec33_in_ggg([], T115, T115) → mergec33_out_ggg([], T115, T115)
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_ggg(T143, T132, T134, T136, mergec33_in_ggg(.(T143, T132), T134, T136))
U37_ggg(T143, T132, T134, T136, mergec33_out_ggg(.(T143, T132), T134, T136)) → mergec33_out_ggg(.(T143, T132), .(T143, T134), .(T143, T136))
U36_gg(T61, T62, T63, T104, X185, mergec33_out_ggg(.(T104, T95), T97, X185)) → mergesortc32_out_gg(.(T61, .(T62, T63)), .(T104, X185))
U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_gg(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(T61, .(T62, T63)), T85)
U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T61, T62, T63, T80, mergesortc32_in_gg(T68, T80))
U29_gg(T61, T62, T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(T61, .(T62, T63)), T80)
U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T61, T62, T63, T80, mergesortc32_in_ga(T68, T80))
U29_ga(T61, T62, T63, T80, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(T61, .(T62, T63)), T80)
U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_out_ga(T28, T49)) → U25_ga(T23, T24, T25, T14, mergec33_in_gga(T46, T49, T14))
U25_ga(T23, T24, T25, T14, mergec33_out_gga(T46, T49, T14)) → mergesortc1_out_ga(.(T23, .(T24, T25)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
.(x1, x2)  =  .(x2)
split21_in_gaa(x1, x2, x3)  =  split21_in_gaa(x1)
splitc21_in_gaa(x1, x2, x3)  =  splitc21_in_gaa(x1)
[]  =  []
splitc21_out_gaa(x1, x2, x3)  =  splitc21_out_gaa(x1, x2, x3)
U21_gaa(x1, x2, x3, x4, x5)  =  U21_gaa(x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x3, x5)
U23_ga(x1, x2, x3, x4, x5, x6, x7)  =  U23_ga(x3, x5, x7)
U24_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U24_ga(x3, x7, x8)
mergesortc32_in_ga(x1, x2)  =  mergesortc32_in_ga(x1)
mergesortc32_out_ga(x1, x2)  =  mergesortc32_out_ga(x1, x2)
U27_ga(x1, x2, x3, x4, x5)  =  U27_ga(x3, x5)
U28_ga(x1, x2, x3, x4, x5, x6, x7)  =  U28_ga(x3, x6, x7)
mergesortc32_in_gg(x1, x2)  =  mergesortc32_in_gg(x1, x2)
mergesortc32_out_gg(x1, x2)  =  mergesortc32_out_gg(x1, x2)
U27_gg(x1, x2, x3, x4, x5)  =  U27_gg(x3, x4, x5)
U28_gg(x1, x2, x3, x4, x5, x6, x7)  =  U28_gg(x3, x4, x6, x7)
U30_gg(x1, x2, x3, x4, x5)  =  U30_gg(x3, x4, x5)
U31_gg(x1, x2, x3, x4, x5, x6, x7)  =  U31_gg(x3, x4, x6, x7)
U33_gg(x1, x2, x3, x4, x5, x6)  =  U33_gg(x3, x5, x6)
U34_gg(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_gg(x3, x5, x7, x8)
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x3, x5)
U31_ga(x1, x2, x3, x4, x5, x6, x7)  =  U31_ga(x3, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6)  =  U33_ga(x3, x6)
U34_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_ga(x3, x7, x8)
split17_in_agaa(x1, x2, x3, x4)  =  split17_in_agaa(x2)
splitc17_in_agaa(x1, x2, x3, x4)  =  splitc17_in_agaa(x2)
U26_agaa(x1, x2, x3, x4, x5)  =  U26_agaa(x2, x5)
splitc17_out_agaa(x1, x2, x3, x4)  =  splitc17_out_agaa(x2, x3, x4)
U35_ga(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_ga(x3, x8, x9)
U36_ga(x1, x2, x3, x4, x5, x6)  =  U36_ga(x3, x6)
mergec33_in_gga(x1, x2, x3)  =  mergec33_in_gga(x1, x2)
mergec33_out_gga(x1, x2, x3)  =  mergec33_out_gga(x1, x2, x3)
U37_gga(x1, x2, x3, x4, x5)  =  U37_gga(x2, x3, x5)
U32_ga(x1, x2, x3, x4, x5)  =  U32_ga(x3, x4, x5)
U35_gg(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_gg(x3, x5, x8, x9)
U36_gg(x1, x2, x3, x4, x5, x6)  =  U36_gg(x3, x5, x6)
mergec33_in_ggg(x1, x2, x3)  =  mergec33_in_ggg(x1, x2, x3)
mergec33_out_ggg(x1, x2, x3)  =  mergec33_out_ggg(x1, x2, x3)
U37_ggg(x1, x2, x3, x4, x5)  =  U37_ggg(x2, x3, x4, x5)
U32_gg(x1, x2, x3, x4, x5)  =  U32_gg(x3, x4, x5)
U29_gg(x1, x2, x3, x4, x5)  =  U29_gg(x3, x4, x5)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x3, x5)
U25_ga(x1, x2, x3, x4, x5)  =  U25_ga(x3, x5)
mergesort32_in_ga(x1, x2)  =  mergesort32_in_ga(x1)
merge33_in_gga(x1, x2, x3)  =  merge33_in_gga(x1, x2)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U13_GA(x1, x2, x3, x4, x5)  =  U13_GA(x3, x5)
SPLIT17_IN_AGAA(x1, x2, x3, x4)  =  SPLIT17_IN_AGAA(x2)
U2_AGAA(x1, x2, x3, x4, x5)  =  U2_AGAA(x2, x5)
SPLIT21_IN_GAA(x1, x2, x3)  =  SPLIT21_IN_GAA(x1)
U1_GAA(x1, x2, x3, x4, x5)  =  U1_GAA(x2, x5)
U14_GA(x1, x2, x3, x4, x5)  =  U14_GA(x3, x5)
U15_GA(x1, x2, x3, x4, x5)  =  U15_GA(x3, x5)
U16_GA(x1, x2, x3, x4, x5, x6)  =  U16_GA(x3, x5, x6)
U17_GA(x1, x2, x3, x4, x5)  =  U17_GA(x3, x5)
MERGESORT32_IN_GA(x1, x2)  =  MERGESORT32_IN_GA(x1)
U3_GA(x1, x2, x3, x4, x5)  =  U3_GA(x3, x5)
U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x3, x5)
U5_GA(x1, x2, x3, x4, x5)  =  U5_GA(x3, x5)
U8_GA(x1, x2, x3, x4, x5, x6)  =  U8_GA(x3, x6)
U9_GA(x1, x2, x3, x4, x5, x6, x7)  =  U9_GA(x3, x6, x7)
U10_GA(x1, x2, x3, x4, x5, x6, x7)  =  U10_GA(x3, x6, x7)
U11_GA(x1, x2, x3, x4, x5, x6)  =  U11_GA(x3, x6)
MERGE33_IN_GGA(x1, x2, x3)  =  MERGE33_IN_GGA(x1, x2)
U12_GGA(x1, x2, x3, x4, x5)  =  U12_GGA(x2, x3, x5)
U6_GA(x1, x2, x3, x4, x5, x6)  =  U6_GA(x3, x5, x6)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x3, x5)
U18_GA(x1, x2, x3, x4, x5, x6)  =  U18_GA(x3, x5, x6)
U19_GA(x1, x2, x3, x4, x5)  =  U19_GA(x3, x5)

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

(9) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 22 less nodes.

(10) Complex Obligation (AND)

(11) Obligation:

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

MERGE33_IN_GGA(.(T143, T132), .(T143, T134), .(T143, T136)) → MERGE33_IN_GGA(.(T143, T132), T134, T136)

The TRS R consists of the following rules:

splitc17_in_agaa(T36, T37, .(T36, X81), X82) → U26_agaa(T36, T37, X81, X82, splitc21_in_gaa(T37, X82, X81))
splitc21_in_gaa([], [], []) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T42, T43), .(T42, X99), X100) → U21_gaa(T42, T43, X99, X100, splitc21_in_gaa(T43, X100, X99))
U21_gaa(T42, T43, X99, X100, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T42, T43), .(T42, X99), X100)
U26_agaa(T36, T37, X81, X82, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T36, T37, .(T36, X81), X82)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T23, .(T24, T25)), T14) → U22_ga(T23, T24, T25, T14, splitc17_in_agaa(T24, T25, T28, T29))
U22_ga(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_in_ga(.(T23, T29), T46))
U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_out_ga(.(T23, T29), T46)) → U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_in_ga(T28, T49))
mergesortc32_in_ga([], []) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.(T54, []), .(T54, [])) → mergesortc32_out_ga(.(T54, []), .(T54, []))
mergesortc32_in_ga(.(T61, .(T62, T63)), T80) → U27_ga(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_ga(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(T54, []), .(T54, [])) → mergesortc32_out_gg(.(T54, []), .(T54, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T80) → U27_gg(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_gg(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T85) → U30_gg(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_gg(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_in_gg(T67, T85))
mergesortc32_in_gg(.(T61, .(T62, T63)), .(T104, X185)) → U33_gg(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_gg(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
mergesortc32_in_ga(.(T61, .(T62, T63)), T85) → U30_ga(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_ga(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_in_ga(T67, T85))
mergesortc32_in_ga(.(T61, .(T62, T63)), .(T104, X185)) → U33_ga(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_ga(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_ga(T61, T62, T63, T104, X185, mergec33_in_gga(.(T104, T95), T97, X185))
mergec33_in_gga([], T115, T115) → mergec33_out_gga([], T115, T115)
mergec33_in_gga(T120, [], T120) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_gga(T143, T132, T134, T136, mergec33_in_gga(.(T143, T132), T134, T136))
U37_gga(T143, T132, T134, T136, mergec33_out_gga(.(T143, T132), T134, T136)) → mergec33_out_gga(.(T143, T132), .(T143, T134), .(T143, T136))
U36_ga(T61, T62, T63, T104, X185, mergec33_out_gga(.(T104, T95), T97, X185)) → mergesortc32_out_ga(.(T61, .(T62, T63)), .(T104, X185))
U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_ga(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(T61, .(T62, T63)), T85)
U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_gg(T61, T62, T63, T104, X185, mergec33_in_ggg(.(T104, T95), T97, X185))
mergec33_in_ggg([], T115, T115) → mergec33_out_ggg([], T115, T115)
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_ggg(T143, T132, T134, T136, mergec33_in_ggg(.(T143, T132), T134, T136))
U37_ggg(T143, T132, T134, T136, mergec33_out_ggg(.(T143, T132), T134, T136)) → mergec33_out_ggg(.(T143, T132), .(T143, T134), .(T143, T136))
U36_gg(T61, T62, T63, T104, X185, mergec33_out_ggg(.(T104, T95), T97, X185)) → mergesortc32_out_gg(.(T61, .(T62, T63)), .(T104, X185))
U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_gg(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(T61, .(T62, T63)), T85)
U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T61, T62, T63, T80, mergesortc32_in_gg(T68, T80))
U29_gg(T61, T62, T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(T61, .(T62, T63)), T80)
U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T61, T62, T63, T80, mergesortc32_in_ga(T68, T80))
U29_ga(T61, T62, T63, T80, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(T61, .(T62, T63)), T80)
U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_out_ga(T28, T49)) → U25_ga(T23, T24, T25, T14, mergec33_in_gga(T46, T49, T14))
U25_ga(T23, T24, T25, T14, mergec33_out_gga(T46, T49, T14)) → mergesortc1_out_ga(.(T23, .(T24, T25)), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x2)
splitc21_in_gaa(x1, x2, x3)  =  splitc21_in_gaa(x1)
[]  =  []
splitc21_out_gaa(x1, x2, x3)  =  splitc21_out_gaa(x1, x2, x3)
U21_gaa(x1, x2, x3, x4, x5)  =  U21_gaa(x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x3, x5)
U23_ga(x1, x2, x3, x4, x5, x6, x7)  =  U23_ga(x3, x5, x7)
U24_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U24_ga(x3, x7, x8)
mergesortc32_in_ga(x1, x2)  =  mergesortc32_in_ga(x1)
mergesortc32_out_ga(x1, x2)  =  mergesortc32_out_ga(x1, x2)
U27_ga(x1, x2, x3, x4, x5)  =  U27_ga(x3, x5)
U28_ga(x1, x2, x3, x4, x5, x6, x7)  =  U28_ga(x3, x6, x7)
mergesortc32_in_gg(x1, x2)  =  mergesortc32_in_gg(x1, x2)
mergesortc32_out_gg(x1, x2)  =  mergesortc32_out_gg(x1, x2)
U27_gg(x1, x2, x3, x4, x5)  =  U27_gg(x3, x4, x5)
U28_gg(x1, x2, x3, x4, x5, x6, x7)  =  U28_gg(x3, x4, x6, x7)
U30_gg(x1, x2, x3, x4, x5)  =  U30_gg(x3, x4, x5)
U31_gg(x1, x2, x3, x4, x5, x6, x7)  =  U31_gg(x3, x4, x6, x7)
U33_gg(x1, x2, x3, x4, x5, x6)  =  U33_gg(x3, x5, x6)
U34_gg(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_gg(x3, x5, x7, x8)
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x3, x5)
U31_ga(x1, x2, x3, x4, x5, x6, x7)  =  U31_ga(x3, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6)  =  U33_ga(x3, x6)
U34_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_ga(x3, x7, x8)
splitc17_in_agaa(x1, x2, x3, x4)  =  splitc17_in_agaa(x2)
U26_agaa(x1, x2, x3, x4, x5)  =  U26_agaa(x2, x5)
splitc17_out_agaa(x1, x2, x3, x4)  =  splitc17_out_agaa(x2, x3, x4)
U35_ga(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_ga(x3, x8, x9)
U36_ga(x1, x2, x3, x4, x5, x6)  =  U36_ga(x3, x6)
mergec33_in_gga(x1, x2, x3)  =  mergec33_in_gga(x1, x2)
mergec33_out_gga(x1, x2, x3)  =  mergec33_out_gga(x1, x2, x3)
U37_gga(x1, x2, x3, x4, x5)  =  U37_gga(x2, x3, x5)
U32_ga(x1, x2, x3, x4, x5)  =  U32_ga(x3, x4, x5)
U35_gg(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_gg(x3, x5, x8, x9)
U36_gg(x1, x2, x3, x4, x5, x6)  =  U36_gg(x3, x5, x6)
mergec33_in_ggg(x1, x2, x3)  =  mergec33_in_ggg(x1, x2, x3)
mergec33_out_ggg(x1, x2, x3)  =  mergec33_out_ggg(x1, x2, x3)
U37_ggg(x1, x2, x3, x4, x5)  =  U37_ggg(x2, x3, x4, x5)
U32_gg(x1, x2, x3, x4, x5)  =  U32_gg(x3, x4, x5)
U29_gg(x1, x2, x3, x4, x5)  =  U29_gg(x3, x4, x5)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x3, x5)
U25_ga(x1, x2, x3, x4, x5)  =  U25_ga(x3, x5)
MERGE33_IN_GGA(x1, x2, x3)  =  MERGE33_IN_GGA(x1, x2)

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

(12) UsableRulesProof (EQUIVALENT transformation)

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

(13) Obligation:

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

MERGE33_IN_GGA(.(T143, T132), .(T143, T134), .(T143, T136)) → MERGE33_IN_GGA(.(T143, T132), T134, T136)

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

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

(14) PiDPToQDPProof (SOUND transformation)

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

(15) Obligation:

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

MERGE33_IN_GGA(.(T132), .(T134)) → MERGE33_IN_GGA(.(T132), T134)

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

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

  • MERGE33_IN_GGA(.(T132), .(T134)) → MERGE33_IN_GGA(.(T132), T134)
    The graph contains the following edges 1 >= 1, 2 > 2

(17) YES

(18) Obligation:

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

SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)

The TRS R consists of the following rules:

splitc17_in_agaa(T36, T37, .(T36, X81), X82) → U26_agaa(T36, T37, X81, X82, splitc21_in_gaa(T37, X82, X81))
splitc21_in_gaa([], [], []) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T42, T43), .(T42, X99), X100) → U21_gaa(T42, T43, X99, X100, splitc21_in_gaa(T43, X100, X99))
U21_gaa(T42, T43, X99, X100, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T42, T43), .(T42, X99), X100)
U26_agaa(T36, T37, X81, X82, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T36, T37, .(T36, X81), X82)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T23, .(T24, T25)), T14) → U22_ga(T23, T24, T25, T14, splitc17_in_agaa(T24, T25, T28, T29))
U22_ga(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_in_ga(.(T23, T29), T46))
U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_out_ga(.(T23, T29), T46)) → U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_in_ga(T28, T49))
mergesortc32_in_ga([], []) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.(T54, []), .(T54, [])) → mergesortc32_out_ga(.(T54, []), .(T54, []))
mergesortc32_in_ga(.(T61, .(T62, T63)), T80) → U27_ga(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_ga(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(T54, []), .(T54, [])) → mergesortc32_out_gg(.(T54, []), .(T54, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T80) → U27_gg(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_gg(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T85) → U30_gg(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_gg(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_in_gg(T67, T85))
mergesortc32_in_gg(.(T61, .(T62, T63)), .(T104, X185)) → U33_gg(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_gg(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
mergesortc32_in_ga(.(T61, .(T62, T63)), T85) → U30_ga(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_ga(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_in_ga(T67, T85))
mergesortc32_in_ga(.(T61, .(T62, T63)), .(T104, X185)) → U33_ga(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_ga(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_ga(T61, T62, T63, T104, X185, mergec33_in_gga(.(T104, T95), T97, X185))
mergec33_in_gga([], T115, T115) → mergec33_out_gga([], T115, T115)
mergec33_in_gga(T120, [], T120) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_gga(T143, T132, T134, T136, mergec33_in_gga(.(T143, T132), T134, T136))
U37_gga(T143, T132, T134, T136, mergec33_out_gga(.(T143, T132), T134, T136)) → mergec33_out_gga(.(T143, T132), .(T143, T134), .(T143, T136))
U36_ga(T61, T62, T63, T104, X185, mergec33_out_gga(.(T104, T95), T97, X185)) → mergesortc32_out_ga(.(T61, .(T62, T63)), .(T104, X185))
U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_ga(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(T61, .(T62, T63)), T85)
U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_gg(T61, T62, T63, T104, X185, mergec33_in_ggg(.(T104, T95), T97, X185))
mergec33_in_ggg([], T115, T115) → mergec33_out_ggg([], T115, T115)
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_ggg(T143, T132, T134, T136, mergec33_in_ggg(.(T143, T132), T134, T136))
U37_ggg(T143, T132, T134, T136, mergec33_out_ggg(.(T143, T132), T134, T136)) → mergec33_out_ggg(.(T143, T132), .(T143, T134), .(T143, T136))
U36_gg(T61, T62, T63, T104, X185, mergec33_out_ggg(.(T104, T95), T97, X185)) → mergesortc32_out_gg(.(T61, .(T62, T63)), .(T104, X185))
U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_gg(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(T61, .(T62, T63)), T85)
U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T61, T62, T63, T80, mergesortc32_in_gg(T68, T80))
U29_gg(T61, T62, T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(T61, .(T62, T63)), T80)
U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T61, T62, T63, T80, mergesortc32_in_ga(T68, T80))
U29_ga(T61, T62, T63, T80, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(T61, .(T62, T63)), T80)
U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_out_ga(T28, T49)) → U25_ga(T23, T24, T25, T14, mergec33_in_gga(T46, T49, T14))
U25_ga(T23, T24, T25, T14, mergec33_out_gga(T46, T49, T14)) → mergesortc1_out_ga(.(T23, .(T24, T25)), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x2)
splitc21_in_gaa(x1, x2, x3)  =  splitc21_in_gaa(x1)
[]  =  []
splitc21_out_gaa(x1, x2, x3)  =  splitc21_out_gaa(x1, x2, x3)
U21_gaa(x1, x2, x3, x4, x5)  =  U21_gaa(x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x3, x5)
U23_ga(x1, x2, x3, x4, x5, x6, x7)  =  U23_ga(x3, x5, x7)
U24_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U24_ga(x3, x7, x8)
mergesortc32_in_ga(x1, x2)  =  mergesortc32_in_ga(x1)
mergesortc32_out_ga(x1, x2)  =  mergesortc32_out_ga(x1, x2)
U27_ga(x1, x2, x3, x4, x5)  =  U27_ga(x3, x5)
U28_ga(x1, x2, x3, x4, x5, x6, x7)  =  U28_ga(x3, x6, x7)
mergesortc32_in_gg(x1, x2)  =  mergesortc32_in_gg(x1, x2)
mergesortc32_out_gg(x1, x2)  =  mergesortc32_out_gg(x1, x2)
U27_gg(x1, x2, x3, x4, x5)  =  U27_gg(x3, x4, x5)
U28_gg(x1, x2, x3, x4, x5, x6, x7)  =  U28_gg(x3, x4, x6, x7)
U30_gg(x1, x2, x3, x4, x5)  =  U30_gg(x3, x4, x5)
U31_gg(x1, x2, x3, x4, x5, x6, x7)  =  U31_gg(x3, x4, x6, x7)
U33_gg(x1, x2, x3, x4, x5, x6)  =  U33_gg(x3, x5, x6)
U34_gg(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_gg(x3, x5, x7, x8)
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x3, x5)
U31_ga(x1, x2, x3, x4, x5, x6, x7)  =  U31_ga(x3, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6)  =  U33_ga(x3, x6)
U34_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_ga(x3, x7, x8)
splitc17_in_agaa(x1, x2, x3, x4)  =  splitc17_in_agaa(x2)
U26_agaa(x1, x2, x3, x4, x5)  =  U26_agaa(x2, x5)
splitc17_out_agaa(x1, x2, x3, x4)  =  splitc17_out_agaa(x2, x3, x4)
U35_ga(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_ga(x3, x8, x9)
U36_ga(x1, x2, x3, x4, x5, x6)  =  U36_ga(x3, x6)
mergec33_in_gga(x1, x2, x3)  =  mergec33_in_gga(x1, x2)
mergec33_out_gga(x1, x2, x3)  =  mergec33_out_gga(x1, x2, x3)
U37_gga(x1, x2, x3, x4, x5)  =  U37_gga(x2, x3, x5)
U32_ga(x1, x2, x3, x4, x5)  =  U32_ga(x3, x4, x5)
U35_gg(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_gg(x3, x5, x8, x9)
U36_gg(x1, x2, x3, x4, x5, x6)  =  U36_gg(x3, x5, x6)
mergec33_in_ggg(x1, x2, x3)  =  mergec33_in_ggg(x1, x2, x3)
mergec33_out_ggg(x1, x2, x3)  =  mergec33_out_ggg(x1, x2, x3)
U37_ggg(x1, x2, x3, x4, x5)  =  U37_ggg(x2, x3, x4, x5)
U32_gg(x1, x2, x3, x4, x5)  =  U32_gg(x3, x4, x5)
U29_gg(x1, x2, x3, x4, x5)  =  U29_gg(x3, x4, x5)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x3, x5)
U25_ga(x1, x2, x3, x4, x5)  =  U25_ga(x3, x5)
SPLIT21_IN_GAA(x1, x2, x3)  =  SPLIT21_IN_GAA(x1)

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

(19) UsableRulesProof (EQUIVALENT transformation)

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

(20) Obligation:

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

SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)

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

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

(21) PiDPToQDPProof (SOUND transformation)

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

(22) Obligation:

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

SPLIT21_IN_GAA(.(T43)) → SPLIT21_IN_GAA(T43)

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

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

  • SPLIT21_IN_GAA(.(T43)) → SPLIT21_IN_GAA(T43)
    The graph contains the following edges 1 > 1

(24) YES

(25) Obligation:

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

MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
U4_GA(T61, T62, T63, X137, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesortc32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesortc32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)

The TRS R consists of the following rules:

splitc17_in_agaa(T36, T37, .(T36, X81), X82) → U26_agaa(T36, T37, X81, X82, splitc21_in_gaa(T37, X82, X81))
splitc21_in_gaa([], [], []) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T42, T43), .(T42, X99), X100) → U21_gaa(T42, T43, X99, X100, splitc21_in_gaa(T43, X100, X99))
U21_gaa(T42, T43, X99, X100, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T42, T43), .(T42, X99), X100)
U26_agaa(T36, T37, X81, X82, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T36, T37, .(T36, X81), X82)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T23, .(T24, T25)), T14) → U22_ga(T23, T24, T25, T14, splitc17_in_agaa(T24, T25, T28, T29))
U22_ga(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_in_ga(.(T23, T29), T46))
U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_out_ga(.(T23, T29), T46)) → U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_in_ga(T28, T49))
mergesortc32_in_ga([], []) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.(T54, []), .(T54, [])) → mergesortc32_out_ga(.(T54, []), .(T54, []))
mergesortc32_in_ga(.(T61, .(T62, T63)), T80) → U27_ga(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_ga(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(T54, []), .(T54, [])) → mergesortc32_out_gg(.(T54, []), .(T54, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T80) → U27_gg(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_gg(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T85) → U30_gg(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_gg(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_in_gg(T67, T85))
mergesortc32_in_gg(.(T61, .(T62, T63)), .(T104, X185)) → U33_gg(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_gg(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
mergesortc32_in_ga(.(T61, .(T62, T63)), T85) → U30_ga(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_ga(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_in_ga(T67, T85))
mergesortc32_in_ga(.(T61, .(T62, T63)), .(T104, X185)) → U33_ga(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_ga(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_ga(T61, T62, T63, T104, X185, mergec33_in_gga(.(T104, T95), T97, X185))
mergec33_in_gga([], T115, T115) → mergec33_out_gga([], T115, T115)
mergec33_in_gga(T120, [], T120) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_gga(T143, T132, T134, T136, mergec33_in_gga(.(T143, T132), T134, T136))
U37_gga(T143, T132, T134, T136, mergec33_out_gga(.(T143, T132), T134, T136)) → mergec33_out_gga(.(T143, T132), .(T143, T134), .(T143, T136))
U36_ga(T61, T62, T63, T104, X185, mergec33_out_gga(.(T104, T95), T97, X185)) → mergesortc32_out_ga(.(T61, .(T62, T63)), .(T104, X185))
U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_ga(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(T61, .(T62, T63)), T85)
U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_gg(T61, T62, T63, T104, X185, mergec33_in_ggg(.(T104, T95), T97, X185))
mergec33_in_ggg([], T115, T115) → mergec33_out_ggg([], T115, T115)
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_ggg(T143, T132, T134, T136, mergec33_in_ggg(.(T143, T132), T134, T136))
U37_ggg(T143, T132, T134, T136, mergec33_out_ggg(.(T143, T132), T134, T136)) → mergec33_out_ggg(.(T143, T132), .(T143, T134), .(T143, T136))
U36_gg(T61, T62, T63, T104, X185, mergec33_out_ggg(.(T104, T95), T97, X185)) → mergesortc32_out_gg(.(T61, .(T62, T63)), .(T104, X185))
U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_gg(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(T61, .(T62, T63)), T85)
U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T61, T62, T63, T80, mergesortc32_in_gg(T68, T80))
U29_gg(T61, T62, T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(T61, .(T62, T63)), T80)
U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T61, T62, T63, T80, mergesortc32_in_ga(T68, T80))
U29_ga(T61, T62, T63, T80, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(T61, .(T62, T63)), T80)
U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_out_ga(T28, T49)) → U25_ga(T23, T24, T25, T14, mergec33_in_gga(T46, T49, T14))
U25_ga(T23, T24, T25, T14, mergec33_out_gga(T46, T49, T14)) → mergesortc1_out_ga(.(T23, .(T24, T25)), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x2)
splitc21_in_gaa(x1, x2, x3)  =  splitc21_in_gaa(x1)
[]  =  []
splitc21_out_gaa(x1, x2, x3)  =  splitc21_out_gaa(x1, x2, x3)
U21_gaa(x1, x2, x3, x4, x5)  =  U21_gaa(x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x3, x5)
U23_ga(x1, x2, x3, x4, x5, x6, x7)  =  U23_ga(x3, x5, x7)
U24_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U24_ga(x3, x7, x8)
mergesortc32_in_ga(x1, x2)  =  mergesortc32_in_ga(x1)
mergesortc32_out_ga(x1, x2)  =  mergesortc32_out_ga(x1, x2)
U27_ga(x1, x2, x3, x4, x5)  =  U27_ga(x3, x5)
U28_ga(x1, x2, x3, x4, x5, x6, x7)  =  U28_ga(x3, x6, x7)
mergesortc32_in_gg(x1, x2)  =  mergesortc32_in_gg(x1, x2)
mergesortc32_out_gg(x1, x2)  =  mergesortc32_out_gg(x1, x2)
U27_gg(x1, x2, x3, x4, x5)  =  U27_gg(x3, x4, x5)
U28_gg(x1, x2, x3, x4, x5, x6, x7)  =  U28_gg(x3, x4, x6, x7)
U30_gg(x1, x2, x3, x4, x5)  =  U30_gg(x3, x4, x5)
U31_gg(x1, x2, x3, x4, x5, x6, x7)  =  U31_gg(x3, x4, x6, x7)
U33_gg(x1, x2, x3, x4, x5, x6)  =  U33_gg(x3, x5, x6)
U34_gg(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_gg(x3, x5, x7, x8)
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x3, x5)
U31_ga(x1, x2, x3, x4, x5, x6, x7)  =  U31_ga(x3, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6)  =  U33_ga(x3, x6)
U34_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_ga(x3, x7, x8)
splitc17_in_agaa(x1, x2, x3, x4)  =  splitc17_in_agaa(x2)
U26_agaa(x1, x2, x3, x4, x5)  =  U26_agaa(x2, x5)
splitc17_out_agaa(x1, x2, x3, x4)  =  splitc17_out_agaa(x2, x3, x4)
U35_ga(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_ga(x3, x8, x9)
U36_ga(x1, x2, x3, x4, x5, x6)  =  U36_ga(x3, x6)
mergec33_in_gga(x1, x2, x3)  =  mergec33_in_gga(x1, x2)
mergec33_out_gga(x1, x2, x3)  =  mergec33_out_gga(x1, x2, x3)
U37_gga(x1, x2, x3, x4, x5)  =  U37_gga(x2, x3, x5)
U32_ga(x1, x2, x3, x4, x5)  =  U32_ga(x3, x4, x5)
U35_gg(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_gg(x3, x5, x8, x9)
U36_gg(x1, x2, x3, x4, x5, x6)  =  U36_gg(x3, x5, x6)
mergec33_in_ggg(x1, x2, x3)  =  mergec33_in_ggg(x1, x2, x3)
mergec33_out_ggg(x1, x2, x3)  =  mergec33_out_ggg(x1, x2, x3)
U37_ggg(x1, x2, x3, x4, x5)  =  U37_ggg(x2, x3, x4, x5)
U32_gg(x1, x2, x3, x4, x5)  =  U32_gg(x3, x4, x5)
U29_gg(x1, x2, x3, x4, x5)  =  U29_gg(x3, x4, x5)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x3, x5)
U25_ga(x1, x2, x3, x4, x5)  =  U25_ga(x3, x5)
MERGESORT32_IN_GA(x1, x2)  =  MERGESORT32_IN_GA(x1)
U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x3, x5)
U6_GA(x1, x2, x3, x4, x5, x6)  =  U6_GA(x3, x5, x6)

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

(26) UsableRulesProof (EQUIVALENT transformation)

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

(27) Obligation:

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

MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
U4_GA(T61, T62, T63, X137, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesortc32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesortc32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)

The TRS R consists of the following rules:

splitc17_in_agaa(T36, T37, .(T36, X81), X82) → U26_agaa(T36, T37, X81, X82, splitc21_in_gaa(T37, X82, X81))
mergesortc32_in_ga([], []) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.(T54, []), .(T54, [])) → mergesortc32_out_ga(.(T54, []), .(T54, []))
mergesortc32_in_ga(.(T61, .(T62, T63)), T80) → U27_ga(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
mergesortc32_in_ga(.(T61, .(T62, T63)), T85) → U30_ga(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
mergesortc32_in_ga(.(T61, .(T62, T63)), .(T104, X185)) → U33_ga(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U26_agaa(T36, T37, X81, X82, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T36, T37, .(T36, X81), X82)
U27_ga(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
U30_ga(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_in_ga(T67, T85))
U33_ga(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
splitc21_in_gaa([], [], []) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T42, T43), .(T42, X99), X100) → U21_gaa(T42, T43, X99, X100, splitc21_in_gaa(T43, X100, X99))
U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T61, T62, T63, T80, mergesortc32_in_ga(T68, T80))
U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U21_gaa(T42, T43, X99, X100, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T42, T43), .(T42, X99), X100)
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(T61, .(T62, T63)), T80) → U27_gg(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
mergesortc32_in_gg(.(T61, .(T62, T63)), T85) → U30_gg(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U29_ga(T61, T62, T63, T80, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(T61, .(T62, T63)), T80)
U32_ga(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(T61, .(T62, T63)), T85)
U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_ga(T61, T62, T63, T104, X185, mergec33_in_gga(.(T104, T95), T97, X185))
U27_gg(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
U30_gg(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_in_gg(T67, T85))
U36_ga(T61, T62, T63, T104, X185, mergec33_out_gga(.(T104, T95), T97, X185)) → mergesortc32_out_ga(.(T61, .(T62, T63)), .(T104, X185))
U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T61, T62, T63, T80, mergesortc32_in_gg(T68, T80))
U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
mergec33_in_gga(T120, [], T120) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_gga(T143, T132, T134, T136, mergec33_in_gga(.(T143, T132), T134, T136))
U29_gg(T61, T62, T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(T61, .(T62, T63)), T80)
mergesortc32_in_gg(.(T54, []), .(T54, [])) → mergesortc32_out_gg(.(T54, []), .(T54, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), .(T104, X185)) → U33_gg(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U32_gg(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(T61, .(T62, T63)), T85)
U37_gga(T143, T132, T134, T136, mergec33_out_gga(.(T143, T132), T134, T136)) → mergec33_out_gga(.(T143, T132), .(T143, T134), .(T143, T136))
U33_gg(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_gg(T61, T62, T63, T104, X185, mergec33_in_ggg(.(T104, T95), T97, X185))
U36_gg(T61, T62, T63, T104, X185, mergec33_out_ggg(.(T104, T95), T97, X185)) → mergesortc32_out_gg(.(T61, .(T62, T63)), .(T104, X185))
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_ggg(T143, T132, T134, T136, mergec33_in_ggg(.(T143, T132), T134, T136))
U37_ggg(T143, T132, T134, T136, mergec33_out_ggg(.(T143, T132), T134, T136)) → mergec33_out_ggg(.(T143, T132), .(T143, T134), .(T143, T136))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x2)
splitc21_in_gaa(x1, x2, x3)  =  splitc21_in_gaa(x1)
[]  =  []
splitc21_out_gaa(x1, x2, x3)  =  splitc21_out_gaa(x1, x2, x3)
U21_gaa(x1, x2, x3, x4, x5)  =  U21_gaa(x2, x5)
mergesortc32_in_ga(x1, x2)  =  mergesortc32_in_ga(x1)
mergesortc32_out_ga(x1, x2)  =  mergesortc32_out_ga(x1, x2)
U27_ga(x1, x2, x3, x4, x5)  =  U27_ga(x3, x5)
U28_ga(x1, x2, x3, x4, x5, x6, x7)  =  U28_ga(x3, x6, x7)
mergesortc32_in_gg(x1, x2)  =  mergesortc32_in_gg(x1, x2)
mergesortc32_out_gg(x1, x2)  =  mergesortc32_out_gg(x1, x2)
U27_gg(x1, x2, x3, x4, x5)  =  U27_gg(x3, x4, x5)
U28_gg(x1, x2, x3, x4, x5, x6, x7)  =  U28_gg(x3, x4, x6, x7)
U30_gg(x1, x2, x3, x4, x5)  =  U30_gg(x3, x4, x5)
U31_gg(x1, x2, x3, x4, x5, x6, x7)  =  U31_gg(x3, x4, x6, x7)
U33_gg(x1, x2, x3, x4, x5, x6)  =  U33_gg(x3, x5, x6)
U34_gg(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_gg(x3, x5, x7, x8)
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x3, x5)
U31_ga(x1, x2, x3, x4, x5, x6, x7)  =  U31_ga(x3, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6)  =  U33_ga(x3, x6)
U34_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_ga(x3, x7, x8)
splitc17_in_agaa(x1, x2, x3, x4)  =  splitc17_in_agaa(x2)
U26_agaa(x1, x2, x3, x4, x5)  =  U26_agaa(x2, x5)
splitc17_out_agaa(x1, x2, x3, x4)  =  splitc17_out_agaa(x2, x3, x4)
U35_ga(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_ga(x3, x8, x9)
U36_ga(x1, x2, x3, x4, x5, x6)  =  U36_ga(x3, x6)
mergec33_in_gga(x1, x2, x3)  =  mergec33_in_gga(x1, x2)
mergec33_out_gga(x1, x2, x3)  =  mergec33_out_gga(x1, x2, x3)
U37_gga(x1, x2, x3, x4, x5)  =  U37_gga(x2, x3, x5)
U32_ga(x1, x2, x3, x4, x5)  =  U32_ga(x3, x4, x5)
U35_gg(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_gg(x3, x5, x8, x9)
U36_gg(x1, x2, x3, x4, x5, x6)  =  U36_gg(x3, x5, x6)
mergec33_in_ggg(x1, x2, x3)  =  mergec33_in_ggg(x1, x2, x3)
mergec33_out_ggg(x1, x2, x3)  =  mergec33_out_ggg(x1, x2, x3)
U37_ggg(x1, x2, x3, x4, x5)  =  U37_ggg(x2, x3, x4, x5)
U32_gg(x1, x2, x3, x4, x5)  =  U32_gg(x3, x4, x5)
U29_gg(x1, x2, x3, x4, x5)  =  U29_gg(x3, x4, x5)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x3, x5)
MERGESORT32_IN_GA(x1, x2)  =  MERGESORT32_IN_GA(x1)
U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x3, x5)
U6_GA(x1, x2, x3, x4, x5, x6)  =  U6_GA(x3, x5, x6)

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

(28) PiDPToQDPProof (SOUND transformation)

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

(29) Obligation:

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

MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, splitc17_in_agaa(.(T63)))
U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → MERGESORT32_IN_GA(T67)
U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → U6_GA(T63, T68, mergesortc32_in_ga(T67))
U6_GA(T63, T68, mergesortc32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68)

The TRS R consists of the following rules:

splitc17_in_agaa(T37) → U26_agaa(T37, splitc21_in_gaa(T37))
mergesortc32_in_ga([]) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.([])) → mergesortc32_out_ga(.([]), .([]))
mergesortc32_in_ga(.(.(T63))) → U27_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U30_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U33_ga(T63, splitc17_in_agaa(.(T63)))
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
U27_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U28_ga(T63, T68, mergesortc32_in_gg(T67, []))
U30_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U31_ga(T63, T68, mergesortc32_in_ga(T67))
U33_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U34_ga(T63, T68, mergesortc32_in_ga(T67))
splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U28_ga(T63, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T63, mergesortc32_in_ga(T68))
U31_ga(T63, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T63, T85, mergesortc32_in_gg(T68, []))
U34_ga(T63, T68, mergesortc32_out_ga(T67, .(T95))) → U35_ga(T63, T95, mergesortc32_in_ga(T68))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(.(T63)), T80) → U27_gg(T63, T80, splitc17_in_agaa(.(T63)))
mergesortc32_in_gg(.(.(T63)), T85) → U30_gg(T63, T85, splitc17_in_agaa(.(T63)))
U29_ga(T63, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(.(T63)), T80)
U32_ga(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(.(T63)), T85)
U35_ga(T63, T95, mergesortc32_out_ga(T68, .(T97))) → U36_ga(T63, mergec33_in_gga(.(T95), T97))
U27_gg(T63, T80, splitc17_out_agaa(.(T63), T67, T68)) → U28_gg(T63, T80, T68, mergesortc32_in_gg(T67, []))
U30_gg(T63, T85, splitc17_out_agaa(.(T63), T67, T68)) → U31_gg(T63, T85, T68, mergesortc32_in_gg(T67, T85))
U36_ga(T63, mergec33_out_gga(.(T95), T97, X185)) → mergesortc32_out_ga(.(.(T63)), .(X185))
U28_gg(T63, T80, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T63, T80, mergesortc32_in_gg(T68, T80))
U31_gg(T63, T85, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T63, T85, mergesortc32_in_gg(T68, []))
mergec33_in_gga(T120, []) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T132), .(T134)) → U37_gga(T132, T134, mergec33_in_gga(.(T132), T134))
U29_gg(T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(.(T63)), T80)
mergesortc32_in_gg(.([]), .([])) → mergesortc32_out_gg(.([]), .([]))
mergesortc32_in_gg(.(.(T63)), .(X185)) → U33_gg(T63, X185, splitc17_in_agaa(.(T63)))
U32_gg(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(.(T63)), T85)
U37_gga(T132, T134, mergec33_out_gga(.(T132), T134, T136)) → mergec33_out_gga(.(T132), .(T134), .(T136))
U33_gg(T63, X185, splitc17_out_agaa(.(T63), T67, T68)) → U34_gg(T63, X185, T68, mergesortc32_in_ga(T67))
U34_gg(T63, X185, T68, mergesortc32_out_ga(T67, .(T95))) → U35_gg(T63, X185, T95, mergesortc32_in_ga(T68))
U35_gg(T63, X185, T95, mergesortc32_out_ga(T68, .(T97))) → U36_gg(T63, X185, mergec33_in_ggg(.(T95), T97, X185))
U36_gg(T63, X185, mergec33_out_ggg(.(T95), T97, X185)) → mergesortc32_out_gg(.(.(T63)), .(X185))
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T132), .(T134), .(T136)) → U37_ggg(T132, T134, T136, mergec33_in_ggg(.(T132), T134, T136))
U37_ggg(T132, T134, T136, mergec33_out_ggg(.(T132), T134, T136)) → mergec33_out_ggg(.(T132), .(T134), .(T136))

The set Q consists of the following terms:

splitc17_in_agaa(x0)
mergesortc32_in_ga(x0)
U26_agaa(x0, x1)
U27_ga(x0, x1)
U30_ga(x0, x1)
U33_ga(x0, x1)
splitc21_in_gaa(x0)
U28_ga(x0, x1, x2)
U31_ga(x0, x1, x2)
U34_ga(x0, x1, x2)
U21_gaa(x0, x1)
mergesortc32_in_gg(x0, x1)
U29_ga(x0, x1)
U32_ga(x0, x1, x2)
U35_ga(x0, x1, x2)
U27_gg(x0, x1, x2)
U30_gg(x0, x1, x2)
U36_ga(x0, x1)
U28_gg(x0, x1, x2, x3)
U31_gg(x0, x1, x2, x3)
mergec33_in_gga(x0, x1)
U29_gg(x0, x1, x2)
U32_gg(x0, x1, x2)
U37_gga(x0, x1, x2)
U33_gg(x0, x1, x2)
U34_gg(x0, x1, x2, x3)
U35_gg(x0, x1, x2, x3)
U36_gg(x0, x1, x2)
mergec33_in_ggg(x0, x1, x2)
U37_ggg(x0, x1, x2, x3)

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

(30) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, splitc17_in_agaa(.(T63))) at position [1] we obtained the following new rules [LPAR04]:

MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, U26_agaa(.(T63), splitc21_in_gaa(.(T63))))

(31) Obligation:

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

U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → MERGESORT32_IN_GA(T67)
U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → U6_GA(T63, T68, mergesortc32_in_ga(T67))
U6_GA(T63, T68, mergesortc32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68)
MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, U26_agaa(.(T63), splitc21_in_gaa(.(T63))))

The TRS R consists of the following rules:

splitc17_in_agaa(T37) → U26_agaa(T37, splitc21_in_gaa(T37))
mergesortc32_in_ga([]) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.([])) → mergesortc32_out_ga(.([]), .([]))
mergesortc32_in_ga(.(.(T63))) → U27_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U30_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U33_ga(T63, splitc17_in_agaa(.(T63)))
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
U27_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U28_ga(T63, T68, mergesortc32_in_gg(T67, []))
U30_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U31_ga(T63, T68, mergesortc32_in_ga(T67))
U33_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U34_ga(T63, T68, mergesortc32_in_ga(T67))
splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U28_ga(T63, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T63, mergesortc32_in_ga(T68))
U31_ga(T63, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T63, T85, mergesortc32_in_gg(T68, []))
U34_ga(T63, T68, mergesortc32_out_ga(T67, .(T95))) → U35_ga(T63, T95, mergesortc32_in_ga(T68))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(.(T63)), T80) → U27_gg(T63, T80, splitc17_in_agaa(.(T63)))
mergesortc32_in_gg(.(.(T63)), T85) → U30_gg(T63, T85, splitc17_in_agaa(.(T63)))
U29_ga(T63, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(.(T63)), T80)
U32_ga(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(.(T63)), T85)
U35_ga(T63, T95, mergesortc32_out_ga(T68, .(T97))) → U36_ga(T63, mergec33_in_gga(.(T95), T97))
U27_gg(T63, T80, splitc17_out_agaa(.(T63), T67, T68)) → U28_gg(T63, T80, T68, mergesortc32_in_gg(T67, []))
U30_gg(T63, T85, splitc17_out_agaa(.(T63), T67, T68)) → U31_gg(T63, T85, T68, mergesortc32_in_gg(T67, T85))
U36_ga(T63, mergec33_out_gga(.(T95), T97, X185)) → mergesortc32_out_ga(.(.(T63)), .(X185))
U28_gg(T63, T80, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T63, T80, mergesortc32_in_gg(T68, T80))
U31_gg(T63, T85, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T63, T85, mergesortc32_in_gg(T68, []))
mergec33_in_gga(T120, []) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T132), .(T134)) → U37_gga(T132, T134, mergec33_in_gga(.(T132), T134))
U29_gg(T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(.(T63)), T80)
mergesortc32_in_gg(.([]), .([])) → mergesortc32_out_gg(.([]), .([]))
mergesortc32_in_gg(.(.(T63)), .(X185)) → U33_gg(T63, X185, splitc17_in_agaa(.(T63)))
U32_gg(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(.(T63)), T85)
U37_gga(T132, T134, mergec33_out_gga(.(T132), T134, T136)) → mergec33_out_gga(.(T132), .(T134), .(T136))
U33_gg(T63, X185, splitc17_out_agaa(.(T63), T67, T68)) → U34_gg(T63, X185, T68, mergesortc32_in_ga(T67))
U34_gg(T63, X185, T68, mergesortc32_out_ga(T67, .(T95))) → U35_gg(T63, X185, T95, mergesortc32_in_ga(T68))
U35_gg(T63, X185, T95, mergesortc32_out_ga(T68, .(T97))) → U36_gg(T63, X185, mergec33_in_ggg(.(T95), T97, X185))
U36_gg(T63, X185, mergec33_out_ggg(.(T95), T97, X185)) → mergesortc32_out_gg(.(.(T63)), .(X185))
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T132), .(T134), .(T136)) → U37_ggg(T132, T134, T136, mergec33_in_ggg(.(T132), T134, T136))
U37_ggg(T132, T134, T136, mergec33_out_ggg(.(T132), T134, T136)) → mergec33_out_ggg(.(T132), .(T134), .(T136))

The set Q consists of the following terms:

splitc17_in_agaa(x0)
mergesortc32_in_ga(x0)
U26_agaa(x0, x1)
U27_ga(x0, x1)
U30_ga(x0, x1)
U33_ga(x0, x1)
splitc21_in_gaa(x0)
U28_ga(x0, x1, x2)
U31_ga(x0, x1, x2)
U34_ga(x0, x1, x2)
U21_gaa(x0, x1)
mergesortc32_in_gg(x0, x1)
U29_ga(x0, x1)
U32_ga(x0, x1, x2)
U35_ga(x0, x1, x2)
U27_gg(x0, x1, x2)
U30_gg(x0, x1, x2)
U36_ga(x0, x1)
U28_gg(x0, x1, x2, x3)
U31_gg(x0, x1, x2, x3)
mergec33_in_gga(x0, x1)
U29_gg(x0, x1, x2)
U32_gg(x0, x1, x2)
U37_gga(x0, x1, x2)
U33_gg(x0, x1, x2)
U34_gg(x0, x1, x2, x3)
U35_gg(x0, x1, x2, x3)
U36_gg(x0, x1, x2)
mergec33_in_ggg(x0, x1, x2)
U37_ggg(x0, x1, x2, x3)

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

(32) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, U26_agaa(.(T63), splitc21_in_gaa(.(T63)))) at position [1,1] we obtained the following new rules [LPAR04]:

MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, U26_agaa(.(T63), U21_gaa(T63, splitc21_in_gaa(T63))))

(33) Obligation:

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

U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → MERGESORT32_IN_GA(T67)
U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → U6_GA(T63, T68, mergesortc32_in_ga(T67))
U6_GA(T63, T68, mergesortc32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68)
MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, U26_agaa(.(T63), U21_gaa(T63, splitc21_in_gaa(T63))))

The TRS R consists of the following rules:

splitc17_in_agaa(T37) → U26_agaa(T37, splitc21_in_gaa(T37))
mergesortc32_in_ga([]) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.([])) → mergesortc32_out_ga(.([]), .([]))
mergesortc32_in_ga(.(.(T63))) → U27_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U30_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U33_ga(T63, splitc17_in_agaa(.(T63)))
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
U27_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U28_ga(T63, T68, mergesortc32_in_gg(T67, []))
U30_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U31_ga(T63, T68, mergesortc32_in_ga(T67))
U33_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U34_ga(T63, T68, mergesortc32_in_ga(T67))
splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U28_ga(T63, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T63, mergesortc32_in_ga(T68))
U31_ga(T63, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T63, T85, mergesortc32_in_gg(T68, []))
U34_ga(T63, T68, mergesortc32_out_ga(T67, .(T95))) → U35_ga(T63, T95, mergesortc32_in_ga(T68))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(.(T63)), T80) → U27_gg(T63, T80, splitc17_in_agaa(.(T63)))
mergesortc32_in_gg(.(.(T63)), T85) → U30_gg(T63, T85, splitc17_in_agaa(.(T63)))
U29_ga(T63, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(.(T63)), T80)
U32_ga(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(.(T63)), T85)
U35_ga(T63, T95, mergesortc32_out_ga(T68, .(T97))) → U36_ga(T63, mergec33_in_gga(.(T95), T97))
U27_gg(T63, T80, splitc17_out_agaa(.(T63), T67, T68)) → U28_gg(T63, T80, T68, mergesortc32_in_gg(T67, []))
U30_gg(T63, T85, splitc17_out_agaa(.(T63), T67, T68)) → U31_gg(T63, T85, T68, mergesortc32_in_gg(T67, T85))
U36_ga(T63, mergec33_out_gga(.(T95), T97, X185)) → mergesortc32_out_ga(.(.(T63)), .(X185))
U28_gg(T63, T80, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T63, T80, mergesortc32_in_gg(T68, T80))
U31_gg(T63, T85, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T63, T85, mergesortc32_in_gg(T68, []))
mergec33_in_gga(T120, []) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T132), .(T134)) → U37_gga(T132, T134, mergec33_in_gga(.(T132), T134))
U29_gg(T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(.(T63)), T80)
mergesortc32_in_gg(.([]), .([])) → mergesortc32_out_gg(.([]), .([]))
mergesortc32_in_gg(.(.(T63)), .(X185)) → U33_gg(T63, X185, splitc17_in_agaa(.(T63)))
U32_gg(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(.(T63)), T85)
U37_gga(T132, T134, mergec33_out_gga(.(T132), T134, T136)) → mergec33_out_gga(.(T132), .(T134), .(T136))
U33_gg(T63, X185, splitc17_out_agaa(.(T63), T67, T68)) → U34_gg(T63, X185, T68, mergesortc32_in_ga(T67))
U34_gg(T63, X185, T68, mergesortc32_out_ga(T67, .(T95))) → U35_gg(T63, X185, T95, mergesortc32_in_ga(T68))
U35_gg(T63, X185, T95, mergesortc32_out_ga(T68, .(T97))) → U36_gg(T63, X185, mergec33_in_ggg(.(T95), T97, X185))
U36_gg(T63, X185, mergec33_out_ggg(.(T95), T97, X185)) → mergesortc32_out_gg(.(.(T63)), .(X185))
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T132), .(T134), .(T136)) → U37_ggg(T132, T134, T136, mergec33_in_ggg(.(T132), T134, T136))
U37_ggg(T132, T134, T136, mergec33_out_ggg(.(T132), T134, T136)) → mergec33_out_ggg(.(T132), .(T134), .(T136))

The set Q consists of the following terms:

splitc17_in_agaa(x0)
mergesortc32_in_ga(x0)
U26_agaa(x0, x1)
U27_ga(x0, x1)
U30_ga(x0, x1)
U33_ga(x0, x1)
splitc21_in_gaa(x0)
U28_ga(x0, x1, x2)
U31_ga(x0, x1, x2)
U34_ga(x0, x1, x2)
U21_gaa(x0, x1)
mergesortc32_in_gg(x0, x1)
U29_ga(x0, x1)
U32_ga(x0, x1, x2)
U35_ga(x0, x1, x2)
U27_gg(x0, x1, x2)
U30_gg(x0, x1, x2)
U36_ga(x0, x1)
U28_gg(x0, x1, x2, x3)
U31_gg(x0, x1, x2, x3)
mergec33_in_gga(x0, x1)
U29_gg(x0, x1, x2)
U32_gg(x0, x1, x2)
U37_gga(x0, x1, x2)
U33_gg(x0, x1, x2)
U34_gg(x0, x1, x2, x3)
U35_gg(x0, x1, x2, x3)
U36_gg(x0, x1, x2)
mergec33_in_ggg(x0, x1, x2)
U37_ggg(x0, x1, x2, x3)

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

(34) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U6_GA(T63, T68, mergesortc32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO]:

POL(U4_GA(x1, x2)) = 0 +
[0,0]
·x1 +
[0,1]
·x2

POL(splitc17_out_agaa(x1, x2, x3)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\11/
·x2 +
/00\
\10/
·x3

POL(.(x1)) =
/1\
\0/
+
/10\
\00/
·x1

POL(MERGESORT32_IN_GA(x1)) = 0 +
[1,0]
·x1

POL(U6_GA(x1, x2, x3)) = 0 +
[0,0]
·x1 +
[1,0]
·x2 +
[0,1]
·x3

POL(mergesortc32_in_ga(x1)) =
/0\
\0/
+
/00\
\11/
·x1

POL(mergesortc32_out_ga(x1, x2)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(U26_agaa(x1, x2)) =
/0\
\1/
+
/01\
\01/
·x1 +
/00\
\01/
·x2

POL(U21_gaa(x1, x2)) =
/1\
\1/
+
/00\
\00/
·x1 +
/10\
\10/
·x2

POL(splitc21_in_gaa(x1)) =
/0\
\0/
+
/10\
\10/
·x1

POL([]) =
/0\
\1/

POL(U27_ga(x1, x2)) =
/0\
\1/
+
/00\
\10/
·x1 +
/00\
\00/
·x2

POL(splitc17_in_agaa(x1)) =
/0\
\0/
+
/00\
\00/
·x1

POL(U30_ga(x1, x2)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(U33_ga(x1, x2)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(splitc21_out_gaa(x1, x2, x3)) =
/0\
\0/
+
/00\
\00/
·x1 +
/10\
\10/
·x2 +
/10\
\10/
·x3

POL(U28_ga(x1, x2, x3)) =
/0\
\1/
+
/00\
\10/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(mergesortc32_in_gg(x1, x2)) =
/0\
\0/
+
/10\
\11/
·x1 +
/00\
\10/
·x2

POL(mergesortc32_out_gg(x1, x2)) =
/0\
\1/
+
/00\
\01/
·x1 +
/00\
\00/
·x2

POL(U27_gg(x1, x2, x3)) =
/1\
\1/
+
/10\
\10/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(U28_gg(x1, x2, x3, x4)) =
/0\
\1/
+
/10\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3 +
/00\
\00/
·x4

POL(U30_gg(x1, x2, x3)) =
/1\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(U31_gg(x1, x2, x3, x4)) =
/1\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3 +
/00\
\00/
·x4

POL(U33_gg(x1, x2, x3)) =
/0\
\1/
+
/00\
\10/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(U34_gg(x1, x2, x3, x4)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3 +
/00\
\00/
·x4

POL(U31_ga(x1, x2, x3)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(U34_ga(x1, x2, x3)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(U35_ga(x1, x2, x3)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(U36_ga(x1, x2)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(mergec33_in_gga(x1, x2)) =
/1\
\0/
+
/01\
\00/
·x1 +
/01\
\00/
·x2

POL(U32_ga(x1, x2, x3)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(U35_gg(x1, x2, x3, x4)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3 +
/00\
\00/
·x4

POL(U36_gg(x1, x2, x3)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(mergec33_in_ggg(x1, x2, x3)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(U32_gg(x1, x2, x3)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(U29_gg(x1, x2, x3)) =
/0\
\1/
+
/10\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3

POL(U29_ga(x1, x2)) =
/0\
\1/
+
/00\
\10/
·x1 +
/00\
\00/
·x2

POL(mergec33_out_gga(x1, x2, x3)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\11/
·x2 +
/00\
\00/
·x3

POL(U37_gga(x1, x2, x3)) =
/0\
\0/
+
/00\
\10/
·x1 +
/00\
\01/
·x2 +
/00\
\10/
·x3

POL(mergec33_out_ggg(x1, x2, x3)) =
/0\
\0/
+
/01\
\00/
·x1 +
/01\
\01/
·x2 +
/00\
\00/
·x3

POL(U37_ggg(x1, x2, x3, x4)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\00/
·x2 +
/00\
\00/
·x3 +
/11\
\00/
·x4

The following usable rules [FROCOS05] were oriented:

mergesortc32_in_ga([]) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.([])) → mergesortc32_out_ga(.([]), .([]))
mergesortc32_in_ga(.(.(T63))) → U27_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U30_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U33_ga(T63, splitc17_in_agaa(.(T63)))
splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
U27_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U28_ga(T63, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg(.(.(T63)), T80) → U27_gg(T63, T80, splitc17_in_agaa(.(T63)))
U27_gg(T63, T80, splitc17_out_agaa(.(T63), T67, T68)) → U28_gg(T63, T80, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg(.(.(T63)), T85) → U30_gg(T63, T85, splitc17_in_agaa(.(T63)))
U30_gg(T63, T85, splitc17_out_agaa(.(T63), T67, T68)) → U31_gg(T63, T85, T68, mergesortc32_in_gg(T67, T85))
mergesortc32_in_gg(.(.(T63)), .(X185)) → U33_gg(T63, X185, splitc17_in_agaa(.(T63)))
U33_gg(T63, X185, splitc17_out_agaa(.(T63), T67, T68)) → U34_gg(T63, X185, T68, mergesortc32_in_ga(T67))
U30_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U31_ga(T63, T68, mergesortc32_in_ga(T67))
U33_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U34_ga(T63, T68, mergesortc32_in_ga(T67))
U34_ga(T63, T68, mergesortc32_out_ga(T67, .(T95))) → U35_ga(T63, T95, mergesortc32_in_ga(T68))
U35_ga(T63, T95, mergesortc32_out_ga(T68, .(T97))) → U36_ga(T63, mergec33_in_gga(.(T95), T97))
U31_ga(T63, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T63, T85, mergesortc32_in_gg(T68, []))
U32_ga(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(.(T63)), T85)
U34_gg(T63, X185, T68, mergesortc32_out_ga(T67, .(T95))) → U35_gg(T63, X185, T95, mergesortc32_in_ga(T68))
U35_gg(T63, X185, T95, mergesortc32_out_ga(T68, .(T97))) → U36_gg(T63, X185, mergec33_in_ggg(.(T95), T97, X185))
U31_gg(T63, T85, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T63, T85, mergesortc32_in_gg(T68, []))
U32_gg(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(.(T63)), T85)
U28_gg(T63, T80, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T63, T80, mergesortc32_in_gg(T68, T80))
U29_gg(T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(.(T63)), T80)
U28_ga(T63, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T63, mergesortc32_in_ga(T68))
U29_ga(T63, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(.(T63)), T80)
U36_ga(T63, mergec33_out_gga(.(T95), T97, X185)) → mergesortc32_out_ga(.(.(T63)), .(X185))
U36_gg(T63, X185, mergec33_out_ggg(.(T95), T97, X185)) → mergesortc32_out_gg(.(.(T63)), .(X185))

(35) Obligation:

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

U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → MERGESORT32_IN_GA(T67)
U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → U6_GA(T63, T68, mergesortc32_in_ga(T67))
MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, U26_agaa(.(T63), U21_gaa(T63, splitc21_in_gaa(T63))))

The TRS R consists of the following rules:

splitc17_in_agaa(T37) → U26_agaa(T37, splitc21_in_gaa(T37))
mergesortc32_in_ga([]) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.([])) → mergesortc32_out_ga(.([]), .([]))
mergesortc32_in_ga(.(.(T63))) → U27_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U30_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U33_ga(T63, splitc17_in_agaa(.(T63)))
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
U27_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U28_ga(T63, T68, mergesortc32_in_gg(T67, []))
U30_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U31_ga(T63, T68, mergesortc32_in_ga(T67))
U33_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U34_ga(T63, T68, mergesortc32_in_ga(T67))
splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U28_ga(T63, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T63, mergesortc32_in_ga(T68))
U31_ga(T63, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T63, T85, mergesortc32_in_gg(T68, []))
U34_ga(T63, T68, mergesortc32_out_ga(T67, .(T95))) → U35_ga(T63, T95, mergesortc32_in_ga(T68))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(.(T63)), T80) → U27_gg(T63, T80, splitc17_in_agaa(.(T63)))
mergesortc32_in_gg(.(.(T63)), T85) → U30_gg(T63, T85, splitc17_in_agaa(.(T63)))
U29_ga(T63, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(.(T63)), T80)
U32_ga(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(.(T63)), T85)
U35_ga(T63, T95, mergesortc32_out_ga(T68, .(T97))) → U36_ga(T63, mergec33_in_gga(.(T95), T97))
U27_gg(T63, T80, splitc17_out_agaa(.(T63), T67, T68)) → U28_gg(T63, T80, T68, mergesortc32_in_gg(T67, []))
U30_gg(T63, T85, splitc17_out_agaa(.(T63), T67, T68)) → U31_gg(T63, T85, T68, mergesortc32_in_gg(T67, T85))
U36_ga(T63, mergec33_out_gga(.(T95), T97, X185)) → mergesortc32_out_ga(.(.(T63)), .(X185))
U28_gg(T63, T80, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T63, T80, mergesortc32_in_gg(T68, T80))
U31_gg(T63, T85, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T63, T85, mergesortc32_in_gg(T68, []))
mergec33_in_gga(T120, []) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T132), .(T134)) → U37_gga(T132, T134, mergec33_in_gga(.(T132), T134))
U29_gg(T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(.(T63)), T80)
mergesortc32_in_gg(.([]), .([])) → mergesortc32_out_gg(.([]), .([]))
mergesortc32_in_gg(.(.(T63)), .(X185)) → U33_gg(T63, X185, splitc17_in_agaa(.(T63)))
U32_gg(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(.(T63)), T85)
U37_gga(T132, T134, mergec33_out_gga(.(T132), T134, T136)) → mergec33_out_gga(.(T132), .(T134), .(T136))
U33_gg(T63, X185, splitc17_out_agaa(.(T63), T67, T68)) → U34_gg(T63, X185, T68, mergesortc32_in_ga(T67))
U34_gg(T63, X185, T68, mergesortc32_out_ga(T67, .(T95))) → U35_gg(T63, X185, T95, mergesortc32_in_ga(T68))
U35_gg(T63, X185, T95, mergesortc32_out_ga(T68, .(T97))) → U36_gg(T63, X185, mergec33_in_ggg(.(T95), T97, X185))
U36_gg(T63, X185, mergec33_out_ggg(.(T95), T97, X185)) → mergesortc32_out_gg(.(.(T63)), .(X185))
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T132), .(T134), .(T136)) → U37_ggg(T132, T134, T136, mergec33_in_ggg(.(T132), T134, T136))
U37_ggg(T132, T134, T136, mergec33_out_ggg(.(T132), T134, T136)) → mergec33_out_ggg(.(T132), .(T134), .(T136))

The set Q consists of the following terms:

splitc17_in_agaa(x0)
mergesortc32_in_ga(x0)
U26_agaa(x0, x1)
U27_ga(x0, x1)
U30_ga(x0, x1)
U33_ga(x0, x1)
splitc21_in_gaa(x0)
U28_ga(x0, x1, x2)
U31_ga(x0, x1, x2)
U34_ga(x0, x1, x2)
U21_gaa(x0, x1)
mergesortc32_in_gg(x0, x1)
U29_ga(x0, x1)
U32_ga(x0, x1, x2)
U35_ga(x0, x1, x2)
U27_gg(x0, x1, x2)
U30_gg(x0, x1, x2)
U36_ga(x0, x1)
U28_gg(x0, x1, x2, x3)
U31_gg(x0, x1, x2, x3)
mergec33_in_gga(x0, x1)
U29_gg(x0, x1, x2)
U32_gg(x0, x1, x2)
U37_gga(x0, x1, x2)
U33_gg(x0, x1, x2)
U34_gg(x0, x1, x2, x3)
U35_gg(x0, x1, x2, x3)
U36_gg(x0, x1, x2)
mergec33_in_ggg(x0, x1, x2)
U37_ggg(x0, x1, x2, x3)

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

(36) DependencyGraphProof (EQUIVALENT transformation)

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

(37) Obligation:

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

MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, U26_agaa(.(T63), U21_gaa(T63, splitc21_in_gaa(T63))))
U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → MERGESORT32_IN_GA(T67)

The TRS R consists of the following rules:

splitc17_in_agaa(T37) → U26_agaa(T37, splitc21_in_gaa(T37))
mergesortc32_in_ga([]) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.([])) → mergesortc32_out_ga(.([]), .([]))
mergesortc32_in_ga(.(.(T63))) → U27_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U30_ga(T63, splitc17_in_agaa(.(T63)))
mergesortc32_in_ga(.(.(T63))) → U33_ga(T63, splitc17_in_agaa(.(T63)))
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
U27_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U28_ga(T63, T68, mergesortc32_in_gg(T67, []))
U30_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U31_ga(T63, T68, mergesortc32_in_ga(T67))
U33_ga(T63, splitc17_out_agaa(.(T63), T67, T68)) → U34_ga(T63, T68, mergesortc32_in_ga(T67))
splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U28_ga(T63, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T63, mergesortc32_in_ga(T68))
U31_ga(T63, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T63, T85, mergesortc32_in_gg(T68, []))
U34_ga(T63, T68, mergesortc32_out_ga(T67, .(T95))) → U35_ga(T63, T95, mergesortc32_in_ga(T68))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(.(T63)), T80) → U27_gg(T63, T80, splitc17_in_agaa(.(T63)))
mergesortc32_in_gg(.(.(T63)), T85) → U30_gg(T63, T85, splitc17_in_agaa(.(T63)))
U29_ga(T63, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(.(T63)), T80)
U32_ga(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(.(T63)), T85)
U35_ga(T63, T95, mergesortc32_out_ga(T68, .(T97))) → U36_ga(T63, mergec33_in_gga(.(T95), T97))
U27_gg(T63, T80, splitc17_out_agaa(.(T63), T67, T68)) → U28_gg(T63, T80, T68, mergesortc32_in_gg(T67, []))
U30_gg(T63, T85, splitc17_out_agaa(.(T63), T67, T68)) → U31_gg(T63, T85, T68, mergesortc32_in_gg(T67, T85))
U36_ga(T63, mergec33_out_gga(.(T95), T97, X185)) → mergesortc32_out_ga(.(.(T63)), .(X185))
U28_gg(T63, T80, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T63, T80, mergesortc32_in_gg(T68, T80))
U31_gg(T63, T85, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T63, T85, mergesortc32_in_gg(T68, []))
mergec33_in_gga(T120, []) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T132), .(T134)) → U37_gga(T132, T134, mergec33_in_gga(.(T132), T134))
U29_gg(T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(.(T63)), T80)
mergesortc32_in_gg(.([]), .([])) → mergesortc32_out_gg(.([]), .([]))
mergesortc32_in_gg(.(.(T63)), .(X185)) → U33_gg(T63, X185, splitc17_in_agaa(.(T63)))
U32_gg(T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(.(T63)), T85)
U37_gga(T132, T134, mergec33_out_gga(.(T132), T134, T136)) → mergec33_out_gga(.(T132), .(T134), .(T136))
U33_gg(T63, X185, splitc17_out_agaa(.(T63), T67, T68)) → U34_gg(T63, X185, T68, mergesortc32_in_ga(T67))
U34_gg(T63, X185, T68, mergesortc32_out_ga(T67, .(T95))) → U35_gg(T63, X185, T95, mergesortc32_in_ga(T68))
U35_gg(T63, X185, T95, mergesortc32_out_ga(T68, .(T97))) → U36_gg(T63, X185, mergec33_in_ggg(.(T95), T97, X185))
U36_gg(T63, X185, mergec33_out_ggg(.(T95), T97, X185)) → mergesortc32_out_gg(.(.(T63)), .(X185))
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T132), .(T134), .(T136)) → U37_ggg(T132, T134, T136, mergec33_in_ggg(.(T132), T134, T136))
U37_ggg(T132, T134, T136, mergec33_out_ggg(.(T132), T134, T136)) → mergec33_out_ggg(.(T132), .(T134), .(T136))

The set Q consists of the following terms:

splitc17_in_agaa(x0)
mergesortc32_in_ga(x0)
U26_agaa(x0, x1)
U27_ga(x0, x1)
U30_ga(x0, x1)
U33_ga(x0, x1)
splitc21_in_gaa(x0)
U28_ga(x0, x1, x2)
U31_ga(x0, x1, x2)
U34_ga(x0, x1, x2)
U21_gaa(x0, x1)
mergesortc32_in_gg(x0, x1)
U29_ga(x0, x1)
U32_ga(x0, x1, x2)
U35_ga(x0, x1, x2)
U27_gg(x0, x1, x2)
U30_gg(x0, x1, x2)
U36_ga(x0, x1)
U28_gg(x0, x1, x2, x3)
U31_gg(x0, x1, x2, x3)
mergec33_in_gga(x0, x1)
U29_gg(x0, x1, x2)
U32_gg(x0, x1, x2)
U37_gga(x0, x1, x2)
U33_gg(x0, x1, x2)
U34_gg(x0, x1, x2, x3)
U35_gg(x0, x1, x2, x3)
U36_gg(x0, x1, x2)
mergec33_in_ggg(x0, x1, x2)
U37_ggg(x0, x1, x2, x3)

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

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

(39) Obligation:

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

MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, U26_agaa(.(T63), U21_gaa(T63, splitc21_in_gaa(T63))))
U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → MERGESORT32_IN_GA(T67)

The TRS R consists of the following rules:

splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)

The set Q consists of the following terms:

splitc17_in_agaa(x0)
mergesortc32_in_ga(x0)
U26_agaa(x0, x1)
U27_ga(x0, x1)
U30_ga(x0, x1)
U33_ga(x0, x1)
splitc21_in_gaa(x0)
U28_ga(x0, x1, x2)
U31_ga(x0, x1, x2)
U34_ga(x0, x1, x2)
U21_gaa(x0, x1)
mergesortc32_in_gg(x0, x1)
U29_ga(x0, x1)
U32_ga(x0, x1, x2)
U35_ga(x0, x1, x2)
U27_gg(x0, x1, x2)
U30_gg(x0, x1, x2)
U36_ga(x0, x1)
U28_gg(x0, x1, x2, x3)
U31_gg(x0, x1, x2, x3)
mergec33_in_gga(x0, x1)
U29_gg(x0, x1, x2)
U32_gg(x0, x1, x2)
U37_gga(x0, x1, x2)
U33_gg(x0, x1, x2)
U34_gg(x0, x1, x2, x3)
U35_gg(x0, x1, x2, x3)
U36_gg(x0, x1, x2)
mergec33_in_ggg(x0, x1, x2)
U37_ggg(x0, x1, x2, x3)

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

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

splitc17_in_agaa(x0)
mergesortc32_in_ga(x0)
U27_ga(x0, x1)
U30_ga(x0, x1)
U33_ga(x0, x1)
U28_ga(x0, x1, x2)
U31_ga(x0, x1, x2)
U34_ga(x0, x1, x2)
mergesortc32_in_gg(x0, x1)
U29_ga(x0, x1)
U32_ga(x0, x1, x2)
U35_ga(x0, x1, x2)
U27_gg(x0, x1, x2)
U30_gg(x0, x1, x2)
U36_ga(x0, x1)
U28_gg(x0, x1, x2, x3)
U31_gg(x0, x1, x2, x3)
mergec33_in_gga(x0, x1)
U29_gg(x0, x1, x2)
U32_gg(x0, x1, x2)
U37_gga(x0, x1, x2)
U33_gg(x0, x1, x2)
U34_gg(x0, x1, x2, x3)
U35_gg(x0, x1, x2, x3)
U36_gg(x0, x1, x2)
mergec33_in_ggg(x0, x1, x2)
U37_ggg(x0, x1, x2, x3)

(41) Obligation:

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

MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, U26_agaa(.(T63), U21_gaa(T63, splitc21_in_gaa(T63))))
U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → MERGESORT32_IN_GA(T67)

The TRS R consists of the following rules:

splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)

The set Q consists of the following terms:

U26_agaa(x0, x1)
splitc21_in_gaa(x0)
U21_gaa(x0, x1)

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

(42) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MERGESORT32_IN_GA(.(.(T63))) → U4_GA(T63, U26_agaa(.(T63), U21_gaa(T63, splitc21_in_gaa(T63))))
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO]:

POL(MERGESORT32_IN_GA(x1)) = 0 +
[1,0]
·x1

POL(.(x1)) =
/1\
\0/
+
/10\
\00/
·x1

POL(U4_GA(x1, x2)) = 0 +
[0,0]
·x1 +
[0,1]
·x2

POL(U26_agaa(x1, x2)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\10/
·x2

POL(U21_gaa(x1, x2)) =
/0\
\1/
+
/00\
\00/
·x1 +
/01\
\10/
·x2

POL(splitc21_in_gaa(x1)) =
/0\
\0/
+
/10\
\10/
·x1

POL(splitc17_out_agaa(x1, x2, x3)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\10/
·x2 +
/00\
\00/
·x3

POL([]) =
/0\
\0/

POL(splitc21_out_gaa(x1, x2, x3)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\10/
·x2 +
/10\
\00/
·x3

The following usable rules [FROCOS05] were oriented:

splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)

(43) Obligation:

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

U4_GA(T63, splitc17_out_agaa(.(T63), T67, T68)) → MERGESORT32_IN_GA(T67)

The TRS R consists of the following rules:

splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)

The set Q consists of the following terms:

U26_agaa(x0, x1)
splitc21_in_gaa(x0)
U21_gaa(x0, x1)

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

(44) DependencyGraphProof (EQUIVALENT transformation)

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

(45) TRUE

(46) Obligation:

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

MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U14_GA(T23, T24, T25, T14, splitc17_in_agaa(T24, T25, T28, T29))
U14_GA(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)

The TRS R consists of the following rules:

splitc17_in_agaa(T36, T37, .(T36, X81), X82) → U26_agaa(T36, T37, X81, X82, splitc21_in_gaa(T37, X82, X81))
splitc21_in_gaa([], [], []) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T42, T43), .(T42, X99), X100) → U21_gaa(T42, T43, X99, X100, splitc21_in_gaa(T43, X100, X99))
U21_gaa(T42, T43, X99, X100, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T42, T43), .(T42, X99), X100)
U26_agaa(T36, T37, X81, X82, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T36, T37, .(T36, X81), X82)
mergesortc1_in_ga([], []) → mergesortc1_out_ga([], [])
mergesortc1_in_ga(.(T4, []), .(T4, [])) → mergesortc1_out_ga(.(T4, []), .(T4, []))
mergesortc1_in_ga(.(T23, .(T24, T25)), T14) → U22_ga(T23, T24, T25, T14, splitc17_in_agaa(T24, T25, T28, T29))
U22_ga(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_in_ga(.(T23, T29), T46))
U23_ga(T23, T24, T25, T14, T28, T29, mergesortc1_out_ga(.(T23, T29), T46)) → U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_in_ga(T28, T49))
mergesortc32_in_ga([], []) → mergesortc32_out_ga([], [])
mergesortc32_in_ga(.(T54, []), .(T54, [])) → mergesortc32_out_ga(.(T54, []), .(T54, []))
mergesortc32_in_ga(.(T61, .(T62, T63)), T80) → U27_ga(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_ga(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg([], []) → mergesortc32_out_gg([], [])
mergesortc32_in_gg(.(T54, []), .(T54, [])) → mergesortc32_out_gg(.(T54, []), .(T54, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T80) → U27_gg(T61, T62, T63, T80, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U27_gg(T61, T62, T63, T80, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_in_gg(T67, []))
mergesortc32_in_gg(.(T61, .(T62, T63)), T85) → U30_gg(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_gg(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_in_gg(T67, T85))
mergesortc32_in_gg(.(T61, .(T62, T63)), .(T104, X185)) → U33_gg(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_gg(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
mergesortc32_in_ga(.(T61, .(T62, T63)), T85) → U30_ga(T61, T62, T63, T85, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U30_ga(T61, T62, T63, T85, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_in_ga(T67, T85))
mergesortc32_in_ga(.(T61, .(T62, T63)), .(T104, X185)) → U33_ga(T61, T62, T63, T104, X185, splitc17_in_agaa(T61, .(T62, T63), T67, T68))
U33_ga(T61, T62, T63, T104, X185, splitc17_out_agaa(T61, .(T62, T63), T67, T68)) → U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_in_ga(T67, .(T104, T95)))
U34_ga(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_ga(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_ga(T61, T62, T63, T104, X185, mergec33_in_gga(.(T104, T95), T97, X185))
mergec33_in_gga([], T115, T115) → mergec33_out_gga([], T115, T115)
mergec33_in_gga(T120, [], T120) → mergec33_out_gga(T120, [], T120)
mergec33_in_gga(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_gga(T143, T132, T134, T136, mergec33_in_gga(.(T143, T132), T134, T136))
U37_gga(T143, T132, T134, T136, mergec33_out_gga(.(T143, T132), T134, T136)) → mergec33_out_gga(.(T143, T132), .(T143, T134), .(T143, T136))
U36_ga(T61, T62, T63, T104, X185, mergec33_out_gga(.(T104, T95), T97, X185)) → mergesortc32_out_ga(.(T61, .(T62, T63)), .(T104, X185))
U31_ga(T61, T62, T63, T85, T67, T68, mergesortc32_out_ga(T67, T85)) → U32_ga(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_ga(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_ga(.(T61, .(T62, T63)), T85)
U34_gg(T61, T62, T63, T104, X185, T67, T68, mergesortc32_out_ga(T67, .(T104, T95))) → U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_in_ga(T68, .(T104, T97)))
U35_gg(T61, T62, T63, T104, X185, T67, T68, T95, mergesortc32_out_ga(T68, .(T104, T97))) → U36_gg(T61, T62, T63, T104, X185, mergec33_in_ggg(.(T104, T95), T97, X185))
mergec33_in_ggg([], T115, T115) → mergec33_out_ggg([], T115, T115)
mergec33_in_ggg(T120, [], T120) → mergec33_out_ggg(T120, [], T120)
mergec33_in_ggg(.(T143, T132), .(T143, T134), .(T143, T136)) → U37_ggg(T143, T132, T134, T136, mergec33_in_ggg(.(T143, T132), T134, T136))
U37_ggg(T143, T132, T134, T136, mergec33_out_ggg(.(T143, T132), T134, T136)) → mergec33_out_ggg(.(T143, T132), .(T143, T134), .(T143, T136))
U36_gg(T61, T62, T63, T104, X185, mergec33_out_ggg(.(T104, T95), T97, X185)) → mergesortc32_out_gg(.(T61, .(T62, T63)), .(T104, X185))
U31_gg(T61, T62, T63, T85, T67, T68, mergesortc32_out_gg(T67, T85)) → U32_gg(T61, T62, T63, T85, mergesortc32_in_gg(T68, []))
U32_gg(T61, T62, T63, T85, mergesortc32_out_gg(T68, [])) → mergesortc32_out_gg(.(T61, .(T62, T63)), T85)
U28_gg(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_gg(T61, T62, T63, T80, mergesortc32_in_gg(T68, T80))
U29_gg(T61, T62, T63, T80, mergesortc32_out_gg(T68, T80)) → mergesortc32_out_gg(.(T61, .(T62, T63)), T80)
U28_ga(T61, T62, T63, T80, T67, T68, mergesortc32_out_gg(T67, [])) → U29_ga(T61, T62, T63, T80, mergesortc32_in_ga(T68, T80))
U29_ga(T61, T62, T63, T80, mergesortc32_out_ga(T68, T80)) → mergesortc32_out_ga(.(T61, .(T62, T63)), T80)
U24_ga(T23, T24, T25, T14, T28, T29, T46, mergesortc32_out_ga(T28, T49)) → U25_ga(T23, T24, T25, T14, mergec33_in_gga(T46, T49, T14))
U25_ga(T23, T24, T25, T14, mergec33_out_gga(T46, T49, T14)) → mergesortc1_out_ga(.(T23, .(T24, T25)), T14)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x2)
splitc21_in_gaa(x1, x2, x3)  =  splitc21_in_gaa(x1)
[]  =  []
splitc21_out_gaa(x1, x2, x3)  =  splitc21_out_gaa(x1, x2, x3)
U21_gaa(x1, x2, x3, x4, x5)  =  U21_gaa(x2, x5)
mergesortc1_in_ga(x1, x2)  =  mergesortc1_in_ga(x1)
mergesortc1_out_ga(x1, x2)  =  mergesortc1_out_ga(x1, x2)
U22_ga(x1, x2, x3, x4, x5)  =  U22_ga(x3, x5)
U23_ga(x1, x2, x3, x4, x5, x6, x7)  =  U23_ga(x3, x5, x7)
U24_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U24_ga(x3, x7, x8)
mergesortc32_in_ga(x1, x2)  =  mergesortc32_in_ga(x1)
mergesortc32_out_ga(x1, x2)  =  mergesortc32_out_ga(x1, x2)
U27_ga(x1, x2, x3, x4, x5)  =  U27_ga(x3, x5)
U28_ga(x1, x2, x3, x4, x5, x6, x7)  =  U28_ga(x3, x6, x7)
mergesortc32_in_gg(x1, x2)  =  mergesortc32_in_gg(x1, x2)
mergesortc32_out_gg(x1, x2)  =  mergesortc32_out_gg(x1, x2)
U27_gg(x1, x2, x3, x4, x5)  =  U27_gg(x3, x4, x5)
U28_gg(x1, x2, x3, x4, x5, x6, x7)  =  U28_gg(x3, x4, x6, x7)
U30_gg(x1, x2, x3, x4, x5)  =  U30_gg(x3, x4, x5)
U31_gg(x1, x2, x3, x4, x5, x6, x7)  =  U31_gg(x3, x4, x6, x7)
U33_gg(x1, x2, x3, x4, x5, x6)  =  U33_gg(x3, x5, x6)
U34_gg(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_gg(x3, x5, x7, x8)
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x3, x5)
U31_ga(x1, x2, x3, x4, x5, x6, x7)  =  U31_ga(x3, x6, x7)
U33_ga(x1, x2, x3, x4, x5, x6)  =  U33_ga(x3, x6)
U34_ga(x1, x2, x3, x4, x5, x6, x7, x8)  =  U34_ga(x3, x7, x8)
splitc17_in_agaa(x1, x2, x3, x4)  =  splitc17_in_agaa(x2)
U26_agaa(x1, x2, x3, x4, x5)  =  U26_agaa(x2, x5)
splitc17_out_agaa(x1, x2, x3, x4)  =  splitc17_out_agaa(x2, x3, x4)
U35_ga(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_ga(x3, x8, x9)
U36_ga(x1, x2, x3, x4, x5, x6)  =  U36_ga(x3, x6)
mergec33_in_gga(x1, x2, x3)  =  mergec33_in_gga(x1, x2)
mergec33_out_gga(x1, x2, x3)  =  mergec33_out_gga(x1, x2, x3)
U37_gga(x1, x2, x3, x4, x5)  =  U37_gga(x2, x3, x5)
U32_ga(x1, x2, x3, x4, x5)  =  U32_ga(x3, x4, x5)
U35_gg(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U35_gg(x3, x5, x8, x9)
U36_gg(x1, x2, x3, x4, x5, x6)  =  U36_gg(x3, x5, x6)
mergec33_in_ggg(x1, x2, x3)  =  mergec33_in_ggg(x1, x2, x3)
mergec33_out_ggg(x1, x2, x3)  =  mergec33_out_ggg(x1, x2, x3)
U37_ggg(x1, x2, x3, x4, x5)  =  U37_ggg(x2, x3, x4, x5)
U32_gg(x1, x2, x3, x4, x5)  =  U32_gg(x3, x4, x5)
U29_gg(x1, x2, x3, x4, x5)  =  U29_gg(x3, x4, x5)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x3, x5)
U25_ga(x1, x2, x3, x4, x5)  =  U25_ga(x3, x5)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U14_GA(x1, x2, x3, x4, x5)  =  U14_GA(x3, x5)

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

(47) UsableRulesProof (EQUIVALENT transformation)

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

(48) Obligation:

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

MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U14_GA(T23, T24, T25, T14, splitc17_in_agaa(T24, T25, T28, T29))
U14_GA(T23, T24, T25, T14, splitc17_out_agaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)

The TRS R consists of the following rules:

splitc17_in_agaa(T36, T37, .(T36, X81), X82) → U26_agaa(T36, T37, X81, X82, splitc21_in_gaa(T37, X82, X81))
U26_agaa(T36, T37, X81, X82, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T36, T37, .(T36, X81), X82)
splitc21_in_gaa([], [], []) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T42, T43), .(T42, X99), X100) → U21_gaa(T42, T43, X99, X100, splitc21_in_gaa(T43, X100, X99))
U21_gaa(T42, T43, X99, X100, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T42, T43), .(T42, X99), X100)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x2)
splitc21_in_gaa(x1, x2, x3)  =  splitc21_in_gaa(x1)
[]  =  []
splitc21_out_gaa(x1, x2, x3)  =  splitc21_out_gaa(x1, x2, x3)
U21_gaa(x1, x2, x3, x4, x5)  =  U21_gaa(x2, x5)
splitc17_in_agaa(x1, x2, x3, x4)  =  splitc17_in_agaa(x2)
U26_agaa(x1, x2, x3, x4, x5)  =  U26_agaa(x2, x5)
splitc17_out_agaa(x1, x2, x3, x4)  =  splitc17_out_agaa(x2, x3, x4)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U14_GA(x1, x2, x3, x4, x5)  =  U14_GA(x3, x5)

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

(49) PiDPToQDPProof (SOUND transformation)

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

(50) Obligation:

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

MERGESORT1_IN_GA(.(.(T25))) → U14_GA(T25, splitc17_in_agaa(T25))
U14_GA(T25, splitc17_out_agaa(T25, T28, T29)) → MERGESORT1_IN_GA(.(T29))

The TRS R consists of the following rules:

splitc17_in_agaa(T37) → U26_agaa(T37, splitc21_in_gaa(T37))
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)

The set Q consists of the following terms:

splitc17_in_agaa(x0)
U26_agaa(x0, x1)
splitc21_in_gaa(x0)
U21_gaa(x0, x1)

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

(51) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule MERGESORT1_IN_GA(.(.(T25))) → U14_GA(T25, splitc17_in_agaa(T25)) at position [1] we obtained the following new rules [LPAR04]:

MERGESORT1_IN_GA(.(.(T25))) → U14_GA(T25, U26_agaa(T25, splitc21_in_gaa(T25)))

(52) Obligation:

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

U14_GA(T25, splitc17_out_agaa(T25, T28, T29)) → MERGESORT1_IN_GA(.(T29))
MERGESORT1_IN_GA(.(.(T25))) → U14_GA(T25, U26_agaa(T25, splitc21_in_gaa(T25)))

The TRS R consists of the following rules:

splitc17_in_agaa(T37) → U26_agaa(T37, splitc21_in_gaa(T37))
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)

The set Q consists of the following terms:

splitc17_in_agaa(x0)
U26_agaa(x0, x1)
splitc21_in_gaa(x0)
U21_gaa(x0, x1)

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

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

(54) Obligation:

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

U14_GA(T25, splitc17_out_agaa(T25, T28, T29)) → MERGESORT1_IN_GA(.(T29))
MERGESORT1_IN_GA(.(.(T25))) → U14_GA(T25, U26_agaa(T25, splitc21_in_gaa(T25)))

The TRS R consists of the following rules:

splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)

The set Q consists of the following terms:

splitc17_in_agaa(x0)
U26_agaa(x0, x1)
splitc21_in_gaa(x0)
U21_gaa(x0, x1)

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

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

splitc17_in_agaa(x0)

(56) Obligation:

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

U14_GA(T25, splitc17_out_agaa(T25, T28, T29)) → MERGESORT1_IN_GA(.(T29))
MERGESORT1_IN_GA(.(.(T25))) → U14_GA(T25, U26_agaa(T25, splitc21_in_gaa(T25)))

The TRS R consists of the following rules:

splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)

The set Q consists of the following terms:

U26_agaa(x0, x1)
splitc21_in_gaa(x0)
U21_gaa(x0, x1)

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

(57) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U14_GA(T25, splitc17_out_agaa(T25, T28, T29)) → MERGESORT1_IN_GA(.(T29))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(.(x1)) = 1 + x1   
POL(MERGESORT1_IN_GA(x1)) = x1   
POL(U14_GA(x1, x2)) = 1 + x2   
POL(U21_gaa(x1, x2)) = 1 + x2   
POL(U26_agaa(x1, x2)) = 1 + x2   
POL([]) = 0   
POL(splitc17_out_agaa(x1, x2, x3)) = 1 + x3   
POL(splitc21_in_gaa(x1)) = x1   
POL(splitc21_out_gaa(x1, x2, x3)) = x2 + x3   

The following usable rules [FROCOS05] were oriented:

splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)

(58) Obligation:

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

MERGESORT1_IN_GA(.(.(T25))) → U14_GA(T25, U26_agaa(T25, splitc21_in_gaa(T25)))

The TRS R consists of the following rules:

splitc21_in_gaa([]) → splitc21_out_gaa([], [], [])
splitc21_in_gaa(.(T43)) → U21_gaa(T43, splitc21_in_gaa(T43))
U26_agaa(T37, splitc21_out_gaa(T37, X82, X81)) → splitc17_out_agaa(T37, .(X81), X82)
U21_gaa(T43, splitc21_out_gaa(T43, X100, X99)) → splitc21_out_gaa(.(T43), .(X99), X100)

The set Q consists of the following terms:

U26_agaa(x0, x1)
splitc21_in_gaa(x0)
U21_gaa(x0, x1)

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

(59) DependencyGraphProof (EQUIVALENT transformation)

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

(60) TRUE