(0) Obligation:
Clauses:
goal(X) :- ','(s2t(X, T), tappend(T, X1, X2)).
tappend(nil, Y, Z) :- ','(!, eq(Y, Z)).
tappend(T, T1, node(T1, X, T2)) :- ','(left(T, nil), ','(right(T, T2), value(T, X))).
tappend(T, T2, node(T1, X, T2)) :- ','(left(T, T1), ','(right(T, nil), value(T, X))).
tappend(T, T3, node(U, X, T2)) :- ','(left(T, T1), ','(right(T, T2), ','(value(T, X), tappend(T1, T3, U)))).
tappend(T, T1, node(T1, X, U)) :- ','(left(T, T1), ','(right(T, T2), ','(value(T, X), tappend(T2, T3, U)))).
s2t(0, L) :- ','(!, eq(L, nil)).
s2t(X, node(T, X3, T)) :- ','(p(X, P), s2t(P, T)).
s2t(X, node(nil, X4, T)) :- ','(p(X, P), s2t(P, T)).
s2t(X, node(T, X5, nil)) :- ','(p(X, P), s2t(P, T)).
s2t(X, node(nil, X6, nil)).
left(nil, nil).
left(node(L, X7, X8), L).
right(nil, nil).
right(node(X9, X10, R), R).
value(nil, nil).
value(node(X11, X, X12), X).
p(0, 0).
p(s(X), X).
eq(X, X).
Queries:
goal(g).
(1) PrologToDTProblemTransformerProof (SOUND transformation)
Built DT problem from termination graph.
(2) Obligation:
Triples:
s2t23(s(T23), node(X146, X147, X146)) :- s2t23(T23, X146).
s2t23(s(T31), node(nil, X186, X187)) :- s2t23(T31, X187).
s2t23(s(T39), node(X226, X227, nil)) :- s2t23(T39, X226).
tappend96(nil, X757, node(X758, nil, nil)) :- tappend9(X757, X758).
tappend96(node(T211, T209, T210), X757, node(X758, T209, T210)) :- tappend96(T211, X757, X758).
tappend96(nil, nil, node(nil, nil, X877)) :- tappend9(X874, X877).
tappend96(node(T251, T252, T254), T251, node(T251, T252, X877)) :- tappend96(T254, X874, X877).
tappend24(T93, X535, X472, node(X473, X535, T93)) :- tappend96(T93, X472, X473).
tappend24(T274, X1057, T274, node(T274, X1057, X997)) :- tappend96(T274, X993, X997).
goal1(0) :- tappend9(X16, X17).
goal1(s(T14)) :- s2t23(T14, X91).
goal1(s(T14)) :- ','(s2tc23(T14, T15), tappend24(T15, X92, X16, X17)).
goal1(s(T282)) :- s2t23(T282, X1093).
goal1(s(T282)) :- ','(s2tc23(T282, T283), tappend96(node(nil, X1092, T283), X16, X17)).
goal1(s(T292)) :- s2t23(T292, X1144).
goal1(s(T292)) :- ','(s2tc23(T292, T293), tappend96(node(T293, X1145, nil), X16, X17)).
goal1(T297) :- tappend24(nil, X1184, X16, X17).
Clauses:
s2tc23(0, nil).
s2tc23(s(T23), node(X146, X147, X146)) :- s2tc23(T23, X146).
s2tc23(s(T31), node(nil, X186, X187)) :- s2tc23(T31, X187).
s2tc23(s(T39), node(X226, X227, nil)) :- s2tc23(T39, X226).
s2tc23(T42, node(nil, X244, nil)).
tappendc9(X60, X60).
tappendc96(nil, X559, X559).
tappendc96(nil, X592, node(X592, nil, nil)).
tappendc96(node(nil, T127, T128), X592, node(X592, T127, T128)).
tappendc96(nil, X663, node(nil, nil, X663)).
tappendc96(node(T164, T165, nil), X663, node(T164, T165, X663)).
tappendc96(nil, X757, node(X758, nil, nil)) :- tappendc9(X757, X758).
tappendc96(node(T211, T209, T210), X757, node(X758, T209, T210)) :- tappendc96(T211, X757, X758).
tappendc96(nil, nil, node(nil, nil, X877)) :- tappendc9(X874, X877).
tappendc96(node(T251, T252, T254), T251, node(T251, T252, X877)) :- tappendc96(T254, X874, X877).
tappendc24(nil, X335, X294, node(X294, X335, nil)).
tappendc24(nil, X414, X373, node(nil, X414, X373)).
tappendc24(T93, X535, X472, node(X473, X535, T93)) :- tappendc96(T93, X472, X473).
tappendc24(T274, X1057, T274, node(T274, X1057, X997)) :- tappendc96(T274, X993, X997).
Afs:
goal1(x1) = goal1(x1)
(3) UndefinedPredicateInTriplesTransformerProof (SOUND transformation)
Deleted triples and predicates having undefined goals [UNKNOWN].
(4) Obligation:
Triples:
s2t23(s(T23), node(X146, X147, X146)) :- s2t23(T23, X146).
s2t23(s(T31), node(nil, X186, X187)) :- s2t23(T31, X187).
s2t23(s(T39), node(X226, X227, nil)) :- s2t23(T39, X226).
tappend96(node(T211, T209, T210), X757, node(X758, T209, T210)) :- tappend96(T211, X757, X758).
tappend96(node(T251, T252, T254), T251, node(T251, T252, X877)) :- tappend96(T254, X874, X877).
tappend24(T93, X535, X472, node(X473, X535, T93)) :- tappend96(T93, X472, X473).
tappend24(T274, X1057, T274, node(T274, X1057, X997)) :- tappend96(T274, X993, X997).
goal1(s(T14)) :- s2t23(T14, X91).
goal1(s(T14)) :- ','(s2tc23(T14, T15), tappend24(T15, X92, X16, X17)).
goal1(s(T282)) :- s2t23(T282, X1093).
goal1(s(T282)) :- ','(s2tc23(T282, T283), tappend96(node(nil, X1092, T283), X16, X17)).
goal1(s(T292)) :- s2t23(T292, X1144).
goal1(s(T292)) :- ','(s2tc23(T292, T293), tappend96(node(T293, X1145, nil), X16, X17)).
goal1(T297) :- tappend24(nil, X1184, X16, X17).
Clauses:
s2tc23(0, nil).
s2tc23(s(T23), node(X146, X147, X146)) :- s2tc23(T23, X146).
s2tc23(s(T31), node(nil, X186, X187)) :- s2tc23(T31, X187).
s2tc23(s(T39), node(X226, X227, nil)) :- s2tc23(T39, X226).
s2tc23(T42, node(nil, X244, nil)).
tappendc9(X60, X60).
tappendc96(nil, X559, X559).
tappendc96(nil, X592, node(X592, nil, nil)).
tappendc96(node(nil, T127, T128), X592, node(X592, T127, T128)).
tappendc96(nil, X663, node(nil, nil, X663)).
tappendc96(node(T164, T165, nil), X663, node(T164, T165, X663)).
tappendc96(nil, X757, node(X758, nil, nil)) :- tappendc9(X757, X758).
tappendc96(node(T211, T209, T210), X757, node(X758, T209, T210)) :- tappendc96(T211, X757, X758).
tappendc96(nil, nil, node(nil, nil, X877)) :- tappendc9(X874, X877).
tappendc96(node(T251, T252, T254), T251, node(T251, T252, X877)) :- tappendc96(T254, X874, X877).
tappendc24(nil, X335, X294, node(X294, X335, nil)).
tappendc24(nil, X414, X373, node(nil, X414, X373)).
tappendc24(T93, X535, X472, node(X473, X535, T93)) :- tappendc96(T93, X472, X473).
tappendc24(T274, X1057, T274, node(T274, X1057, X997)) :- tappendc96(T274, X993, X997).
Afs:
goal1(x1) = goal1(x1)
(5) TriplesToPiDPProof (SOUND transformation)
We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
goal1_in: (b)
s2t23_in: (b,f)
s2tc23_in: (b,f)
tappend24_in: (f,f,f,f) (b,f,f,f)
tappend96_in: (f,f,f) (b,f,f)
Transforming
TRIPLES into the following
Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:
GOAL1_IN_G(s(T14)) → U8_G(T14, s2t23_in_ga(T14, X91))
GOAL1_IN_G(s(T14)) → S2T23_IN_GA(T14, X91)
S2T23_IN_GA(s(T23), node(X146, X147, X146)) → U1_GA(T23, X146, X147, s2t23_in_ga(T23, X146))
S2T23_IN_GA(s(T23), node(X146, X147, X146)) → S2T23_IN_GA(T23, X146)
S2T23_IN_GA(s(T31), node(nil, X186, X187)) → U2_GA(T31, X186, X187, s2t23_in_ga(T31, X187))
S2T23_IN_GA(s(T31), node(nil, X186, X187)) → S2T23_IN_GA(T31, X187)
S2T23_IN_GA(s(T39), node(X226, X227, nil)) → U3_GA(T39, X226, X227, s2t23_in_ga(T39, X226))
S2T23_IN_GA(s(T39), node(X226, X227, nil)) → S2T23_IN_GA(T39, X226)
GOAL1_IN_G(s(T14)) → U9_G(T14, s2tc23_in_ga(T14, T15))
U9_G(T14, s2tc23_out_ga(T14, T15)) → U10_G(T14, tappend24_in_aaaa(T15, X92, X16, X17))
U9_G(T14, s2tc23_out_ga(T14, T15)) → TAPPEND24_IN_AAAA(T15, X92, X16, X17)
TAPPEND24_IN_AAAA(T93, X535, X472, node(X473, X535, T93)) → U6_AAAA(T93, X535, X472, X473, tappend96_in_aaa(T93, X472, X473))
TAPPEND24_IN_AAAA(T93, X535, X472, node(X473, X535, T93)) → TAPPEND96_IN_AAA(T93, X472, X473)
TAPPEND96_IN_AAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → U4_AAA(T211, T209, T210, X757, X758, tappend96_in_aaa(T211, X757, X758))
TAPPEND96_IN_AAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → TAPPEND96_IN_AAA(T211, X757, X758)
TAPPEND96_IN_AAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → U5_AAA(T251, T252, T254, X877, tappend96_in_aaa(T254, X874, X877))
TAPPEND96_IN_AAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → TAPPEND96_IN_AAA(T254, X874, X877)
TAPPEND24_IN_AAAA(T274, X1057, T274, node(T274, X1057, X997)) → U7_AAAA(T274, X1057, X997, tappend96_in_aaa(T274, X993, X997))
TAPPEND24_IN_AAAA(T274, X1057, T274, node(T274, X1057, X997)) → TAPPEND96_IN_AAA(T274, X993, X997)
GOAL1_IN_G(s(T282)) → U11_G(T282, s2t23_in_ga(T282, X1093))
GOAL1_IN_G(s(T282)) → U12_G(T282, s2tc23_in_ga(T282, T283))
U12_G(T282, s2tc23_out_ga(T282, T283)) → U13_G(T282, tappend96_in_aaa(node(nil, X1092, T283), X16, X17))
U12_G(T282, s2tc23_out_ga(T282, T283)) → TAPPEND96_IN_AAA(node(nil, X1092, T283), X16, X17)
GOAL1_IN_G(s(T292)) → U14_G(T292, s2t23_in_ga(T292, X1144))
GOAL1_IN_G(s(T292)) → U15_G(T292, s2tc23_in_ga(T292, T293))
U15_G(T292, s2tc23_out_ga(T292, T293)) → U16_G(T292, tappend96_in_aaa(node(T293, X1145, nil), X16, X17))
U15_G(T292, s2tc23_out_ga(T292, T293)) → TAPPEND96_IN_AAA(node(T293, X1145, nil), X16, X17)
GOAL1_IN_G(T297) → U17_G(T297, tappend24_in_gaaa(nil, X1184, X16, X17))
GOAL1_IN_G(T297) → TAPPEND24_IN_GAAA(nil, X1184, X16, X17)
TAPPEND24_IN_GAAA(T93, X535, X472, node(X473, X535, T93)) → U6_GAAA(T93, X535, X472, X473, tappend96_in_gaa(T93, X472, X473))
TAPPEND24_IN_GAAA(T93, X535, X472, node(X473, X535, T93)) → TAPPEND96_IN_GAA(T93, X472, X473)
TAPPEND96_IN_GAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → U4_GAA(T211, T209, T210, X757, X758, tappend96_in_gaa(T211, X757, X758))
TAPPEND96_IN_GAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → TAPPEND96_IN_GAA(T211, X757, X758)
TAPPEND96_IN_GAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → U5_GAA(T251, T252, T254, X877, tappend96_in_gaa(T254, X874, X877))
TAPPEND96_IN_GAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → TAPPEND96_IN_GAA(T254, X874, X877)
TAPPEND24_IN_GAAA(T274, X1057, T274, node(T274, X1057, X997)) → U7_GAAA(T274, X1057, X997, tappend96_in_gaa(T274, X993, X997))
TAPPEND24_IN_GAAA(T274, X1057, T274, node(T274, X1057, X997)) → TAPPEND96_IN_GAA(T274, X993, X997)
The TRS R consists of the following rules:
s2tc23_in_ga(0, nil) → s2tc23_out_ga(0, nil)
s2tc23_in_ga(s(T23), node(X146, X147, X146)) → U19_ga(T23, X146, X147, s2tc23_in_ga(T23, X146))
s2tc23_in_ga(s(T31), node(nil, X186, X187)) → U20_ga(T31, X186, X187, s2tc23_in_ga(T31, X187))
s2tc23_in_ga(s(T39), node(X226, X227, nil)) → U21_ga(T39, X226, X227, s2tc23_in_ga(T39, X226))
s2tc23_in_ga(T42, node(nil, X244, nil)) → s2tc23_out_ga(T42, node(nil, X244, nil))
U21_ga(T39, X226, X227, s2tc23_out_ga(T39, X226)) → s2tc23_out_ga(s(T39), node(X226, X227, nil))
U20_ga(T31, X186, X187, s2tc23_out_ga(T31, X187)) → s2tc23_out_ga(s(T31), node(nil, X186, X187))
U19_ga(T23, X146, X147, s2tc23_out_ga(T23, X146)) → s2tc23_out_ga(s(T23), node(X146, X147, X146))
The argument filtering Pi contains the following mapping:
s(
x1) =
s(
x1)
s2t23_in_ga(
x1,
x2) =
s2t23_in_ga(
x1)
s2tc23_in_ga(
x1,
x2) =
s2tc23_in_ga(
x1)
0 =
0
s2tc23_out_ga(
x1,
x2) =
s2tc23_out_ga(
x1)
U19_ga(
x1,
x2,
x3,
x4) =
U19_ga(
x1,
x4)
U20_ga(
x1,
x2,
x3,
x4) =
U20_ga(
x1,
x4)
U21_ga(
x1,
x2,
x3,
x4) =
U21_ga(
x1,
x4)
tappend24_in_aaaa(
x1,
x2,
x3,
x4) =
tappend24_in_aaaa
tappend96_in_aaa(
x1,
x2,
x3) =
tappend96_in_aaa
tappend24_in_gaaa(
x1,
x2,
x3,
x4) =
tappend24_in_gaaa(
x1)
tappend96_in_gaa(
x1,
x2,
x3) =
tappend96_in_gaa(
x1)
node(
x1,
x2,
x3) =
node(
x1,
x2,
x3)
nil =
nil
GOAL1_IN_G(
x1) =
GOAL1_IN_G(
x1)
U8_G(
x1,
x2) =
U8_G(
x1,
x2)
S2T23_IN_GA(
x1,
x2) =
S2T23_IN_GA(
x1)
U1_GA(
x1,
x2,
x3,
x4) =
U1_GA(
x1,
x4)
U2_GA(
x1,
x2,
x3,
x4) =
U2_GA(
x1,
x4)
U3_GA(
x1,
x2,
x3,
x4) =
U3_GA(
x1,
x4)
U9_G(
x1,
x2) =
U9_G(
x1,
x2)
U10_G(
x1,
x2) =
U10_G(
x1,
x2)
TAPPEND24_IN_AAAA(
x1,
x2,
x3,
x4) =
TAPPEND24_IN_AAAA
U6_AAAA(
x1,
x2,
x3,
x4,
x5) =
U6_AAAA(
x5)
TAPPEND96_IN_AAA(
x1,
x2,
x3) =
TAPPEND96_IN_AAA
U4_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U4_AAA(
x6)
U5_AAA(
x1,
x2,
x3,
x4,
x5) =
U5_AAA(
x5)
U7_AAAA(
x1,
x2,
x3,
x4) =
U7_AAAA(
x4)
U11_G(
x1,
x2) =
U11_G(
x1,
x2)
U12_G(
x1,
x2) =
U12_G(
x1,
x2)
U13_G(
x1,
x2) =
U13_G(
x1,
x2)
U14_G(
x1,
x2) =
U14_G(
x1,
x2)
U15_G(
x1,
x2) =
U15_G(
x1,
x2)
U16_G(
x1,
x2) =
U16_G(
x1,
x2)
U17_G(
x1,
x2) =
U17_G(
x1,
x2)
TAPPEND24_IN_GAAA(
x1,
x2,
x3,
x4) =
TAPPEND24_IN_GAAA(
x1)
U6_GAAA(
x1,
x2,
x3,
x4,
x5) =
U6_GAAA(
x1,
x5)
TAPPEND96_IN_GAA(
x1,
x2,
x3) =
TAPPEND96_IN_GAA(
x1)
U4_GAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U4_GAA(
x1,
x2,
x3,
x6)
U5_GAA(
x1,
x2,
x3,
x4,
x5) =
U5_GAA(
x1,
x2,
x3,
x5)
U7_GAAA(
x1,
x2,
x3,
x4) =
U7_GAAA(
x1,
x4)
We have to consider all (P,R,Pi)-chains
Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES
(6) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
GOAL1_IN_G(s(T14)) → U8_G(T14, s2t23_in_ga(T14, X91))
GOAL1_IN_G(s(T14)) → S2T23_IN_GA(T14, X91)
S2T23_IN_GA(s(T23), node(X146, X147, X146)) → U1_GA(T23, X146, X147, s2t23_in_ga(T23, X146))
S2T23_IN_GA(s(T23), node(X146, X147, X146)) → S2T23_IN_GA(T23, X146)
S2T23_IN_GA(s(T31), node(nil, X186, X187)) → U2_GA(T31, X186, X187, s2t23_in_ga(T31, X187))
S2T23_IN_GA(s(T31), node(nil, X186, X187)) → S2T23_IN_GA(T31, X187)
S2T23_IN_GA(s(T39), node(X226, X227, nil)) → U3_GA(T39, X226, X227, s2t23_in_ga(T39, X226))
S2T23_IN_GA(s(T39), node(X226, X227, nil)) → S2T23_IN_GA(T39, X226)
GOAL1_IN_G(s(T14)) → U9_G(T14, s2tc23_in_ga(T14, T15))
U9_G(T14, s2tc23_out_ga(T14, T15)) → U10_G(T14, tappend24_in_aaaa(T15, X92, X16, X17))
U9_G(T14, s2tc23_out_ga(T14, T15)) → TAPPEND24_IN_AAAA(T15, X92, X16, X17)
TAPPEND24_IN_AAAA(T93, X535, X472, node(X473, X535, T93)) → U6_AAAA(T93, X535, X472, X473, tappend96_in_aaa(T93, X472, X473))
TAPPEND24_IN_AAAA(T93, X535, X472, node(X473, X535, T93)) → TAPPEND96_IN_AAA(T93, X472, X473)
TAPPEND96_IN_AAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → U4_AAA(T211, T209, T210, X757, X758, tappend96_in_aaa(T211, X757, X758))
TAPPEND96_IN_AAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → TAPPEND96_IN_AAA(T211, X757, X758)
TAPPEND96_IN_AAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → U5_AAA(T251, T252, T254, X877, tappend96_in_aaa(T254, X874, X877))
TAPPEND96_IN_AAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → TAPPEND96_IN_AAA(T254, X874, X877)
TAPPEND24_IN_AAAA(T274, X1057, T274, node(T274, X1057, X997)) → U7_AAAA(T274, X1057, X997, tappend96_in_aaa(T274, X993, X997))
TAPPEND24_IN_AAAA(T274, X1057, T274, node(T274, X1057, X997)) → TAPPEND96_IN_AAA(T274, X993, X997)
GOAL1_IN_G(s(T282)) → U11_G(T282, s2t23_in_ga(T282, X1093))
GOAL1_IN_G(s(T282)) → U12_G(T282, s2tc23_in_ga(T282, T283))
U12_G(T282, s2tc23_out_ga(T282, T283)) → U13_G(T282, tappend96_in_aaa(node(nil, X1092, T283), X16, X17))
U12_G(T282, s2tc23_out_ga(T282, T283)) → TAPPEND96_IN_AAA(node(nil, X1092, T283), X16, X17)
GOAL1_IN_G(s(T292)) → U14_G(T292, s2t23_in_ga(T292, X1144))
GOAL1_IN_G(s(T292)) → U15_G(T292, s2tc23_in_ga(T292, T293))
U15_G(T292, s2tc23_out_ga(T292, T293)) → U16_G(T292, tappend96_in_aaa(node(T293, X1145, nil), X16, X17))
U15_G(T292, s2tc23_out_ga(T292, T293)) → TAPPEND96_IN_AAA(node(T293, X1145, nil), X16, X17)
GOAL1_IN_G(T297) → U17_G(T297, tappend24_in_gaaa(nil, X1184, X16, X17))
GOAL1_IN_G(T297) → TAPPEND24_IN_GAAA(nil, X1184, X16, X17)
TAPPEND24_IN_GAAA(T93, X535, X472, node(X473, X535, T93)) → U6_GAAA(T93, X535, X472, X473, tappend96_in_gaa(T93, X472, X473))
TAPPEND24_IN_GAAA(T93, X535, X472, node(X473, X535, T93)) → TAPPEND96_IN_GAA(T93, X472, X473)
TAPPEND96_IN_GAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → U4_GAA(T211, T209, T210, X757, X758, tappend96_in_gaa(T211, X757, X758))
TAPPEND96_IN_GAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → TAPPEND96_IN_GAA(T211, X757, X758)
TAPPEND96_IN_GAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → U5_GAA(T251, T252, T254, X877, tappend96_in_gaa(T254, X874, X877))
TAPPEND96_IN_GAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → TAPPEND96_IN_GAA(T254, X874, X877)
TAPPEND24_IN_GAAA(T274, X1057, T274, node(T274, X1057, X997)) → U7_GAAA(T274, X1057, X997, tappend96_in_gaa(T274, X993, X997))
TAPPEND24_IN_GAAA(T274, X1057, T274, node(T274, X1057, X997)) → TAPPEND96_IN_GAA(T274, X993, X997)
The TRS R consists of the following rules:
s2tc23_in_ga(0, nil) → s2tc23_out_ga(0, nil)
s2tc23_in_ga(s(T23), node(X146, X147, X146)) → U19_ga(T23, X146, X147, s2tc23_in_ga(T23, X146))
s2tc23_in_ga(s(T31), node(nil, X186, X187)) → U20_ga(T31, X186, X187, s2tc23_in_ga(T31, X187))
s2tc23_in_ga(s(T39), node(X226, X227, nil)) → U21_ga(T39, X226, X227, s2tc23_in_ga(T39, X226))
s2tc23_in_ga(T42, node(nil, X244, nil)) → s2tc23_out_ga(T42, node(nil, X244, nil))
U21_ga(T39, X226, X227, s2tc23_out_ga(T39, X226)) → s2tc23_out_ga(s(T39), node(X226, X227, nil))
U20_ga(T31, X186, X187, s2tc23_out_ga(T31, X187)) → s2tc23_out_ga(s(T31), node(nil, X186, X187))
U19_ga(T23, X146, X147, s2tc23_out_ga(T23, X146)) → s2tc23_out_ga(s(T23), node(X146, X147, X146))
The argument filtering Pi contains the following mapping:
s(
x1) =
s(
x1)
s2t23_in_ga(
x1,
x2) =
s2t23_in_ga(
x1)
s2tc23_in_ga(
x1,
x2) =
s2tc23_in_ga(
x1)
0 =
0
s2tc23_out_ga(
x1,
x2) =
s2tc23_out_ga(
x1)
U19_ga(
x1,
x2,
x3,
x4) =
U19_ga(
x1,
x4)
U20_ga(
x1,
x2,
x3,
x4) =
U20_ga(
x1,
x4)
U21_ga(
x1,
x2,
x3,
x4) =
U21_ga(
x1,
x4)
tappend24_in_aaaa(
x1,
x2,
x3,
x4) =
tappend24_in_aaaa
tappend96_in_aaa(
x1,
x2,
x3) =
tappend96_in_aaa
tappend24_in_gaaa(
x1,
x2,
x3,
x4) =
tappend24_in_gaaa(
x1)
tappend96_in_gaa(
x1,
x2,
x3) =
tappend96_in_gaa(
x1)
node(
x1,
x2,
x3) =
node(
x1,
x2,
x3)
nil =
nil
GOAL1_IN_G(
x1) =
GOAL1_IN_G(
x1)
U8_G(
x1,
x2) =
U8_G(
x1,
x2)
S2T23_IN_GA(
x1,
x2) =
S2T23_IN_GA(
x1)
U1_GA(
x1,
x2,
x3,
x4) =
U1_GA(
x1,
x4)
U2_GA(
x1,
x2,
x3,
x4) =
U2_GA(
x1,
x4)
U3_GA(
x1,
x2,
x3,
x4) =
U3_GA(
x1,
x4)
U9_G(
x1,
x2) =
U9_G(
x1,
x2)
U10_G(
x1,
x2) =
U10_G(
x1,
x2)
TAPPEND24_IN_AAAA(
x1,
x2,
x3,
x4) =
TAPPEND24_IN_AAAA
U6_AAAA(
x1,
x2,
x3,
x4,
x5) =
U6_AAAA(
x5)
TAPPEND96_IN_AAA(
x1,
x2,
x3) =
TAPPEND96_IN_AAA
U4_AAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U4_AAA(
x6)
U5_AAA(
x1,
x2,
x3,
x4,
x5) =
U5_AAA(
x5)
U7_AAAA(
x1,
x2,
x3,
x4) =
U7_AAAA(
x4)
U11_G(
x1,
x2) =
U11_G(
x1,
x2)
U12_G(
x1,
x2) =
U12_G(
x1,
x2)
U13_G(
x1,
x2) =
U13_G(
x1,
x2)
U14_G(
x1,
x2) =
U14_G(
x1,
x2)
U15_G(
x1,
x2) =
U15_G(
x1,
x2)
U16_G(
x1,
x2) =
U16_G(
x1,
x2)
U17_G(
x1,
x2) =
U17_G(
x1,
x2)
TAPPEND24_IN_GAAA(
x1,
x2,
x3,
x4) =
TAPPEND24_IN_GAAA(
x1)
U6_GAAA(
x1,
x2,
x3,
x4,
x5) =
U6_GAAA(
x1,
x5)
TAPPEND96_IN_GAA(
x1,
x2,
x3) =
TAPPEND96_IN_GAA(
x1)
U4_GAA(
x1,
x2,
x3,
x4,
x5,
x6) =
U4_GAA(
x1,
x2,
x3,
x6)
U5_GAA(
x1,
x2,
x3,
x4,
x5) =
U5_GAA(
x1,
x2,
x3,
x5)
U7_GAAA(
x1,
x2,
x3,
x4) =
U7_GAAA(
x1,
x4)
We have to consider all (P,R,Pi)-chains
(7) DependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 30 less nodes.
(8) Complex Obligation (AND)
(9) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
TAPPEND96_IN_GAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → TAPPEND96_IN_GAA(T254, X874, X877)
TAPPEND96_IN_GAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → TAPPEND96_IN_GAA(T211, X757, X758)
The TRS R consists of the following rules:
s2tc23_in_ga(0, nil) → s2tc23_out_ga(0, nil)
s2tc23_in_ga(s(T23), node(X146, X147, X146)) → U19_ga(T23, X146, X147, s2tc23_in_ga(T23, X146))
s2tc23_in_ga(s(T31), node(nil, X186, X187)) → U20_ga(T31, X186, X187, s2tc23_in_ga(T31, X187))
s2tc23_in_ga(s(T39), node(X226, X227, nil)) → U21_ga(T39, X226, X227, s2tc23_in_ga(T39, X226))
s2tc23_in_ga(T42, node(nil, X244, nil)) → s2tc23_out_ga(T42, node(nil, X244, nil))
U21_ga(T39, X226, X227, s2tc23_out_ga(T39, X226)) → s2tc23_out_ga(s(T39), node(X226, X227, nil))
U20_ga(T31, X186, X187, s2tc23_out_ga(T31, X187)) → s2tc23_out_ga(s(T31), node(nil, X186, X187))
U19_ga(T23, X146, X147, s2tc23_out_ga(T23, X146)) → s2tc23_out_ga(s(T23), node(X146, X147, X146))
The argument filtering Pi contains the following mapping:
s(
x1) =
s(
x1)
s2tc23_in_ga(
x1,
x2) =
s2tc23_in_ga(
x1)
0 =
0
s2tc23_out_ga(
x1,
x2) =
s2tc23_out_ga(
x1)
U19_ga(
x1,
x2,
x3,
x4) =
U19_ga(
x1,
x4)
U20_ga(
x1,
x2,
x3,
x4) =
U20_ga(
x1,
x4)
U21_ga(
x1,
x2,
x3,
x4) =
U21_ga(
x1,
x4)
node(
x1,
x2,
x3) =
node(
x1,
x2,
x3)
nil =
nil
TAPPEND96_IN_GAA(
x1,
x2,
x3) =
TAPPEND96_IN_GAA(
x1)
We have to consider all (P,R,Pi)-chains
(10) UsableRulesProof (EQUIVALENT transformation)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
(11) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
TAPPEND96_IN_GAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → TAPPEND96_IN_GAA(T254, X874, X877)
TAPPEND96_IN_GAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → TAPPEND96_IN_GAA(T211, X757, X758)
R is empty.
The argument filtering Pi contains the following mapping:
node(
x1,
x2,
x3) =
node(
x1,
x2,
x3)
TAPPEND96_IN_GAA(
x1,
x2,
x3) =
TAPPEND96_IN_GAA(
x1)
We have to consider all (P,R,Pi)-chains
(12) PiDPToQDPProof (SOUND transformation)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
(13) Obligation:
Q DP problem:
The TRS P consists of the following rules:
TAPPEND96_IN_GAA(node(T251, T252, T254)) → TAPPEND96_IN_GAA(T254)
TAPPEND96_IN_GAA(node(T211, T209, T210)) → TAPPEND96_IN_GAA(T211)
R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
(14) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- TAPPEND96_IN_GAA(node(T251, T252, T254)) → TAPPEND96_IN_GAA(T254)
The graph contains the following edges 1 > 1
- TAPPEND96_IN_GAA(node(T211, T209, T210)) → TAPPEND96_IN_GAA(T211)
The graph contains the following edges 1 > 1
(15) YES
(16) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
TAPPEND96_IN_AAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → TAPPEND96_IN_AAA(T254, X874, X877)
TAPPEND96_IN_AAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → TAPPEND96_IN_AAA(T211, X757, X758)
The TRS R consists of the following rules:
s2tc23_in_ga(0, nil) → s2tc23_out_ga(0, nil)
s2tc23_in_ga(s(T23), node(X146, X147, X146)) → U19_ga(T23, X146, X147, s2tc23_in_ga(T23, X146))
s2tc23_in_ga(s(T31), node(nil, X186, X187)) → U20_ga(T31, X186, X187, s2tc23_in_ga(T31, X187))
s2tc23_in_ga(s(T39), node(X226, X227, nil)) → U21_ga(T39, X226, X227, s2tc23_in_ga(T39, X226))
s2tc23_in_ga(T42, node(nil, X244, nil)) → s2tc23_out_ga(T42, node(nil, X244, nil))
U21_ga(T39, X226, X227, s2tc23_out_ga(T39, X226)) → s2tc23_out_ga(s(T39), node(X226, X227, nil))
U20_ga(T31, X186, X187, s2tc23_out_ga(T31, X187)) → s2tc23_out_ga(s(T31), node(nil, X186, X187))
U19_ga(T23, X146, X147, s2tc23_out_ga(T23, X146)) → s2tc23_out_ga(s(T23), node(X146, X147, X146))
The argument filtering Pi contains the following mapping:
s(
x1) =
s(
x1)
s2tc23_in_ga(
x1,
x2) =
s2tc23_in_ga(
x1)
0 =
0
s2tc23_out_ga(
x1,
x2) =
s2tc23_out_ga(
x1)
U19_ga(
x1,
x2,
x3,
x4) =
U19_ga(
x1,
x4)
U20_ga(
x1,
x2,
x3,
x4) =
U20_ga(
x1,
x4)
U21_ga(
x1,
x2,
x3,
x4) =
U21_ga(
x1,
x4)
node(
x1,
x2,
x3) =
node(
x1,
x2,
x3)
nil =
nil
TAPPEND96_IN_AAA(
x1,
x2,
x3) =
TAPPEND96_IN_AAA
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:
TAPPEND96_IN_AAA(node(T251, T252, T254), T251, node(T251, T252, X877)) → TAPPEND96_IN_AAA(T254, X874, X877)
TAPPEND96_IN_AAA(node(T211, T209, T210), X757, node(X758, T209, T210)) → TAPPEND96_IN_AAA(T211, X757, X758)
R is empty.
The argument filtering Pi contains the following mapping:
node(
x1,
x2,
x3) =
node(
x1,
x2,
x3)
TAPPEND96_IN_AAA(
x1,
x2,
x3) =
TAPPEND96_IN_AAA
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:
TAPPEND96_IN_AAA → TAPPEND96_IN_AAA
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 =
TAPPEND96_IN_AAA evaluates to t =
TAPPEND96_IN_AAAThus 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 TAPPEND96_IN_AAA to TAPPEND96_IN_AAA.
(22) NO
(23) Obligation:
Pi DP problem:
The TRS P consists of the following rules:
S2T23_IN_GA(s(T31), node(nil, X186, X187)) → S2T23_IN_GA(T31, X187)
S2T23_IN_GA(s(T23), node(X146, X147, X146)) → S2T23_IN_GA(T23, X146)
S2T23_IN_GA(s(T39), node(X226, X227, nil)) → S2T23_IN_GA(T39, X226)
The TRS R consists of the following rules:
s2tc23_in_ga(0, nil) → s2tc23_out_ga(0, nil)
s2tc23_in_ga(s(T23), node(X146, X147, X146)) → U19_ga(T23, X146, X147, s2tc23_in_ga(T23, X146))
s2tc23_in_ga(s(T31), node(nil, X186, X187)) → U20_ga(T31, X186, X187, s2tc23_in_ga(T31, X187))
s2tc23_in_ga(s(T39), node(X226, X227, nil)) → U21_ga(T39, X226, X227, s2tc23_in_ga(T39, X226))
s2tc23_in_ga(T42, node(nil, X244, nil)) → s2tc23_out_ga(T42, node(nil, X244, nil))
U21_ga(T39, X226, X227, s2tc23_out_ga(T39, X226)) → s2tc23_out_ga(s(T39), node(X226, X227, nil))
U20_ga(T31, X186, X187, s2tc23_out_ga(T31, X187)) → s2tc23_out_ga(s(T31), node(nil, X186, X187))
U19_ga(T23, X146, X147, s2tc23_out_ga(T23, X146)) → s2tc23_out_ga(s(T23), node(X146, X147, X146))
The argument filtering Pi contains the following mapping:
s(
x1) =
s(
x1)
s2tc23_in_ga(
x1,
x2) =
s2tc23_in_ga(
x1)
0 =
0
s2tc23_out_ga(
x1,
x2) =
s2tc23_out_ga(
x1)
U19_ga(
x1,
x2,
x3,
x4) =
U19_ga(
x1,
x4)
U20_ga(
x1,
x2,
x3,
x4) =
U20_ga(
x1,
x4)
U21_ga(
x1,
x2,
x3,
x4) =
U21_ga(
x1,
x4)
node(
x1,
x2,
x3) =
node(
x1,
x2,
x3)
nil =
nil
S2T23_IN_GA(
x1,
x2) =
S2T23_IN_GA(
x1)
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:
S2T23_IN_GA(s(T31), node(nil, X186, X187)) → S2T23_IN_GA(T31, X187)
S2T23_IN_GA(s(T23), node(X146, X147, X146)) → S2T23_IN_GA(T23, X146)
S2T23_IN_GA(s(T39), node(X226, X227, nil)) → S2T23_IN_GA(T39, X226)
R is empty.
The argument filtering Pi contains the following mapping:
s(
x1) =
s(
x1)
node(
x1,
x2,
x3) =
node(
x1,
x2,
x3)
nil =
nil
S2T23_IN_GA(
x1,
x2) =
S2T23_IN_GA(
x1)
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:
S2T23_IN_GA(s(T31)) → S2T23_IN_GA(T31)
R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
(28) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- S2T23_IN_GA(s(T31)) → S2T23_IN_GA(T31)
The graph contains the following edges 1 > 1
(29) YES