(0) Obligation:

Clauses:

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

Queries:

mergesort(g,a).

(1) PrologToPrologProblemTransformerProof (SOUND transformation)

Built Prolog problem from termination graph.

(2) Obligation:

Clauses:

split16([], [], []).
split16(.(T41, []), .(T41, []), []).
split16(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) :- split16(T59, X167, X168).
merge40([], T77, T77).
merge40(T82, [], T82).
merge40(.(T103, T104), .(T105, T106), .(T103, T108)) :- le56(T103, T105).
merge40(.(T103, T104), .(T105, T106), .(T103, T108)) :- ','(le56(T103, T105), merge40(T104, .(T105, T106), T108)).
merge40(.(T144, T145), .(T146, T147), .(T146, T149)) :- gt73(T144, T146).
merge40(.(T144, T145), .(T146, T147), .(T146, T149)) :- ','(gt73(T144, T146), merge40(.(T144, T145), T147, T149)).
le56(s(T121), s(T122)) :- le56(T121, T122).
le56(0, s(T129)).
le56(0, 0).
gt73(s(T162), s(T163)) :- gt73(T162, T163).
gt73(s(T168), 0).
mergesort1([], []).
mergesort1(.(T4, []), .(T4, [])).
mergesort1(.(T22, .(T23, T24)), T14) :- split16(T24, X53, X54).
mergesort1(.(T22, .(T23, T24)), T14) :- ','(split16(T24, T26, T27), mergesort1(.(T22, T26), X23)).
mergesort1(.(T22, .(T23, T24)), T14) :- ','(split16(T24, T26, T27), ','(mergesort1(.(T22, T26), T63), mergesort1(.(T23, T27), X24))).
mergesort1(.(T22, .(T23, T24)), T14) :- ','(split16(T24, T26, T27), ','(mergesort1(.(T22, T26), T63), ','(mergesort1(.(T23, T27), T68), merge40(T63, T68, T14)))).

Queries:

mergesort1(g,a).

(3) PrologToPiTRSProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
mergesort1_in: (b,f)
split16_in: (b,f,f)
merge40_in: (f,f,f)
le56_in: (f,f)
gt73_in: (f,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x2, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

Pi-finite rewrite system:
The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x2, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)

