(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_AA → GT73_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_AAThus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Matcher: [ ]
- Semiunifier: [ ]
Rewriting sequenceThe 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_AA → LE56_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_AAThus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Semiunifier: [ ]
- Matcher: [ ]
Rewriting sequenceThe 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_AAA → U2_AAA(le56_in_aa)
MERGE40_IN_AAA → U4_AAA(gt73_in_aa)
U4_AAA(gt73_out_aa(T146)) → MERGE40_IN_AAA
The TRS R consists of the following rules:
le56_in_aa → U6_aa(le56_in_aa)
le56_in_aa → le56_out_aa(0)
gt73_in_aa → U7_aa(gt73_in_aa)
gt73_in_aa → gt73_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_AAA →
U2_AAA(
le56_in_aa) at position [0] we obtained the following new rules [LPAR04]:
MERGE40_IN_AAA → U2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAA → U2_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_AAA → U4_AAA(gt73_in_aa)
U4_AAA(gt73_out_aa(T146)) → MERGE40_IN_AAA
MERGE40_IN_AAA → U2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAA → U2_AAA(le56_out_aa(0))
The TRS R consists of the following rules:
le56_in_aa → U6_aa(le56_in_aa)
le56_in_aa → le56_out_aa(0)
gt73_in_aa → U7_aa(gt73_in_aa)
gt73_in_aa → gt73_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_AAA →
U4_AAA(
gt73_in_aa) at position [0] we obtained the following new rules [LPAR04]:
MERGE40_IN_AAA → U4_AAA(U7_aa(gt73_in_aa))
MERGE40_IN_AAA → U4_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_AAA → U2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAA → U2_AAA(le56_out_aa(0))
MERGE40_IN_AAA → U4_AAA(U7_aa(gt73_in_aa))
MERGE40_IN_AAA → U4_AAA(gt73_out_aa(0))
The TRS R consists of the following rules:
le56_in_aa → U6_aa(le56_in_aa)
le56_in_aa → le56_out_aa(0)
gt73_in_aa → U7_aa(gt73_in_aa)
gt73_in_aa → gt73_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_AAAThus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Matcher: [ ]
- Semiunifier: [ ]
Rewriting sequenceMERGE40_IN_AAA →
U2_AAA(
le56_out_aa(
0))
with rule
MERGE40_IN_AAA →
U2_AAA(
le56_out_aa(
0)) at position [] and matcher [ ]
U2_AAA(le56_out_aa(0)) →
MERGE40_IN_AAAwith rule
U2_AAA(
le56_out_aa(
T103)) →
MERGE40_IN_AAANow 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_aaa → merge40_out_aaa
merge40_in_aaa → U2_aaa(le56_in_aa)
merge40_in_aaa → U4_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_aa → U6_aa(le56_in_aa)
le56_in_aa → le56_out_aa(0)
U3_aaa(merge40_out_aaa) → merge40_out_aaa
gt73_in_aa → U7_aa(gt73_in_aa)
gt73_in_aa → gt73_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_aaa → merge40_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_aaa → U2_aaa(le56_in_aa)
merge40_in_aaa → U4_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_aa → U6_aa(le56_in_aa)
le56_in_aa → le56_out_aa(0)
U3_aaa(merge40_out_aaa) → merge40_out_aaa
gt73_in_aa → U7_aa(gt73_in_aa)
gt73_in_aa → gt73_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_AA → GT73_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_AAThus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Matcher: [ ]
- Semiunifier: [ ]
Rewriting sequenceThe 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_AA → LE56_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_AAThus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Semiunifier: [ ]
- Matcher: [ ]
Rewriting sequenceThe 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_AAA → U2_AAA(le56_in_aa)
MERGE40_IN_AAA → U4_AAA(gt73_in_aa)
U4_AAA(gt73_out_aa(T146)) → MERGE40_IN_AAA
The TRS R consists of the following rules:
le56_in_aa → U6_aa(le56_in_aa)
le56_in_aa → le56_out_aa(0)
gt73_in_aa → U7_aa(gt73_in_aa)
gt73_in_aa → gt73_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_AAA →
U2_AAA(
le56_in_aa) at position [0] we obtained the following new rules [LPAR04]:
MERGE40_IN_AAA → U2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAA → U2_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_AAA → U4_AAA(gt73_in_aa)
U4_AAA(gt73_out_aa(T146)) → MERGE40_IN_AAA
MERGE40_IN_AAA → U2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAA → U2_AAA(le56_out_aa(0))
The TRS R consists of the following rules:
le56_in_aa → U6_aa(le56_in_aa)
le56_in_aa → le56_out_aa(0)
gt73_in_aa → U7_aa(gt73_in_aa)
gt73_in_aa → gt73_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_AAA →
U4_AAA(
gt73_in_aa) at position [0] we obtained the following new rules [LPAR04]:
MERGE40_IN_AAA → U4_AAA(U7_aa(gt73_in_aa))
MERGE40_IN_AAA → U4_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_AAA → U2_AAA(U6_aa(le56_in_aa))
MERGE40_IN_AAA → U2_AAA(le56_out_aa(0))
MERGE40_IN_AAA → U4_AAA(U7_aa(gt73_in_aa))
MERGE40_IN_AAA → U4_AAA(gt73_out_aa(0))
The TRS R consists of the following rules:
le56_in_aa → U6_aa(le56_in_aa)
le56_in_aa → le56_out_aa(0)
gt73_in_aa → U7_aa(gt73_in_aa)
gt73_in_aa → gt73_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_AAAThus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Matcher: [ ]
- Semiunifier: [ ]
Rewriting sequenceMERGE40_IN_AAA →
U2_AAA(
le56_out_aa(
0))
with rule
MERGE40_IN_AAA →
U2_AAA(
le56_out_aa(
0)) at position [] and matcher [ ]
U2_AAA(le56_out_aa(0)) →
MERGE40_IN_AAAwith rule
U2_AAA(
le56_out_aa(
T103)) →
MERGE40_IN_AAANow 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_aaa → merge40_out_aaa
merge40_in_aaa → U2_aaa(le56_in_aa)
merge40_in_aaa → U4_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_aa → U6_aa(le56_in_aa)
le56_in_aa → le56_out_aa(0)
U3_aaa(merge40_out_aaa) → merge40_out_aaa
gt73_in_aa → U7_aa(gt73_in_aa)
gt73_in_aa → gt73_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 | + | | · | x1 |
POL(.(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(U9_GA(x1, x2, x3, x4)) = | 0 | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(split16_in_gaa(x1)) = | | + | | · | x1 |
POL(split16_out_gaa(x1, x2, x3)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 |
POL(U11_GA(x1, x2, x3, x4, x5)) = | 0 | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 | + | | · | x5 |
POL(mergesort1_in_ga(x1)) = | | + | | · | x1 |
POL(mergesort1_out_ga(x1)) = | | + | | · | x1 |
POL(U1_gaa(x1, x2, x3, x4)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(U8_ga(x1, x2, x3, x4)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(U9_ga(x1, x2, x3, x4)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(U10_ga(x1, x2, x3, x4)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(U11_ga(x1, x2, x3, x4, x5)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 | + | | · | x5 |
POL(U12_ga(x1, x2, x3, x4)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(U13_ga(x1, x2, x3, x4)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(U14_ga(x1, x2, x3, x4)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(le56_out_aa(x1)) = | | + | | · | x1 |
POL(gt73_out_aa(x1)) = | | + | | · | 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_aaa → merge40_out_aaa
merge40_in_aaa → U2_aaa(le56_in_aa)
merge40_in_aaa → U4_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_aa → U6_aa(le56_in_aa)
le56_in_aa → le56_out_aa(0)
U3_aaa(merge40_out_aaa) → merge40_out_aaa
gt73_in_aa → U7_aa(gt73_in_aa)
gt73_in_aa → gt73_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_aaa → merge40_out_aaa
merge40_in_aaa → U2_aaa(le56_in_aa)
merge40_in_aaa → U4_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_aa → U6_aa(le56_in_aa)
le56_in_aa → le56_out_aa(0)
U3_aaa(merge40_out_aaa) → merge40_out_aaa
gt73_in_aa → U7_aa(gt73_in_aa)
gt73_in_aa → gt73_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