(0) Obligation:
Clauses:
mergesort([], []).
mergesort(.(E, []), .(E, [])).
mergesort(.(E, .(F, U)), V) :- ','(split(.(E, .(F, U)), W, Y), ','(mergesort(W, X), ','(mergesort(Y, Z), merge(X, Z, V)))).
merge(X, [], X).
merge([], X, X).
merge(.(A, X), .(B, Y), .(A, Z)) :- ','(le(A, B), merge(X, .(B, Y), Z)).
merge(.(A, X), .(B, Y), .(B, Z)) :- ','(gt(A, B), merge(.(A, X), Y, Z)).
split([], [], []).
split(.(E, U), .(E, V), W) :- split(U, W, V).
gt(s(X), s(Y)) :- gt(X, Y).
gt(s(X), 0).
le(s(X), s(Y)) :- le(X, Y).
le(0, s(Y)).
le(0, 0).
Queries:
mergesort(g,a).
(1) PrologToPrologProblemTransformerProof (SOUND transformation)
Built Prolog problem from termination graph.
(2) Obligation:
Clauses:
split21([], [], []).
split21(.(T42, T43), .(T42, X99), X100) :- split21(T43, X100, X99).
split17(T36, T37, .(T36, X81), X82) :- split21(T37, X82, X81).
mergesort32([], []).
mergesort32(.(T54, []), .(T54, [])).
mergesort32(.(T61, .(T62, T63)), X137) :- split17(T61, .(T62, T63), X133, X134).
mergesort32(.(T61, .(T62, T63)), X137) :- ','(split17(T61, .(T62, T63), T67, T68), mergesort32(T67, X135)).
mergesort32(.(T61, .(T62, T63)), X137) :- ','(split17(T61, .(T62, T63), T67, T68), ','(mergesort32(T67, T72), mergesort32(T68, X136))).
mergesort32(.(T61, .(T62, T63)), X137) :- ','(split17(T61, .(T62, T63), T67, T68), ','(mergesort32(T67, T72), ','(mergesort32(T68, T73), merge33(T72, T73, X137)))).
merge33(T82, [], T82).
merge33([], T87, T87).
merge33(.(T108, T109), .(T110, T111), .(T108, T113)) :- le68(T108, T110).
merge33(.(T108, T109), .(T110, T111), .(T108, T113)) :- ','(le68(T108, T110), merge33(T109, .(T110, T111), T113)).
merge33(.(T151, T152), .(T153, T154), .(T153, T156)) :- gt85(T151, T153).
merge33(.(T151, T152), .(T153, T154), .(T153, T156)) :- ','(gt85(T151, T153), merge33(.(T151, T152), T154, T156)).
le68(s(T126), s(T127)) :- le68(T126, T127).
le68(0, s(T134)).
le68(0, 0).
gt85(s(T169), s(T170)) :- gt85(T169, T170).
gt85(s(T175), 0).
mergesort1([], []).
mergesort1(.(T4, []), .(T4, [])).
mergesort1(.(T23, .(T24, T25)), T14) :- split17(T24, T25, X52, X51).
mergesort1(.(T23, .(T24, T25)), T14) :- ','(split17(T24, T25, T28, T29), mergesort1(.(T23, T29), X23)).
mergesort1(.(T23, .(T24, T25)), T14) :- ','(split17(T24, T25, T28, T29), ','(mergesort1(.(T23, T29), T46), mergesort32(T28, X24))).
mergesort1(.(T23, .(T24, T25)), T14) :- ','(split17(T24, T25, T28, T29), ','(mergesort1(.(T23, T29), T46), ','(mergesort32(T28, T49), merge33(T46, T49, 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)
split17_in: (b,b,f,f)
split21_in: (b,f,f)
mergesort32_in: (b,f)
merge33_in: (f,f,f)
le68_in: (f,f)
gt85_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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x1,
x2,
x3,
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x2,
x3,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x1,
x2,
x3,
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x1,
x2,
x3,
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x1,
x2,
x3,
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga(
x1)
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x1,
x2,
x3,
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x1,
x2,
x3,
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x1,
x2,
x3,
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x1,
x2,
x3,
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x1,
x2,
x3,
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x1,
x2,
x3,
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x1,
x2,
x3,
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x1,
x2,
x3,
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x1,
x2,
x3,
x5)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x1,
x2,
x3,
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x2,
x3,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x1,
x2,
x3,
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x1,
x2,
x3,
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x1,
x2,
x3,
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga(
x1)
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x1,
x2,
x3,
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x1,
x2,
x3,
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x1,
x2,
x3,
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x1,
x2,
x3,
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x1,
x2,
x3,
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x1,
x2,
x3,
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x1,
x2,
x3,
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x1,
x2,
x3,
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x1,
x2,
x3,
x5)
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(.(T23, .(T24, T25)), T14) → U16_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → SPLIT17_IN_GGAA(T24, T25, X52, X51)
SPLIT17_IN_GGAA(T36, T37, .(T36, X81), X82) → U2_GGAA(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
SPLIT17_IN_GGAA(T36, T37, .(T36, X81), X82) → SPLIT21_IN_GAA(T37, X82, X81)
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → U1_GAA(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U17_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_GA(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_GA(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_GA(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → MERGESORT32_IN_GA(T28, X24)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U3_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → SPLIT17_IN_GGAA(T61, .(T62, T63), X133, X134)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_GA(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_GA(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_GA(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_GA(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_GA(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
U8_GA(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → MERGE33_IN_AAA(T72, T73, X137)
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_AAA(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → LE68_IN_AA(T108, T110)
LE68_IN_AA(s(T126), s(T127)) → U14_AA(T126, T127, le68_in_aa(T126, T127))
LE68_IN_AA(s(T126), s(T127)) → LE68_IN_AA(T126, T127)
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_AAA(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → MERGE33_IN_AAA(T109, .(T110, T111), T113)
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_AAA(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → GT85_IN_AA(T151, T153)
GT85_IN_AA(s(T169), s(T170)) → U15_AA(T169, T170, gt85_in_aa(T169, T170))
GT85_IN_AA(s(T169), s(T170)) → GT85_IN_AA(T169, T170)
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_AAA(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → MERGE33_IN_AAA(.(T151, T152), T154, T156)
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_GA(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_GA(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_GA(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U21_GA(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → MERGE33_IN_AAA(T46, T49, T14)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x1,
x2,
x3,
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x2,
x3,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x1,
x2,
x3,
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x1,
x2,
x3,
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x1,
x2,
x3,
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga(
x1)
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x1,
x2,
x3,
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x1,
x2,
x3,
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x1,
x2,
x3,
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x1,
x2,
x3,
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x1,
x2,
x3,
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x1,
x2,
x3,
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x1,
x2,
x3,
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x1,
x2,
x3,
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x1,
x2,
x3,
x5)
s(
x1) =
s(
x1)
MERGESORT1_IN_GA(
x1,
x2) =
MERGESORT1_IN_GA(
x1)
U16_GA(
x1,
x2,
x3,
x4,
x5) =
U16_GA(
x1,
x2,
x3,
x5)
SPLIT17_IN_GGAA(
x1,
x2,
x3,
x4) =
SPLIT17_IN_GGAA(
x1,
x2)
U2_GGAA(
x1,
x2,
x3,
x4,
x5) =
U2_GGAA(
x1,
x2,
x5)
SPLIT21_IN_GAA(
x1,
x2,
x3) =
SPLIT21_IN_GAA(
x1)
U1_GAA(
x1,
x2,
x3,
x4,
x5) =
U1_GAA(
x1,
x2,
x5)
U17_GA(
x1,
x2,
x3,
x4,
x5) =
U17_GA(
x1,
x2,
x3,
x5)
U18_GA(
x1,
x2,
x3,
x4,
x5) =
U18_GA(
x1,
x2,
x3,
x5)
U19_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_GA(
x1,
x2,
x3,
x5,
x6)
U20_GA(
x1,
x2,
x3,
x4,
x5) =
U20_GA(
x1,
x2,
x3,
x5)
MERGESORT32_IN_GA(
x1,
x2) =
MERGESORT32_IN_GA(
x1)
U3_GA(
x1,
x2,
x3,
x4,
x5) =
U3_GA(
x1,
x2,
x3,
x5)
U4_GA(
x1,
x2,
x3,
x4,
x5) =
U4_GA(
x1,
x2,
x3,
x5)
U5_GA(
x1,
x2,
x3,
x4,
x5) =
U5_GA(
x1,
x2,
x3,
x5)
U6_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_GA(
x1,
x2,
x3,
x5,
x6)
U7_GA(
x1,
x2,
x3,
x4,
x5) =
U7_GA(
x1,
x2,
x3,
x5)
U8_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_GA(
x1,
x2,
x3,
x6)
U9_GA(
x1,
x2,
x3,
x4,
x5) =
U9_GA(
x1,
x2,
x3,
x5)
MERGE33_IN_AAA(
x1,
x2,
x3) =
MERGE33_IN_AAA
U10_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_AAA(
x6)
LE68_IN_AA(
x1,
x2) =
LE68_IN_AA
U14_AA(
x1,
x2,
x3) =
U14_AA(
x3)
U11_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_AAA(
x6)
U12_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_AAA(
x6)
GT85_IN_AA(
x1,
x2) =
GT85_IN_AA
U15_AA(
x1,
x2,
x3) =
U15_AA(
x3)
U13_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_AAA(
x6)
U21_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_GA(
x1,
x2,
x3,
x6)
U22_GA(
x1,
x2,
x3,
x4,
x5) =
U22_GA(
x1,
x2,
x3,
x5)
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(.(T23, .(T24, T25)), T14) → U16_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → SPLIT17_IN_GGAA(T24, T25, X52, X51)
SPLIT17_IN_GGAA(T36, T37, .(T36, X81), X82) → U2_GGAA(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
SPLIT17_IN_GGAA(T36, T37, .(T36, X81), X82) → SPLIT21_IN_GAA(T37, X82, X81)
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → U1_GAA(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U17_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_GA(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_GA(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_GA(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → MERGESORT32_IN_GA(T28, X24)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U3_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → SPLIT17_IN_GGAA(T61, .(T62, T63), X133, X134)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_GA(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_GA(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_GA(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_GA(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_GA(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
U8_GA(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → MERGE33_IN_AAA(T72, T73, X137)
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_AAA(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → LE68_IN_AA(T108, T110)
LE68_IN_AA(s(T126), s(T127)) → U14_AA(T126, T127, le68_in_aa(T126, T127))
LE68_IN_AA(s(T126), s(T127)) → LE68_IN_AA(T126, T127)
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_AAA(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → MERGE33_IN_AAA(T109, .(T110, T111), T113)
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_AAA(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → GT85_IN_AA(T151, T153)
GT85_IN_AA(s(T169), s(T170)) → U15_AA(T169, T170, gt85_in_aa(T169, T170))
GT85_IN_AA(s(T169), s(T170)) → GT85_IN_AA(T169, T170)
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_AAA(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → MERGE33_IN_AAA(.(T151, T152), T154, T156)
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_GA(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_GA(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_GA(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U21_GA(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → MERGE33_IN_AAA(T46, T49, T14)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x1,
x2,
x3,
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x2,
x3,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x1,
x2,
x3,
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x1,
x2,
x3,
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x1,
x2,
x3,
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga(
x1)
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x1,
x2,
x3,
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x1,
x2,
x3,
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x1,
x2,
x3,
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x1,
x2,
x3,
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x1,
x2,
x3,
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x1,
x2,
x3,
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x1,
x2,
x3,
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x1,
x2,
x3,
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x1,
x2,
x3,
x5)
s(
x1) =
s(
x1)
MERGESORT1_IN_GA(
x1,
x2) =
MERGESORT1_IN_GA(
x1)
U16_GA(
x1,
x2,
x3,
x4,
x5) =
U16_GA(
x1,
x2,
x3,
x5)
SPLIT17_IN_GGAA(
x1,
x2,
x3,
x4) =
SPLIT17_IN_GGAA(
x1,
x2)
U2_GGAA(
x1,
x2,
x3,
x4,
x5) =
U2_GGAA(
x1,
x2,
x5)
SPLIT21_IN_GAA(
x1,
x2,
x3) =
SPLIT21_IN_GAA(
x1)
U1_GAA(
x1,
x2,
x3,
x4,
x5) =
U1_GAA(
x1,
x2,
x5)
U17_GA(
x1,
x2,
x3,
x4,
x5) =
U17_GA(
x1,
x2,
x3,
x5)
U18_GA(
x1,
x2,
x3,
x4,
x5) =
U18_GA(
x1,
x2,
x3,
x5)
U19_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_GA(
x1,
x2,
x3,
x5,
x6)
U20_GA(
x1,
x2,
x3,
x4,
x5) =
U20_GA(
x1,
x2,
x3,
x5)
MERGESORT32_IN_GA(
x1,
x2) =
MERGESORT32_IN_GA(
x1)
U3_GA(
x1,
x2,
x3,
x4,
x5) =
U3_GA(
x1,
x2,
x3,
x5)
U4_GA(
x1,
x2,
x3,
x4,
x5) =
U4_GA(
x1,
x2,
x3,
x5)
U5_GA(
x1,
x2,
x3,
x4,
x5) =
U5_GA(
x1,
x2,
x3,
x5)
U6_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_GA(
x1,
x2,
x3,
x5,
x6)
U7_GA(
x1,
x2,
x3,
x4,
x5) =
U7_GA(
x1,
x2,
x3,
x5)
U8_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_GA(
x1,
x2,
x3,
x6)
U9_GA(
x1,
x2,
x3,
x4,
x5) =
U9_GA(
x1,
x2,
x3,
x5)
MERGE33_IN_AAA(
x1,
x2,
x3) =
MERGE33_IN_AAA
U10_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_AAA(
x6)
LE68_IN_AA(
x1,
x2) =
LE68_IN_AA
U14_AA(
x1,
x2,
x3) =
U14_AA(
x3)
U11_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_AAA(
x6)
U12_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_AAA(
x6)
GT85_IN_AA(
x1,
x2) =
GT85_IN_AA
U15_AA(
x1,
x2,
x3) =
U15_AA(
x3)
U13_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_AAA(
x6)
U21_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_GA(
x1,
x2,
x3,
x6)
U22_GA(
x1,
x2,
x3,
x4,
x5) =
U22_GA(
x1,
x2,
x3,
x5)
We have to consider all (P,R,Pi)-chains
(7) DependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LOPSTR] contains 6 SCCs with 25 less nodes.
(8) Complex Obligation (AND)
(9) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
GT85_IN_AA(s(T169), s(T170)) → GT85_IN_AA(T169, T170)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x1,
x2,
x3,
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x2,
x3,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x1,
x2,
x3,
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x1,
x2,
x3,
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x1,
x2,
x3,
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga(
x1)
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x1,
x2,
x3,
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x1,
x2,
x3,
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x1,
x2,
x3,
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x1,
x2,
x3,
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x1,
x2,
x3,
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x1,
x2,
x3,
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x1,
x2,
x3,
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x1,
x2,
x3,
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x1,
x2,
x3,
x5)
s(
x1) =
s(
x1)
GT85_IN_AA(
x1,
x2) =
GT85_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:
GT85_IN_AA(s(T169), s(T170)) → GT85_IN_AA(T169, T170)
R is empty.
The argument filtering Pi contains the following mapping:
s(
x1) =
s(
x1)
GT85_IN_AA(
x1,
x2) =
GT85_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:
GT85_IN_AA → GT85_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 =
GT85_IN_AA evaluates to t =
GT85_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 GT85_IN_AA to GT85_IN_AA.
(15) NO
(16) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
LE68_IN_AA(s(T126), s(T127)) → LE68_IN_AA(T126, T127)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x1,
x2,
x3,
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x2,
x3,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x1,
x2,
x3,
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x1,
x2,
x3,
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x1,
x2,
x3,
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga(
x1)
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x1,
x2,
x3,
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x1,
x2,
x3,
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x1,
x2,
x3,
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x1,
x2,
x3,
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x1,
x2,
x3,
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x1,
x2,
x3,
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x1,
x2,
x3,
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x1,
x2,
x3,
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x1,
x2,
x3,
x5)
s(
x1) =
s(
x1)
LE68_IN_AA(
x1,
x2) =
LE68_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:
LE68_IN_AA(s(T126), s(T127)) → LE68_IN_AA(T126, T127)
R is empty.
The argument filtering Pi contains the following mapping:
s(
x1) =
s(
x1)
LE68_IN_AA(
x1,
x2) =
LE68_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:
LE68_IN_AA → LE68_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 =
LE68_IN_AA evaluates to t =
LE68_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 LE68_IN_AA to LE68_IN_AA.
(22) NO
(23) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → MERGE33_IN_AAA(T109, .(T110, T111), T113)
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_AAA(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_AAA(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → MERGE33_IN_AAA(.(T151, T152), T154, T156)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x1,
x2,
x3,
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x2,
x3,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x1,
x2,
x3,
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x1,
x2,
x3,
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x1,
x2,
x3,
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga(
x1)
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x1,
x2,
x3,
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x1,
x2,
x3,
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x1,
x2,
x3,
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x1,
x2,
x3,
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x1,
x2,
x3,
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x1,
x2,
x3,
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x1,
x2,
x3,
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x1,
x2,
x3,
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x1,
x2,
x3,
x5)
s(
x1) =
s(
x1)
MERGE33_IN_AAA(
x1,
x2,
x3) =
MERGE33_IN_AAA
U10_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_AAA(
x6)
U12_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_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:
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → MERGE33_IN_AAA(T109, .(T110, T111), T113)
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_AAA(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_AAA(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → MERGE33_IN_AAA(.(T151, T152), T154, T156)
The TRS R consists of the following rules:
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
The argument filtering Pi contains the following mapping:
.(
x1,
x2) =
.(
x1,
x2)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
s(
x1) =
s(
x1)
MERGE33_IN_AAA(
x1,
x2,
x3) =
MERGE33_IN_AAA
U10_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_AAA(
x6)
U12_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_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:
U10_AAA(le68_out_aa(T108)) → MERGE33_IN_AAA
MERGE33_IN_AAA → U10_AAA(le68_in_aa)
MERGE33_IN_AAA → U12_AAA(gt85_in_aa)
U12_AAA(gt85_out_aa(T153)) → MERGE33_IN_AAA
The TRS R consists of the following rules:
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
le68_in_aa
gt85_in_aa
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(28) Narrowing (SOUND transformation)
By narrowing [LPAR04] the rule
MERGE33_IN_AAA →
U10_AAA(
le68_in_aa) at position [0] we obtained the following new rules [LPAR04]:
MERGE33_IN_AAA → U10_AAA(U14_aa(le68_in_aa))
MERGE33_IN_AAA → U10_AAA(le68_out_aa(0))
(29) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U10_AAA(le68_out_aa(T108)) → MERGE33_IN_AAA
MERGE33_IN_AAA → U12_AAA(gt85_in_aa)
U12_AAA(gt85_out_aa(T153)) → MERGE33_IN_AAA
MERGE33_IN_AAA → U10_AAA(U14_aa(le68_in_aa))
MERGE33_IN_AAA → U10_AAA(le68_out_aa(0))
The TRS R consists of the following rules:
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
le68_in_aa
gt85_in_aa
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(30) Narrowing (SOUND transformation)
By narrowing [LPAR04] the rule
MERGE33_IN_AAA →
U12_AAA(
gt85_in_aa) at position [0] we obtained the following new rules [LPAR04]:
MERGE33_IN_AAA → U12_AAA(U15_aa(gt85_in_aa))
MERGE33_IN_AAA → U12_AAA(gt85_out_aa(0))
(31) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U10_AAA(le68_out_aa(T108)) → MERGE33_IN_AAA
U12_AAA(gt85_out_aa(T153)) → MERGE33_IN_AAA
MERGE33_IN_AAA → U10_AAA(U14_aa(le68_in_aa))
MERGE33_IN_AAA → U10_AAA(le68_out_aa(0))
MERGE33_IN_AAA → U12_AAA(U15_aa(gt85_in_aa))
MERGE33_IN_AAA → U12_AAA(gt85_out_aa(0))
The TRS R consists of the following rules:
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
le68_in_aa
gt85_in_aa
U14_aa(x0)
U15_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 =
MERGE33_IN_AAA evaluates to t =
MERGE33_IN_AAAThus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Matcher: [ ]
- Semiunifier: [ ]
Rewriting sequenceMERGE33_IN_AAA →
U10_AAA(
le68_out_aa(
0))
with rule
MERGE33_IN_AAA →
U10_AAA(
le68_out_aa(
0)) at position [] and matcher [ ]
U10_AAA(le68_out_aa(0)) →
MERGE33_IN_AAAwith rule
U10_AAA(
le68_out_aa(
T108)) →
MERGE33_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:
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x1,
x2,
x3,
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x2,
x3,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x1,
x2,
x3,
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x1,
x2,
x3,
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x1,
x2,
x3,
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga(
x1)
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x1,
x2,
x3,
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x1,
x2,
x3,
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x1,
x2,
x3,
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x1,
x2,
x3,
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x1,
x2,
x3,
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x1,
x2,
x3,
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x1,
x2,
x3,
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x1,
x2,
x3,
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x1,
x2,
x3,
x5)
s(
x1) =
s(
x1)
SPLIT21_IN_GAA(
x1,
x2,
x3) =
SPLIT21_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:
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)
R is empty.
The argument filtering Pi contains the following mapping:
.(
x1,
x2) =
.(
x1,
x2)
SPLIT21_IN_GAA(
x1,
x2,
x3) =
SPLIT21_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:
SPLIT21_IN_GAA(.(T42, T43)) → SPLIT21_IN_GAA(T43)
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:
- SPLIT21_IN_GAA(.(T42, T43)) → SPLIT21_IN_GAA(T43)
The graph contains the following edges 1 > 1
(40) YES
(41) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x1,
x2,
x3,
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x2,
x3,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x1,
x2,
x3,
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x1,
x2,
x3,
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x1,
x2,
x3,
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga(
x1)
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x1,
x2,
x3,
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x1,
x2,
x3,
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x1,
x2,
x3,
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x1,
x2,
x3,
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x1,
x2,
x3,
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x1,
x2,
x3,
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x1,
x2,
x3,
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x1,
x2,
x3,
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x1,
x2,
x3,
x5)
s(
x1) =
s(
x1)
MERGESORT32_IN_GA(
x1,
x2) =
MERGESORT32_IN_GA(
x1)
U4_GA(
x1,
x2,
x3,
x4,
x5) =
U4_GA(
x1,
x2,
x3,
x5)
U6_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_GA(
x1,
x2,
x3,
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:
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
The argument filtering Pi contains the following mapping:
[] =
[]
.(
x1,
x2) =
.(
x1,
x2)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga(
x1)
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x1,
x2,
x3,
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x1,
x2,
x3,
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x1,
x2,
x3,
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x1,
x2,
x3,
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x1,
x2,
x3,
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x1,
x2,
x3,
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x1,
x2,
x3,
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
s(
x1) =
s(
x1)
MERGESORT32_IN_GA(
x1,
x2) =
MERGESORT32_IN_GA(
x1)
U4_GA(
x1,
x2,
x3,
x4,
x5) =
U4_GA(
x1,
x2,
x3,
x5)
U6_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_GA(
x1,
x2,
x3,
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:
MERGESORT32_IN_GA(.(T61, .(T62, T63))) → U4_GA(T61, T62, T63, split17_in_ggaa(T61, .(T62, T63)))
U4_GA(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67)
U4_GA(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, T68, mergesort32_in_ga(T67))
U6_GA(T61, T62, T63, T68, mergesort32_out_ga(T67)) → MERGESORT32_IN_GA(T68)
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37) → U2_ggaa(T36, T37, split21_in_gaa(T37))
mergesort32_in_ga([]) → mergesort32_out_ga([])
mergesort32_in_ga(.(T54, [])) → mergesort32_out_ga(.(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63))) → U3_ga(T61, T62, T63, split17_in_ggaa(T61, .(T62, T63)))
mergesort32_in_ga(.(T61, .(T62, T63))) → U4_ga(T61, T62, T63, split17_in_ggaa(T61, .(T62, T63)))
U2_ggaa(T36, T37, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U3_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U4_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, mergesort32_in_ga(T67))
U4_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, T68, mergesort32_in_ga(T67))
split21_in_gaa([]) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, T43, split21_in_gaa(T43))
U5_ga(T61, T62, T63, mergesort32_out_ga(T67)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U6_ga(T61, T62, T63, T68, mergesort32_out_ga(T67)) → U7_ga(T61, T62, T63, mergesort32_in_ga(T68))
U6_ga(T61, T62, T63, T68, mergesort32_out_ga(T67)) → U8_ga(T61, T62, T63, mergesort32_in_ga(T68))
U1_gaa(T42, T43, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U7_ga(T61, T62, T63, mergesort32_out_ga(T68)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U8_ga(T61, T62, T63, mergesort32_out_ga(T68)) → U9_ga(T61, T62, T63, merge33_in_aaa)
U9_ga(T61, T62, T63, merge33_out_aaa) → mergesort32_out_ga(.(T61, .(T62, T63)))
merge33_in_aaa → merge33_out_aaa
merge33_in_aaa → U10_aaa(le68_in_aa)
merge33_in_aaa → U12_aaa(gt85_in_aa)
U10_aaa(le68_out_aa(T108)) → merge33_out_aaa
U10_aaa(le68_out_aa(T108)) → U11_aaa(merge33_in_aaa)
U12_aaa(gt85_out_aa(T153)) → merge33_out_aaa
U12_aaa(gt85_out_aa(T153)) → U13_aaa(merge33_in_aaa)
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
U11_aaa(merge33_out_aaa) → merge33_out_aaa
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U13_aaa(merge33_out_aaa) → merge33_out_aaa
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
mergesort32_in_ga(x0)
U2_ggaa(x0, x1, x2)
U3_ga(x0, x1, x2, x3)
U4_ga(x0, x1, x2, x3)
split21_in_gaa(x0)
U5_ga(x0, x1, x2, x3)
U6_ga(x0, x1, x2, x3, x4)
U1_gaa(x0, x1, x2)
U7_ga(x0, x1, x2, x3)
U8_ga(x0, x1, x2, x3)
U9_ga(x0, x1, x2, x3)
merge33_in_aaa
U10_aaa(x0)
U12_aaa(x0)
le68_in_aa
U11_aaa(x0)
gt85_in_aa
U13_aaa(x0)
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(46) Rewriting (EQUIVALENT transformation)
By rewriting [LPAR04] the rule
MERGESORT32_IN_GA(
.(
T61,
.(
T62,
T63))) →
U4_GA(
T61,
T62,
T63,
split17_in_ggaa(
T61,
.(
T62,
T63))) at position [3] we obtained the following new rules [LPAR04]:
MERGESORT32_IN_GA(.(T61, .(T62, T63))) → U4_GA(T61, T62, T63, U2_ggaa(T61, .(T62, T63), split21_in_gaa(.(T62, T63))))
(47) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U4_GA(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67)
U4_GA(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, T68, mergesort32_in_ga(T67))
U6_GA(T61, T62, T63, T68, mergesort32_out_ga(T67)) → MERGESORT32_IN_GA(T68)
MERGESORT32_IN_GA(.(T61, .(T62, T63))) → U4_GA(T61, T62, T63, U2_ggaa(T61, .(T62, T63), split21_in_gaa(.(T62, T63))))
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37) → U2_ggaa(T36, T37, split21_in_gaa(T37))
mergesort32_in_ga([]) → mergesort32_out_ga([])
mergesort32_in_ga(.(T54, [])) → mergesort32_out_ga(.(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63))) → U3_ga(T61, T62, T63, split17_in_ggaa(T61, .(T62, T63)))
mergesort32_in_ga(.(T61, .(T62, T63))) → U4_ga(T61, T62, T63, split17_in_ggaa(T61, .(T62, T63)))
U2_ggaa(T36, T37, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U3_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U4_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, mergesort32_in_ga(T67))
U4_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, T68, mergesort32_in_ga(T67))
split21_in_gaa([]) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, T43, split21_in_gaa(T43))
U5_ga(T61, T62, T63, mergesort32_out_ga(T67)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U6_ga(T61, T62, T63, T68, mergesort32_out_ga(T67)) → U7_ga(T61, T62, T63, mergesort32_in_ga(T68))
U6_ga(T61, T62, T63, T68, mergesort32_out_ga(T67)) → U8_ga(T61, T62, T63, mergesort32_in_ga(T68))
U1_gaa(T42, T43, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U7_ga(T61, T62, T63, mergesort32_out_ga(T68)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U8_ga(T61, T62, T63, mergesort32_out_ga(T68)) → U9_ga(T61, T62, T63, merge33_in_aaa)
U9_ga(T61, T62, T63, merge33_out_aaa) → mergesort32_out_ga(.(T61, .(T62, T63)))
merge33_in_aaa → merge33_out_aaa
merge33_in_aaa → U10_aaa(le68_in_aa)
merge33_in_aaa → U12_aaa(gt85_in_aa)
U10_aaa(le68_out_aa(T108)) → merge33_out_aaa
U10_aaa(le68_out_aa(T108)) → U11_aaa(merge33_in_aaa)
U12_aaa(gt85_out_aa(T153)) → merge33_out_aaa
U12_aaa(gt85_out_aa(T153)) → U13_aaa(merge33_in_aaa)
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
U11_aaa(merge33_out_aaa) → merge33_out_aaa
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U13_aaa(merge33_out_aaa) → merge33_out_aaa
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
mergesort32_in_ga(x0)
U2_ggaa(x0, x1, x2)
U3_ga(x0, x1, x2, x3)
U4_ga(x0, x1, x2, x3)
split21_in_gaa(x0)
U5_ga(x0, x1, x2, x3)
U6_ga(x0, x1, x2, x3, x4)
U1_gaa(x0, x1, x2)
U7_ga(x0, x1, x2, x3)
U8_ga(x0, x1, x2, x3)
U9_ga(x0, x1, x2, x3)
merge33_in_aaa
U10_aaa(x0)
U12_aaa(x0)
le68_in_aa
U11_aaa(x0)
gt85_in_aa
U13_aaa(x0)
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(48) Rewriting (EQUIVALENT transformation)
By rewriting [LPAR04] the rule
MERGESORT32_IN_GA(
.(
T61,
.(
T62,
T63))) →
U4_GA(
T61,
T62,
T63,
U2_ggaa(
T61,
.(
T62,
T63),
split21_in_gaa(
.(
T62,
T63)))) at position [3,2] we obtained the following new rules [LPAR04]:
MERGESORT32_IN_GA(.(T61, .(T62, T63))) → U4_GA(T61, T62, T63, U2_ggaa(T61, .(T62, T63), U1_gaa(T62, T63, split21_in_gaa(T63))))
(49) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U4_GA(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67)
U4_GA(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, T68, mergesort32_in_ga(T67))
U6_GA(T61, T62, T63, T68, mergesort32_out_ga(T67)) → MERGESORT32_IN_GA(T68)
MERGESORT32_IN_GA(.(T61, .(T62, T63))) → U4_GA(T61, T62, T63, U2_ggaa(T61, .(T62, T63), U1_gaa(T62, T63, split21_in_gaa(T63))))
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37) → U2_ggaa(T36, T37, split21_in_gaa(T37))
mergesort32_in_ga([]) → mergesort32_out_ga([])
mergesort32_in_ga(.(T54, [])) → mergesort32_out_ga(.(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63))) → U3_ga(T61, T62, T63, split17_in_ggaa(T61, .(T62, T63)))
mergesort32_in_ga(.(T61, .(T62, T63))) → U4_ga(T61, T62, T63, split17_in_ggaa(T61, .(T62, T63)))
U2_ggaa(T36, T37, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U3_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U4_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, mergesort32_in_ga(T67))
U4_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, T68, mergesort32_in_ga(T67))
split21_in_gaa([]) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, T43, split21_in_gaa(T43))
U5_ga(T61, T62, T63, mergesort32_out_ga(T67)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U6_ga(T61, T62, T63, T68, mergesort32_out_ga(T67)) → U7_ga(T61, T62, T63, mergesort32_in_ga(T68))
U6_ga(T61, T62, T63, T68, mergesort32_out_ga(T67)) → U8_ga(T61, T62, T63, mergesort32_in_ga(T68))
U1_gaa(T42, T43, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U7_ga(T61, T62, T63, mergesort32_out_ga(T68)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U8_ga(T61, T62, T63, mergesort32_out_ga(T68)) → U9_ga(T61, T62, T63, merge33_in_aaa)
U9_ga(T61, T62, T63, merge33_out_aaa) → mergesort32_out_ga(.(T61, .(T62, T63)))
merge33_in_aaa → merge33_out_aaa
merge33_in_aaa → U10_aaa(le68_in_aa)
merge33_in_aaa → U12_aaa(gt85_in_aa)
U10_aaa(le68_out_aa(T108)) → merge33_out_aaa
U10_aaa(le68_out_aa(T108)) → U11_aaa(merge33_in_aaa)
U12_aaa(gt85_out_aa(T153)) → merge33_out_aaa
U12_aaa(gt85_out_aa(T153)) → U13_aaa(merge33_in_aaa)
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
U11_aaa(merge33_out_aaa) → merge33_out_aaa
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U13_aaa(merge33_out_aaa) → merge33_out_aaa
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
mergesort32_in_ga(x0)
U2_ggaa(x0, x1, x2)
U3_ga(x0, x1, x2, x3)
U4_ga(x0, x1, x2, x3)
split21_in_gaa(x0)
U5_ga(x0, x1, x2, x3)
U6_ga(x0, x1, x2, x3, x4)
U1_gaa(x0, x1, x2)
U7_ga(x0, x1, x2, x3)
U8_ga(x0, x1, x2, x3)
U9_ga(x0, x1, x2, x3)
merge33_in_aaa
U10_aaa(x0)
U12_aaa(x0)
le68_in_aa
U11_aaa(x0)
gt85_in_aa
U13_aaa(x0)
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(50) QDPOrderProof (EQUIVALENT transformation)
We use the reduction pair processor [LPAR04].
The following pairs can be oriented strictly and are deleted.
MERGESORT32_IN_GA(.(T61, .(T62, T63))) → U4_GA(T61, T62, T63, U2_ggaa(T61, .(T62, T63), U1_gaa(T62, T63, split21_in_gaa(T63))))
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO]:
POL(U4_GA(x1, x2, x3, x4)) = | 0 | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(split17_out_ggaa(x1, x2, x3, x4)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(.(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(MERGESORT32_IN_GA(x1)) = | 0 | + | | · | x1 |
POL(U6_GA(x1, x2, x3, x4, x5)) = | 0 | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 | + | | · | x5 |
POL(mergesort32_in_ga(x1)) = | | + | | · | x1 |
POL(mergesort32_out_ga(x1)) = | | + | | · | x1 |
POL(U2_ggaa(x1, x2, x3)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 |
POL(U1_gaa(x1, x2, x3)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 |
POL(split21_in_gaa(x1)) = | | + | | · | x1 |
POL(U3_ga(x1, x2, x3, x4)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(split17_in_ggaa(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(U4_ga(x1, x2, x3, x4)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(split21_out_gaa(x1, x2, x3)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 |
POL(U5_ga(x1, x2, x3, x4)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 |
POL(U6_ga(x1, x2, x3, x4, x5)) = | | + | | · | x1 | + | | · | x2 | + | | · | x3 | + | | · | x4 | + | | · | x5 |
POL(U7_ga(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(le68_out_aa(x1)) = | | + | | · | x1 |
POL(gt85_out_aa(x1)) = | | + | | · | x1 |
The following usable rules [FROCOS05] were oriented:
split21_in_gaa([]) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, T43, split21_in_gaa(T43))
U1_gaa(T42, T43, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
(51) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U4_GA(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67)
U4_GA(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, T68, mergesort32_in_ga(T67))
U6_GA(T61, T62, T63, T68, mergesort32_out_ga(T67)) → MERGESORT32_IN_GA(T68)
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37) → U2_ggaa(T36, T37, split21_in_gaa(T37))
mergesort32_in_ga([]) → mergesort32_out_ga([])
mergesort32_in_ga(.(T54, [])) → mergesort32_out_ga(.(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63))) → U3_ga(T61, T62, T63, split17_in_ggaa(T61, .(T62, T63)))
mergesort32_in_ga(.(T61, .(T62, T63))) → U4_ga(T61, T62, T63, split17_in_ggaa(T61, .(T62, T63)))
U2_ggaa(T36, T37, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U3_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U4_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, mergesort32_in_ga(T67))
U4_ga(T61, T62, T63, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, T68, mergesort32_in_ga(T67))
split21_in_gaa([]) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, T43, split21_in_gaa(T43))
U5_ga(T61, T62, T63, mergesort32_out_ga(T67)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U6_ga(T61, T62, T63, T68, mergesort32_out_ga(T67)) → U7_ga(T61, T62, T63, mergesort32_in_ga(T68))
U6_ga(T61, T62, T63, T68, mergesort32_out_ga(T67)) → U8_ga(T61, T62, T63, mergesort32_in_ga(T68))
U1_gaa(T42, T43, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U7_ga(T61, T62, T63, mergesort32_out_ga(T68)) → mergesort32_out_ga(.(T61, .(T62, T63)))
U8_ga(T61, T62, T63, mergesort32_out_ga(T68)) → U9_ga(T61, T62, T63, merge33_in_aaa)
U9_ga(T61, T62, T63, merge33_out_aaa) → mergesort32_out_ga(.(T61, .(T62, T63)))
merge33_in_aaa → merge33_out_aaa
merge33_in_aaa → U10_aaa(le68_in_aa)
merge33_in_aaa → U12_aaa(gt85_in_aa)
U10_aaa(le68_out_aa(T108)) → merge33_out_aaa
U10_aaa(le68_out_aa(T108)) → U11_aaa(merge33_in_aaa)
U12_aaa(gt85_out_aa(T153)) → merge33_out_aaa
U12_aaa(gt85_out_aa(T153)) → U13_aaa(merge33_in_aaa)
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
U11_aaa(merge33_out_aaa) → merge33_out_aaa
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U13_aaa(merge33_out_aaa) → merge33_out_aaa
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
mergesort32_in_ga(x0)
U2_ggaa(x0, x1, x2)
U3_ga(x0, x1, x2, x3)
U4_ga(x0, x1, x2, x3)
split21_in_gaa(x0)
U5_ga(x0, x1, x2, x3)
U6_ga(x0, x1, x2, x3, x4)
U1_gaa(x0, x1, x2)
U7_ga(x0, x1, x2, x3)
U8_ga(x0, x1, x2, x3)
U9_ga(x0, x1, x2, x3)
merge33_in_aaa
U10_aaa(x0)
U12_aaa(x0)
le68_in_aa
U11_aaa(x0)
gt85_in_aa
U13_aaa(x0)
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(52) DependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes.
(53) TRUE
(54) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U17_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x1,
x2,
x3,
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x2,
x3,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x1,
x2,
x3,
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x1,
x2,
x3,
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x1,
x2,
x3,
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga(
x1)
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x1,
x2,
x3,
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x1,
x2,
x3,
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x1,
x2,
x3,
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x1,
x2,
x3,
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x1,
x2,
x3,
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x1,
x2,
x3,
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x1,
x2,
x3,
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x1,
x2,
x3,
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x1,
x2,
x3,
x5)
s(
x1) =
s(
x1)
MERGESORT1_IN_GA(
x1,
x2) =
MERGESORT1_IN_GA(
x1)
U17_GA(
x1,
x2,
x3,
x4,
x5) =
U17_GA(
x1,
x2,
x3,
x5)
We have to consider all (P,R,Pi)-chains
(55) UsableRulesProof (EQUIVALENT transformation)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
(56) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U17_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
The argument filtering Pi contains the following mapping:
[] =
[]
.(
x1,
x2) =
.(
x1,
x2)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x2,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x1,
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x2,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x1,
x2,
x3,
x4)
MERGESORT1_IN_GA(
x1,
x2) =
MERGESORT1_IN_GA(
x1)
U17_GA(
x1,
x2,
x3,
x4,
x5) =
U17_GA(
x1,
x2,
x3,
x5)
We have to consider all (P,R,Pi)-chains
(57) PiDPToQDPProof (SOUND transformation)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
(58) Obligation:
Q DP problem:
The TRS P consists of the following rules:
MERGESORT1_IN_GA(.(T23, .(T24, T25))) → U17_GA(T23, T24, T25, split17_in_ggaa(T24, T25))
U17_GA(T23, T24, T25, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29))
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37) → U2_ggaa(T36, T37, split21_in_gaa(T37))
U2_ggaa(T36, T37, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
split21_in_gaa([]) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, T43, split21_in_gaa(T43))
U1_gaa(T42, T43, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
U2_ggaa(x0, x1, x2)
split21_in_gaa(x0)
U1_gaa(x0, x1, x2)
We have to consider all (P,Q,R)-chains.
(59) Rewriting (EQUIVALENT transformation)
By rewriting [LPAR04] the rule
MERGESORT1_IN_GA(
.(
T23,
.(
T24,
T25))) →
U17_GA(
T23,
T24,
T25,
split17_in_ggaa(
T24,
T25)) at position [3] we obtained the following new rules [LPAR04]:
MERGESORT1_IN_GA(.(T23, .(T24, T25))) → U17_GA(T23, T24, T25, U2_ggaa(T24, T25, split21_in_gaa(T25)))
(60) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U17_GA(T23, T24, T25, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29))
MERGESORT1_IN_GA(.(T23, .(T24, T25))) → U17_GA(T23, T24, T25, U2_ggaa(T24, T25, split21_in_gaa(T25)))
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37) → U2_ggaa(T36, T37, split21_in_gaa(T37))
U2_ggaa(T36, T37, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
split21_in_gaa([]) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, T43, split21_in_gaa(T43))
U1_gaa(T42, T43, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
U2_ggaa(x0, x1, x2)
split21_in_gaa(x0)
U1_gaa(x0, x1, x2)
We have to consider all (P,Q,R)-chains.
(61) 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.
(62) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U17_GA(T23, T24, T25, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29))
MERGESORT1_IN_GA(.(T23, .(T24, T25))) → U17_GA(T23, T24, T25, U2_ggaa(T24, T25, split21_in_gaa(T25)))
The TRS R consists of the following rules:
split21_in_gaa([]) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, T43, split21_in_gaa(T43))
U2_ggaa(T36, T37, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U1_gaa(T42, T43, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
U2_ggaa(x0, x1, x2)
split21_in_gaa(x0)
U1_gaa(x0, x1, x2)
We have to consider all (P,Q,R)-chains.
(63) 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].
split17_in_ggaa(x0, x1)
(64) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U17_GA(T23, T24, T25, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29))
MERGESORT1_IN_GA(.(T23, .(T24, T25))) → U17_GA(T23, T24, T25, U2_ggaa(T24, T25, split21_in_gaa(T25)))
The TRS R consists of the following rules:
split21_in_gaa([]) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, T43, split21_in_gaa(T43))
U2_ggaa(T36, T37, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U1_gaa(T42, T43, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
The set Q consists of the following terms:
U2_ggaa(x0, x1, x2)
split21_in_gaa(x0)
U1_gaa(x0, x1, x2)
We have to consider all (P,Q,R)-chains.
(65) QDPOrderProof (EQUIVALENT transformation)
We use the reduction pair processor [LPAR04].
The following pairs can be oriented strictly and are deleted.
U17_GA(T23, T24, T25, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29))
MERGESORT1_IN_GA(.(T23, .(T24, T25))) → U17_GA(T23, T24, T25, U2_ggaa(T24, T25, split21_in_gaa(T25)))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation:
POL( U17_GA(x1, ..., x4) ) = max{0, 2x1 + x2 + 2x4 - 2}
POL( U2_ggaa(x1, ..., x3) ) = 2x3 + 2
POL( split21_in_gaa(x1) ) = 2x1
POL( [] ) = 0
POL( split21_out_gaa(x1, ..., x3) ) = x2 + x3
POL( .(x1, x2) ) = x1 + 2x2 + 1
POL( U1_gaa(x1, ..., x3) ) = x1 + 2x3 + 1
POL( split17_out_ggaa(x1, ..., x4) ) = 2x4 + 2
POL( MERGESORT1_IN_GA(x1) ) = max{0, 2x1 - 1}
The following usable rules [FROCOS05] were oriented:
split21_in_gaa([]) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, T43, split21_in_gaa(T43))
U2_ggaa(T36, T37, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U1_gaa(T42, T43, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
(66) Obligation:
Q DP problem:
P is empty.
The TRS R consists of the following rules:
split21_in_gaa([]) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, T43, split21_in_gaa(T43))
U2_ggaa(T36, T37, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U1_gaa(T42, T43, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
The set Q consists of the following terms:
U2_ggaa(x0, x1, x2)
split21_in_gaa(x0)
U1_gaa(x0, x1, x2)
We have to consider all (P,Q,R)-chains.
(67) PisEmptyProof (EQUIVALENT transformation)
The TRS P is empty. Hence, there is no (P,Q,R) chain.
(68) YES
(69) 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)
split17_in: (b,b,f,f)
split21_in: (b,f,f)
mergesort32_in: (b,f)
merge33_in: (f,f,f)
le68_in: (f,f)
gt85_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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x5)
s(
x1) =
s(
x1)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
(70) 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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x5)
s(
x1) =
s(
x1)
(71) 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(.(T23, .(T24, T25)), T14) → U16_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → SPLIT17_IN_GGAA(T24, T25, X52, X51)
SPLIT17_IN_GGAA(T36, T37, .(T36, X81), X82) → U2_GGAA(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
SPLIT17_IN_GGAA(T36, T37, .(T36, X81), X82) → SPLIT21_IN_GAA(T37, X82, X81)
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → U1_GAA(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U17_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_GA(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_GA(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_GA(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → MERGESORT32_IN_GA(T28, X24)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U3_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → SPLIT17_IN_GGAA(T61, .(T62, T63), X133, X134)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_GA(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_GA(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_GA(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_GA(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_GA(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
U8_GA(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → MERGE33_IN_AAA(T72, T73, X137)
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_AAA(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → LE68_IN_AA(T108, T110)
LE68_IN_AA(s(T126), s(T127)) → U14_AA(T126, T127, le68_in_aa(T126, T127))
LE68_IN_AA(s(T126), s(T127)) → LE68_IN_AA(T126, T127)
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_AAA(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → MERGE33_IN_AAA(T109, .(T110, T111), T113)
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_AAA(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → GT85_IN_AA(T151, T153)
GT85_IN_AA(s(T169), s(T170)) → U15_AA(T169, T170, gt85_in_aa(T169, T170))
GT85_IN_AA(s(T169), s(T170)) → GT85_IN_AA(T169, T170)
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_AAA(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → MERGE33_IN_AAA(.(T151, T152), T154, T156)
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_GA(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_GA(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_GA(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U21_GA(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → MERGE33_IN_AAA(T46, T49, T14)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x5)
s(
x1) =
s(
x1)
MERGESORT1_IN_GA(
x1,
x2) =
MERGESORT1_IN_GA(
x1)
U16_GA(
x1,
x2,
x3,
x4,
x5) =
U16_GA(
x5)
SPLIT17_IN_GGAA(
x1,
x2,
x3,
x4) =
SPLIT17_IN_GGAA(
x1,
x2)
U2_GGAA(
x1,
x2,
x3,
x4,
x5) =
U2_GGAA(
x1,
x5)
SPLIT21_IN_GAA(
x1,
x2,
x3) =
SPLIT21_IN_GAA(
x1)
U1_GAA(
x1,
x2,
x3,
x4,
x5) =
U1_GAA(
x1,
x5)
U17_GA(
x1,
x2,
x3,
x4,
x5) =
U17_GA(
x1,
x5)
U18_GA(
x1,
x2,
x3,
x4,
x5) =
U18_GA(
x5)
U19_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_GA(
x5,
x6)
U20_GA(
x1,
x2,
x3,
x4,
x5) =
U20_GA(
x5)
MERGESORT32_IN_GA(
x1,
x2) =
MERGESORT32_IN_GA(
x1)
U3_GA(
x1,
x2,
x3,
x4,
x5) =
U3_GA(
x5)
U4_GA(
x1,
x2,
x3,
x4,
x5) =
U4_GA(
x5)
U5_GA(
x1,
x2,
x3,
x4,
x5) =
U5_GA(
x5)
U6_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_GA(
x5,
x6)
U7_GA(
x1,
x2,
x3,
x4,
x5) =
U7_GA(
x5)
U8_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_GA(
x6)
U9_GA(
x1,
x2,
x3,
x4,
x5) =
U9_GA(
x5)
MERGE33_IN_AAA(
x1,
x2,
x3) =
MERGE33_IN_AAA
U10_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_AAA(
x6)
LE68_IN_AA(
x1,
x2) =
LE68_IN_AA
U14_AA(
x1,
x2,
x3) =
U14_AA(
x3)
U11_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_AAA(
x6)
U12_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_AAA(
x6)
GT85_IN_AA(
x1,
x2) =
GT85_IN_AA
U15_AA(
x1,
x2,
x3) =
U15_AA(
x3)
U13_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_AAA(
x6)
U21_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_GA(
x6)
U22_GA(
x1,
x2,
x3,
x4,
x5) =
U22_GA(
x5)
We have to consider all (P,R,Pi)-chains
(72) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U16_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → SPLIT17_IN_GGAA(T24, T25, X52, X51)
SPLIT17_IN_GGAA(T36, T37, .(T36, X81), X82) → U2_GGAA(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
SPLIT17_IN_GGAA(T36, T37, .(T36, X81), X82) → SPLIT21_IN_GAA(T37, X82, X81)
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → U1_GAA(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U17_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_GA(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_GA(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_GA(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → MERGESORT32_IN_GA(T28, X24)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U3_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → SPLIT17_IN_GGAA(T61, .(T62, T63), X133, X134)
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_GA(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_GA(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_GA(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_GA(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_GA(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
U8_GA(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → MERGE33_IN_AAA(T72, T73, X137)
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_AAA(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → LE68_IN_AA(T108, T110)
LE68_IN_AA(s(T126), s(T127)) → U14_AA(T126, T127, le68_in_aa(T126, T127))
LE68_IN_AA(s(T126), s(T127)) → LE68_IN_AA(T126, T127)
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_AAA(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → MERGE33_IN_AAA(T109, .(T110, T111), T113)
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_AAA(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → GT85_IN_AA(T151, T153)
GT85_IN_AA(s(T169), s(T170)) → U15_AA(T169, T170, gt85_in_aa(T169, T170))
GT85_IN_AA(s(T169), s(T170)) → GT85_IN_AA(T169, T170)
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_AAA(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → MERGE33_IN_AAA(.(T151, T152), T154, T156)
U19_GA(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_GA(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_GA(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_GA(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U21_GA(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → MERGE33_IN_AAA(T46, T49, T14)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x5)
s(
x1) =
s(
x1)
MERGESORT1_IN_GA(
x1,
x2) =
MERGESORT1_IN_GA(
x1)
U16_GA(
x1,
x2,
x3,
x4,
x5) =
U16_GA(
x5)
SPLIT17_IN_GGAA(
x1,
x2,
x3,
x4) =
SPLIT17_IN_GGAA(
x1,
x2)
U2_GGAA(
x1,
x2,
x3,
x4,
x5) =
U2_GGAA(
x1,
x5)
SPLIT21_IN_GAA(
x1,
x2,
x3) =
SPLIT21_IN_GAA(
x1)
U1_GAA(
x1,
x2,
x3,
x4,
x5) =
U1_GAA(
x1,
x5)
U17_GA(
x1,
x2,
x3,
x4,
x5) =
U17_GA(
x1,
x5)
U18_GA(
x1,
x2,
x3,
x4,
x5) =
U18_GA(
x5)
U19_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_GA(
x5,
x6)
U20_GA(
x1,
x2,
x3,
x4,
x5) =
U20_GA(
x5)
MERGESORT32_IN_GA(
x1,
x2) =
MERGESORT32_IN_GA(
x1)
U3_GA(
x1,
x2,
x3,
x4,
x5) =
U3_GA(
x5)
U4_GA(
x1,
x2,
x3,
x4,
x5) =
U4_GA(
x5)
U5_GA(
x1,
x2,
x3,
x4,
x5) =
U5_GA(
x5)
U6_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_GA(
x5,
x6)
U7_GA(
x1,
x2,
x3,
x4,
x5) =
U7_GA(
x5)
U8_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_GA(
x6)
U9_GA(
x1,
x2,
x3,
x4,
x5) =
U9_GA(
x5)
MERGE33_IN_AAA(
x1,
x2,
x3) =
MERGE33_IN_AAA
U10_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_AAA(
x6)
LE68_IN_AA(
x1,
x2) =
LE68_IN_AA
U14_AA(
x1,
x2,
x3) =
U14_AA(
x3)
U11_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_AAA(
x6)
U12_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_AAA(
x6)
GT85_IN_AA(
x1,
x2) =
GT85_IN_AA
U15_AA(
x1,
x2,
x3) =
U15_AA(
x3)
U13_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_AAA(
x6)
U21_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_GA(
x6)
U22_GA(
x1,
x2,
x3,
x4,
x5) =
U22_GA(
x5)
We have to consider all (P,R,Pi)-chains
(73) DependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LOPSTR] contains 6 SCCs with 25 less nodes.
(74) Complex Obligation (AND)
(75) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
GT85_IN_AA(s(T169), s(T170)) → GT85_IN_AA(T169, T170)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x5)
s(
x1) =
s(
x1)
GT85_IN_AA(
x1,
x2) =
GT85_IN_AA
We have to consider all (P,R,Pi)-chains
(76) UsableRulesProof (EQUIVALENT transformation)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
(77) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
GT85_IN_AA(s(T169), s(T170)) → GT85_IN_AA(T169, T170)
R is empty.
The argument filtering Pi contains the following mapping:
s(
x1) =
s(
x1)
GT85_IN_AA(
x1,
x2) =
GT85_IN_AA
We have to consider all (P,R,Pi)-chains
(78) PiDPToQDPProof (SOUND transformation)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
(79) Obligation:
Q DP problem:
The TRS P consists of the following rules:
GT85_IN_AA → GT85_IN_AA
R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
(80) 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 =
GT85_IN_AA evaluates to t =
GT85_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 GT85_IN_AA to GT85_IN_AA.
(81) NO
(82) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
LE68_IN_AA(s(T126), s(T127)) → LE68_IN_AA(T126, T127)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x5)
s(
x1) =
s(
x1)
LE68_IN_AA(
x1,
x2) =
LE68_IN_AA
We have to consider all (P,R,Pi)-chains
(83) UsableRulesProof (EQUIVALENT transformation)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
(84) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
LE68_IN_AA(s(T126), s(T127)) → LE68_IN_AA(T126, T127)
R is empty.
The argument filtering Pi contains the following mapping:
s(
x1) =
s(
x1)
LE68_IN_AA(
x1,
x2) =
LE68_IN_AA
We have to consider all (P,R,Pi)-chains
(85) PiDPToQDPProof (SOUND transformation)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
(86) Obligation:
Q DP problem:
The TRS P consists of the following rules:
LE68_IN_AA → LE68_IN_AA
R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
(87) 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 =
LE68_IN_AA evaluates to t =
LE68_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 LE68_IN_AA to LE68_IN_AA.
(88) NO
(89) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → MERGE33_IN_AAA(T109, .(T110, T111), T113)
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_AAA(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_AAA(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → MERGE33_IN_AAA(.(T151, T152), T154, T156)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x5)
s(
x1) =
s(
x1)
MERGE33_IN_AAA(
x1,
x2,
x3) =
MERGE33_IN_AAA
U10_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_AAA(
x6)
U12_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_AAA(
x6)
We have to consider all (P,R,Pi)-chains
(90) UsableRulesProof (EQUIVALENT transformation)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
(91) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
U10_AAA(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → MERGE33_IN_AAA(T109, .(T110, T111), T113)
MERGE33_IN_AAA(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_AAA(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
MERGE33_IN_AAA(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_AAA(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
U12_AAA(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → MERGE33_IN_AAA(.(T151, T152), T154, T156)
The TRS R consists of the following rules:
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
The argument filtering Pi contains the following mapping:
.(
x1,
x2) =
.(
x1,
x2)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
s(
x1) =
s(
x1)
MERGE33_IN_AAA(
x1,
x2,
x3) =
MERGE33_IN_AAA
U10_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_AAA(
x6)
U12_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_AAA(
x6)
We have to consider all (P,R,Pi)-chains
(92) PiDPToQDPProof (SOUND transformation)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
(93) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U10_AAA(le68_out_aa(T108)) → MERGE33_IN_AAA
MERGE33_IN_AAA → U10_AAA(le68_in_aa)
MERGE33_IN_AAA → U12_AAA(gt85_in_aa)
U12_AAA(gt85_out_aa(T153)) → MERGE33_IN_AAA
The TRS R consists of the following rules:
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
le68_in_aa
gt85_in_aa
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(94) Narrowing (SOUND transformation)
By narrowing [LPAR04] the rule
MERGE33_IN_AAA →
U10_AAA(
le68_in_aa) at position [0] we obtained the following new rules [LPAR04]:
MERGE33_IN_AAA → U10_AAA(U14_aa(le68_in_aa))
MERGE33_IN_AAA → U10_AAA(le68_out_aa(0))
(95) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U10_AAA(le68_out_aa(T108)) → MERGE33_IN_AAA
MERGE33_IN_AAA → U12_AAA(gt85_in_aa)
U12_AAA(gt85_out_aa(T153)) → MERGE33_IN_AAA
MERGE33_IN_AAA → U10_AAA(U14_aa(le68_in_aa))
MERGE33_IN_AAA → U10_AAA(le68_out_aa(0))
The TRS R consists of the following rules:
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
le68_in_aa
gt85_in_aa
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(96) Narrowing (SOUND transformation)
By narrowing [LPAR04] the rule
MERGE33_IN_AAA →
U12_AAA(
gt85_in_aa) at position [0] we obtained the following new rules [LPAR04]:
MERGE33_IN_AAA → U12_AAA(U15_aa(gt85_in_aa))
MERGE33_IN_AAA → U12_AAA(gt85_out_aa(0))
(97) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U10_AAA(le68_out_aa(T108)) → MERGE33_IN_AAA
U12_AAA(gt85_out_aa(T153)) → MERGE33_IN_AAA
MERGE33_IN_AAA → U10_AAA(U14_aa(le68_in_aa))
MERGE33_IN_AAA → U10_AAA(le68_out_aa(0))
MERGE33_IN_AAA → U12_AAA(U15_aa(gt85_in_aa))
MERGE33_IN_AAA → U12_AAA(gt85_out_aa(0))
The TRS R consists of the following rules:
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
le68_in_aa
gt85_in_aa
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(98) 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 =
MERGE33_IN_AAA evaluates to t =
MERGE33_IN_AAAThus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Matcher: [ ]
- Semiunifier: [ ]
Rewriting sequenceMERGE33_IN_AAA →
U10_AAA(
le68_out_aa(
0))
with rule
MERGE33_IN_AAA →
U10_AAA(
le68_out_aa(
0)) at position [] and matcher [ ]
U10_AAA(le68_out_aa(0)) →
MERGE33_IN_AAAwith rule
U10_AAA(
le68_out_aa(
T108)) →
MERGE33_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.
(99) NO
(100) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)
The TRS R consists of the following rules:
mergesort1_in_ga([], []) → mergesort1_out_ga([], [])
mergesort1_in_ga(.(T4, []), .(T4, [])) → mergesort1_out_ga(.(T4, []), .(T4, []))
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x5)
s(
x1) =
s(
x1)
SPLIT21_IN_GAA(
x1,
x2,
x3) =
SPLIT21_IN_GAA(
x1)
We have to consider all (P,R,Pi)-chains
(101) UsableRulesProof (EQUIVALENT transformation)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
(102) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
SPLIT21_IN_GAA(.(T42, T43), .(T42, X99), X100) → SPLIT21_IN_GAA(T43, X100, X99)
R is empty.
The argument filtering Pi contains the following mapping:
.(
x1,
x2) =
.(
x1,
x2)
SPLIT21_IN_GAA(
x1,
x2,
x3) =
SPLIT21_IN_GAA(
x1)
We have to consider all (P,R,Pi)-chains
(103) PiDPToQDPProof (SOUND transformation)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
(104) Obligation:
Q DP problem:
The TRS P consists of the following rules:
SPLIT21_IN_GAA(.(T42, T43)) → SPLIT21_IN_GAA(T43)
R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
(105) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- SPLIT21_IN_GAA(.(T42, T43)) → SPLIT21_IN_GAA(T43)
The graph contains the following edges 1 > 1
(106) YES
(107) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x5)
s(
x1) =
s(
x1)
MERGESORT32_IN_GA(
x1,
x2) =
MERGESORT32_IN_GA(
x1)
U4_GA(
x1,
x2,
x3,
x4,
x5) =
U4_GA(
x5)
U6_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_GA(
x5,
x6)
We have to consider all (P,R,Pi)-chains
(108) UsableRulesProof (EQUIVALENT transformation)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
(109) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
MERGESORT32_IN_GA(.(T61, .(T62, T63)), X137) → U4_GA(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → MERGESORT32_IN_GA(T67, X135)
U4_GA(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_GA(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_GA(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → MERGESORT32_IN_GA(T68, X136)
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
The argument filtering Pi contains the following mapping:
[] =
[]
.(
x1,
x2) =
.(
x1,
x2)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
s(
x1) =
s(
x1)
MERGESORT32_IN_GA(
x1,
x2) =
MERGESORT32_IN_GA(
x1)
U4_GA(
x1,
x2,
x3,
x4,
x5) =
U4_GA(
x5)
U6_GA(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_GA(
x5,
x6)
We have to consider all (P,R,Pi)-chains
(110) PiDPToQDPProof (SOUND transformation)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
(111) Obligation:
Q DP problem:
The TRS P consists of the following rules:
MERGESORT32_IN_GA(.(T61, .(T62, T63))) → U4_GA(split17_in_ggaa(T61, .(T62, T63)))
U4_GA(split17_out_ggaa(T67, T68)) → MERGESORT32_IN_GA(T67)
U4_GA(split17_out_ggaa(T67, T68)) → U6_GA(T68, mergesort32_in_ga(T67))
U6_GA(T68, mergesort32_out_ga) → MERGESORT32_IN_GA(T68)
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37) → U2_ggaa(T36, split21_in_gaa(T37))
mergesort32_in_ga([]) → mergesort32_out_ga
mergesort32_in_ga(.(T54, [])) → mergesort32_out_ga
mergesort32_in_ga(.(T61, .(T62, T63))) → U3_ga(split17_in_ggaa(T61, .(T62, T63)))
mergesort32_in_ga(.(T61, .(T62, T63))) → U4_ga(split17_in_ggaa(T61, .(T62, T63)))
U2_ggaa(T36, split21_out_gaa(X82, X81)) → split17_out_ggaa(.(T36, X81), X82)
U3_ga(split17_out_ggaa(X133, X134)) → mergesort32_out_ga
U4_ga(split17_out_ggaa(T67, T68)) → U5_ga(mergesort32_in_ga(T67))
U4_ga(split17_out_ggaa(T67, T68)) → U6_ga(T68, mergesort32_in_ga(T67))
split21_in_gaa([]) → split21_out_gaa([], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, split21_in_gaa(T43))
U5_ga(mergesort32_out_ga) → mergesort32_out_ga
U6_ga(T68, mergesort32_out_ga) → U7_ga(mergesort32_in_ga(T68))
U6_ga(T68, mergesort32_out_ga) → U8_ga(mergesort32_in_ga(T68))
U1_gaa(T42, split21_out_gaa(X100, X99)) → split21_out_gaa(.(T42, X99), X100)
U7_ga(mergesort32_out_ga) → mergesort32_out_ga
U8_ga(mergesort32_out_ga) → U9_ga(merge33_in_aaa)
U9_ga(merge33_out_aaa) → mergesort32_out_ga
merge33_in_aaa → merge33_out_aaa
merge33_in_aaa → U10_aaa(le68_in_aa)
merge33_in_aaa → U12_aaa(gt85_in_aa)
U10_aaa(le68_out_aa(T108)) → merge33_out_aaa
U10_aaa(le68_out_aa(T108)) → U11_aaa(merge33_in_aaa)
U12_aaa(gt85_out_aa(T153)) → merge33_out_aaa
U12_aaa(gt85_out_aa(T153)) → U13_aaa(merge33_in_aaa)
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
U11_aaa(merge33_out_aaa) → merge33_out_aaa
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U13_aaa(merge33_out_aaa) → merge33_out_aaa
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
mergesort32_in_ga(x0)
U2_ggaa(x0, x1)
U3_ga(x0)
U4_ga(x0)
split21_in_gaa(x0)
U5_ga(x0)
U6_ga(x0, x1)
U1_gaa(x0, x1)
U7_ga(x0)
U8_ga(x0)
U9_ga(x0)
merge33_in_aaa
U10_aaa(x0)
U12_aaa(x0)
le68_in_aa
U11_aaa(x0)
gt85_in_aa
U13_aaa(x0)
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(112) 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 rules of the TRS R:
mergesort32_in_ga(.(T54, [])) → mergesort32_out_ga
Used ordering: Polynomial interpretation [POLO]:
POL(.(x1, x2)) = 1 + x1 + x2
POL(0) = 0
POL(MERGESORT32_IN_GA(x1)) = x1
POL(U10_aaa(x1)) = x1
POL(U11_aaa(x1)) = x1
POL(U12_aaa(x1)) = x1
POL(U13_aaa(x1)) = x1
POL(U14_aa(x1)) = x1
POL(U15_aa(x1)) = x1
POL(U1_gaa(x1, x2)) = 1 + x1 + x2
POL(U2_ggaa(x1, x2)) = x1 + x2
POL(U3_ga(x1)) = x1
POL(U4_GA(x1)) = x1
POL(U4_ga(x1)) = x1
POL(U5_ga(x1)) = x1
POL(U6_GA(x1, x2)) = x1 + x2
POL(U6_ga(x1, x2)) = x1 + x2
POL(U7_ga(x1)) = x1
POL(U8_ga(x1)) = x1
POL(U9_ga(x1)) = x1
POL([]) = 0
POL(gt85_in_aa) = 0
POL(gt85_out_aa(x1)) = x1
POL(le68_in_aa) = 0
POL(le68_out_aa(x1)) = x1
POL(merge33_in_aaa) = 0
POL(merge33_out_aaa) = 0
POL(mergesort32_in_ga(x1)) = x1
POL(mergesort32_out_ga) = 0
POL(s(x1)) = x1
POL(split17_in_ggaa(x1, x2)) = 1 + x1 + x2
POL(split17_out_ggaa(x1, x2)) = x1 + x2
POL(split21_in_gaa(x1)) = 1 + x1
POL(split21_out_gaa(x1, x2)) = 1 + x1 + x2
(113) Obligation:
Q DP problem:
The TRS P consists of the following rules:
MERGESORT32_IN_GA(.(T61, .(T62, T63))) → U4_GA(split17_in_ggaa(T61, .(T62, T63)))
U4_GA(split17_out_ggaa(T67, T68)) → MERGESORT32_IN_GA(T67)
U4_GA(split17_out_ggaa(T67, T68)) → U6_GA(T68, mergesort32_in_ga(T67))
U6_GA(T68, mergesort32_out_ga) → MERGESORT32_IN_GA(T68)
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37) → U2_ggaa(T36, split21_in_gaa(T37))
mergesort32_in_ga([]) → mergesort32_out_ga
mergesort32_in_ga(.(T61, .(T62, T63))) → U3_ga(split17_in_ggaa(T61, .(T62, T63)))
mergesort32_in_ga(.(T61, .(T62, T63))) → U4_ga(split17_in_ggaa(T61, .(T62, T63)))
U2_ggaa(T36, split21_out_gaa(X82, X81)) → split17_out_ggaa(.(T36, X81), X82)
U3_ga(split17_out_ggaa(X133, X134)) → mergesort32_out_ga
U4_ga(split17_out_ggaa(T67, T68)) → U5_ga(mergesort32_in_ga(T67))
U4_ga(split17_out_ggaa(T67, T68)) → U6_ga(T68, mergesort32_in_ga(T67))
split21_in_gaa([]) → split21_out_gaa([], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, split21_in_gaa(T43))
U5_ga(mergesort32_out_ga) → mergesort32_out_ga
U6_ga(T68, mergesort32_out_ga) → U7_ga(mergesort32_in_ga(T68))
U6_ga(T68, mergesort32_out_ga) → U8_ga(mergesort32_in_ga(T68))
U1_gaa(T42, split21_out_gaa(X100, X99)) → split21_out_gaa(.(T42, X99), X100)
U7_ga(mergesort32_out_ga) → mergesort32_out_ga
U8_ga(mergesort32_out_ga) → U9_ga(merge33_in_aaa)
U9_ga(merge33_out_aaa) → mergesort32_out_ga
merge33_in_aaa → merge33_out_aaa
merge33_in_aaa → U10_aaa(le68_in_aa)
merge33_in_aaa → U12_aaa(gt85_in_aa)
U10_aaa(le68_out_aa(T108)) → merge33_out_aaa
U10_aaa(le68_out_aa(T108)) → U11_aaa(merge33_in_aaa)
U12_aaa(gt85_out_aa(T153)) → merge33_out_aaa
U12_aaa(gt85_out_aa(T153)) → U13_aaa(merge33_in_aaa)
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
U11_aaa(merge33_out_aaa) → merge33_out_aaa
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U13_aaa(merge33_out_aaa) → merge33_out_aaa
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
mergesort32_in_ga(x0)
U2_ggaa(x0, x1)
U3_ga(x0)
U4_ga(x0)
split21_in_gaa(x0)
U5_ga(x0)
U6_ga(x0, x1)
U1_gaa(x0, x1)
U7_ga(x0)
U8_ga(x0)
U9_ga(x0)
merge33_in_aaa
U10_aaa(x0)
U12_aaa(x0)
le68_in_aa
U11_aaa(x0)
gt85_in_aa
U13_aaa(x0)
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(114) 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:
MERGESORT32_IN_GA(.(T61, .(T62, T63))) → U4_GA(split17_in_ggaa(T61, .(T62, T63)))
U4_GA(split17_out_ggaa(T67, T68)) → MERGESORT32_IN_GA(T67)
U6_GA(T68, mergesort32_out_ga) → MERGESORT32_IN_GA(T68)
Strictly oriented rules of the TRS R:
mergesort32_in_ga(.(T61, .(T62, T63))) → U3_ga(split17_in_ggaa(T61, .(T62, T63)))
U3_ga(split17_out_ggaa(X133, X134)) → mergesort32_out_ga
U4_ga(split17_out_ggaa(T67, T68)) → U5_ga(mergesort32_in_ga(T67))
U5_ga(mergesort32_out_ga) → mergesort32_out_ga
U6_ga(T68, mergesort32_out_ga) → U7_ga(mergesort32_in_ga(T68))
U6_ga(T68, mergesort32_out_ga) → U8_ga(mergesort32_in_ga(T68))
U7_ga(mergesort32_out_ga) → mergesort32_out_ga
U9_ga(merge33_out_aaa) → mergesort32_out_ga
Used ordering: Polynomial interpretation [POLO]:
POL(.(x1, x2)) = 1 + 2·x1 + 2·x2
POL(0) = 0
POL(MERGESORT32_IN_GA(x1)) = 2 + 2·x1
POL(U10_aaa(x1)) = 1 + 2·x1
POL(U11_aaa(x1)) = x1
POL(U12_aaa(x1)) = 1 + 2·x1
POL(U13_aaa(x1)) = x1
POL(U14_aa(x1)) = 2·x1
POL(U15_aa(x1)) = 2·x1
POL(U1_gaa(x1, x2)) = 1 + 2·x1 + 2·x2
POL(U2_ggaa(x1, x2)) = 2 + 2·x1 + x2
POL(U3_ga(x1)) = 2 + x1
POL(U4_GA(x1)) = 1 + 2·x1
POL(U4_ga(x1)) = 2 + 2·x1
POL(U5_ga(x1)) = 1 + x1
POL(U6_GA(x1, x2)) = 1 + 2·x1 + x2
POL(U6_ga(x1, x2)) = 2 + 2·x1 + x2
POL(U7_ga(x1)) = 1 + x1
POL(U8_ga(x1)) = 1 + x1
POL(U9_ga(x1)) = 1 + 2·x1
POL([]) = 0
POL(gt85_in_aa) = 0
POL(gt85_out_aa(x1)) = x1
POL(le68_in_aa) = 0
POL(le68_out_aa(x1)) = 2·x1
POL(merge33_in_aaa) = 1
POL(merge33_out_aaa) = 1
POL(mergesort32_in_ga(x1)) = 2 + 2·x1
POL(mergesort32_out_ga) = 2
POL(s(x1)) = x1
POL(split17_in_ggaa(x1, x2)) = 2 + 2·x1 + x2
POL(split17_out_ggaa(x1, x2)) = 1 + x1 + x2
POL(split21_in_gaa(x1)) = x1
POL(split21_out_gaa(x1, x2)) = x1 + 2·x2
(115) Obligation:
Q DP problem:
The TRS P consists of the following rules:
U4_GA(split17_out_ggaa(T67, T68)) → U6_GA(T68, mergesort32_in_ga(T67))
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37) → U2_ggaa(T36, split21_in_gaa(T37))
mergesort32_in_ga([]) → mergesort32_out_ga
mergesort32_in_ga(.(T61, .(T62, T63))) → U4_ga(split17_in_ggaa(T61, .(T62, T63)))
U2_ggaa(T36, split21_out_gaa(X82, X81)) → split17_out_ggaa(.(T36, X81), X82)
U4_ga(split17_out_ggaa(T67, T68)) → U6_ga(T68, mergesort32_in_ga(T67))
split21_in_gaa([]) → split21_out_gaa([], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, split21_in_gaa(T43))
U1_gaa(T42, split21_out_gaa(X100, X99)) → split21_out_gaa(.(T42, X99), X100)
U8_ga(mergesort32_out_ga) → U9_ga(merge33_in_aaa)
merge33_in_aaa → merge33_out_aaa
merge33_in_aaa → U10_aaa(le68_in_aa)
merge33_in_aaa → U12_aaa(gt85_in_aa)
U10_aaa(le68_out_aa(T108)) → merge33_out_aaa
U10_aaa(le68_out_aa(T108)) → U11_aaa(merge33_in_aaa)
U12_aaa(gt85_out_aa(T153)) → merge33_out_aaa
U12_aaa(gt85_out_aa(T153)) → U13_aaa(merge33_in_aaa)
le68_in_aa → U14_aa(le68_in_aa)
le68_in_aa → le68_out_aa(0)
U11_aaa(merge33_out_aaa) → merge33_out_aaa
gt85_in_aa → U15_aa(gt85_in_aa)
gt85_in_aa → gt85_out_aa(0)
U13_aaa(merge33_out_aaa) → merge33_out_aaa
U14_aa(le68_out_aa(T126)) → le68_out_aa(s(T126))
U15_aa(gt85_out_aa(T170)) → gt85_out_aa(s(T170))
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
mergesort32_in_ga(x0)
U2_ggaa(x0, x1)
U3_ga(x0)
U4_ga(x0)
split21_in_gaa(x0)
U5_ga(x0)
U6_ga(x0, x1)
U1_gaa(x0, x1)
U7_ga(x0)
U8_ga(x0)
U9_ga(x0)
merge33_in_aaa
U10_aaa(x0)
U12_aaa(x0)
le68_in_aa
U11_aaa(x0)
gt85_in_aa
U13_aaa(x0)
U14_aa(x0)
U15_aa(x0)
We have to consider all (P,Q,R)-chains.
(116) DependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.
(117) TRUE
(118) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U17_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)
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(.(T23, .(T24, T25)), T14) → U16_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, X52, X51))
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
U16_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, X52, X51)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
mergesort1_in_ga(.(T23, .(T24, T25)), T14) → U17_ga(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U18_ga(T23, T24, T25, T14, mergesort1_in_ga(.(T23, T29), X23))
U18_ga(T23, T24, T25, T14, mergesort1_out_ga(.(T23, T29), X23)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U17_ga(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → U19_ga(T23, T24, T25, T14, T28, mergesort1_in_ga(.(T23, T29), T46))
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U20_ga(T23, T24, T25, T14, mergesort32_in_ga(T28, X24))
mergesort32_in_ga([], []) → mergesort32_out_ga([], [])
mergesort32_in_ga(.(T54, []), .(T54, [])) → mergesort32_out_ga(.(T54, []), .(T54, []))
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U3_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), X133, X134))
U3_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), X133, X134)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
mergesort32_in_ga(.(T61, .(T62, T63)), X137) → U4_ga(T61, T62, T63, X137, split17_in_ggaa(T61, .(T62, T63), T67, T68))
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U5_ga(T61, T62, T63, X137, mergesort32_in_ga(T67, X135))
U5_ga(T61, T62, T63, X137, mergesort32_out_ga(T67, X135)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U4_ga(T61, T62, T63, X137, split17_out_ggaa(T61, .(T62, T63), T67, T68)) → U6_ga(T61, T62, T63, X137, T68, mergesort32_in_ga(T67, T72))
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U7_ga(T61, T62, T63, X137, mergesort32_in_ga(T68, X136))
U7_ga(T61, T62, T63, X137, mergesort32_out_ga(T68, X136)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U6_ga(T61, T62, T63, X137, T68, mergesort32_out_ga(T67, T72)) → U8_ga(T61, T62, T63, X137, T72, mergesort32_in_ga(T68, T73))
U8_ga(T61, T62, T63, X137, T72, mergesort32_out_ga(T68, T73)) → U9_ga(T61, T62, T63, X137, merge33_in_aaa(T72, T73, X137))
merge33_in_aaa(T82, [], T82) → merge33_out_aaa(T82, [], T82)
merge33_in_aaa([], T87, T87) → merge33_out_aaa([], T87, T87)
merge33_in_aaa(.(T108, T109), .(T110, T111), .(T108, T113)) → U10_aaa(T108, T109, T110, T111, T113, le68_in_aa(T108, T110))
le68_in_aa(s(T126), s(T127)) → U14_aa(T126, T127, le68_in_aa(T126, T127))
le68_in_aa(0, s(T134)) → le68_out_aa(0, s(T134))
le68_in_aa(0, 0) → le68_out_aa(0, 0)
U14_aa(T126, T127, le68_out_aa(T126, T127)) → le68_out_aa(s(T126), s(T127))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U10_aaa(T108, T109, T110, T111, T113, le68_out_aa(T108, T110)) → U11_aaa(T108, T109, T110, T111, T113, merge33_in_aaa(T109, .(T110, T111), T113))
merge33_in_aaa(.(T151, T152), .(T153, T154), .(T153, T156)) → U12_aaa(T151, T152, T153, T154, T156, gt85_in_aa(T151, T153))
gt85_in_aa(s(T169), s(T170)) → U15_aa(T169, T170, gt85_in_aa(T169, T170))
gt85_in_aa(s(T175), 0) → gt85_out_aa(s(T175), 0)
U15_aa(T169, T170, gt85_out_aa(T169, T170)) → gt85_out_aa(s(T169), s(T170))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U12_aaa(T151, T152, T153, T154, T156, gt85_out_aa(T151, T153)) → U13_aaa(T151, T152, T153, T154, T156, merge33_in_aaa(.(T151, T152), T154, T156))
U13_aaa(T151, T152, T153, T154, T156, merge33_out_aaa(.(T151, T152), T154, T156)) → merge33_out_aaa(.(T151, T152), .(T153, T154), .(T153, T156))
U11_aaa(T108, T109, T110, T111, T113, merge33_out_aaa(T109, .(T110, T111), T113)) → merge33_out_aaa(.(T108, T109), .(T110, T111), .(T108, T113))
U9_ga(T61, T62, T63, X137, merge33_out_aaa(T72, T73, X137)) → mergesort32_out_ga(.(T61, .(T62, T63)), X137)
U20_ga(T23, T24, T25, T14, mergesort32_out_ga(T28, X24)) → mergesort1_out_ga(.(T23, .(T24, T25)), T14)
U19_ga(T23, T24, T25, T14, T28, mergesort1_out_ga(.(T23, T29), T46)) → U21_ga(T23, T24, T25, T14, T46, mergesort32_in_ga(T28, T49))
U21_ga(T23, T24, T25, T14, T46, mergesort32_out_ga(T28, T49)) → U22_ga(T23, T24, T25, T14, merge33_in_aaa(T46, T49, T14))
U22_ga(T23, T24, T25, T14, merge33_out_aaa(T46, T49, T14)) → mergesort1_out_ga(.(T23, .(T24, T25)), 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)
U16_ga(
x1,
x2,
x3,
x4,
x5) =
U16_ga(
x5)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
U17_ga(
x1,
x2,
x3,
x4,
x5) =
U17_ga(
x1,
x5)
U18_ga(
x1,
x2,
x3,
x4,
x5) =
U18_ga(
x5)
U19_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U19_ga(
x5,
x6)
U20_ga(
x1,
x2,
x3,
x4,
x5) =
U20_ga(
x5)
mergesort32_in_ga(
x1,
x2) =
mergesort32_in_ga(
x1)
mergesort32_out_ga(
x1,
x2) =
mergesort32_out_ga
U3_ga(
x1,
x2,
x3,
x4,
x5) =
U3_ga(
x5)
U4_ga(
x1,
x2,
x3,
x4,
x5) =
U4_ga(
x5)
U5_ga(
x1,
x2,
x3,
x4,
x5) =
U5_ga(
x5)
U6_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U6_ga(
x5,
x6)
U7_ga(
x1,
x2,
x3,
x4,
x5) =
U7_ga(
x5)
U8_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U8_ga(
x6)
U9_ga(
x1,
x2,
x3,
x4,
x5) =
U9_ga(
x5)
merge33_in_aaa(
x1,
x2,
x3) =
merge33_in_aaa
merge33_out_aaa(
x1,
x2,
x3) =
merge33_out_aaa
U10_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U10_aaa(
x6)
le68_in_aa(
x1,
x2) =
le68_in_aa
U14_aa(
x1,
x2,
x3) =
U14_aa(
x3)
le68_out_aa(
x1,
x2) =
le68_out_aa(
x1)
U11_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U11_aaa(
x6)
U12_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U12_aaa(
x6)
gt85_in_aa(
x1,
x2) =
gt85_in_aa
U15_aa(
x1,
x2,
x3) =
U15_aa(
x3)
gt85_out_aa(
x1,
x2) =
gt85_out_aa(
x2)
U13_aaa(
x1,
x2,
x3,
x4,
x5,
x6) =
U13_aaa(
x6)
U21_ga(
x1,
x2,
x3,
x4,
x5,
x6) =
U21_ga(
x6)
U22_ga(
x1,
x2,
x3,
x4,
x5) =
U22_ga(
x5)
s(
x1) =
s(
x1)
MERGESORT1_IN_GA(
x1,
x2) =
MERGESORT1_IN_GA(
x1)
U17_GA(
x1,
x2,
x3,
x4,
x5) =
U17_GA(
x1,
x5)
We have to consider all (P,R,Pi)-chains
(119) UsableRulesProof (EQUIVALENT transformation)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
(120) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
MERGESORT1_IN_GA(.(T23, .(T24, T25)), T14) → U17_GA(T23, T24, T25, T14, split17_in_ggaa(T24, T25, T28, T29))
U17_GA(T23, T24, T25, T14, split17_out_ggaa(T24, T25, T28, T29)) → MERGESORT1_IN_GA(.(T23, T29), X23)
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37, .(T36, X81), X82) → U2_ggaa(T36, T37, X81, X82, split21_in_gaa(T37, X82, X81))
U2_ggaa(T36, T37, X81, X82, split21_out_gaa(T37, X82, X81)) → split17_out_ggaa(T36, T37, .(T36, X81), X82)
split21_in_gaa([], [], []) → split21_out_gaa([], [], [])
split21_in_gaa(.(T42, T43), .(T42, X99), X100) → U1_gaa(T42, T43, X99, X100, split21_in_gaa(T43, X100, X99))
U1_gaa(T42, T43, X99, X100, split21_out_gaa(T43, X100, X99)) → split21_out_gaa(.(T42, T43), .(T42, X99), X100)
The argument filtering Pi contains the following mapping:
[] =
[]
.(
x1,
x2) =
.(
x1,
x2)
split17_in_ggaa(
x1,
x2,
x3,
x4) =
split17_in_ggaa(
x1,
x2)
U2_ggaa(
x1,
x2,
x3,
x4,
x5) =
U2_ggaa(
x1,
x5)
split21_in_gaa(
x1,
x2,
x3) =
split21_in_gaa(
x1)
split21_out_gaa(
x1,
x2,
x3) =
split21_out_gaa(
x2,
x3)
U1_gaa(
x1,
x2,
x3,
x4,
x5) =
U1_gaa(
x1,
x5)
split17_out_ggaa(
x1,
x2,
x3,
x4) =
split17_out_ggaa(
x3,
x4)
MERGESORT1_IN_GA(
x1,
x2) =
MERGESORT1_IN_GA(
x1)
U17_GA(
x1,
x2,
x3,
x4,
x5) =
U17_GA(
x1,
x5)
We have to consider all (P,R,Pi)-chains
(121) PiDPToQDPProof (SOUND transformation)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
(122) Obligation:
Q DP problem:
The TRS P consists of the following rules:
MERGESORT1_IN_GA(.(T23, .(T24, T25))) → U17_GA(T23, split17_in_ggaa(T24, T25))
U17_GA(T23, split17_out_ggaa(T28, T29)) → MERGESORT1_IN_GA(.(T23, T29))
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37) → U2_ggaa(T36, split21_in_gaa(T37))
U2_ggaa(T36, split21_out_gaa(X82, X81)) → split17_out_ggaa(.(T36, X81), X82)
split21_in_gaa([]) → split21_out_gaa([], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, split21_in_gaa(T43))
U1_gaa(T42, split21_out_gaa(X100, X99)) → split21_out_gaa(.(T42, X99), X100)
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
U2_ggaa(x0, x1)
split21_in_gaa(x0)
U1_gaa(x0, x1)
We have to consider all (P,Q,R)-chains.
(123) 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 rules of the TRS R:
U2_ggaa(T36, split21_out_gaa(X82, X81)) → split17_out_ggaa(.(T36, X81), X82)
Used ordering: Polynomial interpretation [POLO]:
POL(.(x1, x2)) = 1 + x1 + 2·x2
POL(MERGESORT1_IN_GA(x1)) = 2·x1
POL(U17_GA(x1, x2)) = 2 + 2·x1 + 2·x2
POL(U1_gaa(x1, x2)) = x1 + 2·x2
POL(U2_ggaa(x1, x2)) = x1 + 2·x2
POL([]) = 0
POL(split17_in_ggaa(x1, x2)) = 2 + 2·x1 + 2·x2
POL(split17_out_ggaa(x1, x2)) = x1 + 2·x2
POL(split21_in_gaa(x1)) = 1 + x1
POL(split21_out_gaa(x1, x2)) = 1 + x1 + 2·x2
(124) Obligation:
Q DP problem:
The TRS P consists of the following rules:
MERGESORT1_IN_GA(.(T23, .(T24, T25))) → U17_GA(T23, split17_in_ggaa(T24, T25))
U17_GA(T23, split17_out_ggaa(T28, T29)) → MERGESORT1_IN_GA(.(T23, T29))
The TRS R consists of the following rules:
split17_in_ggaa(T36, T37) → U2_ggaa(T36, split21_in_gaa(T37))
split21_in_gaa([]) → split21_out_gaa([], [])
split21_in_gaa(.(T42, T43)) → U1_gaa(T42, split21_in_gaa(T43))
U1_gaa(T42, split21_out_gaa(X100, X99)) → split21_out_gaa(.(T42, X99), X100)
The set Q consists of the following terms:
split17_in_ggaa(x0, x1)
U2_ggaa(x0, x1)
split21_in_gaa(x0)
U1_gaa(x0, x1)
We have to consider all (P,Q,R)-chains.
(125) DependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.
(126) TRUE