(5) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U8_GA(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → SPLIT16_IN_GAA(T24, X53, X54)
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_GAA(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → SPLIT16_IN_GAA(T59, X167, X168)
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U9_GA(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_GA(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_GA(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_GA(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_GA(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
U13_GA(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → MERGE40_IN_AAA(T63, T68, T14)
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_AAA(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → LE56_IN_AA(T103, T105)
LE56_IN_AA(s(T121), s(T122)) → U6_AA(T121, T122, le56_in_aa(T121, T122))
LE56_IN_AA(s(T121), s(T122)) → LE56_IN_AA(T121, T122)
U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_AAA(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → MERGE40_IN_AAA(T104, .(T105, T106), T108)
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_AAA(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → GT73_IN_AA(T144, T146)
GT73_IN_AA(s(T162), s(T163)) → U7_AA(T162, T163, gt73_in_aa(T162, T163))
GT73_IN_AA(s(T162), s(T163)) → GT73_IN_AA(T162, T163)
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_AAA(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → MERGE40_IN_AAA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x2, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x5)
SPLIT16_IN_GAA(x1, x2, x3)  =  SPLIT16_IN_GAA(x1)
U1_GAA(x1, x2, x3, x4, x5, x6)  =  U1_GAA(x1, x2, x6)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x1, x2, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x5)
U11_GA(x1, x2, x3, x4, x5, x6)  =  U11_GA(x2, x5, x6)
U12_GA(x1, x2, x3, x4, x5)  =  U12_GA(x5)
U13_GA(x1, x2, x3, x4, x5, x6)  =  U13_GA(x6)
U14_GA(x1, x2, x3, x4, x5)  =  U14_GA(x5)
MERGE40_IN_AAA(x1, x2, x3)  =  MERGE40_IN_AAA
U2_AAA(x1, x2, x3, x4, x5, x6)  =  U2_AAA(x6)
LE56_IN_AA(x1, x2)  =  LE56_IN_AA
U6_AA(x1, x2, x3)  =  U6_AA(x3)
U3_AAA(x1, x2, x3, x4, x5, x6)  =  U3_AAA(x6)
U4_AAA(x1, x2, x3, x4, x5, x6)  =  U4_AAA(x6)
GT73_IN_AA(x1, x2)  =  GT73_IN_AA
U7_AA(x1, x2, x3)  =  U7_AA(x3)
U5_AAA(x1, x2, x3, x4, x5, x6)  =  U5_AAA(x6)

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

(6) Obligation:

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

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U8_GA(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → SPLIT16_IN_GAA(T24, X53, X54)
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_GAA(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → SPLIT16_IN_GAA(T59, X167, X168)
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U9_GA(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_GA(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_GA(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_GA(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_GA(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
U13_GA(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → MERGE40_IN_AAA(T63, T68, T14)
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_AAA(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → LE56_IN_AA(T103, T105)
LE56_IN_AA(s(T121), s(T122)) → U6_AA(T121, T122, le56_in_aa(T121, T122))
LE56_IN_AA(s(T121), s(T122)) → LE56_IN_AA(T121, T122)
U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_AAA(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → MERGE40_IN_AAA(T104, .(T105, T106), T108)
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_AAA(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → GT73_IN_AA(T144, T146)
GT73_IN_AA(s(T162), s(T163)) → U7_AA(T162, T163, gt73_in_aa(T162, T163))
GT73_IN_AA(s(T162), s(T163)) → GT73_IN_AA(T162, T163)
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_AAA(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → MERGE40_IN_AAA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x2, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x5)
SPLIT16_IN_GAA(x1, x2, x3)  =  SPLIT16_IN_GAA(x1)
U1_GAA(x1, x2, x3, x4, x5, x6)  =  U1_GAA(x1, x2, x6)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x1, x2, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x5)
U11_GA(x1, x2, x3, x4, x5, x6)  =  U11_GA(x2, x5, x6)
U12_GA(x1, x2, x3, x4, x5)  =  U12_GA(x5)
U13_GA(x1, x2, x3, x4, x5, x6)  =  U13_GA(x6)
U14_GA(x1, x2, x3, x4, x5)  =  U14_GA(x5)
MERGE40_IN_AAA(x1, x2, x3)  =  MERGE40_IN_AAA
U2_AAA(x1, x2, x3, x4, x5, x6)  =  U2_AAA(x6)
LE56_IN_AA(x1, x2)  =  LE56_IN_AA
U6_AA(x1, x2, x3)  =  U6_AA(x3)
U3_AAA(x1, x2, x3, x4, x5, x6)  =  U3_AAA(x6)
U4_AAA(x1, x2, x3, x4, x5, x6)  =  U4_AAA(x6)
GT73_IN_AA(x1, x2)  =  GT73_IN_AA
U7_AA(x1, x2, x3)  =  U7_AA(x3)
U5_AAA(x1, x2, x3, x4, x5, x6)  =  U5_AAA(x6)

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

(7) DependencyGraphProof (EQUIVALENT transformation)

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

(8) Complex Obligation (AND)

(9) Obligation:

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

GT73_IN_AA(s(T162), s(T163)) → GT73_IN_AA(T162, T163)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x2, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
GT73_IN_AA(x1, x2)  =  GT73_IN_AA

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

(10) UsableRulesProof (EQUIVALENT transformation)

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

(11) Obligation:

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

GT73_IN_AA(s(T162), s(T163)) → GT73_IN_AA(T162, T163)

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

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

(12) PiDPToQDPProof (SOUND transformation)

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

(13) Obligation:

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

GT73_IN_AAGT73_IN_AA

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

(14) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = GT73_IN_AA evaluates to t =GT73_IN_AA

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
  • Matcher: [ ]
  • Semiunifier: [ ]




Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from GT73_IN_AA to GT73_IN_AA.



(15) NO

(16) Obligation:

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

LE56_IN_AA(s(T121), s(T122)) → LE56_IN_AA(T121, T122)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x2, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
LE56_IN_AA(x1, x2)  =  LE56_IN_AA

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

(17) UsableRulesProof (EQUIVALENT transformation)

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

(18) Obligation:

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

LE56_IN_AA(s(T121), s(T122)) → LE56_IN_AA(T121, T122)

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

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

(19) PiDPToQDPProof (SOUND transformation)

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

(20) Obligation:

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

LE56_IN_AALE56_IN_AA

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

(21) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = LE56_IN_AA evaluates to t =LE56_IN_AA

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
  • Semiunifier: [ ]
  • Matcher: [ ]




Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from LE56_IN_AA to LE56_IN_AA.



(22) NO

(23) Obligation:

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

U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → MERGE40_IN_AAA(T104, .(T105, T106), T108)
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_AAA(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_AAA(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → MERGE40_IN_AAA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x2, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
MERGE40_IN_AAA(x1, x2, x3)  =  MERGE40_IN_AAA
U2_AAA(x1, x2, x3, x4, x5, x6)  =  U2_AAA(x6)
U4_AAA(x1, x2, x3, x4, x5, x6)  =  U4_AAA(x6)

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

(24) UsableRulesProof (EQUIVALENT transformation)

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

(25) Obligation:

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

U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → MERGE40_IN_AAA(T104, .(T105, T106), T108)
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_AAA(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_AAA(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → MERGE40_IN_AAA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
s(x1)  =  s(x1)
MERGE40_IN_AAA(x1, x2, x3)  =  MERGE40_IN_AAA
U2_AAA(x1, x2, x3, x4, x5, x6)  =  U2_AAA(x6)
U4_AAA(x1, x2, x3, x4, x5, x6)  =  U4_AAA(x6)

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

(26) PiDPToQDPProof (SOUND transformation)

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

(27) Obligation:

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

U2_AAA(le56_out_aa(T103)) → MERGE40_IN_AAA
MERGE40_IN_AAAU2_AAA(le56_in_aa)
MERGE40_IN_AAAU4_AAA(gt73_in_aa)
U4_AAA(gt73_out_aa(T146)) → MERGE40_IN_AAA

The TRS R consists of the following rules:

le56_in_aaU6_aa(le56_in_aa)
le56_in_aale56_out_aa(0)
gt73_in_aaU7_aa(gt73_in_aa)
gt73_in_aagt73_out_aa(0)
U6_aa(le56_out_aa(T121)) → le56_out_aa(s(T121))
U7_aa(gt73_out_aa(T163)) → gt73_out_aa(s(T163))

The set Q consists of the following terms:

le56_in_aa
gt73_in_aa
U6_aa(x0)
U7_aa(x0)

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

(28) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule MERGE40_IN_AAAU2_AAA(le56_in_aa) at position [0] we obtained the following new rules [LPAR04]:

MERGE40_IN_AAAU2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAAU2_AAA(le56_out_aa(0))

(29) Obligation:

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

U2_AAA(le56_out_aa(T103)) → MERGE40_IN_AAA
MERGE40_IN_AAAU4_AAA(gt73_in_aa)
U4_AAA(gt73_out_aa(T146)) → MERGE40_IN_AAA
MERGE40_IN_AAAU2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAAU2_AAA(le56_out_aa(0))

The TRS R consists of the following rules:

le56_in_aaU6_aa(le56_in_aa)
le56_in_aale56_out_aa(0)
gt73_in_aaU7_aa(gt73_in_aa)
gt73_in_aagt73_out_aa(0)
U6_aa(le56_out_aa(T121)) → le56_out_aa(s(T121))
U7_aa(gt73_out_aa(T163)) → gt73_out_aa(s(T163))

The set Q consists of the following terms:

le56_in_aa
gt73_in_aa
U6_aa(x0)
U7_aa(x0)

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

(30) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule MERGE40_IN_AAAU4_AAA(gt73_in_aa) at position [0] we obtained the following new rules [LPAR04]:

MERGE40_IN_AAAU4_AAA(U7_aa(gt73_in_aa))
MERGE40_IN_AAAU4_AAA(gt73_out_aa(0))

(31) Obligation:

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

U2_AAA(le56_out_aa(T103)) → MERGE40_IN_AAA
U4_AAA(gt73_out_aa(T146)) → MERGE40_IN_AAA
MERGE40_IN_AAAU2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAAU2_AAA(le56_out_aa(0))
MERGE40_IN_AAAU4_AAA(U7_aa(gt73_in_aa))
MERGE40_IN_AAAU4_AAA(gt73_out_aa(0))

The TRS R consists of the following rules:

le56_in_aaU6_aa(le56_in_aa)
le56_in_aale56_out_aa(0)
gt73_in_aaU7_aa(gt73_in_aa)
gt73_in_aagt73_out_aa(0)
U6_aa(le56_out_aa(T121)) → le56_out_aa(s(T121))
U7_aa(gt73_out_aa(T163)) → gt73_out_aa(s(T163))

The set Q consists of the following terms:

le56_in_aa
gt73_in_aa
U6_aa(x0)
U7_aa(x0)

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

(32) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = MERGE40_IN_AAA evaluates to t =MERGE40_IN_AAA

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
  • Matcher: [ ]
  • Semiunifier: [ ]




Rewriting sequence

MERGE40_IN_AAAU2_AAA(le56_out_aa(0))
with rule MERGE40_IN_AAAU2_AAA(le56_out_aa(0)) at position [] and matcher [ ]

U2_AAA(le56_out_aa(0))MERGE40_IN_AAA
with rule U2_AAA(le56_out_aa(T103)) → MERGE40_IN_AAA

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.



(33) NO

(34) Obligation:

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

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

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x2, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
SPLIT16_IN_GAA(x1, x2, x3)  =  SPLIT16_IN_GAA(x1)

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

(35) UsableRulesProof (EQUIVALENT transformation)

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

(36) Obligation:

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

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

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

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

(37) PiDPToQDPProof (SOUND transformation)

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

(38) Obligation:

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

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

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

(39) QDPSizeChangeProof (EQUIVALENT transformation)

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

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

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

(40) YES

(41) Obligation:

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

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U9_GA(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_GA(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x2, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x1, x2, x5)
U11_GA(x1, x2, x3, x4, x5, x6)  =  U11_GA(x2, x5, x6)

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

(42) UsableRulesProof (EQUIVALENT transformation)

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

(43) Obligation:

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

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U9_GA(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_GA(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)

The TRS R consists of the following rules:

split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x2, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x1, x2, x5)
U11_GA(x1, x2, x3, x4, x5, x6)  =  U11_GA(x2, x5, x6)

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

(44) PiDPToQDPProof (SOUND transformation)

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

(45) Obligation:

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

MERGESORT1_IN_GA(.(T22, .(T23, T24))) → U9_GA(T22, T23, split16_in_gaa(T24))
U9_GA(T22, T23, split16_out_gaa(T26, T27)) → MERGESORT1_IN_GA(.(T22, T26))
U9_GA(T22, T23, split16_out_gaa(T26, T27)) → U11_GA(T23, T27, mergesort1_in_ga(.(T22, T26)))
U11_GA(T23, T27, mergesort1_out_ga) → MERGESORT1_IN_GA(.(T23, T27))

The TRS R consists of the following rules:

split16_in_gaa([]) → split16_out_gaa([], [])
split16_in_gaa(.(T41, [])) → split16_out_gaa(.(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59))) → U1_gaa(T57, T58, split16_in_gaa(T59))
mergesort1_in_ga(.(T4, [])) → mergesort1_out_ga
mergesort1_in_ga(.(T22, .(T23, T24))) → U8_ga(split16_in_gaa(T24))
mergesort1_in_ga(.(T22, .(T23, T24))) → U9_ga(T22, T23, split16_in_gaa(T24))
U1_gaa(T57, T58, split16_out_gaa(X167, X168)) → split16_out_gaa(.(T57, X167), .(T58, X168))
U8_ga(split16_out_gaa(X53, X54)) → mergesort1_out_ga
U9_ga(T22, T23, split16_out_gaa(T26, T27)) → U10_ga(mergesort1_in_ga(.(T22, T26)))
U9_ga(T22, T23, split16_out_gaa(T26, T27)) → U11_ga(T23, T27, mergesort1_in_ga(.(T22, T26)))
U10_ga(mergesort1_out_ga) → mergesort1_out_ga
U11_ga(T23, T27, mergesort1_out_ga) → U12_ga(mergesort1_in_ga(.(T23, T27)))
U11_ga(T23, T27, mergesort1_out_ga) → U13_ga(mergesort1_in_ga(.(T23, T27)))
U12_ga(mergesort1_out_ga) → mergesort1_out_ga
U13_ga(mergesort1_out_ga) → U14_ga(merge40_in_aaa)
U14_ga(merge40_out_aaa) → mergesort1_out_ga
merge40_in_aaamerge40_out_aaa
merge40_in_aaaU2_aaa(le56_in_aa)
merge40_in_aaaU4_aaa(gt73_in_aa)
U2_aaa(le56_out_aa(T103)) → merge40_out_aaa
U2_aaa(le56_out_aa(T103)) → U3_aaa(merge40_in_aaa)
U4_aaa(gt73_out_aa(T146)) → merge40_out_aaa
U4_aaa(gt73_out_aa(T146)) → U5_aaa(merge40_in_aaa)
le56_in_aaU6_aa(le56_in_aa)
le56_in_aale56_out_aa(0)
U3_aaa(merge40_out_aaa) → merge40_out_aaa
gt73_in_aaU7_aa(gt73_in_aa)
gt73_in_aagt73_out_aa(0)
U5_aaa(merge40_out_aaa) → merge40_out_aaa
U6_aa(le56_out_aa(T121)) → le56_out_aa(s(T121))
U7_aa(gt73_out_aa(T163)) → gt73_out_aa(s(T163))

The set Q consists of the following terms:

split16_in_gaa(x0)
mergesort1_in_ga(x0)
U1_gaa(x0, x1, x2)
U8_ga(x0)
U9_ga(x0, x1, x2)
U10_ga(x0)
U11_ga(x0, x1, x2)
U12_ga(x0)
U13_ga(x0)
U14_ga(x0)
merge40_in_aaa
U2_aaa(x0)
U4_aaa(x0)
le56_in_aa
U3_aaa(x0)
gt73_in_aa
U5_aaa(x0)
U6_aa(x0)
U7_aa(x0)

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

(46) MRRProof (EQUIVALENT transformation)

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

MERGESORT1_IN_GA(.(T22, .(T23, T24))) → U9_GA(T22, T23, split16_in_gaa(T24))
U9_GA(T22, T23, split16_out_gaa(T26, T27)) → MERGESORT1_IN_GA(.(T22, T26))
U9_GA(T22, T23, split16_out_gaa(T26, T27)) → U11_GA(T23, T27, mergesort1_in_ga(.(T22, T26)))
U11_GA(T23, T27, mergesort1_out_ga) → MERGESORT1_IN_GA(.(T23, T27))

Strictly oriented rules of the TRS R:

split16_in_gaa([]) → split16_out_gaa([], [])
split16_in_gaa(.(T41, [])) → split16_out_gaa(.(T41, []), [])
mergesort1_in_ga(.(T4, [])) → mergesort1_out_ga
mergesort1_in_ga(.(T22, .(T23, T24))) → U8_ga(split16_in_gaa(T24))
mergesort1_in_ga(.(T22, .(T23, T24))) → U9_ga(T22, T23, split16_in_gaa(T24))
U8_ga(split16_out_gaa(X53, X54)) → mergesort1_out_ga
U9_ga(T22, T23, split16_out_gaa(T26, T27)) → U10_ga(mergesort1_in_ga(.(T22, T26)))
U9_ga(T22, T23, split16_out_gaa(T26, T27)) → U11_ga(T23, T27, mergesort1_in_ga(.(T22, T26)))
U10_ga(mergesort1_out_ga) → mergesort1_out_ga
U11_ga(T23, T27, mergesort1_out_ga) → U12_ga(mergesort1_in_ga(.(T23, T27)))
U11_ga(T23, T27, mergesort1_out_ga) → U13_ga(mergesort1_in_ga(.(T23, T27)))
U12_ga(mergesort1_out_ga) → mergesort1_out_ga
U13_ga(mergesort1_out_ga) → U14_ga(merge40_in_aaa)
U14_ga(merge40_out_aaa) → mergesort1_out_ga
merge40_in_aaamerge40_out_aaa
U2_aaa(le56_out_aa(T103)) → merge40_out_aaa
U4_aaa(gt73_out_aa(T146)) → merge40_out_aaa

Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 8 + x1 + x2   
POL(0) = 0   
POL(MERGESORT1_IN_GA(x1)) = x1   
POL(U10_ga(x1)) = 1 + x1   
POL(U11_GA(x1, x2, x3)) = 2 + x1 + x2 + x3   
POL(U11_ga(x1, x2, x3)) = 5 + x1 + x2 + x3   
POL(U12_ga(x1)) = 1 + x1   
POL(U13_ga(x1)) = 3 + x1   
POL(U14_ga(x1)) = 8 + x1   
POL(U1_gaa(x1, x2, x3)) = 16 + x1 + x2 + x3   
POL(U2_aaa(x1)) = x1   
POL(U3_aaa(x1)) = x1   
POL(U4_aaa(x1)) = 1 + x1   
POL(U5_aaa(x1)) = x1   
POL(U6_aa(x1)) = x1   
POL(U7_aa(x1)) = x1   
POL(U8_ga(x1)) = 8 + x1   
POL(U9_GA(x1, x2, x3)) = 11 + x1 + x2 + x3   
POL(U9_ga(x1, x2, x3)) = 14 + x1 + x2 + x3   
POL([]) = 0   
POL(gt73_in_aa) = 0   
POL(gt73_out_aa(x1)) = x1   
POL(le56_in_aa) = 1   
POL(le56_out_aa(x1)) = 1 + x1   
POL(merge40_in_aaa) = 1   
POL(merge40_out_aaa) = 0   
POL(mergesort1_in_ga(x1)) = x1   
POL(mergesort1_out_ga) = 7   
POL(s(x1)) = x1   
POL(split16_in_gaa(x1)) = 1 + x1   
POL(split16_out_gaa(x1, x2)) = x1 + x2   

(47) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

split16_in_gaa(.(T57, .(T58, T59))) → U1_gaa(T57, T58, split16_in_gaa(T59))
U1_gaa(T57, T58, split16_out_gaa(X167, X168)) → split16_out_gaa(.(T57, X167), .(T58, X168))
merge40_in_aaaU2_aaa(le56_in_aa)
merge40_in_aaaU4_aaa(gt73_in_aa)
U2_aaa(le56_out_aa(T103)) → U3_aaa(merge40_in_aaa)
U4_aaa(gt73_out_aa(T146)) → U5_aaa(merge40_in_aaa)
le56_in_aaU6_aa(le56_in_aa)
le56_in_aale56_out_aa(0)
U3_aaa(merge40_out_aaa) → merge40_out_aaa
gt73_in_aaU7_aa(gt73_in_aa)
gt73_in_aagt73_out_aa(0)
U5_aaa(merge40_out_aaa) → merge40_out_aaa
U6_aa(le56_out_aa(T121)) → le56_out_aa(s(T121))
U7_aa(gt73_out_aa(T163)) → gt73_out_aa(s(T163))

The set Q consists of the following terms:

split16_in_gaa(x0)
mergesort1_in_ga(x0)
U1_gaa(x0, x1, x2)
U8_ga(x0)
U9_ga(x0, x1, x2)
U10_ga(x0)
U11_ga(x0, x1, x2)
U12_ga(x0)
U13_ga(x0)
U14_ga(x0)
merge40_in_aaa
U2_aaa(x0)
U4_aaa(x0)
le56_in_aa
U3_aaa(x0)
gt73_in_aa
U5_aaa(x0)
U6_aa(x0)
U7_aa(x0)

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

(48) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(49) YES

(50) PrologToPiTRSProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
mergesort1_in: (b,f)
split16_in: (b,f,f)
merge40_in: (f,f,f)
le56_in: (f,f)
gt73_in: (f,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga(x1)
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x2, x3, x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x1, x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x3, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x3, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x1, x2, x3, x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x1, x2, x3, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x1, x2, x3, x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x1, x2, x3, x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x1, x2, x3, x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(51) Obligation:

Pi-finite rewrite system:
The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga(x1)
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x2, x3, x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x1, x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x3, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x3, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x1, x2, x3, x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x1, x2, x3, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x1, x2, x3, x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x1, x2, x3, x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x1, x2, x3, x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)

(52) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U8_GA(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → SPLIT16_IN_GAA(T24, X53, X54)
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_GAA(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → SPLIT16_IN_GAA(T59, X167, X168)
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U9_GA(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_GA(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_GA(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_GA(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_GA(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
U13_GA(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → MERGE40_IN_AAA(T63, T68, T14)
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_AAA(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → LE56_IN_AA(T103, T105)
LE56_IN_AA(s(T121), s(T122)) → U6_AA(T121, T122, le56_in_aa(T121, T122))
LE56_IN_AA(s(T121), s(T122)) → LE56_IN_AA(T121, T122)
U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_AAA(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → MERGE40_IN_AAA(T104, .(T105, T106), T108)
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_AAA(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → GT73_IN_AA(T144, T146)
GT73_IN_AA(s(T162), s(T163)) → U7_AA(T162, T163, gt73_in_aa(T162, T163))
GT73_IN_AA(s(T162), s(T163)) → GT73_IN_AA(T162, T163)
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_AAA(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → MERGE40_IN_AAA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga(x1)
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x2, x3, x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x1, x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x3, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x3, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x1, x2, x3, x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x1, x2, x3, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x1, x2, x3, x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x1, x2, x3, x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x1, x2, x3, x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x1, x2, x3, x5)
SPLIT16_IN_GAA(x1, x2, x3)  =  SPLIT16_IN_GAA(x1)
U1_GAA(x1, x2, x3, x4, x5, x6)  =  U1_GAA(x1, x2, x3, x6)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x1, x2, x3, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x1, x2, x3, x5)
U11_GA(x1, x2, x3, x4, x5, x6)  =  U11_GA(x1, x2, x3, x5, x6)
U12_GA(x1, x2, x3, x4, x5)  =  U12_GA(x1, x2, x3, x5)
U13_GA(x1, x2, x3, x4, x5, x6)  =  U13_GA(x1, x2, x3, x6)
U14_GA(x1, x2, x3, x4, x5)  =  U14_GA(x1, x2, x3, x5)
MERGE40_IN_AAA(x1, x2, x3)  =  MERGE40_IN_AAA
U2_AAA(x1, x2, x3, x4, x5, x6)  =  U2_AAA(x6)
LE56_IN_AA(x1, x2)  =  LE56_IN_AA
U6_AA(x1, x2, x3)  =  U6_AA(x3)
U3_AAA(x1, x2, x3, x4, x5, x6)  =  U3_AAA(x6)
U4_AAA(x1, x2, x3, x4, x5, x6)  =  U4_AAA(x6)
GT73_IN_AA(x1, x2)  =  GT73_IN_AA
U7_AA(x1, x2, x3)  =  U7_AA(x3)
U5_AAA(x1, x2, x3, x4, x5, x6)  =  U5_AAA(x6)

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

(53) Obligation:

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

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U8_GA(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → SPLIT16_IN_GAA(T24, X53, X54)
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_GAA(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
SPLIT16_IN_GAA(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → SPLIT16_IN_GAA(T59, X167, X168)
MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U9_GA(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_GA(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_GA(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_GA(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_GA(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_GA(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
U13_GA(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → MERGE40_IN_AAA(T63, T68, T14)
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_AAA(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → LE56_IN_AA(T103, T105)
LE56_IN_AA(s(T121), s(T122)) → U6_AA(T121, T122, le56_in_aa(T121, T122))
LE56_IN_AA(s(T121), s(T122)) → LE56_IN_AA(T121, T122)
U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_AAA(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → MERGE40_IN_AAA(T104, .(T105, T106), T108)
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_AAA(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → GT73_IN_AA(T144, T146)
GT73_IN_AA(s(T162), s(T163)) → U7_AA(T162, T163, gt73_in_aa(T162, T163))
GT73_IN_AA(s(T162), s(T163)) → GT73_IN_AA(T162, T163)
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_AAA(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → MERGE40_IN_AAA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga(x1)
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x2, x3, x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x1, x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x3, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x3, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x1, x2, x3, x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x1, x2, x3, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x1, x2, x3, x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x1, x2, x3, x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x1, x2, x3, x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x1, x2, x3, x5)
SPLIT16_IN_GAA(x1, x2, x3)  =  SPLIT16_IN_GAA(x1)
U1_GAA(x1, x2, x3, x4, x5, x6)  =  U1_GAA(x1, x2, x3, x6)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x1, x2, x3, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x1, x2, x3, x5)
U11_GA(x1, x2, x3, x4, x5, x6)  =  U11_GA(x1, x2, x3, x5, x6)
U12_GA(x1, x2, x3, x4, x5)  =  U12_GA(x1, x2, x3, x5)
U13_GA(x1, x2, x3, x4, x5, x6)  =  U13_GA(x1, x2, x3, x6)
U14_GA(x1, x2, x3, x4, x5)  =  U14_GA(x1, x2, x3, x5)
MERGE40_IN_AAA(x1, x2, x3)  =  MERGE40_IN_AAA
U2_AAA(x1, x2, x3, x4, x5, x6)  =  U2_AAA(x6)
LE56_IN_AA(x1, x2)  =  LE56_IN_AA
U6_AA(x1, x2, x3)  =  U6_AA(x3)
U3_AAA(x1, x2, x3, x4, x5, x6)  =  U3_AAA(x6)
U4_AAA(x1, x2, x3, x4, x5, x6)  =  U4_AAA(x6)
GT73_IN_AA(x1, x2)  =  GT73_IN_AA
U7_AA(x1, x2, x3)  =  U7_AA(x3)
U5_AAA(x1, x2, x3, x4, x5, x6)  =  U5_AAA(x6)

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

(54) DependencyGraphProof (EQUIVALENT transformation)

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

(55) Complex Obligation (AND)

(56) Obligation:

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

GT73_IN_AA(s(T162), s(T163)) → GT73_IN_AA(T162, T163)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga(x1)
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x2, x3, x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x1, x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x3, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x3, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x1, x2, x3, x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x1, x2, x3, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x1, x2, x3, x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x1, x2, x3, x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x1, x2, x3, x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
GT73_IN_AA(x1, x2)  =  GT73_IN_AA

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

(57) UsableRulesProof (EQUIVALENT transformation)

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

(58) Obligation:

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

GT73_IN_AA(s(T162), s(T163)) → GT73_IN_AA(T162, T163)

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

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

(59) PiDPToQDPProof (SOUND transformation)

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

(60) Obligation:

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

GT73_IN_AAGT73_IN_AA

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

(61) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = GT73_IN_AA evaluates to t =GT73_IN_AA

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
  • Matcher: [ ]
  • Semiunifier: [ ]




Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from GT73_IN_AA to GT73_IN_AA.



(62) NO

(63) Obligation:

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

LE56_IN_AA(s(T121), s(T122)) → LE56_IN_AA(T121, T122)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga(x1)
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x2, x3, x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x1, x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x3, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x3, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x1, x2, x3, x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x1, x2, x3, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x1, x2, x3, x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x1, x2, x3, x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x1, x2, x3, x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
LE56_IN_AA(x1, x2)  =  LE56_IN_AA

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

(64) UsableRulesProof (EQUIVALENT transformation)

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

(65) Obligation:

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

LE56_IN_AA(s(T121), s(T122)) → LE56_IN_AA(T121, T122)

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

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

(66) PiDPToQDPProof (SOUND transformation)

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

(67) Obligation:

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

LE56_IN_AALE56_IN_AA

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

(68) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = LE56_IN_AA evaluates to t =LE56_IN_AA

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
  • Semiunifier: [ ]
  • Matcher: [ ]




Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from LE56_IN_AA to LE56_IN_AA.



(69) NO

(70) Obligation:

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

U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → MERGE40_IN_AAA(T104, .(T105, T106), T108)
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_AAA(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_AAA(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → MERGE40_IN_AAA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga(x1)
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x2, x3, x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x1, x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x3, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x3, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x1, x2, x3, x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x1, x2, x3, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x1, x2, x3, x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x1, x2, x3, x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x1, x2, x3, x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
MERGE40_IN_AAA(x1, x2, x3)  =  MERGE40_IN_AAA
U2_AAA(x1, x2, x3, x4, x5, x6)  =  U2_AAA(x6)
U4_AAA(x1, x2, x3, x4, x5, x6)  =  U4_AAA(x6)

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

(71) UsableRulesProof (EQUIVALENT transformation)

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

(72) Obligation:

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

U2_AAA(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → MERGE40_IN_AAA(T104, .(T105, T106), T108)
MERGE40_IN_AAA(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_AAA(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
MERGE40_IN_AAA(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_AAA(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
U4_AAA(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → MERGE40_IN_AAA(.(T144, T145), T147, T149)

The TRS R consists of the following rules:

le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
s(x1)  =  s(x1)
MERGE40_IN_AAA(x1, x2, x3)  =  MERGE40_IN_AAA
U2_AAA(x1, x2, x3, x4, x5, x6)  =  U2_AAA(x6)
U4_AAA(x1, x2, x3, x4, x5, x6)  =  U4_AAA(x6)

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

(73) PiDPToQDPProof (SOUND transformation)

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

(74) Obligation:

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

U2_AAA(le56_out_aa(T103)) → MERGE40_IN_AAA
MERGE40_IN_AAAU2_AAA(le56_in_aa)
MERGE40_IN_AAAU4_AAA(gt73_in_aa)
U4_AAA(gt73_out_aa(T146)) → MERGE40_IN_AAA

The TRS R consists of the following rules:

le56_in_aaU6_aa(le56_in_aa)
le56_in_aale56_out_aa(0)
gt73_in_aaU7_aa(gt73_in_aa)
gt73_in_aagt73_out_aa(0)
U6_aa(le56_out_aa(T121)) → le56_out_aa(s(T121))
U7_aa(gt73_out_aa(T163)) → gt73_out_aa(s(T163))

The set Q consists of the following terms:

le56_in_aa
gt73_in_aa
U6_aa(x0)
U7_aa(x0)

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

(75) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule MERGE40_IN_AAAU2_AAA(le56_in_aa) at position [0] we obtained the following new rules [LPAR04]:

MERGE40_IN_AAAU2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAAU2_AAA(le56_out_aa(0))

(76) Obligation:

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

U2_AAA(le56_out_aa(T103)) → MERGE40_IN_AAA
MERGE40_IN_AAAU4_AAA(gt73_in_aa)
U4_AAA(gt73_out_aa(T146)) → MERGE40_IN_AAA
MERGE40_IN_AAAU2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAAU2_AAA(le56_out_aa(0))

The TRS R consists of the following rules:

le56_in_aaU6_aa(le56_in_aa)
le56_in_aale56_out_aa(0)
gt73_in_aaU7_aa(gt73_in_aa)
gt73_in_aagt73_out_aa(0)
U6_aa(le56_out_aa(T121)) → le56_out_aa(s(T121))
U7_aa(gt73_out_aa(T163)) → gt73_out_aa(s(T163))

The set Q consists of the following terms:

le56_in_aa
gt73_in_aa
U6_aa(x0)
U7_aa(x0)

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

(77) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule MERGE40_IN_AAAU4_AAA(gt73_in_aa) at position [0] we obtained the following new rules [LPAR04]:

MERGE40_IN_AAAU4_AAA(U7_aa(gt73_in_aa))
MERGE40_IN_AAAU4_AAA(gt73_out_aa(0))

(78) Obligation:

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

U2_AAA(le56_out_aa(T103)) → MERGE40_IN_AAA
U4_AAA(gt73_out_aa(T146)) → MERGE40_IN_AAA
MERGE40_IN_AAAU2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAAU2_AAA(le56_out_aa(0))
MERGE40_IN_AAAU4_AAA(U7_aa(gt73_in_aa))
MERGE40_IN_AAAU4_AAA(gt73_out_aa(0))

The TRS R consists of the following rules:

le56_in_aaU6_aa(le56_in_aa)
le56_in_aale56_out_aa(0)
gt73_in_aaU7_aa(gt73_in_aa)
gt73_in_aagt73_out_aa(0)
U6_aa(le56_out_aa(T121)) → le56_out_aa(s(T121))
U7_aa(gt73_out_aa(T163)) → gt73_out_aa(s(T163))

The set Q consists of the following terms:

le56_in_aa
gt73_in_aa
U6_aa(x0)
U7_aa(x0)

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

(79) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = MERGE40_IN_AAA evaluates to t =MERGE40_IN_AAA

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
  • Matcher: [ ]
  • Semiunifier: [ ]




Rewriting sequence

MERGE40_IN_AAAU2_AAA(le56_out_aa(0))
with rule MERGE40_IN_AAAU2_AAA(le56_out_aa(0)) at position [] and matcher [ ]

U2_AAA(le56_out_aa(0))MERGE40_IN_AAA
with rule U2_AAA(le56_out_aa(T103)) → MERGE40_IN_AAA

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.



(80) NO

(81) Obligation:

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

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

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga(x1)
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x2, x3, x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x1, x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x3, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x3, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x1, x2, x3, x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x1, x2, x3, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x1, x2, x3, x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x1, x2, x3, x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x1, x2, x3, x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
SPLIT16_IN_GAA(x1, x2, x3)  =  SPLIT16_IN_GAA(x1)

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

(82) UsableRulesProof (EQUIVALENT transformation)

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

(83) Obligation:

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

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

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

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

(84) PiDPToQDPProof (SOUND transformation)

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

(85) Obligation:

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

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

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

(86) QDPSizeChangeProof (EQUIVALENT transformation)

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

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

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

(87) YES

(88) Obligation:

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

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U9_GA(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_GA(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)

The TRS R consists of the following rules:

mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga(x1)
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x2, x3, x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x1, x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x3, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x3, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x1, x2, x3, x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x1, x2, x3, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x1, x2, x3, x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x1, x2, x3, x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x1, x2, x3, x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x1, x2, x3, x5)
U11_GA(x1, x2, x3, x4, x5, x6)  =  U11_GA(x1, x2, x3, x5, x6)

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

(89) UsableRulesProof (EQUIVALENT transformation)

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

(90) Obligation:

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

MERGESORT1_IN_GA(.(T22, .(T23, T24)), T14) → U9_GA(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26), X23)
U9_GA(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_GA(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U11_GA(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → MERGESORT1_IN_GA(.(T23, T27), X24)

The TRS R consists of the following rules:

split16_in_gaa([], [], []) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, []), .(T41, []), []) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168)) → U1_gaa(T57, T58, T59, X167, X168, split16_in_gaa(T59, X167, X168))
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U8_ga(T22, T23, T24, T14, split16_in_gaa(T24, X53, X54))
mergesort1_in_ga(.(T22, .(T23, T24)), T14) → U9_ga(T22, T23, T24, T14, split16_in_gaa(T24, T26, T27))
U1_gaa(T57, T58, T59, X167, X168, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, T14, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T22, T26), X23))
U9_ga(T22, T23, T24, T14, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T14, T27, mergesort1_in_ga(.(T22, T26), T63))
U10_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T22, T26), X23)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U12_ga(T22, T23, T24, T14, mergesort1_in_ga(.(T23, T27), X24))
U11_ga(T22, T23, T24, T14, T27, mergesort1_out_ga(.(T22, T26), T63)) → U13_ga(T22, T23, T24, T14, T63, mergesort1_in_ga(.(T23, T27), T68))
U12_ga(T22, T23, T24, T14, mergesort1_out_ga(.(T23, T27), X24)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
U13_ga(T22, T23, T24, T14, T63, mergesort1_out_ga(.(T23, T27), T68)) → U14_ga(T22, T23, T24, T14, merge40_in_aaa(T63, T68, T14))
U14_ga(T22, T23, T24, T14, merge40_out_aaa(T63, T68, T14)) → mergesort1_out_ga(.(T22, .(T23, T24)), T14)
merge40_in_aaa([], T77, T77) → merge40_out_aaa([], T77, T77)
merge40_in_aaa(T82, [], T82) → merge40_out_aaa(T82, [], T82)
merge40_in_aaa(.(T103, T104), .(T105, T106), .(T103, T108)) → U2_aaa(T103, T104, T105, T106, T108, le56_in_aa(T103, T105))
merge40_in_aaa(.(T144, T145), .(T146, T147), .(T146, T149)) → U4_aaa(T144, T145, T146, T147, T149, gt73_in_aa(T144, T146))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
U2_aaa(T103, T104, T105, T106, T108, le56_out_aa(T103, T105)) → U3_aaa(T103, T104, T105, T106, T108, merge40_in_aaa(T104, .(T105, T106), T108))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U4_aaa(T144, T145, T146, T147, T149, gt73_out_aa(T144, T146)) → U5_aaa(T144, T145, T146, T147, T149, merge40_in_aaa(.(T144, T145), T147, T149))
le56_in_aa(s(T121), s(T122)) → U6_aa(T121, T122, le56_in_aa(T121, T122))
le56_in_aa(0, s(T129)) → le56_out_aa(0, s(T129))
le56_in_aa(0, 0) → le56_out_aa(0, 0)
U3_aaa(T103, T104, T105, T106, T108, merge40_out_aaa(T104, .(T105, T106), T108)) → merge40_out_aaa(.(T103, T104), .(T105, T106), .(T103, T108))
gt73_in_aa(s(T162), s(T163)) → U7_aa(T162, T163, gt73_in_aa(T162, T163))
gt73_in_aa(s(T168), 0) → gt73_out_aa(s(T168), 0)
U5_aaa(T144, T145, T146, T147, T149, merge40_out_aaa(.(T144, T145), T147, T149)) → merge40_out_aaa(.(T144, T145), .(T146, T147), .(T146, T149))
U6_aa(T121, T122, le56_out_aa(T121, T122)) → le56_out_aa(s(T121), s(T122))
U7_aa(T162, T163, gt73_out_aa(T162, T163)) → gt73_out_aa(s(T162), s(T163))

The argument filtering Pi contains the following mapping:
mergesort1_in_ga(x1, x2)  =  mergesort1_in_ga(x1)
[]  =  []
mergesort1_out_ga(x1, x2)  =  mergesort1_out_ga(x1)
.(x1, x2)  =  .(x1, x2)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x2, x3, x5)
split16_in_gaa(x1, x2, x3)  =  split16_in_gaa(x1)
split16_out_gaa(x1, x2, x3)  =  split16_out_gaa(x1, x2, x3)
U1_gaa(x1, x2, x3, x4, x5, x6)  =  U1_gaa(x1, x2, x3, x6)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x1, x2, x3, x5)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x1, x2, x3, x5)
U11_ga(x1, x2, x3, x4, x5, x6)  =  U11_ga(x1, x2, x3, x5, x6)
U12_ga(x1, x2, x3, x4, x5)  =  U12_ga(x1, x2, x3, x5)
U13_ga(x1, x2, x3, x4, x5, x6)  =  U13_ga(x1, x2, x3, x6)
U14_ga(x1, x2, x3, x4, x5)  =  U14_ga(x1, x2, x3, x5)
merge40_in_aaa(x1, x2, x3)  =  merge40_in_aaa
merge40_out_aaa(x1, x2, x3)  =  merge40_out_aaa
U2_aaa(x1, x2, x3, x4, x5, x6)  =  U2_aaa(x6)
le56_in_aa(x1, x2)  =  le56_in_aa
U6_aa(x1, x2, x3)  =  U6_aa(x3)
le56_out_aa(x1, x2)  =  le56_out_aa(x1)
U3_aaa(x1, x2, x3, x4, x5, x6)  =  U3_aaa(x6)
U4_aaa(x1, x2, x3, x4, x5, x6)  =  U4_aaa(x6)
gt73_in_aa(x1, x2)  =  gt73_in_aa
U7_aa(x1, x2, x3)  =  U7_aa(x3)
gt73_out_aa(x1, x2)  =  gt73_out_aa(x2)
U5_aaa(x1, x2, x3, x4, x5, x6)  =  U5_aaa(x6)
s(x1)  =  s(x1)
MERGESORT1_IN_GA(x1, x2)  =  MERGESORT1_IN_GA(x1)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x1, x2, x3, x5)
U11_GA(x1, x2, x3, x4, x5, x6)  =  U11_GA(x1, x2, x3, x5, x6)

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

(91) PiDPToQDPProof (SOUND transformation)

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

(92) Obligation:

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

MERGESORT1_IN_GA(.(T22, .(T23, T24))) → U9_GA(T22, T23, T24, split16_in_gaa(T24))
U9_GA(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26))
U9_GA(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → U11_GA(T22, T23, T24, T27, mergesort1_in_ga(.(T22, T26)))
U11_GA(T22, T23, T24, T27, mergesort1_out_ga(.(T22, T26))) → MERGESORT1_IN_GA(.(T23, T27))

The TRS R consists of the following rules:

split16_in_gaa([]) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, [])) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59))) → U1_gaa(T57, T58, T59, split16_in_gaa(T59))
mergesort1_in_ga(.(T4, [])) → mergesort1_out_ga(.(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24))) → U8_ga(T22, T23, T24, split16_in_gaa(T24))
mergesort1_in_ga(.(T22, .(T23, T24))) → U9_ga(T22, T23, T24, split16_in_gaa(T24))
U1_gaa(T57, T58, T59, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)))
U9_ga(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, mergesort1_in_ga(.(T22, T26)))
U9_ga(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T27, mergesort1_in_ga(.(T22, T26)))
U10_ga(T22, T23, T24, mergesort1_out_ga(.(T22, T26))) → mergesort1_out_ga(.(T22, .(T23, T24)))
U11_ga(T22, T23, T24, T27, mergesort1_out_ga(.(T22, T26))) → U12_ga(T22, T23, T24, mergesort1_in_ga(.(T23, T27)))
U11_ga(T22, T23, T24, T27, mergesort1_out_ga(.(T22, T26))) → U13_ga(T22, T23, T24, mergesort1_in_ga(.(T23, T27)))
U12_ga(T22, T23, T24, mergesort1_out_ga(.(T23, T27))) → mergesort1_out_ga(.(T22, .(T23, T24)))
U13_ga(T22, T23, T24, mergesort1_out_ga(.(T23, T27))) → U14_ga(T22, T23, T24, merge40_in_aaa)
U14_ga(T22, T23, T24, merge40_out_aaa) → mergesort1_out_ga(.(T22, .(T23, T24)))
merge40_in_aaamerge40_out_aaa
merge40_in_aaaU2_aaa(le56_in_aa)
merge40_in_aaaU4_aaa(gt73_in_aa)
U2_aaa(le56_out_aa(T103)) → merge40_out_aaa
U2_aaa(le56_out_aa(T103)) → U3_aaa(merge40_in_aaa)
U4_aaa(gt73_out_aa(T146)) → merge40_out_aaa
U4_aaa(gt73_out_aa(T146)) → U5_aaa(merge40_in_aaa)
le56_in_aaU6_aa(le56_in_aa)
le56_in_aale56_out_aa(0)
U3_aaa(merge40_out_aaa) → merge40_out_aaa
gt73_in_aaU7_aa(gt73_in_aa)
gt73_in_aagt73_out_aa(0)
U5_aaa(merge40_out_aaa) → merge40_out_aaa
U6_aa(le56_out_aa(T121)) → le56_out_aa(s(T121))
U7_aa(gt73_out_aa(T163)) → gt73_out_aa(s(T163))

The set Q consists of the following terms:

split16_in_gaa(x0)
mergesort1_in_ga(x0)
U1_gaa(x0, x1, x2, x3)
U8_ga(x0, x1, x2, x3)
U9_ga(x0, x1, x2, x3)
U10_ga(x0, x1, x2, x3)
U11_ga(x0, x1, x2, x3, x4)
U12_ga(x0, x1, x2, x3)
U13_ga(x0, x1, x2, x3)
U14_ga(x0, x1, x2, x3)
merge40_in_aaa
U2_aaa(x0)
U4_aaa(x0)
le56_in_aa
U3_aaa(x0)
gt73_in_aa
U5_aaa(x0)
U6_aa(x0)
U7_aa(x0)

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

(93) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U11_GA(T22, T23, T24, T27, mergesort1_out_ga(.(T22, T26))) → MERGESORT1_IN_GA(.(T23, T27))
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO]:

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

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

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

POL(split16_in_gaa(x1)) =
/1\
\1/
+
/00\
\01/
·x1

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

POL(U11_GA(x1, x2, x3, x4, x5)) = 0 +
[0,0]
·x1 +
[0,0]
·x2 +
[0,0]
·x3 +
[0,1]
·x4 +
[1,0]
·x5

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

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

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

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

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

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

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

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

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

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

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

POL(merge40_in_aaa) =
/0\
\0/

POL(merge40_out_aaa) =
/1\
\1/

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

POL(le56_in_aa) =
/0\
\1/

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

POL(gt73_in_aa) =
/0\
\1/

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

POL(le56_out_aa(x1)) =
/1\
\0/
+
/00\
\01/
·x1

POL(0) =
/0\
\0/

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

POL(U7_aa(x1)) =
/0\
\1/
+
/11\
\11/
·x1

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

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

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

The following usable rules [FROCOS05] were oriented:

split16_in_gaa([]) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, [])) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59))) → U1_gaa(T57, T58, T59, split16_in_gaa(T59))
mergesort1_in_ga(.(T4, [])) → mergesort1_out_ga(.(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24))) → U8_ga(T22, T23, T24, split16_in_gaa(T24))
mergesort1_in_ga(.(T22, .(T23, T24))) → U9_ga(T22, T23, T24, split16_in_gaa(T24))
U9_ga(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, mergesort1_in_ga(.(T22, T26)))
U10_ga(T22, T23, T24, mergesort1_out_ga(.(T22, T26))) → mergesort1_out_ga(.(T22, .(T23, T24)))
U9_ga(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T27, mergesort1_in_ga(.(T22, T26)))
U11_ga(T22, T23, T24, T27, mergesort1_out_ga(.(T22, T26))) → U12_ga(T22, T23, T24, mergesort1_in_ga(.(T23, T27)))
U12_ga(T22, T23, T24, mergesort1_out_ga(.(T23, T27))) → mergesort1_out_ga(.(T22, .(T23, T24)))
U11_ga(T22, T23, T24, T27, mergesort1_out_ga(.(T22, T26))) → U13_ga(T22, T23, T24, mergesort1_in_ga(.(T23, T27)))
U13_ga(T22, T23, T24, mergesort1_out_ga(.(T23, T27))) → U14_ga(T22, T23, T24, merge40_in_aaa)
U8_ga(T22, T23, T24, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)))
U1_gaa(T57, T58, T59, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U14_ga(T22, T23, T24, merge40_out_aaa) → mergesort1_out_ga(.(T22, .(T23, T24)))

(94) Obligation:

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

MERGESORT1_IN_GA(.(T22, .(T23, T24))) → U9_GA(T22, T23, T24, split16_in_gaa(T24))
U9_GA(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26))
U9_GA(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → U11_GA(T22, T23, T24, T27, mergesort1_in_ga(.(T22, T26)))

The TRS R consists of the following rules:

split16_in_gaa([]) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, [])) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59))) → U1_gaa(T57, T58, T59, split16_in_gaa(T59))
mergesort1_in_ga(.(T4, [])) → mergesort1_out_ga(.(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24))) → U8_ga(T22, T23, T24, split16_in_gaa(T24))
mergesort1_in_ga(.(T22, .(T23, T24))) → U9_ga(T22, T23, T24, split16_in_gaa(T24))
U1_gaa(T57, T58, T59, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)))
U9_ga(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, mergesort1_in_ga(.(T22, T26)))
U9_ga(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T27, mergesort1_in_ga(.(T22, T26)))
U10_ga(T22, T23, T24, mergesort1_out_ga(.(T22, T26))) → mergesort1_out_ga(.(T22, .(T23, T24)))
U11_ga(T22, T23, T24, T27, mergesort1_out_ga(.(T22, T26))) → U12_ga(T22, T23, T24, mergesort1_in_ga(.(T23, T27)))
U11_ga(T22, T23, T24, T27, mergesort1_out_ga(.(T22, T26))) → U13_ga(T22, T23, T24, mergesort1_in_ga(.(T23, T27)))
U12_ga(T22, T23, T24, mergesort1_out_ga(.(T23, T27))) → mergesort1_out_ga(.(T22, .(T23, T24)))
U13_ga(T22, T23, T24, mergesort1_out_ga(.(T23, T27))) → U14_ga(T22, T23, T24, merge40_in_aaa)
U14_ga(T22, T23, T24, merge40_out_aaa) → mergesort1_out_ga(.(T22, .(T23, T24)))
merge40_in_aaamerge40_out_aaa
merge40_in_aaaU2_aaa(le56_in_aa)
merge40_in_aaaU4_aaa(gt73_in_aa)
U2_aaa(le56_out_aa(T103)) → merge40_out_aaa
U2_aaa(le56_out_aa(T103)) → U3_aaa(merge40_in_aaa)
U4_aaa(gt73_out_aa(T146)) → merge40_out_aaa
U4_aaa(gt73_out_aa(T146)) → U5_aaa(merge40_in_aaa)
le56_in_aaU6_aa(le56_in_aa)
le56_in_aale56_out_aa(0)
U3_aaa(merge40_out_aaa) → merge40_out_aaa
gt73_in_aaU7_aa(gt73_in_aa)
gt73_in_aagt73_out_aa(0)
U5_aaa(merge40_out_aaa) → merge40_out_aaa
U6_aa(le56_out_aa(T121)) → le56_out_aa(s(T121))
U7_aa(gt73_out_aa(T163)) → gt73_out_aa(s(T163))

The set Q consists of the following terms:

split16_in_gaa(x0)
mergesort1_in_ga(x0)
U1_gaa(x0, x1, x2, x3)
U8_ga(x0, x1, x2, x3)
U9_ga(x0, x1, x2, x3)
U10_ga(x0, x1, x2, x3)
U11_ga(x0, x1, x2, x3, x4)
U12_ga(x0, x1, x2, x3)
U13_ga(x0, x1, x2, x3)
U14_ga(x0, x1, x2, x3)
merge40_in_aaa
U2_aaa(x0)
U4_aaa(x0)
le56_in_aa
U3_aaa(x0)
gt73_in_aa
U5_aaa(x0)
U6_aa(x0)
U7_aa(x0)

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

(95) DependencyGraphProof (EQUIVALENT transformation)

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

(96) Obligation:

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

U9_GA(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26))
MERGESORT1_IN_GA(.(T22, .(T23, T24))) → U9_GA(T22, T23, T24, split16_in_gaa(T24))

The TRS R consists of the following rules:

split16_in_gaa([]) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, [])) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59))) → U1_gaa(T57, T58, T59, split16_in_gaa(T59))
mergesort1_in_ga(.(T4, [])) → mergesort1_out_ga(.(T4, []))
mergesort1_in_ga(.(T22, .(T23, T24))) → U8_ga(T22, T23, T24, split16_in_gaa(T24))
mergesort1_in_ga(.(T22, .(T23, T24))) → U9_ga(T22, T23, T24, split16_in_gaa(T24))
U1_gaa(T57, T58, T59, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))
U8_ga(T22, T23, T24, split16_out_gaa(T24, X53, X54)) → mergesort1_out_ga(.(T22, .(T23, T24)))
U9_ga(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → U10_ga(T22, T23, T24, mergesort1_in_ga(.(T22, T26)))
U9_ga(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → U11_ga(T22, T23, T24, T27, mergesort1_in_ga(.(T22, T26)))
U10_ga(T22, T23, T24, mergesort1_out_ga(.(T22, T26))) → mergesort1_out_ga(.(T22, .(T23, T24)))
U11_ga(T22, T23, T24, T27, mergesort1_out_ga(.(T22, T26))) → U12_ga(T22, T23, T24, mergesort1_in_ga(.(T23, T27)))
U11_ga(T22, T23, T24, T27, mergesort1_out_ga(.(T22, T26))) → U13_ga(T22, T23, T24, mergesort1_in_ga(.(T23, T27)))
U12_ga(T22, T23, T24, mergesort1_out_ga(.(T23, T27))) → mergesort1_out_ga(.(T22, .(T23, T24)))
U13_ga(T22, T23, T24, mergesort1_out_ga(.(T23, T27))) → U14_ga(T22, T23, T24, merge40_in_aaa)
U14_ga(T22, T23, T24, merge40_out_aaa) → mergesort1_out_ga(.(T22, .(T23, T24)))
merge40_in_aaamerge40_out_aaa
merge40_in_aaaU2_aaa(le56_in_aa)
merge40_in_aaaU4_aaa(gt73_in_aa)
U2_aaa(le56_out_aa(T103)) → merge40_out_aaa
U2_aaa(le56_out_aa(T103)) → U3_aaa(merge40_in_aaa)
U4_aaa(gt73_out_aa(T146)) → merge40_out_aaa
U4_aaa(gt73_out_aa(T146)) → U5_aaa(merge40_in_aaa)
le56_in_aaU6_aa(le56_in_aa)
le56_in_aale56_out_aa(0)
U3_aaa(merge40_out_aaa) → merge40_out_aaa
gt73_in_aaU7_aa(gt73_in_aa)
gt73_in_aagt73_out_aa(0)
U5_aaa(merge40_out_aaa) → merge40_out_aaa
U6_aa(le56_out_aa(T121)) → le56_out_aa(s(T121))
U7_aa(gt73_out_aa(T163)) → gt73_out_aa(s(T163))

The set Q consists of the following terms:

split16_in_gaa(x0)
mergesort1_in_ga(x0)
U1_gaa(x0, x1, x2, x3)
U8_ga(x0, x1, x2, x3)
U9_ga(x0, x1, x2, x3)
U10_ga(x0, x1, x2, x3)
U11_ga(x0, x1, x2, x3, x4)
U12_ga(x0, x1, x2, x3)
U13_ga(x0, x1, x2, x3)
U14_ga(x0, x1, x2, x3)
merge40_in_aaa
U2_aaa(x0)
U4_aaa(x0)
le56_in_aa
U3_aaa(x0)
gt73_in_aa
U5_aaa(x0)
U6_aa(x0)
U7_aa(x0)

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

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

(98) Obligation:

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

U9_GA(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26))
MERGESORT1_IN_GA(.(T22, .(T23, T24))) → U9_GA(T22, T23, T24, split16_in_gaa(T24))

The TRS R consists of the following rules:

split16_in_gaa([]) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, [])) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59))) → U1_gaa(T57, T58, T59, split16_in_gaa(T59))
U1_gaa(T57, T58, T59, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))

The set Q consists of the following terms:

split16_in_gaa(x0)
mergesort1_in_ga(x0)
U1_gaa(x0, x1, x2, x3)
U8_ga(x0, x1, x2, x3)
U9_ga(x0, x1, x2, x3)
U10_ga(x0, x1, x2, x3)
U11_ga(x0, x1, x2, x3, x4)
U12_ga(x0, x1, x2, x3)
U13_ga(x0, x1, x2, x3)
U14_ga(x0, x1, x2, x3)
merge40_in_aaa
U2_aaa(x0)
U4_aaa(x0)
le56_in_aa
U3_aaa(x0)
gt73_in_aa
U5_aaa(x0)
U6_aa(x0)
U7_aa(x0)

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

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

mergesort1_in_ga(x0)
U8_ga(x0, x1, x2, x3)
U9_ga(x0, x1, x2, x3)
U10_ga(x0, x1, x2, x3)
U11_ga(x0, x1, x2, x3, x4)
U12_ga(x0, x1, x2, x3)
U13_ga(x0, x1, x2, x3)
U14_ga(x0, x1, x2, x3)
merge40_in_aaa
U2_aaa(x0)
U4_aaa(x0)
le56_in_aa
U3_aaa(x0)
gt73_in_aa
U5_aaa(x0)
U6_aa(x0)
U7_aa(x0)

(100) Obligation:

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

U9_GA(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26))
MERGESORT1_IN_GA(.(T22, .(T23, T24))) → U9_GA(T22, T23, T24, split16_in_gaa(T24))

The TRS R consists of the following rules:

split16_in_gaa([]) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, [])) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59))) → U1_gaa(T57, T58, T59, split16_in_gaa(T59))
U1_gaa(T57, T58, T59, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))

The set Q consists of the following terms:

split16_in_gaa(x0)
U1_gaa(x0, x1, x2, x3)

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

(101) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MERGESORT1_IN_GA(.(T22, .(T23, T24))) → U9_GA(T22, T23, T24, split16_in_gaa(T24))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + x1 + x2   
POL(MERGESORT1_IN_GA(x1)) = x1   
POL(U1_gaa(x1, x2, x3, x4)) = 1 + x1 + x2 + x4   
POL(U9_GA(x1, x2, x3, x4)) = 1 + x1 + x4   
POL([]) = 0   
POL(split16_in_gaa(x1)) = x1   
POL(split16_out_gaa(x1, x2, x3)) = x2   

The following usable rules [FROCOS05] were oriented:

split16_in_gaa([]) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, [])) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59))) → U1_gaa(T57, T58, T59, split16_in_gaa(T59))
U1_gaa(T57, T58, T59, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))

(102) Obligation:

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

U9_GA(T22, T23, T24, split16_out_gaa(T24, T26, T27)) → MERGESORT1_IN_GA(.(T22, T26))

The TRS R consists of the following rules:

split16_in_gaa([]) → split16_out_gaa([], [], [])
split16_in_gaa(.(T41, [])) → split16_out_gaa(.(T41, []), .(T41, []), [])
split16_in_gaa(.(T57, .(T58, T59))) → U1_gaa(T57, T58, T59, split16_in_gaa(T59))
U1_gaa(T57, T58, T59, split16_out_gaa(T59, X167, X168)) → split16_out_gaa(.(T57, .(T58, T59)), .(T57, X167), .(T58, X168))

The set Q consists of the following terms:

split16_in_gaa(x0)
U1_gaa(x0, x1, x2, x3)

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

(103) DependencyGraphProof (EQUIVALENT transformation)

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

(104) TRUE