MAYBE

Found an example we currently can't prove?
-> Consider contributing it to the benchmark set: https://mysolvertimesout.org/

proof of /hpcwork/ff862203/termcomp26/benchmarks/Qpkh7.pl
# AProVE Commit ID: 23a904c96b029b0a549cde0d0d17dbccf967db59 jckassing 20260626 unpublished dirty


Left Termination of the query pattern

mergesort(a,g)

w.r.t. the given Prolog program could not be shown:

(0) Prolog
(1) UnifyTransformerProof [EQUIVALENT, 0 ms]
(2) Prolog
    (3) PrologToPiTRSProof [SOUND, 0 ms]
    (4) PiTRS
        (5) DependencyPairsProof [EQUIVALENT, 19 ms]
        (6) PiDP
        (7) DependencyGraphProof [EQUIVALENT, 0 ms]
        (8) AND
            (9) PiDP
                (10) UsableRulesProof [EQUIVALENT, 0 ms]
                (11) PiDP
                (12) PiDPToQDPProof [SOUND, 7 ms]
                (13) QDP
                (14) QDPSizeChangeProof [EQUIVALENT, 0 ms]
                (15) YES
            (16) PiDP
                (17) UsableRulesProof [EQUIVALENT, 0 ms]
                (18) PiDP
                (19) PiDPToQDPProof [SOUND, 0 ms]
                (20) QDP
                (21) QDPSizeChangeProof [EQUIVALENT, 0 ms]
                (22) YES
            (23) PiDP
                (24) UsableRulesProof [EQUIVALENT, 0 ms]
                (25) PiDP
                (26) PiDPToQDPProof [SOUND, 0 ms]
                (27) QDP
                (28) QDPSizeChangeProof [EQUIVALENT, 0 ms]
                (29) YES
            (30) PiDP
                (31) UsableRulesProof [EQUIVALENT, 0 ms]
                (32) PiDP
                (33) PiDPToQDPProof [SOUND, 0 ms]
                (34) QDP
                (35) TransformationProof [EQUIVALENT, 0 ms]
                (36) QDP
                (37) TransformationProof [EQUIVALENT, 0 ms]
                (38) QDP
                (39) QDPQMonotonicMRRProof [EQUIVALENT, 45 ms]
                (40) QDP
                (41) QDPOrderProof [EQUIVALENT, 35 ms]
                (42) QDP
                (43) DependencyGraphProof [EQUIVALENT, 0 ms]
                (44) QDP
                (45) UsableRulesProof [EQUIVALENT, 0 ms]
                (46) QDP
                (47) QReductionProof [EQUIVALENT, 0 ms]
                (48) QDP
                (49) QDPOrderProof [EQUIVALENT, 20 ms]
                (50) QDP
                (51) DependencyGraphProof [EQUIVALENT, 0 ms]
                (52) TRUE
            (53) PiDP
                (54) UsableRulesProof [EQUIVALENT, 0 ms]
                (55) PiDP
                (56) PiDPToQDPProof [SOUND, 0 ms]
                (57) QDP
    (58) PrologToPiTRSProof [SOUND, 0 ms]
    (59) PiTRS
        (60) DependencyPairsProof [EQUIVALENT, 18 ms]
        (61) PiDP
        (62) DependencyGraphProof [EQUIVALENT, 0 ms]
        (63) AND
            (64) PiDP
                (65) UsableRulesProof [EQUIVALENT, 0 ms]
                (66) PiDP
                (67) PiDPToQDPProof [SOUND, 6 ms]
                (68) QDP
                (69) QDPSizeChangeProof [EQUIVALENT, 0 ms]
                (70) YES
            (71) PiDP
                (72) UsableRulesProof [EQUIVALENT, 0 ms]
                (73) PiDP
                (74) PiDPToQDPProof [SOUND, 0 ms]
                (75) QDP
                (76) QDPSizeChangeProof [EQUIVALENT, 0 ms]
                (77) YES
            (78) PiDP
                (79) UsableRulesProof [EQUIVALENT, 0 ms]
                (80) PiDP
                (81) PiDPToQDPProof [SOUND, 0 ms]
                (82) QDP
                (83) QDPSizeChangeProof [EQUIVALENT, 0 ms]
                (84) YES
            (85) PiDP
                (86) UsableRulesProof [EQUIVALENT, 0 ms]
                (87) PiDP
                (88) PiDPToQDPProof [SOUND, 0 ms]
                (89) QDP
                (90) MRRProof [EQUIVALENT, 34 ms]
                (91) QDP
                (92) TransformationProof [EQUIVALENT, 0 ms]
                (93) QDP
                (94) TransformationProof [EQUIVALENT, 0 ms]
                (95) QDP
                (96) QDPOrderProof [EQUIVALENT, 18 ms]
                (97) QDP
                (98) DependencyGraphProof [EQUIVALENT, 0 ms]
                (99) QDP
                (100) UsableRulesProof [EQUIVALENT, 0 ms]
                (101) QDP
                (102) QReductionProof [EQUIVALENT, 0 ms]
                (103) QDP
                (104) QDPOrderProof [EQUIVALENT, 15 ms]
                (105) QDP
                (106) DependencyGraphProof [EQUIVALENT, 0 ms]
                (107) TRUE
            (108) PiDP
                (109) UsableRulesProof [EQUIVALENT, 0 ms]
                (110) PiDP
                (111) PiDPToQDPProof [SOUND, 0 ms]
                (112) QDP
(113) PrologToTRSTransformerProof [SOUND, 37 ms]
(114) QTRS
    (115) QTRSRRRProof [EQUIVALENT, 159 ms]
    (116) QTRS
    (117) DependencyPairsProof [EQUIVALENT, 0 ms]
    (118) QDP
    (119) DependencyGraphProof [EQUIVALENT, 0 ms]
    (120) AND
        (121) QDP
            (122) UsableRulesProof [EQUIVALENT, 0 ms]
            (123) QDP
            (124) NonTerminationLoopProof [COMPLETE, 0 ms]
            (125) NO
        (126) QDP
            (127) UsableRulesProof [EQUIVALENT, 0 ms]
            (128) QDP
            (129) NonTerminationLoopProof [COMPLETE, 0 ms]
            (130) NO
        (131) QDP
(132) PrologToDTProblemTransformerProof [SOUND, 39 ms]
(133) TRIPLES
    (134) UndefinedPredicateInTriplesTransformerProof [SOUND, 0 ms]
    (135) TRIPLES
    (136) TriplesToPiDPProof [SOUND, 0 ms]
    (137) PiDP
    (138) DependencyGraphProof [EQUIVALENT, 0 ms]
    (139) AND
        (140) PiDP
            (141) UsableRulesProof [EQUIVALENT, 0 ms]
            (142) PiDP
            (143) PiDPToQDPProof [SOUND, 0 ms]
            (144) QDP
            (145) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (146) YES
        (147) PiDP
            (148) UsableRulesProof [EQUIVALENT, 0 ms]
            (149) PiDP
            (150) PiDPToQDPProof [SOUND, 0 ms]
            (151) QDP
            (152) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (153) YES
        (154) PiDP
            (155) UsableRulesProof [EQUIVALENT, 0 ms]
            (156) PiDP
            (157) PiDPToQDPProof [SOUND, 0 ms]
            (158) QDP
            (159) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (160) YES
        (161) PiDP
            (162) UsableRulesProof [EQUIVALENT, 0 ms]
            (163) PiDP
            (164) PiDPToQDPProof [SOUND, 0 ms]
            (165) QDP
            (166) TransformationProof [EQUIVALENT, 3 ms]
            (167) QDP
            (168) TransformationProof [EQUIVALENT, 0 ms]
            (169) QDP
            (170) QDPQMonotonicMRRProof [EQUIVALENT, 48 ms]
            (171) QDP
            (172) DependencyGraphProof [EQUIVALENT, 0 ms]
            (173) TRUE
        (174) PiDP
            (175) UsableRulesProof [EQUIVALENT, 0 ms]
            (176) PiDP
            (177) PiDPToQDPProof [SOUND, 0 ms]
            (178) QDP
            (179) NonTerminationLoopProof [COMPLETE, 0 ms]
            (180) NO
(181) PrologToIRSwTTransformerProof [SOUND, 35 ms]
(182) AND
    (183) IRSwT
        (184) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (185) TRUE
    (186) IRSwT
        (187) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (188) TRUE
    (189) IRSwT
        (190) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (191) IRSwT
        (192) IntTRSCompressionProof [EQUIVALENT, 27 ms]
        (193) IRSwT
        (194) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (195) IRSwT
        (196) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms]
        (197) IRSwT
        (198) FilterProof [EQUIVALENT, 0 ms]
        (199) IntTRS
        (200) IntTRSPeriodicNontermProof [COMPLETE, 3 ms]
        (201) NO
    (202) IRSwT
        (203) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (204) IRSwT
        (205) IntTRSCompressionProof [EQUIVALENT, 6 ms]
        (206) IRSwT
        (207) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (208) IRSwT
        (209) IRSwTTerminationDigraphProof [EQUIVALENT, 9 ms]
        (210) IRSwT
        (211) FilterProof [EQUIVALENT, 0 ms]
        (212) IntTRS
        (213) IntTRSPeriodicNontermProof [COMPLETE, 0 ms]
        (214) NO


----------------------------------------

(0)
Obligation:
Clauses:

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


Query: mergesort(a,g)
----------------------------------------

(1) UnifyTransformerProof (EQUIVALENT)
Added a fact for the built-in = predicate [PROLOG].
----------------------------------------

(2)
Obligation:
Clauses:

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


Query: mergesort(a,g)
----------------------------------------

(3) PrologToPiTRSProof (SOUND)
We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:

mergesort_in_2: (f,b) (b,f)

split_in_3: (f,f,f) (b,f,f)

merge_in_3: (b,b,f) (b,b,b)

Transforming Prolog into the following Term Rewriting System:

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

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1, x2)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x1, x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x3, x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x1, x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x2, x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x3, x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x3, x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x3, x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x1, x2, x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x2, x4, x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x4, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg(x1, x2, x3)

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x2, x4, x5, x6)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



----------------------------------------

(4)
Obligation:
Pi-finite rewrite system:
The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1, x2)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x1, x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x3, x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x1, x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x2, x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x3, x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x3, x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x3, x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x1, x2, x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x2, x4, x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x4, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg(x1, x2, x3)

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x2, x4, x5, x6)



----------------------------------------

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

   MERGESORT_IN_AG(.(X, .(Y, Xs)), Ys) -> U1_AG(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   MERGESORT_IN_AG(.(X, .(Y, Xs)), Ys) -> SPLIT_IN_AAA(.(X, .(Y, Xs)), X1s, X2s)
   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> U5_AAA(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_AAA(Xs, Zs, Ys)
   U1_AG(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_AG(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U1_AG(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> U1_GA(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> SPLIT_IN_GAA(.(X, .(Y, Xs)), X1s, X2s)
   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> U5_GAA(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_GAA(Xs, Zs, Ys)
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_GA(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_GA(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   U3_GA(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_GA(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   U3_GA(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> MERGE_IN_GGA(Y1s, Y2s, Ys)
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGA(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> =_IN_AA(X, Y)
   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_GGA(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGA(.(X, Xs), Ys, Zs)
   U2_AG(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_AG(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U2_AG(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   U3_AG(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_AG(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   U3_AG(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> MERGE_IN_GGG(Y1s, Y2s, Ys)
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGG(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> =_IN_AA(X, Y)
   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_GGG(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGG(.(X, Xs), Ys, Zs)

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1, x2)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x1, x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x3, x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x1, x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x2, x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x3, x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x3, x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x3, x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x1, x2, x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x2, x4, x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x4, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg(x1, x2, x3)

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x2, x4, x5, x6)

MERGESORT_IN_AG(x1, x2)  =  MERGESORT_IN_AG(x2)

U1_AG(x1, x2, x3, x4, x5)  =  U1_AG(x4, x5)

SPLIT_IN_AAA(x1, x2, x3)  =  SPLIT_IN_AAA

U5_AAA(x1, x2, x3, x4, x5)  =  U5_AAA(x5)

U2_AG(x1, x2, x3, x4, x5, x6)  =  U2_AG(x3, x4, x5, x6)

MERGESORT_IN_GA(x1, x2)  =  MERGESORT_IN_GA(x1)

U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x3, x5)

SPLIT_IN_GAA(x1, x2, x3)  =  SPLIT_IN_GAA(x1)

U5_GAA(x1, x2, x3, x4, x5)  =  U5_GAA(x2, x5)

U2_GA(x1, x2, x3, x4, x5, x6)  =  U2_GA(x3, x5, x6)

U3_GA(x1, x2, x3, x4, x5, x6)  =  U3_GA(x3, x5, x6)

U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x3, x5)

MERGE_IN_GGA(x1, x2, x3)  =  MERGE_IN_GGA(x1, x2)

U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x2, x4, x6)

=_IN_AA(x1, x2)  =  =_IN_AA

U7_GGA(x1, x2, x3, x4, x5, x6)  =  U7_GGA(x2, x4, x6)

U3_AG(x1, x2, x3, x4, x5, x6)  =  U3_AG(x3, x4, x5, x6)

U4_AG(x1, x2, x3, x4, x5)  =  U4_AG(x3, x4, x5)

MERGE_IN_GGG(x1, x2, x3)  =  MERGE_IN_GGG(x1, x2, x3)

U6_GGG(x1, x2, x3, x4, x5, x6)  =  U6_GGG(x2, x4, x5, x6)

U7_GGG(x1, x2, x3, x4, x5, x6)  =  U7_GGG(x2, x4, x5, x6)


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

(6)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MERGESORT_IN_AG(.(X, .(Y, Xs)), Ys) -> U1_AG(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   MERGESORT_IN_AG(.(X, .(Y, Xs)), Ys) -> SPLIT_IN_AAA(.(X, .(Y, Xs)), X1s, X2s)
   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> U5_AAA(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_AAA(Xs, Zs, Ys)
   U1_AG(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_AG(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U1_AG(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> U1_GA(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> SPLIT_IN_GAA(.(X, .(Y, Xs)), X1s, X2s)
   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> U5_GAA(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_GAA(Xs, Zs, Ys)
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_GA(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_GA(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   U3_GA(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_GA(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   U3_GA(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> MERGE_IN_GGA(Y1s, Y2s, Ys)
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGA(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> =_IN_AA(X, Y)
   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_GGA(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGA(.(X, Xs), Ys, Zs)
   U2_AG(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_AG(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U2_AG(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   U3_AG(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_AG(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   U3_AG(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> MERGE_IN_GGG(Y1s, Y2s, Ys)
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGG(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> =_IN_AA(X, Y)
   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_GGG(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGG(.(X, Xs), Ys, Zs)

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1, x2)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x1, x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x3, x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x1, x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x2, x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x3, x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x3, x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x3, x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x1, x2, x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x2, x4, x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x4, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg(x1, x2, x3)

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x2, x4, x5, x6)

MERGESORT_IN_AG(x1, x2)  =  MERGESORT_IN_AG(x2)

U1_AG(x1, x2, x3, x4, x5)  =  U1_AG(x4, x5)

SPLIT_IN_AAA(x1, x2, x3)  =  SPLIT_IN_AAA

U5_AAA(x1, x2, x3, x4, x5)  =  U5_AAA(x5)

U2_AG(x1, x2, x3, x4, x5, x6)  =  U2_AG(x3, x4, x5, x6)

MERGESORT_IN_GA(x1, x2)  =  MERGESORT_IN_GA(x1)

U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x3, x5)

SPLIT_IN_GAA(x1, x2, x3)  =  SPLIT_IN_GAA(x1)

U5_GAA(x1, x2, x3, x4, x5)  =  U5_GAA(x2, x5)

U2_GA(x1, x2, x3, x4, x5, x6)  =  U2_GA(x3, x5, x6)

U3_GA(x1, x2, x3, x4, x5, x6)  =  U3_GA(x3, x5, x6)

U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x3, x5)

MERGE_IN_GGA(x1, x2, x3)  =  MERGE_IN_GGA(x1, x2)

U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x2, x4, x6)

=_IN_AA(x1, x2)  =  =_IN_AA

U7_GGA(x1, x2, x3, x4, x5, x6)  =  U7_GGA(x2, x4, x6)

U3_AG(x1, x2, x3, x4, x5, x6)  =  U3_AG(x3, x4, x5, x6)

U4_AG(x1, x2, x3, x4, x5)  =  U4_AG(x3, x4, x5)

MERGE_IN_GGG(x1, x2, x3)  =  MERGE_IN_GGG(x1, x2, x3)

U6_GGG(x1, x2, x3, x4, x5, x6)  =  U6_GGG(x2, x4, x5, x6)

U7_GGG(x1, x2, x3, x4, x5, x6)  =  U7_GGG(x2, x4, x5, x6)


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

(7) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 5 SCCs with 18 less nodes.
----------------------------------------

(8)
Complex Obligation (AND)

----------------------------------------

(9)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGG(.(X, Xs), Ys, Zs)
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGG(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1, x2)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x1, x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x3, x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x1, x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x2, x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x3, x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x3, x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x3, x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x1, x2, x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x2, x4, x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x4, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg(x1, x2, x3)

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x2, x4, x5, x6)

MERGE_IN_GGG(x1, x2, x3)  =  MERGE_IN_GGG(x1, x2, x3)

U6_GGG(x1, x2, x3, x4, x5, x6)  =  U6_GGG(x2, x4, x5, x6)


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

(10) UsableRulesProof (EQUIVALENT)
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:

   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGG(.(X, Xs), Ys, Zs)
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGG(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))

The TRS R consists of the following rules:

   =_in_aa(X, X) -> =_out_aa(X, X)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x2)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

MERGE_IN_GGG(x1, x2, x3)  =  MERGE_IN_GGG(x1, x2, x3)

U6_GGG(x1, x2, x3, x4, x5, x6)  =  U6_GGG(x2, x4, x5, x6)


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

(12) PiDPToQDPProof (SOUND)
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:

   U6_GGG(Xs, Ys, Zs, =_out_aa) -> MERGE_IN_GGG(.(Xs), Ys, Zs)
   MERGE_IN_GGG(.(Xs), .(Ys), .(Zs)) -> U6_GGG(Xs, Ys, Zs, =_in_aa)

The TRS R consists of the following rules:

   =_in_aa -> =_out_aa

The set Q consists of the following terms:

   =_in_aa

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

(14) QDPSizeChangeProof (EQUIVALENT)
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:
*MERGE_IN_GGG(.(Xs), .(Ys), .(Zs)) -> U6_GGG(Xs, Ys, Zs, =_in_aa)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3


*U6_GGG(Xs, Ys, Zs, =_out_aa) -> MERGE_IN_GGG(.(Xs), Ys, Zs)
The graph contains the following edges 2 >= 2, 3 >= 3


----------------------------------------

(15)
YES

----------------------------------------

(16)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGA(.(X, Xs), Ys, Zs)
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGA(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1, x2)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x1, x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x3, x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x1, x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x2, x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x3, x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x3, x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x3, x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x1, x2, x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x2, x4, x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x4, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg(x1, x2, x3)

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x2, x4, x5, x6)

MERGE_IN_GGA(x1, x2, x3)  =  MERGE_IN_GGA(x1, x2)

U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x2, x4, x6)


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

(17) UsableRulesProof (EQUIVALENT)
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:

   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGA(.(X, Xs), Ys, Zs)
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGA(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))

The TRS R consists of the following rules:

   =_in_aa(X, X) -> =_out_aa(X, X)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x2)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

MERGE_IN_GGA(x1, x2, x3)  =  MERGE_IN_GGA(x1, x2)

U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x2, x4, x6)


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

(19) PiDPToQDPProof (SOUND)
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:

   U6_GGA(Xs, Ys, =_out_aa) -> MERGE_IN_GGA(.(Xs), Ys)
   MERGE_IN_GGA(.(Xs), .(Ys)) -> U6_GGA(Xs, Ys, =_in_aa)

The TRS R consists of the following rules:

   =_in_aa -> =_out_aa

The set Q consists of the following terms:

   =_in_aa

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

(21) QDPSizeChangeProof (EQUIVALENT)
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:
*MERGE_IN_GGA(.(Xs), .(Ys)) -> U6_GGA(Xs, Ys, =_in_aa)
The graph contains the following edges 1 > 1, 2 > 2


*U6_GGA(Xs, Ys, =_out_aa) -> MERGE_IN_GGA(.(Xs), Ys)
The graph contains the following edges 2 >= 2


----------------------------------------

(22)
YES

----------------------------------------

(23)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_GAA(Xs, Zs, Ys)

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1, x2)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x1, x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x3, x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x1, x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x2, x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x3, x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x3, x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x3, x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x1, x2, x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x2, x4, x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x4, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg(x1, x2, x3)

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x2, x4, x5, x6)

SPLIT_IN_GAA(x1, x2, x3)  =  SPLIT_IN_GAA(x1)


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

(24) UsableRulesProof (EQUIVALENT)
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:

   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_GAA(Xs, Zs, Ys)

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

SPLIT_IN_GAA(x1, x2, x3)  =  SPLIT_IN_GAA(x1)


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

(26) PiDPToQDPProof (SOUND)
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:

   SPLIT_IN_GAA(.(Xs)) -> SPLIT_IN_GAA(Xs)

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

(28) QDPSizeChangeProof (EQUIVALENT)
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:
*SPLIT_IN_GAA(.(Xs)) -> SPLIT_IN_GAA(Xs)
The graph contains the following edges 1 > 1


----------------------------------------

(29)
YES

----------------------------------------

(30)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_GA(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> U1_GA(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1, x2)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x1, x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x3, x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x1, x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x2, x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x3, x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x3, x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x3, x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x1, x2, x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x2, x4, x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x4, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg(x1, x2, x3)

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x2, x4, x5, x6)

MERGESORT_IN_GA(x1, x2)  =  MERGESORT_IN_GA(x1)

U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x3, x5)

U2_GA(x1, x2, x3, x4, x5, x6)  =  U2_GA(x3, x5, x6)


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

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

(32)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_GA(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> U1_GA(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)

The TRS R consists of the following rules:

   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))

The argument filtering Pi contains the following mapping:
[]  =  []

.(x1, x2)  =  .(x2)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x1, x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x3, x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x1, x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x2, x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x3, x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x3, x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x3, x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x1, x2, x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x2, x4, x6)

MERGESORT_IN_GA(x1, x2)  =  MERGESORT_IN_GA(x1)

U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x3, x5)

U2_GA(x1, x2, x3, x4, x5, x6)  =  U2_GA(x3, x5, x6)


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

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

(34)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_GA(Xs, X2s, mergesort_in_ga(X1s))
   U2_GA(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, split_in_gaa(.(.(Xs))))
   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s)

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([], [])
   mergesort_in_ga(.([])) -> mergesort_out_ga(.([]), .([]))
   mergesort_in_ga(.(.(Xs))) -> U1_ga(Xs, split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(Xs, split_in_gaa(Xs))
   U1_ga(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_ga(Xs, X2s, mergesort_in_ga(X1s))
   U5_gaa(Xs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(Xs), .(Ys), Zs)
   U2_ga(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(Xs, Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [], [])
   U3_ga(Xs, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(Xs, merge_in_gga(Y1s, Y2s))
   U4_ga(Xs, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(.(Xs)), Ys)
   merge_in_gga([], Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(Xs, Ys, merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(Xs, Ys, merge_out_gga(.(Xs), Ys, Zs)) -> merge_out_gga(.(Xs), .(Ys), .(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0, x1)
   U5_gaa(x0, x1)
   U2_ga(x0, x1, x2)
   U3_ga(x0, x1, x2)
   U4_ga(x0, x1)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0, x1, x2)

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

(35) TransformationProof (EQUIVALENT)
By rewriting [LPAR04] the rule MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, split_in_gaa(.(.(Xs)))) at position [1] we obtained the following new rules [LPAR04]:

   (MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), split_in_gaa(.(Xs)))),MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), split_in_gaa(.(Xs)))))


----------------------------------------

(36)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_GA(Xs, X2s, mergesort_in_ga(X1s))
   U2_GA(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s)
   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), split_in_gaa(.(Xs))))

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([], [])
   mergesort_in_ga(.([])) -> mergesort_out_ga(.([]), .([]))
   mergesort_in_ga(.(.(Xs))) -> U1_ga(Xs, split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(Xs, split_in_gaa(Xs))
   U1_ga(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_ga(Xs, X2s, mergesort_in_ga(X1s))
   U5_gaa(Xs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(Xs), .(Ys), Zs)
   U2_ga(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(Xs, Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [], [])
   U3_ga(Xs, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(Xs, merge_in_gga(Y1s, Y2s))
   U4_ga(Xs, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(.(Xs)), Ys)
   merge_in_gga([], Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(Xs, Ys, merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(Xs, Ys, merge_out_gga(.(Xs), Ys, Zs)) -> merge_out_gga(.(Xs), .(Ys), .(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0, x1)
   U5_gaa(x0, x1)
   U2_ga(x0, x1, x2)
   U3_ga(x0, x1, x2)
   U4_ga(x0, x1)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0, x1, x2)

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

(37) TransformationProof (EQUIVALENT)
By rewriting [LPAR04] the rule MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), split_in_gaa(.(Xs)))) at position [1,1] we obtained the following new rules [LPAR04]:

   (MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), U5_gaa(Xs, split_in_gaa(Xs)))),MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), U5_gaa(Xs, split_in_gaa(Xs)))))


----------------------------------------

(38)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_GA(Xs, X2s, mergesort_in_ga(X1s))
   U2_GA(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s)
   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), U5_gaa(Xs, split_in_gaa(Xs))))

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([], [])
   mergesort_in_ga(.([])) -> mergesort_out_ga(.([]), .([]))
   mergesort_in_ga(.(.(Xs))) -> U1_ga(Xs, split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(Xs, split_in_gaa(Xs))
   U1_ga(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_ga(Xs, X2s, mergesort_in_ga(X1s))
   U5_gaa(Xs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(Xs), .(Ys), Zs)
   U2_ga(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(Xs, Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [], [])
   U3_ga(Xs, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(Xs, merge_in_gga(Y1s, Y2s))
   U4_ga(Xs, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(.(Xs)), Ys)
   merge_in_gga([], Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(Xs, Ys, merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(Xs, Ys, merge_out_gga(.(Xs), Ys, Zs)) -> merge_out_gga(.(Xs), .(Ys), .(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0, x1)
   U5_gaa(x0, x1)
   U2_ga(x0, x1, x2)
   U3_ga(x0, x1, x2)
   U4_ga(x0, x1)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0, x1, x2)

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

(39) QDPQMonotonicMRRProof (EQUIVALENT)
By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.


Strictly oriented rules of the TRS R:

   mergesort_in_ga(.([])) -> mergesort_out_ga(.([]), .([]))

Used ordering: Polynomial interpretation [POLO]:

   POL(.(x_1)) = 2 + x_1
   POL(=_in_aa) = 0
   POL(=_out_aa) = 0
   POL(MERGESORT_IN_GA(x_1)) = 2*x_1
   POL(U1_GA(x_1, x_2)) = 2*x_2
   POL(U1_ga(x_1, x_2)) = 2*x_2
   POL(U2_GA(x_1, x_2, x_3)) = 2*x_2 + x_3
   POL(U2_ga(x_1, x_2, x_3)) = 2*x_2 + x_3
   POL(U3_ga(x_1, x_2, x_3)) = x_3
   POL(U4_ga(x_1, x_2)) = 0
   POL(U5_gaa(x_1, x_2)) = 2 + x_2
   POL(U6_gga(x_1, x_2, x_3)) = 0
   POL(U7_gga(x_1, x_2, x_3)) = 0
   POL([]) = 0
   POL(merge_in_gga(x_1, x_2)) = 0
   POL(merge_out_gga(x_1, x_2, x_3)) = 0
   POL(mergesort_in_ga(x_1)) = 2*x_1
   POL(mergesort_out_ga(x_1, x_2)) = 0
   POL(split_in_gaa(x_1)) = x_1
   POL(split_out_gaa(x_1, x_2, x_3)) = x_2 + x_3


----------------------------------------

(40)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_GA(Xs, X2s, mergesort_in_ga(X1s))
   U2_GA(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s)
   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), U5_gaa(Xs, split_in_gaa(Xs))))

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(.(Xs))) -> U1_ga(Xs, split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(Xs, split_in_gaa(Xs))
   U1_ga(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_ga(Xs, X2s, mergesort_in_ga(X1s))
   U5_gaa(Xs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(Xs), .(Ys), Zs)
   U2_ga(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(Xs, Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [], [])
   U3_ga(Xs, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(Xs, merge_in_gga(Y1s, Y2s))
   U4_ga(Xs, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(.(Xs)), Ys)
   merge_in_gga([], Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(Xs, Ys, merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(Xs, Ys, merge_out_gga(.(Xs), Ys, Zs)) -> merge_out_gga(.(Xs), .(Ys), .(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0, x1)
   U5_gaa(x0, x1)
   U2_ga(x0, x1, x2)
   U3_ga(x0, x1, x2)
   U4_ga(x0, x1)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0, x1, x2)

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

(41) QDPOrderProof (EQUIVALENT)
We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.

   U2_GA(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s)
The remaining pairs can at least be oriented weakly.
Used ordering:  Polynomial Order [NEGPOLO,POLO] with Interpretation:

POL( U2_GA_3(x_1, ..., x_3) ) = x_3
POL( mergesort_in_ga_1(x_1) ) = x_1
POL( [] ) = 1
POL( mergesort_out_ga_2(x_1, x_2) ) = 1
POL( ._1(x_1) ) = 0
POL( U1_ga_2(x_1, x_2) ) = 2x_2
POL( split_in_gaa_1(x_1) ) = max{0, -2}
POL( U1_GA_2(x_1, x_2) ) = 2x_2
POL( U5_gaa_2(x_1, x_2) ) = 0
POL( split_out_gaa_3(x_1, ..., x_3) ) = x_2
POL( U2_ga_3(x_1, ..., x_3) ) = x_3
POL( U3_ga_3(x_1, ..., x_3) ) = 1
POL( U4_ga_2(x_1, x_2) ) = 1
POL( merge_in_gga_2(x_1, x_2) ) = max{0, x_2 - 2}
POL( merge_out_gga_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2}
POL( U6_gga_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 + 2x_3 - 2}
POL( =_in_aa ) = 2
POL( =_out_aa ) = 0
POL( U7_gga_3(x_1, ..., x_3) ) = 2
POL( MERGESORT_IN_GA_1(x_1) ) = 0

The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:

   mergesort_in_ga([]) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(.(Xs))) -> U1_ga(Xs, split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(Xs, split_in_gaa(Xs))
   U5_gaa(Xs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(Xs), .(Ys), Zs)
   U1_ga(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_ga(Xs, X2s, mergesort_in_ga(X1s))
   U2_ga(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(Xs, Y1s, mergesort_in_ga(X2s))
   U3_ga(Xs, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(Xs, merge_in_gga(Y1s, Y2s))
   U4_ga(Xs, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(.(Xs)), Ys)


----------------------------------------

(42)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_GA(Xs, X2s, mergesort_in_ga(X1s))
   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), U5_gaa(Xs, split_in_gaa(Xs))))

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(.(Xs))) -> U1_ga(Xs, split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(Xs, split_in_gaa(Xs))
   U1_ga(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_ga(Xs, X2s, mergesort_in_ga(X1s))
   U5_gaa(Xs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(Xs), .(Ys), Zs)
   U2_ga(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(Xs, Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [], [])
   U3_ga(Xs, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(Xs, merge_in_gga(Y1s, Y2s))
   U4_ga(Xs, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(.(Xs)), Ys)
   merge_in_gga([], Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(Xs, Ys, merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(Xs, Ys, merge_out_gga(.(Xs), Ys, Zs)) -> merge_out_gga(.(Xs), .(Ys), .(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0, x1)
   U5_gaa(x0, x1)
   U2_ga(x0, x1, x2)
   U3_ga(x0, x1, x2)
   U4_ga(x0, x1)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0, x1, x2)

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

(43) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.
----------------------------------------

(44)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), U5_gaa(Xs, split_in_gaa(Xs))))

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(.(Xs))) -> U1_ga(Xs, split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(Xs, split_in_gaa(Xs))
   U1_ga(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> U2_ga(Xs, X2s, mergesort_in_ga(X1s))
   U5_gaa(Xs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(Xs), .(Ys), Zs)
   U2_ga(Xs, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(Xs, Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [], [])
   U3_ga(Xs, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(Xs, merge_in_gga(Y1s, Y2s))
   U4_ga(Xs, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(.(Xs)), Ys)
   merge_in_gga([], Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(Xs, Ys, merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(Xs, Ys, merge_out_gga(.(Xs), Ys, Zs)) -> merge_out_gga(.(Xs), .(Ys), .(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0, x1)
   U5_gaa(x0, x1)
   U2_ga(x0, x1, x2)
   U3_ga(x0, x1, x2)
   U4_ga(x0, x1)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0, x1, x2)

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

(45) UsableRulesProof (EQUIVALENT)
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.
----------------------------------------

(46)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), U5_gaa(Xs, split_in_gaa(Xs))))

The TRS R consists of the following rules:

   split_in_gaa(.(Xs)) -> U5_gaa(Xs, split_in_gaa(Xs))
   split_in_gaa([]) -> split_out_gaa([], [], [])
   U5_gaa(Xs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(Xs), .(Ys), Zs)

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0, x1)
   U5_gaa(x0, x1)
   U2_ga(x0, x1, x2)
   U3_ga(x0, x1, x2)
   U4_ga(x0, x1)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0, x1, x2)

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

(47) QReductionProof (EQUIVALENT)
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

   mergesort_in_ga(x0)
   U1_ga(x0, x1)
   U2_ga(x0, x1, x2)
   U3_ga(x0, x1, x2)
   U4_ga(x0, x1)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0, x1, x2)


----------------------------------------

(48)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), U5_gaa(Xs, split_in_gaa(Xs))))

The TRS R consists of the following rules:

   split_in_gaa(.(Xs)) -> U5_gaa(Xs, split_in_gaa(Xs))
   split_in_gaa([]) -> split_out_gaa([], [], [])
   U5_gaa(Xs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(Xs), .(Ys), Zs)

The set Q consists of the following terms:

   split_in_gaa(x0)
   U5_gaa(x0, x1)

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

(49) QDPOrderProof (EQUIVALENT)
We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.

   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(Xs, U5_gaa(.(Xs), U5_gaa(Xs, split_in_gaa(Xs))))
The remaining pairs can at least be oriented weakly.
Used ordering:  Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

   <<<
 POL(U1_GA(x_1, x_2)) =  	[[-I]] 	 +  	[[-I]] 	* 	x_1 	 +  	[[0A]] 	* 	x_2
>>>

   <<<
 POL(split_out_gaa(x_1, x_2, x_3)) =  	[[-I]] 	 +  	[[-I]] 	* 	x_1 	 +  	[[0A]] 	* 	x_2 	 +  	[[1A]] 	* 	x_3
>>>

   <<<
 POL(.(x_1)) =  	[[-I]] 	 +  	[[2A]] 	* 	x_1
>>>

   <<<
 POL(MERGESORT_IN_GA(x_1)) =  	[[-I]] 	 +  	[[0A]] 	* 	x_1
>>>

   <<<
 POL(U5_gaa(x_1, x_2)) =  	[[-I]] 	 +  	[[0A]] 	* 	x_1 	 +  	[[1A]] 	* 	x_2
>>>

   <<<
 POL(split_in_gaa(x_1)) =  	[[-I]] 	 +  	[[1A]] 	* 	x_1
>>>

   <<<
 POL([]) =  	[[0A]]
>>>


The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:

   split_in_gaa(.(Xs)) -> U5_gaa(Xs, split_in_gaa(Xs))
   split_in_gaa([]) -> split_out_gaa([], [], [])
   U5_gaa(Xs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(Xs), .(Ys), Zs)


----------------------------------------

(50)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(Xs, split_out_gaa(.(.(Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s)

The TRS R consists of the following rules:

   split_in_gaa(.(Xs)) -> U5_gaa(Xs, split_in_gaa(Xs))
   split_in_gaa([]) -> split_out_gaa([], [], [])
   U5_gaa(Xs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(Xs), .(Ys), Zs)

The set Q consists of the following terms:

   split_in_gaa(x0)
   U5_gaa(x0, x1)

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

(51) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.
----------------------------------------

(52)
TRUE

----------------------------------------

(53)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_AAA(Xs, Zs, Ys)

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1, x2)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x1, x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x3, x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x1, x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x2, x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x3, x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x3, x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x3, x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x1, x2, x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x2, x4, x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x4, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg(x1, x2, x3)

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x2, x4, x5, x6)

SPLIT_IN_AAA(x1, x2, x3)  =  SPLIT_IN_AAA


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

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

(55)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_AAA(Xs, Zs, Ys)

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

SPLIT_IN_AAA(x1, x2, x3)  =  SPLIT_IN_AAA


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

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

(57)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   SPLIT_IN_AAA -> SPLIT_IN_AAA

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

(58) PrologToPiTRSProof (SOUND)
We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:

mergesort_in_2: (f,b) (b,f)

split_in_3: (f,f,f) (b,f,f)

merge_in_3: (b,b,f) (b,b,b)

Transforming Prolog into the following Term Rewriting System:

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

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x6)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



----------------------------------------

(59)
Obligation:
Pi-finite rewrite system:
The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x6)



----------------------------------------

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

   MERGESORT_IN_AG(.(X, .(Y, Xs)), Ys) -> U1_AG(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   MERGESORT_IN_AG(.(X, .(Y, Xs)), Ys) -> SPLIT_IN_AAA(.(X, .(Y, Xs)), X1s, X2s)
   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> U5_AAA(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_AAA(Xs, Zs, Ys)
   U1_AG(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_AG(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U1_AG(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> U1_GA(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> SPLIT_IN_GAA(.(X, .(Y, Xs)), X1s, X2s)
   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> U5_GAA(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_GAA(Xs, Zs, Ys)
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_GA(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_GA(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   U3_GA(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_GA(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   U3_GA(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> MERGE_IN_GGA(Y1s, Y2s, Ys)
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGA(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> =_IN_AA(X, Y)
   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_GGA(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGA(.(X, Xs), Ys, Zs)
   U2_AG(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_AG(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U2_AG(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   U3_AG(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_AG(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   U3_AG(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> MERGE_IN_GGG(Y1s, Y2s, Ys)
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGG(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> =_IN_AA(X, Y)
   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_GGG(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGG(.(X, Xs), Ys, Zs)

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x6)

MERGESORT_IN_AG(x1, x2)  =  MERGESORT_IN_AG(x2)

U1_AG(x1, x2, x3, x4, x5)  =  U1_AG(x4, x5)

SPLIT_IN_AAA(x1, x2, x3)  =  SPLIT_IN_AAA

U5_AAA(x1, x2, x3, x4, x5)  =  U5_AAA(x5)

U2_AG(x1, x2, x3, x4, x5, x6)  =  U2_AG(x3, x4, x5, x6)

MERGESORT_IN_GA(x1, x2)  =  MERGESORT_IN_GA(x1)

U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x5)

SPLIT_IN_GAA(x1, x2, x3)  =  SPLIT_IN_GAA(x1)

U5_GAA(x1, x2, x3, x4, x5)  =  U5_GAA(x5)

U2_GA(x1, x2, x3, x4, x5, x6)  =  U2_GA(x5, x6)

U3_GA(x1, x2, x3, x4, x5, x6)  =  U3_GA(x5, x6)

U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x5)

MERGE_IN_GGA(x1, x2, x3)  =  MERGE_IN_GGA(x1, x2)

U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x2, x4, x6)

=_IN_AA(x1, x2)  =  =_IN_AA

U7_GGA(x1, x2, x3, x4, x5, x6)  =  U7_GGA(x6)

U3_AG(x1, x2, x3, x4, x5, x6)  =  U3_AG(x3, x4, x5, x6)

U4_AG(x1, x2, x3, x4, x5)  =  U4_AG(x3, x5)

MERGE_IN_GGG(x1, x2, x3)  =  MERGE_IN_GGG(x1, x2, x3)

U6_GGG(x1, x2, x3, x4, x5, x6)  =  U6_GGG(x2, x4, x5, x6)

U7_GGG(x1, x2, x3, x4, x5, x6)  =  U7_GGG(x6)


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

(61)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MERGESORT_IN_AG(.(X, .(Y, Xs)), Ys) -> U1_AG(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   MERGESORT_IN_AG(.(X, .(Y, Xs)), Ys) -> SPLIT_IN_AAA(.(X, .(Y, Xs)), X1s, X2s)
   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> U5_AAA(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_AAA(Xs, Zs, Ys)
   U1_AG(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_AG(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U1_AG(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> U1_GA(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> SPLIT_IN_GAA(.(X, .(Y, Xs)), X1s, X2s)
   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> U5_GAA(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_GAA(Xs, Zs, Ys)
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_GA(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_GA(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   U3_GA(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_GA(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   U3_GA(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> MERGE_IN_GGA(Y1s, Y2s, Ys)
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGA(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> =_IN_AA(X, Y)
   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_GGA(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGA(.(X, Xs), Ys, Zs)
   U2_AG(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_AG(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U2_AG(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   U3_AG(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_AG(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   U3_AG(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> MERGE_IN_GGG(Y1s, Y2s, Ys)
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGG(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> =_IN_AA(X, Y)
   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_GGG(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGG(.(X, Xs), Ys, Zs)

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x6)

MERGESORT_IN_AG(x1, x2)  =  MERGESORT_IN_AG(x2)

U1_AG(x1, x2, x3, x4, x5)  =  U1_AG(x4, x5)

SPLIT_IN_AAA(x1, x2, x3)  =  SPLIT_IN_AAA

U5_AAA(x1, x2, x3, x4, x5)  =  U5_AAA(x5)

U2_AG(x1, x2, x3, x4, x5, x6)  =  U2_AG(x3, x4, x5, x6)

MERGESORT_IN_GA(x1, x2)  =  MERGESORT_IN_GA(x1)

U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x5)

SPLIT_IN_GAA(x1, x2, x3)  =  SPLIT_IN_GAA(x1)

U5_GAA(x1, x2, x3, x4, x5)  =  U5_GAA(x5)

U2_GA(x1, x2, x3, x4, x5, x6)  =  U2_GA(x5, x6)

U3_GA(x1, x2, x3, x4, x5, x6)  =  U3_GA(x5, x6)

U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x5)

MERGE_IN_GGA(x1, x2, x3)  =  MERGE_IN_GGA(x1, x2)

U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x2, x4, x6)

=_IN_AA(x1, x2)  =  =_IN_AA

U7_GGA(x1, x2, x3, x4, x5, x6)  =  U7_GGA(x6)

U3_AG(x1, x2, x3, x4, x5, x6)  =  U3_AG(x3, x4, x5, x6)

U4_AG(x1, x2, x3, x4, x5)  =  U4_AG(x3, x5)

MERGE_IN_GGG(x1, x2, x3)  =  MERGE_IN_GGG(x1, x2, x3)

U6_GGG(x1, x2, x3, x4, x5, x6)  =  U6_GGG(x2, x4, x5, x6)

U7_GGG(x1, x2, x3, x4, x5, x6)  =  U7_GGG(x6)


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

(62) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 5 SCCs with 18 less nodes.
----------------------------------------

(63)
Complex Obligation (AND)

----------------------------------------

(64)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGG(.(X, Xs), Ys, Zs)
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGG(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x6)

MERGE_IN_GGG(x1, x2, x3)  =  MERGE_IN_GGG(x1, x2, x3)

U6_GGG(x1, x2, x3, x4, x5, x6)  =  U6_GGG(x2, x4, x5, x6)


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

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

(66)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U6_GGG(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGG(.(X, Xs), Ys, Zs)
   MERGE_IN_GGG(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGG(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))

The TRS R consists of the following rules:

   =_in_aa(X, X) -> =_out_aa(X, X)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x2)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

MERGE_IN_GGG(x1, x2, x3)  =  MERGE_IN_GGG(x1, x2, x3)

U6_GGG(x1, x2, x3, x4, x5, x6)  =  U6_GGG(x2, x4, x5, x6)


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

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

(68)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U6_GGG(Xs, Ys, Zs, =_out_aa) -> MERGE_IN_GGG(.(Xs), Ys, Zs)
   MERGE_IN_GGG(.(Xs), .(Ys), .(Zs)) -> U6_GGG(Xs, Ys, Zs, =_in_aa)

The TRS R consists of the following rules:

   =_in_aa -> =_out_aa

The set Q consists of the following terms:

   =_in_aa

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

(69) QDPSizeChangeProof (EQUIVALENT)
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:
*MERGE_IN_GGG(.(Xs), .(Ys), .(Zs)) -> U6_GGG(Xs, Ys, Zs, =_in_aa)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3


*U6_GGG(Xs, Ys, Zs, =_out_aa) -> MERGE_IN_GGG(.(Xs), Ys, Zs)
The graph contains the following edges 2 >= 2, 3 >= 3


----------------------------------------

(70)
YES

----------------------------------------

(71)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGA(.(X, Xs), Ys, Zs)
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGA(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x6)

MERGE_IN_GGA(x1, x2, x3)  =  MERGE_IN_GGA(x1, x2)

U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x2, x4, x6)


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

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

(73)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U6_GGA(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> MERGE_IN_GGA(.(X, Xs), Ys, Zs)
   MERGE_IN_GGA(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_GGA(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))

The TRS R consists of the following rules:

   =_in_aa(X, X) -> =_out_aa(X, X)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x2)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

MERGE_IN_GGA(x1, x2, x3)  =  MERGE_IN_GGA(x1, x2)

U6_GGA(x1, x2, x3, x4, x5, x6)  =  U6_GGA(x2, x4, x6)


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

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

(75)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U6_GGA(Xs, Ys, =_out_aa) -> MERGE_IN_GGA(.(Xs), Ys)
   MERGE_IN_GGA(.(Xs), .(Ys)) -> U6_GGA(Xs, Ys, =_in_aa)

The TRS R consists of the following rules:

   =_in_aa -> =_out_aa

The set Q consists of the following terms:

   =_in_aa

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

(76) QDPSizeChangeProof (EQUIVALENT)
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:
*MERGE_IN_GGA(.(Xs), .(Ys)) -> U6_GGA(Xs, Ys, =_in_aa)
The graph contains the following edges 1 > 1, 2 > 2


*U6_GGA(Xs, Ys, =_out_aa) -> MERGE_IN_GGA(.(Xs), Ys)
The graph contains the following edges 2 >= 2


----------------------------------------

(77)
YES

----------------------------------------

(78)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_GAA(Xs, Zs, Ys)

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x6)

SPLIT_IN_GAA(x1, x2, x3)  =  SPLIT_IN_GAA(x1)


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

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

(80)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SPLIT_IN_GAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_GAA(Xs, Zs, Ys)

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

SPLIT_IN_GAA(x1, x2, x3)  =  SPLIT_IN_GAA(x1)


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

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

(82)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   SPLIT_IN_GAA(.(Xs)) -> SPLIT_IN_GAA(Xs)

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

(83) QDPSizeChangeProof (EQUIVALENT)
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:
*SPLIT_IN_GAA(.(Xs)) -> SPLIT_IN_GAA(Xs)
The graph contains the following edges 1 > 1


----------------------------------------

(84)
YES

----------------------------------------

(85)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_GA(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> U1_GA(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x6)

MERGESORT_IN_GA(x1, x2)  =  MERGESORT_IN_GA(x1)

U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x5)

U2_GA(x1, x2, x3, x4, x5, x6)  =  U2_GA(x5, x6)


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

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

(87)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_GA(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_GA(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> MERGESORT_IN_GA(X2s, Y2s)
   MERGESORT_IN_GA(.(X, .(Y, Xs)), Ys) -> U1_GA(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   U1_GA(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> MERGESORT_IN_GA(X1s, Y1s)

The TRS R consists of the following rules:

   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))

The argument filtering Pi contains the following mapping:
[]  =  []

.(x1, x2)  =  .(x2)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x6)

MERGESORT_IN_GA(x1, x2)  =  MERGESORT_IN_GA(x1)

U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x5)

U2_GA(x1, x2, x3, x4, x5, x6)  =  U2_GA(x5, x6)


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

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

(89)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(split_out_gaa(X1s, X2s)) -> U2_GA(X2s, mergesort_in_ga(X1s))
   U2_GA(X2s, mergesort_out_ga(Y1s)) -> MERGESORT_IN_GA(X2s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(split_in_gaa(.(.(Xs))))
   U1_GA(split_out_gaa(X1s, X2s)) -> MERGESORT_IN_GA(X1s)

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([])
   mergesort_in_ga(.([])) -> mergesort_out_ga(.([]))
   mergesort_in_ga(.(.(Xs))) -> U1_ga(split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(split_in_gaa(Xs))
   U1_ga(split_out_gaa(X1s, X2s)) -> U2_ga(X2s, mergesort_in_ga(X1s))
   U5_gaa(split_out_gaa(Zs, Ys)) -> split_out_gaa(.(Ys), Zs)
   U2_ga(X2s, mergesort_out_ga(Y1s)) -> U3_ga(Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [])
   U3_ga(Y1s, mergesort_out_ga(Y2s)) -> U4_ga(merge_in_gga(Y1s, Y2s))
   U4_ga(merge_out_gga(Ys)) -> mergesort_out_ga(Ys)
   merge_in_gga([], Xs) -> merge_out_gga(Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(merge_out_gga(Zs)) -> merge_out_gga(.(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0)
   U5_gaa(x0)
   U2_ga(x0, x1)
   U3_ga(x0, x1)
   U4_ga(x0)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0)

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

(90) MRRProof (EQUIVALENT)
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:

   mergesort_in_ga(.([])) -> mergesort_out_ga(.([]))

Used ordering: Polynomial interpretation [POLO]:

   POL(.(x_1)) = 2 + x_1
   POL(=_in_aa) = 1
   POL(=_out_aa) = 1
   POL(MERGESORT_IN_GA(x_1)) = 2*x_1
   POL(U1_GA(x_1)) = 2*x_1
   POL(U1_ga(x_1)) = 2*x_1
   POL(U2_GA(x_1, x_2)) = 2*x_1 + x_2
   POL(U2_ga(x_1, x_2)) = 2*x_1 + x_2
   POL(U3_ga(x_1, x_2)) = x_1 + x_2
   POL(U4_ga(x_1)) = x_1
   POL(U5_gaa(x_1)) = 2 + x_1
   POL(U6_gga(x_1, x_2, x_3)) = 2 + x_1 + x_2 + 2*x_3
   POL(U7_gga(x_1)) = 2 + x_1
   POL([]) = 0
   POL(merge_in_gga(x_1, x_2)) = x_1 + x_2
   POL(merge_out_gga(x_1)) = x_1
   POL(mergesort_in_ga(x_1)) = 2*x_1
   POL(mergesort_out_ga(x_1)) = x_1
   POL(split_in_gaa(x_1)) = x_1
   POL(split_out_gaa(x_1, x_2)) = x_1 + x_2


----------------------------------------

(91)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(split_out_gaa(X1s, X2s)) -> U2_GA(X2s, mergesort_in_ga(X1s))
   U2_GA(X2s, mergesort_out_ga(Y1s)) -> MERGESORT_IN_GA(X2s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(split_in_gaa(.(.(Xs))))
   U1_GA(split_out_gaa(X1s, X2s)) -> MERGESORT_IN_GA(X1s)

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([])
   mergesort_in_ga(.(.(Xs))) -> U1_ga(split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(split_in_gaa(Xs))
   U1_ga(split_out_gaa(X1s, X2s)) -> U2_ga(X2s, mergesort_in_ga(X1s))
   U5_gaa(split_out_gaa(Zs, Ys)) -> split_out_gaa(.(Ys), Zs)
   U2_ga(X2s, mergesort_out_ga(Y1s)) -> U3_ga(Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [])
   U3_ga(Y1s, mergesort_out_ga(Y2s)) -> U4_ga(merge_in_gga(Y1s, Y2s))
   U4_ga(merge_out_gga(Ys)) -> mergesort_out_ga(Ys)
   merge_in_gga([], Xs) -> merge_out_gga(Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(merge_out_gga(Zs)) -> merge_out_gga(.(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0)
   U5_gaa(x0)
   U2_ga(x0, x1)
   U3_ga(x0, x1)
   U4_ga(x0)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0)

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

(92) TransformationProof (EQUIVALENT)
By rewriting [LPAR04] the rule MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(split_in_gaa(.(.(Xs)))) at position [0] we obtained the following new rules [LPAR04]:

   (MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(split_in_gaa(.(Xs)))),MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(split_in_gaa(.(Xs)))))


----------------------------------------

(93)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(split_out_gaa(X1s, X2s)) -> U2_GA(X2s, mergesort_in_ga(X1s))
   U2_GA(X2s, mergesort_out_ga(Y1s)) -> MERGESORT_IN_GA(X2s)
   U1_GA(split_out_gaa(X1s, X2s)) -> MERGESORT_IN_GA(X1s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(split_in_gaa(.(Xs))))

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([])
   mergesort_in_ga(.(.(Xs))) -> U1_ga(split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(split_in_gaa(Xs))
   U1_ga(split_out_gaa(X1s, X2s)) -> U2_ga(X2s, mergesort_in_ga(X1s))
   U5_gaa(split_out_gaa(Zs, Ys)) -> split_out_gaa(.(Ys), Zs)
   U2_ga(X2s, mergesort_out_ga(Y1s)) -> U3_ga(Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [])
   U3_ga(Y1s, mergesort_out_ga(Y2s)) -> U4_ga(merge_in_gga(Y1s, Y2s))
   U4_ga(merge_out_gga(Ys)) -> mergesort_out_ga(Ys)
   merge_in_gga([], Xs) -> merge_out_gga(Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(merge_out_gga(Zs)) -> merge_out_gga(.(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0)
   U5_gaa(x0)
   U2_ga(x0, x1)
   U3_ga(x0, x1)
   U4_ga(x0)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0)

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

(94) TransformationProof (EQUIVALENT)
By rewriting [LPAR04] the rule MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(split_in_gaa(.(Xs)))) at position [0,0] we obtained the following new rules [LPAR04]:

   (MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(U5_gaa(split_in_gaa(Xs)))),MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(U5_gaa(split_in_gaa(Xs)))))


----------------------------------------

(95)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(split_out_gaa(X1s, X2s)) -> U2_GA(X2s, mergesort_in_ga(X1s))
   U2_GA(X2s, mergesort_out_ga(Y1s)) -> MERGESORT_IN_GA(X2s)
   U1_GA(split_out_gaa(X1s, X2s)) -> MERGESORT_IN_GA(X1s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(U5_gaa(split_in_gaa(Xs))))

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([])
   mergesort_in_ga(.(.(Xs))) -> U1_ga(split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(split_in_gaa(Xs))
   U1_ga(split_out_gaa(X1s, X2s)) -> U2_ga(X2s, mergesort_in_ga(X1s))
   U5_gaa(split_out_gaa(Zs, Ys)) -> split_out_gaa(.(Ys), Zs)
   U2_ga(X2s, mergesort_out_ga(Y1s)) -> U3_ga(Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [])
   U3_ga(Y1s, mergesort_out_ga(Y2s)) -> U4_ga(merge_in_gga(Y1s, Y2s))
   U4_ga(merge_out_gga(Ys)) -> mergesort_out_ga(Ys)
   merge_in_gga([], Xs) -> merge_out_gga(Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(merge_out_gga(Zs)) -> merge_out_gga(.(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0)
   U5_gaa(x0)
   U2_ga(x0, x1)
   U3_ga(x0, x1)
   U4_ga(x0)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0)

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

(96) QDPOrderProof (EQUIVALENT)
We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.

   U1_GA(split_out_gaa(X1s, X2s)) -> U2_GA(X2s, mergesort_in_ga(X1s))
The remaining pairs can at least be oriented weakly.
Used ordering:  Polynomial Order [NEGPOLO,POLO] with Interpretation:

POL( U2_GA_2(x_1, x_2) ) = max{0, 2x_2 - 1}
POL( mergesort_in_ga_1(x_1) ) = x_1
POL( [] ) = 2
POL( mergesort_out_ga_1(x_1) ) = 1
POL( ._1(x_1) ) = 0
POL( U1_ga_1(x_1) ) = x_1
POL( split_in_gaa_1(x_1) ) = max{0, -2}
POL( U1_GA_1(x_1) ) = x_1 + 1
POL( U5_gaa_1(x_1) ) = max{0, -2}
POL( split_out_gaa_2(x_1, x_2) ) = 2x_1
POL( U2_ga_2(x_1, x_2) ) = 2x_2
POL( U3_ga_2(x_1, x_2) ) = 2
POL( U4_ga_1(x_1) ) = 1
POL( merge_in_gga_2(x_1, x_2) ) = max{0, -2}
POL( merge_out_gga_1(x_1) ) = max{0, -2}
POL( U6_gga_3(x_1, ..., x_3) ) = max{0, -2}
POL( =_in_aa ) = 0
POL( =_out_aa ) = 0
POL( U7_gga_1(x_1) ) = 2
POL( MERGESORT_IN_GA_1(x_1) ) = 1

The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:

   mergesort_in_ga([]) -> mergesort_out_ga([])
   mergesort_in_ga(.(.(Xs))) -> U1_ga(split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(split_in_gaa(Xs))
   U5_gaa(split_out_gaa(Zs, Ys)) -> split_out_gaa(.(Ys), Zs)
   U1_ga(split_out_gaa(X1s, X2s)) -> U2_ga(X2s, mergesort_in_ga(X1s))
   U2_ga(X2s, mergesort_out_ga(Y1s)) -> U3_ga(Y1s, mergesort_in_ga(X2s))
   U3_ga(Y1s, mergesort_out_ga(Y2s)) -> U4_ga(merge_in_gga(Y1s, Y2s))
   U4_ga(merge_out_gga(Ys)) -> mergesort_out_ga(Ys)


----------------------------------------

(97)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U2_GA(X2s, mergesort_out_ga(Y1s)) -> MERGESORT_IN_GA(X2s)
   U1_GA(split_out_gaa(X1s, X2s)) -> MERGESORT_IN_GA(X1s)
   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(U5_gaa(split_in_gaa(Xs))))

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([])
   mergesort_in_ga(.(.(Xs))) -> U1_ga(split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(split_in_gaa(Xs))
   U1_ga(split_out_gaa(X1s, X2s)) -> U2_ga(X2s, mergesort_in_ga(X1s))
   U5_gaa(split_out_gaa(Zs, Ys)) -> split_out_gaa(.(Ys), Zs)
   U2_ga(X2s, mergesort_out_ga(Y1s)) -> U3_ga(Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [])
   U3_ga(Y1s, mergesort_out_ga(Y2s)) -> U4_ga(merge_in_gga(Y1s, Y2s))
   U4_ga(merge_out_gga(Ys)) -> mergesort_out_ga(Ys)
   merge_in_gga([], Xs) -> merge_out_gga(Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(merge_out_gga(Zs)) -> merge_out_gga(.(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0)
   U5_gaa(x0)
   U2_ga(x0, x1)
   U3_ga(x0, x1)
   U4_ga(x0)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0)

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

(98) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.
----------------------------------------

(99)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(U5_gaa(split_in_gaa(Xs))))
   U1_GA(split_out_gaa(X1s, X2s)) -> MERGESORT_IN_GA(X1s)

The TRS R consists of the following rules:

   mergesort_in_ga([]) -> mergesort_out_ga([])
   mergesort_in_ga(.(.(Xs))) -> U1_ga(split_in_gaa(.(.(Xs))))
   split_in_gaa(.(Xs)) -> U5_gaa(split_in_gaa(Xs))
   U1_ga(split_out_gaa(X1s, X2s)) -> U2_ga(X2s, mergesort_in_ga(X1s))
   U5_gaa(split_out_gaa(Zs, Ys)) -> split_out_gaa(.(Ys), Zs)
   U2_ga(X2s, mergesort_out_ga(Y1s)) -> U3_ga(Y1s, mergesort_in_ga(X2s))
   split_in_gaa([]) -> split_out_gaa([], [])
   U3_ga(Y1s, mergesort_out_ga(Y2s)) -> U4_ga(merge_in_gga(Y1s, Y2s))
   U4_ga(merge_out_gga(Ys)) -> mergesort_out_ga(Ys)
   merge_in_gga([], Xs) -> merge_out_gga(Xs)
   merge_in_gga(Xs, []) -> merge_out_gga(Xs)
   merge_in_gga(.(Xs), .(Ys)) -> U6_gga(Xs, Ys, =_in_aa)
   U6_gga(Xs, Ys, =_out_aa) -> U7_gga(merge_in_gga(.(Xs), Ys))
   =_in_aa -> =_out_aa
   U7_gga(merge_out_gga(Zs)) -> merge_out_gga(.(Zs))

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0)
   U5_gaa(x0)
   U2_ga(x0, x1)
   U3_ga(x0, x1)
   U4_ga(x0)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0)

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

(100) UsableRulesProof (EQUIVALENT)
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.
----------------------------------------

(101)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(U5_gaa(split_in_gaa(Xs))))
   U1_GA(split_out_gaa(X1s, X2s)) -> MERGESORT_IN_GA(X1s)

The TRS R consists of the following rules:

   split_in_gaa(.(Xs)) -> U5_gaa(split_in_gaa(Xs))
   split_in_gaa([]) -> split_out_gaa([], [])
   U5_gaa(split_out_gaa(Zs, Ys)) -> split_out_gaa(.(Ys), Zs)

The set Q consists of the following terms:

   mergesort_in_ga(x0)
   split_in_gaa(x0)
   U1_ga(x0)
   U5_gaa(x0)
   U2_ga(x0, x1)
   U3_ga(x0, x1)
   U4_ga(x0)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0)

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

(102) QReductionProof (EQUIVALENT)
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

   mergesort_in_ga(x0)
   U1_ga(x0)
   U2_ga(x0, x1)
   U3_ga(x0, x1)
   U4_ga(x0)
   merge_in_gga(x0, x1)
   U6_gga(x0, x1, x2)
   =_in_aa
   U7_gga(x0)


----------------------------------------

(103)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(U5_gaa(split_in_gaa(Xs))))
   U1_GA(split_out_gaa(X1s, X2s)) -> MERGESORT_IN_GA(X1s)

The TRS R consists of the following rules:

   split_in_gaa(.(Xs)) -> U5_gaa(split_in_gaa(Xs))
   split_in_gaa([]) -> split_out_gaa([], [])
   U5_gaa(split_out_gaa(Zs, Ys)) -> split_out_gaa(.(Ys), Zs)

The set Q consists of the following terms:

   split_in_gaa(x0)
   U5_gaa(x0)

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

(104) QDPOrderProof (EQUIVALENT)
We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.

   MERGESORT_IN_GA(.(.(Xs))) -> U1_GA(U5_gaa(U5_gaa(split_in_gaa(Xs))))
The remaining pairs can at least be oriented weakly.
Used ordering:  Polynomial interpretation [POLO,RATPOLO]:

   POL(.(x_1)) = [4]x_1
   POL(MERGESORT_IN_GA(x_1)) = [1] + [1/4]x_1
   POL(U1_GA(x_1)) = x_1
   POL(U5_gaa(x_1)) = [2]x_1
   POL([]) = [4]
   POL(split_in_gaa(x_1)) = x_1
   POL(split_out_gaa(x_1, x_2)) = [1] + [1/4]x_1 + [1/2]x_2
The value of delta used in the strict ordering is 1.
The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:

   split_in_gaa(.(Xs)) -> U5_gaa(split_in_gaa(Xs))
   split_in_gaa([]) -> split_out_gaa([], [])
   U5_gaa(split_out_gaa(Zs, Ys)) -> split_out_gaa(.(Ys), Zs)


----------------------------------------

(105)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_GA(split_out_gaa(X1s, X2s)) -> MERGESORT_IN_GA(X1s)

The TRS R consists of the following rules:

   split_in_gaa(.(Xs)) -> U5_gaa(split_in_gaa(Xs))
   split_in_gaa([]) -> split_out_gaa([], [])
   U5_gaa(split_out_gaa(Zs, Ys)) -> split_out_gaa(.(Ys), Zs)

The set Q consists of the following terms:

   split_in_gaa(x0)
   U5_gaa(x0)

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

(106) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.
----------------------------------------

(107)
TRUE

----------------------------------------

(108)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_AAA(Xs, Zs, Ys)

The TRS R consists of the following rules:

   mergesort_in_ag([], []) -> mergesort_out_ag([], [])
   mergesort_in_ag(.(X, []), .(X, [])) -> mergesort_out_ag(.(X, []), .(X, []))
   mergesort_in_ag(.(X, .(Y, Xs)), Ys) -> U1_ag(X, Y, Xs, Ys, split_in_aaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_aaa([], [], []) -> split_out_aaa([], [], [])
   split_in_aaa(.(X, Xs), .(X, Ys), Zs) -> U5_aaa(X, Xs, Ys, Zs, split_in_aaa(Xs, Zs, Ys))
   U5_aaa(X, Xs, Ys, Zs, split_out_aaa(Xs, Zs, Ys)) -> split_out_aaa(.(X, Xs), .(X, Ys), Zs)
   U1_ag(X, Y, Xs, Ys, split_out_aaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ag(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   mergesort_in_ga([], []) -> mergesort_out_ga([], [])
   mergesort_in_ga(.(X, []), .(X, [])) -> mergesort_out_ga(.(X, []), .(X, []))
   mergesort_in_ga(.(X, .(Y, Xs)), Ys) -> U1_ga(X, Y, Xs, Ys, split_in_gaa(.(X, .(Y, Xs)), X1s, X2s))
   split_in_gaa([], [], []) -> split_out_gaa([], [], [])
   split_in_gaa(.(X, Xs), .(X, Ys), Zs) -> U5_gaa(X, Xs, Ys, Zs, split_in_gaa(Xs, Zs, Ys))
   U5_gaa(X, Xs, Ys, Zs, split_out_gaa(Xs, Zs, Ys)) -> split_out_gaa(.(X, Xs), .(X, Ys), Zs)
   U1_ga(X, Y, Xs, Ys, split_out_gaa(.(X, .(Y, Xs)), X1s, X2s)) -> U2_ga(X, Y, Xs, Ys, X2s, mergesort_in_ga(X1s, Y1s))
   U2_ga(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ga(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ga(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ga(X, Y, Xs, Ys, merge_in_gga(Y1s, Y2s, Ys))
   merge_in_gga([], Xs, Xs) -> merge_out_gga([], Xs, Xs)
   merge_in_gga(Xs, [], Xs) -> merge_out_gga(Xs, [], Xs)
   merge_in_gga(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_gga(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   =_in_aa(X, X) -> =_out_aa(X, X)
   U6_gga(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_gga(X, Xs, Y, Ys, Zs, merge_in_gga(.(X, Xs), Ys, Zs))
   U7_gga(X, Xs, Y, Ys, Zs, merge_out_gga(.(X, Xs), Ys, Zs)) -> merge_out_gga(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ga(X, Y, Xs, Ys, merge_out_gga(Y1s, Y2s, Ys)) -> mergesort_out_ga(.(X, .(Y, Xs)), Ys)
   U2_ag(X, Y, Xs, Ys, X2s, mergesort_out_ga(X1s, Y1s)) -> U3_ag(X, Y, Xs, Ys, Y1s, mergesort_in_ga(X2s, Y2s))
   U3_ag(X, Y, Xs, Ys, Y1s, mergesort_out_ga(X2s, Y2s)) -> U4_ag(X, Y, Xs, Ys, merge_in_ggg(Y1s, Y2s, Ys))
   merge_in_ggg([], Xs, Xs) -> merge_out_ggg([], Xs, Xs)
   merge_in_ggg(Xs, [], Xs) -> merge_out_ggg(Xs, [], Xs)
   merge_in_ggg(.(X, Xs), .(Y, Ys), .(X, Zs)) -> U6_ggg(X, Xs, Y, Ys, Zs, =_in_aa(X, Y))
   U6_ggg(X, Xs, Y, Ys, Zs, =_out_aa(X, Y)) -> U7_ggg(X, Xs, Y, Ys, Zs, merge_in_ggg(.(X, Xs), Ys, Zs))
   U7_ggg(X, Xs, Y, Ys, Zs, merge_out_ggg(.(X, Xs), Ys, Zs)) -> merge_out_ggg(.(X, Xs), .(Y, Ys), .(X, Zs))
   U4_ag(X, Y, Xs, Ys, merge_out_ggg(Y1s, Y2s, Ys)) -> mergesort_out_ag(.(X, .(Y, Xs)), Ys)

The argument filtering Pi contains the following mapping:
mergesort_in_ag(x1, x2)  =  mergesort_in_ag(x2)

[]  =  []

mergesort_out_ag(x1, x2)  =  mergesort_out_ag(x1)

.(x1, x2)  =  .(x2)

U1_ag(x1, x2, x3, x4, x5)  =  U1_ag(x4, x5)

split_in_aaa(x1, x2, x3)  =  split_in_aaa

split_out_aaa(x1, x2, x3)  =  split_out_aaa(x1, x2, x3)

U5_aaa(x1, x2, x3, x4, x5)  =  U5_aaa(x5)

U2_ag(x1, x2, x3, x4, x5, x6)  =  U2_ag(x3, x4, x5, x6)

mergesort_in_ga(x1, x2)  =  mergesort_in_ga(x1)

mergesort_out_ga(x1, x2)  =  mergesort_out_ga(x2)

U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x5)

split_in_gaa(x1, x2, x3)  =  split_in_gaa(x1)

split_out_gaa(x1, x2, x3)  =  split_out_gaa(x2, x3)

U5_gaa(x1, x2, x3, x4, x5)  =  U5_gaa(x5)

U2_ga(x1, x2, x3, x4, x5, x6)  =  U2_ga(x5, x6)

U3_ga(x1, x2, x3, x4, x5, x6)  =  U3_ga(x5, x6)

U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)

merge_in_gga(x1, x2, x3)  =  merge_in_gga(x1, x2)

merge_out_gga(x1, x2, x3)  =  merge_out_gga(x3)

U6_gga(x1, x2, x3, x4, x5, x6)  =  U6_gga(x2, x4, x6)

=_in_aa(x1, x2)  =  =_in_aa

=_out_aa(x1, x2)  =  =_out_aa

U7_gga(x1, x2, x3, x4, x5, x6)  =  U7_gga(x6)

U3_ag(x1, x2, x3, x4, x5, x6)  =  U3_ag(x3, x4, x5, x6)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x3, x5)

merge_in_ggg(x1, x2, x3)  =  merge_in_ggg(x1, x2, x3)

merge_out_ggg(x1, x2, x3)  =  merge_out_ggg

U6_ggg(x1, x2, x3, x4, x5, x6)  =  U6_ggg(x2, x4, x5, x6)

U7_ggg(x1, x2, x3, x4, x5, x6)  =  U7_ggg(x6)

SPLIT_IN_AAA(x1, x2, x3)  =  SPLIT_IN_AAA


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

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

(110)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SPLIT_IN_AAA(.(X, Xs), .(X, Ys), Zs) -> SPLIT_IN_AAA(Xs, Zs, Ys)

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

SPLIT_IN_AAA(x1, x2, x3)  =  SPLIT_IN_AAA


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

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

(112)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   SPLIT_IN_AAA -> SPLIT_IN_AAA

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

(113) PrologToTRSTransformerProof (SOUND)
Transformed Prolog program to TRS.

{
    "root": 1,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(mergesort ([]) ([]))",
                null
            ],
            [
                "(mergesort (. X ([])) (. X ([])))",
                null
            ],
            [
                "(mergesort (. X (. Y Xs)) Ys)",
                "(',' (split (. X (. Y Xs)) X1s X2s) (',' (mergesort X1s Y1s) (',' (mergesort X2s Y2s) (merge Y1s Y2s Ys))))"
            ],
            [
                "(split ([]) ([]) ([]))",
                null
            ],
            [
                "(split (. X Xs) (. X Ys) Zs)",
                "(split Xs Zs Ys)"
            ],
            [
                "(merge ([]) Xs Xs)",
                null
            ],
            [
                "(merge Xs ([]) Xs)",
                null
            ],
            [
                "(merge (. X Xs) (. Y Ys) (. X Zs))",
                "(',' (= X Y) (merge (. X Xs) Ys Zs))"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "type": "Nodes",
            "596": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (= T102 T103) (merge (. T102 T105) T104 X137))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X137"],
                    "exprvars": []
                }
            },
            "510": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T69 (. T70 T71)) X103 X104) (',' (mergesort X103 X105) (',' (mergesort X104 X106) (merge X105 X106 X107))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X107",
                        "X103",
                        "X104",
                        "X105",
                        "X106"
                    ],
                    "exprvars": []
                }
            },
            "598": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "511": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "599": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge (. T109 T110) T108 X137)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X137"],
                    "exprvars": []
                }
            },
            "512": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split (. T69 (. T70 T71)) X103 X104)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X103",
                        "X104"
                    ],
                    "exprvars": []
                }
            },
            "359": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split (. T20 (. T21 T22)) X22 X23)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X22",
                        "X23"
                    ],
                    "exprvars": []
                }
            },
            "513": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T72 X105) (',' (mergesort T73 X106) (merge X105 X106 X107)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X107",
                        "X105",
                        "X106"
                    ],
                    "exprvars": []
                }
            },
            "636": {
                "goal": [{
                    "clause": 5,
                    "scope": 7,
                    "term": "(merge T112 T111 T19)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "439": {
                "goal": [{
                    "clause": 4,
                    "scope": 2,
                    "term": "(split (. T20 (. T21 T22)) X22 X23)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X22",
                        "X23"
                    ],
                    "exprvars": []
                }
            },
            "516": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T72 X105)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X105"],
                    "exprvars": []
                }
            },
            "637": {
                "goal": [
                    {
                        "clause": 6,
                        "scope": 7,
                        "term": "(merge T112 T111 T19)"
                    },
                    {
                        "clause": 7,
                        "scope": 7,
                        "term": "(merge T112 T111 T19)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "517": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T75 X106) (merge T74 X106 X107))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X107",
                        "X106"
                    ],
                    "exprvars": []
                }
            },
            "638": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "639": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "11": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "12": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "19": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "360": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T23 X24) (',' (mergesort T24 X25) (merge X24 X25 T19)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [
                        "X24",
                        "X25"
                    ],
                    "exprvars": []
                }
            },
            "481": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split T45 X61 X60)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X60",
                        "X61"
                    ],
                    "exprvars": []
                }
            },
            "361": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 2,
                        "term": "(split (. T20 (. T21 T22)) X22 X23)"
                    },
                    {
                        "clause": 4,
                        "scope": 2,
                        "term": "(split (. T20 (. T21 T22)) X22 X23)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X22",
                        "X23"
                    ],
                    "exprvars": []
                }
            },
            "482": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 4,
                        "term": "(split T45 X61 X60)"
                    },
                    {
                        "clause": 4,
                        "scope": 4,
                        "term": "(split T45 X61 X60)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X60",
                        "X61"
                    ],
                    "exprvars": []
                }
            },
            "483": {
                "goal": [{
                    "clause": 3,
                    "scope": 4,
                    "term": "(split T45 X61 X60)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X60",
                        "X61"
                    ],
                    "exprvars": []
                }
            },
            "681": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (= T135 T140) (merge (. T135 T142) T141 T139))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T135",
                        "T139"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "484": {
                "goal": [{
                    "clause": 4,
                    "scope": 4,
                    "term": "(split T45 X61 X60)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X60",
                        "X61"
                    ],
                    "exprvars": []
                }
            },
            "682": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "1": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "485": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "562": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "683": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge (. T144 T146) T145 T139)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T139",
                        "T144"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "486": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "563": {
                "goal": [{
                    "clause": 6,
                    "scope": 6,
                    "term": "(merge T77 T76 X107)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "640": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "684": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "487": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "564": {
                "goal": [{
                    "clause": 7,
                    "scope": 6,
                    "term": "(merge T77 T76 X107)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "641": {
                "goal": [{
                    "clause": 6,
                    "scope": 7,
                    "term": "(merge T112 T111 T19)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "488": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split T52 X79 X78)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X78",
                        "X79"
                    ],
                    "exprvars": []
                }
            },
            "642": {
                "goal": [{
                    "clause": 7,
                    "scope": 7,
                    "term": "(merge T112 T111 T19)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "5": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "489": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "522": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T75 X106)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X106"],
                    "exprvars": []
                }
            },
            "643": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "523": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge T77 T76 X107)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "567": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "600": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "644": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "568": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "645": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "8": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(mergesort T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "569": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "9": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "528": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 6,
                        "term": "(merge T77 T76 X107)"
                    },
                    {
                        "clause": 6,
                        "scope": 6,
                        "term": "(merge T77 T76 X107)"
                    },
                    {
                        "clause": 7,
                        "scope": 6,
                        "term": "(merge T77 T76 X107)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "605": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T54 X25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X25"],
                    "exprvars": []
                }
            },
            "606": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge T112 T111 T19)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "607": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 7,
                        "term": "(merge T112 T111 T19)"
                    },
                    {
                        "clause": 6,
                        "scope": 7,
                        "term": "(merge T112 T111 T19)"
                    },
                    {
                        "clause": 7,
                        "scope": 7,
                        "term": "(merge T112 T111 T19)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "20": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(mergesort T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "22": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(mergesort T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "25": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "26": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "27": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "490": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T23 X24)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "491": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T54 X25) (merge T53 X25 T19))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": ["X25"],
                    "exprvars": []
                }
            },
            "492": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 5,
                        "term": "(mergesort T23 X24)"
                    },
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(mergesort T23 X24)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(mergesort T23 X24)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "493": {
                "goal": [{
                    "clause": 0,
                    "scope": 5,
                    "term": "(mergesort T23 X24)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "494": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(mergesort T23 X24)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(mergesort T23 X24)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "495": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "496": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "497": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "530": {
                "goal": [{
                    "clause": 5,
                    "scope": 6,
                    "term": "(merge T77 T76 X107)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "454": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split (. T36 T37) X43 X42)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X42",
                        "X43"
                    ],
                    "exprvars": []
                }
            },
            "498": {
                "goal": [{
                    "clause": 1,
                    "scope": 5,
                    "term": "(mergesort T23 X24)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "531": {
                "goal": [
                    {
                        "clause": 6,
                        "scope": 6,
                        "term": "(merge T77 T76 X107)"
                    },
                    {
                        "clause": 7,
                        "scope": 6,
                        "term": "(merge T77 T76 X107)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "499": {
                "goal": [{
                    "clause": 2,
                    "scope": 5,
                    "term": "(mergesort T23 X24)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "532": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "533": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "336": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T20 (. T21 T22)) X22 X23) (',' (mergesort X22 X24) (',' (mergesort X23 X25) (merge X24 X25 T19))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [
                        "X22",
                        "X23",
                        "X24",
                        "X25"
                    ],
                    "exprvars": []
                }
            },
            "337": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "462": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 3,
                        "term": "(split (. T36 T37) X43 X42)"
                    },
                    {
                        "clause": 4,
                        "scope": 3,
                        "term": "(split (. T36 T37) X43 X42)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X42",
                        "X43"
                    ],
                    "exprvars": []
                }
            },
            "464": {
                "goal": [{
                    "clause": 4,
                    "scope": 3,
                    "term": "(split (. T36 T37) X43 X42)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X42",
                        "X43"
                    ],
                    "exprvars": []
                }
            },
            "500": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "501": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "502": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 1,
                "to": 5,
                "label": "CASE"
            },
            {
                "from": 5,
                "to": 8,
                "label": "PARALLEL"
            },
            {
                "from": 5,
                "to": 9,
                "label": "PARALLEL"
            },
            {
                "from": 8,
                "to": 11,
                "label": "EVAL with clause\nmergesort([], []).\nand substitutionT1 -> [],\nT2 -> []"
            },
            {
                "from": 8,
                "to": 12,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 9,
                "to": 20,
                "label": "PARALLEL"
            },
            {
                "from": 9,
                "to": 22,
                "label": "PARALLEL"
            },
            {
                "from": 11,
                "to": 19,
                "label": "SUCCESS"
            },
            {
                "from": 20,
                "to": 25,
                "label": "EVAL with clause\nmergesort(.(X5, []), .(X5, [])).\nand substitutionX5 -> T7,\nT1 -> .(T7, []),\nT2 -> .(T7, [])"
            },
            {
                "from": 20,
                "to": 26,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 22,
                "to": 336,
                "label": "EVAL with clause\nmergesort(.(X18, .(X19, X20)), X21) :- ','(split(.(X18, .(X19, X20)), X22, X23), ','(mergesort(X22, X24), ','(mergesort(X23, X25), merge(X24, X25, X21)))).\nand substitutionX18 -> T20,\nX19 -> T21,\nX20 -> T22,\nT1 -> .(T20, .(T21, T22)),\nT2 -> T19,\nX21 -> T19,\nT16 -> T20,\nT17 -> T21,\nT18 -> T22"
            },
            {
                "from": 22,
                "to": 337,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 25,
                "to": 27,
                "label": "SUCCESS"
            },
            {
                "from": 336,
                "to": 359,
                "label": "SPLIT 1"
            },
            {
                "from": 336,
                "to": 360,
                "label": "SPLIT 2\nreplacements:X22 -> T23,\nX23 -> T24"
            },
            {
                "from": 359,
                "to": 361,
                "label": "CASE"
            },
            {
                "from": 360,
                "to": 490,
                "label": "SPLIT 1"
            },
            {
                "from": 360,
                "to": 491,
                "label": "SPLIT 2\nreplacements:X24 -> T53,\nT24 -> T54"
            },
            {
                "from": 361,
                "to": 439,
                "label": "BACKTRACK\nfor clause: split([], [], [])because of non-unification"
            },
            {
                "from": 439,
                "to": 454,
                "label": "ONLY EVAL with clause\nsplit(.(X38, X39), .(X38, X40), X41) :- split(X39, X41, X40).\nand substitutionT20 -> T33,\nX38 -> T33,\nT21 -> T36,\nT22 -> T37,\nX39 -> .(T36, T37),\nX40 -> X42,\nX22 -> .(T33, X42),\nX23 -> X43,\nX41 -> X43,\nT34 -> T36,\nT35 -> T37"
            },
            {
                "from": 454,
                "to": 462,
                "label": "CASE"
            },
            {
                "from": 462,
                "to": 464,
                "label": "BACKTRACK\nfor clause: split([], [], [])because of non-unification"
            },
            {
                "from": 464,
                "to": 481,
                "label": "ONLY EVAL with clause\nsplit(.(X56, X57), .(X56, X58), X59) :- split(X57, X59, X58).\nand substitutionT36 -> T43,\nX56 -> T43,\nT37 -> T45,\nX57 -> T45,\nX58 -> X60,\nX43 -> .(T43, X60),\nX42 -> X61,\nX59 -> X61,\nT44 -> T45"
            },
            {
                "from": 481,
                "to": 482,
                "label": "CASE"
            },
            {
                "from": 482,
                "to": 483,
                "label": "PARALLEL"
            },
            {
                "from": 482,
                "to": 484,
                "label": "PARALLEL"
            },
            {
                "from": 483,
                "to": 485,
                "label": "EVAL with clause\nsplit([], [], []).\nand substitutionT45 -> [],\nX61 -> [],\nX60 -> []"
            },
            {
                "from": 483,
                "to": 486,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 484,
                "to": 488,
                "label": "EVAL with clause\nsplit(.(X74, X75), .(X74, X76), X77) :- split(X75, X77, X76).\nand substitutionX74 -> T50,\nX75 -> T52,\nT45 -> .(T50, T52),\nX76 -> X78,\nX61 -> .(T50, X78),\nX60 -> X79,\nX77 -> X79,\nT51 -> T52"
            },
            {
                "from": 484,
                "to": 489,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 485,
                "to": 487,
                "label": "SUCCESS"
            },
            {
                "from": 488,
                "to": 481,
                "label": "INSTANCE with matching:\nT45 -> T52\nX61 -> X79\nX60 -> X78"
            },
            {
                "from": 490,
                "to": 492,
                "label": "CASE"
            },
            {
                "from": 491,
                "to": 605,
                "label": "SPLIT 1"
            },
            {
                "from": 491,
                "to": 606,
                "label": "SPLIT 2\nreplacements:X25 -> T111,\nT53 -> T112"
            },
            {
                "from": 492,
                "to": 493,
                "label": "PARALLEL"
            },
            {
                "from": 492,
                "to": 494,
                "label": "PARALLEL"
            },
            {
                "from": 493,
                "to": 495,
                "label": "EVAL with clause\nmergesort([], []).\nand substitutionT23 -> [],\nX24 -> []"
            },
            {
                "from": 493,
                "to": 496,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 494,
                "to": 498,
                "label": "PARALLEL"
            },
            {
                "from": 494,
                "to": 499,
                "label": "PARALLEL"
            },
            {
                "from": 495,
                "to": 497,
                "label": "SUCCESS"
            },
            {
                "from": 498,
                "to": 500,
                "label": "EVAL with clause\nmergesort(.(X84, []), .(X84, [])).\nand substitutionX84 -> T59,\nT23 -> .(T59, []),\nX24 -> .(T59, [])"
            },
            {
                "from": 498,
                "to": 501,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 499,
                "to": 510,
                "label": "EVAL with clause\nmergesort(.(X99, .(X100, X101)), X102) :- ','(split(.(X99, .(X100, X101)), X103, X104), ','(mergesort(X103, X105), ','(mergesort(X104, X106), merge(X105, X106, X102)))).\nand substitutionX99 -> T69,\nX100 -> T70,\nX101 -> T71,\nT23 -> .(T69, .(T70, T71)),\nX24 -> X107,\nX102 -> X107,\nT66 -> T69,\nT67 -> T70,\nT68 -> T71"
            },
            {
                "from": 499,
                "to": 511,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 500,
                "to": 502,
                "label": "SUCCESS"
            },
            {
                "from": 510,
                "to": 512,
                "label": "SPLIT 1"
            },
            {
                "from": 510,
                "to": 513,
                "label": "SPLIT 2\nreplacements:X103 -> T72,\nX104 -> T73"
            },
            {
                "from": 512,
                "to": 359,
                "label": "INSTANCE with matching:\nT20 -> T69\nT21 -> T70\nT22 -> T71\nX22 -> X103\nX23 -> X104"
            },
            {
                "from": 513,
                "to": 516,
                "label": "SPLIT 1"
            },
            {
                "from": 513,
                "to": 517,
                "label": "SPLIT 2\nreplacements:X105 -> T74,\nT73 -> T75"
            },
            {
                "from": 516,
                "to": 490,
                "label": "INSTANCE with matching:\nT23 -> T72\nX24 -> X105"
            },
            {
                "from": 517,
                "to": 522,
                "label": "SPLIT 1"
            },
            {
                "from": 517,
                "to": 523,
                "label": "SPLIT 2\nreplacements:X106 -> T76,\nT74 -> T77"
            },
            {
                "from": 522,
                "to": 490,
                "label": "INSTANCE with matching:\nT23 -> T75\nX24 -> X106"
            },
            {
                "from": 523,
                "to": 528,
                "label": "CASE"
            },
            {
                "from": 528,
                "to": 530,
                "label": "PARALLEL"
            },
            {
                "from": 528,
                "to": 531,
                "label": "PARALLEL"
            },
            {
                "from": 530,
                "to": 532,
                "label": "EVAL with clause\nmerge([], X114, X114).\nand substitutionT77 -> [],\nT76 -> T84,\nX114 -> T84,\nX107 -> T84"
            },
            {
                "from": 530,
                "to": 533,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 531,
                "to": 563,
                "label": "PARALLEL"
            },
            {
                "from": 531,
                "to": 564,
                "label": "PARALLEL"
            },
            {
                "from": 532,
                "to": 562,
                "label": "SUCCESS"
            },
            {
                "from": 563,
                "to": 567,
                "label": "EVAL with clause\nmerge(X119, [], X119).\nand substitutionT77 -> T89,\nX119 -> T89,\nT76 -> [],\nX107 -> T89"
            },
            {
                "from": 563,
                "to": 568,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 564,
                "to": 596,
                "label": "EVAL with clause\nmerge(.(X132, X133), .(X134, X135), .(X132, X136)) :- ','(=(X132, X134), merge(.(X132, X133), X135, X136)).\nand substitutionX132 -> T102,\nX133 -> T105,\nT77 -> .(T102, T105),\nX134 -> T103,\nX135 -> T104,\nT76 -> .(T103, T104),\nX136 -> X137,\nX107 -> .(T102, X137),\nT98 -> T102,\nT100 -> T103,\nT101 -> T104,\nT99 -> T105"
            },
            {
                "from": 564,
                "to": 598,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 567,
                "to": 569,
                "label": "SUCCESS"
            },
            {
                "from": 596,
                "to": 599,
                "label": "UNIFY CASE with substitutionT102 -> T109,\nT103 -> T109,\nT104 -> T108,\nT107 -> T109,\nT105 -> T110"
            },
            {
                "from": 596,
                "to": 600,
                "label": "UNIFY-BACKTRACK"
            },
            {
                "from": 599,
                "to": 523,
                "label": "INSTANCE with matching:\nT77 -> .(T109, T110)\nT76 -> T108\nX107 -> X137"
            },
            {
                "from": 605,
                "to": 490,
                "label": "INSTANCE with matching:\nT23 -> T54\nX24 -> X25"
            },
            {
                "from": 606,
                "to": 607,
                "label": "CASE"
            },
            {
                "from": 607,
                "to": 636,
                "label": "PARALLEL"
            },
            {
                "from": 607,
                "to": 637,
                "label": "PARALLEL"
            },
            {
                "from": 636,
                "to": 638,
                "label": "EVAL with clause\nmerge([], X146, X146).\nand substitutionT112 -> [],\nT111 -> T119,\nX146 -> T119,\nT19 -> T119"
            },
            {
                "from": 636,
                "to": 639,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 637,
                "to": 641,
                "label": "PARALLEL"
            },
            {
                "from": 637,
                "to": 642,
                "label": "PARALLEL"
            },
            {
                "from": 638,
                "to": 640,
                "label": "SUCCESS"
            },
            {
                "from": 641,
                "to": 643,
                "label": "EVAL with clause\nmerge(X151, [], X151).\nand substitutionT112 -> T124,\nX151 -> T124,\nT111 -> [],\nT19 -> T124"
            },
            {
                "from": 641,
                "to": 644,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 642,
                "to": 681,
                "label": "EVAL with clause\nmerge(.(X162, X163), .(X164, X165), .(X162, X166)) :- ','(=(X162, X164), merge(.(X162, X163), X165, X166)).\nand substitutionX162 -> T135,\nX163 -> T142,\nT112 -> .(T135, T142),\nX164 -> T140,\nX165 -> T141,\nT111 -> .(T140, T141),\nX166 -> T139,\nT19 -> .(T135, T139),\nT137 -> T140,\nT138 -> T141,\nT136 -> T142"
            },
            {
                "from": 642,
                "to": 682,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 643,
                "to": 645,
                "label": "SUCCESS"
            },
            {
                "from": 681,
                "to": 683,
                "label": "UNIFY CASE with substitutionT135 -> T144,\nT140 -> T144,\nT141 -> T145,\nT142 -> T146"
            },
            {
                "from": 681,
                "to": 684,
                "label": "UNIFY-BACKTRACK"
            },
            {
                "from": 683,
                "to": 606,
                "label": "INSTANCE with matching:\nT112 -> .(T144, T146)\nT111 -> T145\nT19 -> T139"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(114)
Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:

   f1_in([]) -> f1_out1
   f1_in(.(T7, [])) -> f1_out1
   f1_in(T19) -> U1(f336_in(T19), T19)
   U1(f336_out1(X24, X25), T19) -> f1_out1
   f481_in -> f481_out1
   f481_in -> U2(f481_in)
   U2(f481_out1) -> f481_out1
   f359_in -> U3(f481_in)
   U3(f481_out1) -> f359_out1
   f490_in -> f490_out1
   f490_in -> U4(f510_in)
   U4(f510_out1) -> f490_out1
   f523_in -> f523_out1
   f523_in -> U5(f523_in)
   U5(f523_out1) -> f523_out1
   f606_in(T119) -> f606_out1([], T119)
   f606_in(T124) -> f606_out1(T124, [])
   f606_in(.(T144, T139)) -> U6(f606_in(T139), .(T144, T139))
   U6(f606_out1(.(T144, T146), T145), .(T144, T139)) -> f606_out1(.(T144, T146), .(T144, T145))
   f336_in(T19) -> U7(f359_in, T19)
   U7(f359_out1, T19) -> U8(f360_in(T19), T19)
   U8(f360_out1(X24, X25), T19) -> f336_out1(X24, X25)
   f360_in(T19) -> U9(f490_in, T19)
   U9(f490_out1, T19) -> U10(f491_in(T19), T19)
   U10(f491_out1(T53, X25), T19) -> f360_out1(T53, X25)
   f491_in(T19) -> U11(f490_in, T19)
   U11(f490_out1, T19) -> U12(f606_in(T19), T19)
   U12(f606_out1(T112, T111), T19) -> f491_out1(T112, T111)
   f510_in -> U13(f359_in)
   U13(f359_out1) -> U14(f513_in)
   U14(f513_out1) -> f510_out1
   f513_in -> U15(f490_in)
   U15(f490_out1) -> U16(f517_in)
   U16(f517_out1) -> f513_out1
   f517_in -> U17(f490_in)
   U17(f490_out1) -> U18(f523_in)
   U18(f523_out1) -> f517_out1

Q is empty.

----------------------------------------

(115) QTRSRRRProof (EQUIVALENT)
Used ordering:
f1_in/1(YES)
[]/0)
f1_out1/0)
./2(YES,YES)
U1/2(YES,YES)
f336_in/1(YES)
f336_out1/2(YES,YES)
f481_in/0)
f481_out1/0)
U2/1)YES(
f359_in/0)
U3/1)YES(
f359_out1/0)
f490_in/0)
f490_out1/0)
U4/1)YES(
f510_in/0)
f510_out1/0)
f523_in/0)
f523_out1/0)
U5/1)YES(
f606_in/1(YES)
f606_out1/2(YES,YES)
U6/2(YES,YES)
U7/2(YES,YES)
U8/2(YES,YES)
f360_in/1(YES)
f360_out1/2(YES,YES)
U9/2(YES,YES)
U10/2(YES,YES)
f491_in/1(YES)
f491_out1/2(YES,YES)
U11/2(YES,YES)
U12/2(YES,YES)
U13/1)YES(
U14/1)YES(
f513_in/0)
f513_out1/0)
U15/1)YES(
U16/1)YES(
f517_in/0)
f517_out1/0)
U17/1)YES(
U18/1)YES(

Quasi precedence:
f1_in_1 > U1_2 > f1_out1
f1_in_1 > f336_in_1 > [U7_2, f360_in_1] > [f481_in, f481_out1, f359_in, f359_out1, f490_in, f490_out1, f510_in, f510_out1, f523_in, f523_out1, U8_2, U9_2, f491_in_1, f513_in, f513_out1, f517_in, f517_out1] > f336_out1_2 > f1_out1
f1_in_1 > f336_in_1 > [U7_2, f360_in_1] > [f481_in, f481_out1, f359_in, f359_out1, f490_in, f490_out1, f510_in, f510_out1, f523_in, f523_out1, U8_2, U9_2, f491_in_1, f513_in, f513_out1, f517_in, f517_out1] > U10_2 > f360_out1_2
f1_in_1 > f336_in_1 > [U7_2, f360_in_1] > [f481_in, f481_out1, f359_in, f359_out1, f490_in, f490_out1, f510_in, f510_out1, f523_in, f523_out1, U8_2, U9_2, f491_in_1, f513_in, f513_out1, f517_in, f517_out1] > U11_2 > [[], f606_in_1] > [._2, U6_2] > f1_out1
f1_in_1 > f336_in_1 > [U7_2, f360_in_1] > [f481_in, f481_out1, f359_in, f359_out1, f490_in, f490_out1, f510_in, f510_out1, f523_in, f523_out1, U8_2, U9_2, f491_in_1, f513_in, f513_out1, f517_in, f517_out1] > U11_2 > [[], f606_in_1] > [._2, U6_2] > f606_out1_2
f1_in_1 > f336_in_1 > [U7_2, f360_in_1] > [f481_in, f481_out1, f359_in, f359_out1, f490_in, f490_out1, f510_in, f510_out1, f523_in, f523_out1, U8_2, U9_2, f491_in_1, f513_in, f513_out1, f517_in, f517_out1] > U11_2 > [f491_out1_2, U12_2] > f360_out1_2


Status:
f1_in_1: multiset status
[]: multiset status
f1_out1: multiset status
._2: multiset status
U1_2: multiset status
f336_in_1: [1]
f336_out1_2: [1,2]
f481_in: multiset status
f481_out1: multiset status
f359_in: multiset status
f359_out1: multiset status
f490_in: multiset status
f490_out1: multiset status
f510_in: multiset status
f510_out1: multiset status
f523_in: multiset status
f523_out1: multiset status
f606_in_1: multiset status
f606_out1_2: [2,1]
U6_2: multiset status
U7_2: multiset status
U8_2: multiset status
f360_in_1: multiset status
f360_out1_2: multiset status
U9_2: multiset status
U10_2: multiset status
f491_in_1: multiset status
f491_out1_2: multiset status
U11_2: multiset status
U12_2: multiset status
f513_in: multiset status
f513_out1: multiset status
f517_in: multiset status
f517_out1: multiset status

With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:

   f1_in([]) -> f1_out1
   f1_in(.(T7, [])) -> f1_out1
   f1_in(T19) -> U1(f336_in(T19), T19)
   U1(f336_out1(X24, X25), T19) -> f1_out1
   f606_in(T119) -> f606_out1([], T119)
   f606_in(T124) -> f606_out1(T124, [])
   f606_in(.(T144, T139)) -> U6(f606_in(T139), .(T144, T139))
   U6(f606_out1(.(T144, T146), T145), .(T144, T139)) -> f606_out1(.(T144, T146), .(T144, T145))
   f336_in(T19) -> U7(f359_in, T19)
   U7(f359_out1, T19) -> U8(f360_in(T19), T19)
   U8(f360_out1(X24, X25), T19) -> f336_out1(X24, X25)
   f360_in(T19) -> U9(f490_in, T19)
   U9(f490_out1, T19) -> U10(f491_in(T19), T19)
   U10(f491_out1(T53, X25), T19) -> f360_out1(T53, X25)
   f491_in(T19) -> U11(f490_in, T19)
   U11(f490_out1, T19) -> U12(f606_in(T19), T19)
   U12(f606_out1(T112, T111), T19) -> f491_out1(T112, T111)




----------------------------------------

(116)
Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:

   f481_in -> f481_out1
   f481_in -> U2(f481_in)
   U2(f481_out1) -> f481_out1
   f359_in -> U3(f481_in)
   U3(f481_out1) -> f359_out1
   f490_in -> f490_out1
   f490_in -> U4(f510_in)
   U4(f510_out1) -> f490_out1
   f523_in -> f523_out1
   f523_in -> U5(f523_in)
   U5(f523_out1) -> f523_out1
   f510_in -> U13(f359_in)
   U13(f359_out1) -> U14(f513_in)
   U14(f513_out1) -> f510_out1
   f513_in -> U15(f490_in)
   U15(f490_out1) -> U16(f517_in)
   U16(f517_out1) -> f513_out1
   f517_in -> U17(f490_in)
   U17(f490_out1) -> U18(f523_in)
   U18(f523_out1) -> f517_out1

Q is empty.

----------------------------------------

(117) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.
----------------------------------------

(118)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F481_IN -> U2^1(f481_in)
   F481_IN -> F481_IN
   F359_IN -> U3^1(f481_in)
   F359_IN -> F481_IN
   F490_IN -> U4^1(f510_in)
   F490_IN -> F510_IN
   F523_IN -> U5^1(f523_in)
   F523_IN -> F523_IN
   F510_IN -> U13^1(f359_in)
   F510_IN -> F359_IN
   U13^1(f359_out1) -> U14^1(f513_in)
   U13^1(f359_out1) -> F513_IN
   F513_IN -> U15^1(f490_in)
   F513_IN -> F490_IN
   U15^1(f490_out1) -> U16^1(f517_in)
   U15^1(f490_out1) -> F517_IN
   F517_IN -> U17^1(f490_in)
   F517_IN -> F490_IN
   U17^1(f490_out1) -> U18^1(f523_in)
   U17^1(f490_out1) -> F523_IN

The TRS R consists of the following rules:

   f481_in -> f481_out1
   f481_in -> U2(f481_in)
   U2(f481_out1) -> f481_out1
   f359_in -> U3(f481_in)
   U3(f481_out1) -> f359_out1
   f490_in -> f490_out1
   f490_in -> U4(f510_in)
   U4(f510_out1) -> f490_out1
   f523_in -> f523_out1
   f523_in -> U5(f523_in)
   U5(f523_out1) -> f523_out1
   f510_in -> U13(f359_in)
   U13(f359_out1) -> U14(f513_in)
   U14(f513_out1) -> f510_out1
   f513_in -> U15(f490_in)
   U15(f490_out1) -> U16(f517_in)
   U16(f517_out1) -> f513_out1
   f517_in -> U17(f490_in)
   U17(f490_out1) -> U18(f523_in)
   U18(f523_out1) -> f517_out1

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

(119) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 11 less nodes.
----------------------------------------

(120)
Complex Obligation (AND)

----------------------------------------

(121)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F523_IN -> F523_IN

The TRS R consists of the following rules:

   f481_in -> f481_out1
   f481_in -> U2(f481_in)
   U2(f481_out1) -> f481_out1
   f359_in -> U3(f481_in)
   U3(f481_out1) -> f359_out1
   f490_in -> f490_out1
   f490_in -> U4(f510_in)
   U4(f510_out1) -> f490_out1
   f523_in -> f523_out1
   f523_in -> U5(f523_in)
   U5(f523_out1) -> f523_out1
   f510_in -> U13(f359_in)
   U13(f359_out1) -> U14(f513_in)
   U14(f513_out1) -> f510_out1
   f513_in -> U15(f490_in)
   U15(f490_out1) -> U16(f517_in)
   U16(f517_out1) -> f513_out1
   f517_in -> U17(f490_in)
   U17(f490_out1) -> U18(f523_in)
   U18(f523_out1) -> f517_out1

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

(122) UsableRulesProof (EQUIVALENT)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
----------------------------------------

(123)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F523_IN -> F523_IN

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

(124) NonTerminationLoopProof (COMPLETE)
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 = F523_IN evaluates to  t =F523_IN

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

--------------------------------------------------------------------------------
Rewriting sequence

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




----------------------------------------

(125)
NO

----------------------------------------

(126)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F481_IN -> F481_IN

The TRS R consists of the following rules:

   f481_in -> f481_out1
   f481_in -> U2(f481_in)
   U2(f481_out1) -> f481_out1
   f359_in -> U3(f481_in)
   U3(f481_out1) -> f359_out1
   f490_in -> f490_out1
   f490_in -> U4(f510_in)
   U4(f510_out1) -> f490_out1
   f523_in -> f523_out1
   f523_in -> U5(f523_in)
   U5(f523_out1) -> f523_out1
   f510_in -> U13(f359_in)
   U13(f359_out1) -> U14(f513_in)
   U14(f513_out1) -> f510_out1
   f513_in -> U15(f490_in)
   U15(f490_out1) -> U16(f517_in)
   U16(f517_out1) -> f513_out1
   f517_in -> U17(f490_in)
   U17(f490_out1) -> U18(f523_in)
   U18(f523_out1) -> f517_out1

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

(127) UsableRulesProof (EQUIVALENT)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
----------------------------------------

(128)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F481_IN -> F481_IN

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

(129) NonTerminationLoopProof (COMPLETE)
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 = F481_IN evaluates to  t =F481_IN

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

--------------------------------------------------------------------------------
Rewriting sequence

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




----------------------------------------

(130)
NO

----------------------------------------

(131)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F510_IN -> U13^1(f359_in)
   U13^1(f359_out1) -> F513_IN
   F513_IN -> U15^1(f490_in)
   U15^1(f490_out1) -> F517_IN
   F517_IN -> F490_IN
   F490_IN -> F510_IN
   F513_IN -> F490_IN

The TRS R consists of the following rules:

   f481_in -> f481_out1
   f481_in -> U2(f481_in)
   U2(f481_out1) -> f481_out1
   f359_in -> U3(f481_in)
   U3(f481_out1) -> f359_out1
   f490_in -> f490_out1
   f490_in -> U4(f510_in)
   U4(f510_out1) -> f490_out1
   f523_in -> f523_out1
   f523_in -> U5(f523_in)
   U5(f523_out1) -> f523_out1
   f510_in -> U13(f359_in)
   U13(f359_out1) -> U14(f513_in)
   U14(f513_out1) -> f510_out1
   f513_in -> U15(f490_in)
   U15(f490_out1) -> U16(f517_in)
   U16(f517_out1) -> f513_out1
   f517_in -> U17(f490_in)
   U17(f490_out1) -> U18(f523_in)
   U18(f523_out1) -> f517_out1

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

(132) PrologToDTProblemTransformerProof (SOUND)
Built DT problem from termination graph DT10.

{
    "root": 3,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(mergesort ([]) ([]))",
                null
            ],
            [
                "(mergesort (. X ([])) (. X ([])))",
                null
            ],
            [
                "(mergesort (. X (. Y Xs)) Ys)",
                "(',' (split (. X (. Y Xs)) X1s X2s) (',' (mergesort X1s Y1s) (',' (mergesort X2s Y2s) (merge Y1s Y2s Ys))))"
            ],
            [
                "(split ([]) ([]) ([]))",
                null
            ],
            [
                "(split (. X Xs) (. X Ys) Zs)",
                "(split Xs Zs Ys)"
            ],
            [
                "(merge ([]) Xs Xs)",
                null
            ],
            [
                "(merge Xs ([]) Xs)",
                null
            ],
            [
                "(merge (. X Xs) (. Y Ys) (. X Zs))",
                "(',' (= X Y) (merge (. X Xs) Ys Zs))"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "type": "Nodes",
            "750": {
                "goal": [{
                    "clause": 7,
                    "scope": 12,
                    "term": "(merge T251 T250 T224)"
                }],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T252 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T252 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "751": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "752": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "753": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "754": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (= T275 T280) (merge (. T275 T282) T281 T279))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(mergesort T252 (. T275 T279))",
                        "(mergesort (. X174 ([])) (. X174 ([])))"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T275",
                        "T279"
                    ],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "755": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "514": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split T45 X67 X66)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X66",
                        "X67"
                    ],
                    "exprvars": []
                }
            },
            "756": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge (. T284 T286) T285 T279)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(mergesort T252 (. T284 T279))",
                        "(mergesort (. X174 ([])) (. X174 ([])))"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T279",
                        "T284"
                    ],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "515": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "757": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "758": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 13,
                        "term": "(merge (. T284 T286) T285 T279)"
                    },
                    {
                        "clause": 6,
                        "scope": 13,
                        "term": "(merge (. T284 T286) T285 T279)"
                    },
                    {
                        "clause": 7,
                        "scope": 13,
                        "term": "(merge (. T284 T286) T285 T279)"
                    }
                ],
                "kb": {
                    "nonunifying": [[
                        "(mergesort T252 (. T284 T279))",
                        "(mergesort (. X174 ([])) (. X174 ([])))"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T279",
                        "T284"
                    ],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "759": {
                "goal": [
                    {
                        "clause": 6,
                        "scope": 13,
                        "term": "(merge (. T284 T286) T285 T279)"
                    },
                    {
                        "clause": 7,
                        "scope": 13,
                        "term": "(merge (. T284 T286) T285 T279)"
                    }
                ],
                "kb": {
                    "nonunifying": [[
                        "(mergesort T252 (. T284 T279))",
                        "(mergesort (. X174 ([])) (. X174 ([])))"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T279",
                        "T284"
                    ],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "518": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort (. T30 T29) X12)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X12"],
                    "exprvars": []
                }
            },
            "519": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T47 X13) (merge T46 X13 ([])))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X13"],
                    "exprvars": []
                }
            },
            "13": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": -1,
                        "term": "(true)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(mergesort T1 ([]))"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(mergesort T1 ([]))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "14": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [[
                        "(mergesort T1 T2)",
                        "(mergesort ([]) ([]))"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "18": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(mergesort T1 ([]))"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(mergesort T1 ([]))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "760": {
                "goal": [{
                    "clause": 6,
                    "scope": 13,
                    "term": "(merge (. T284 T286) T285 T279)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(mergesort T252 (. T284 T279))",
                        "(mergesort (. X174 ([])) (. X174 ([])))"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T279",
                        "T284"
                    ],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "761": {
                "goal": [{
                    "clause": 7,
                    "scope": 13,
                    "term": "(merge (. T284 T286) T285 T279)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(mergesort T252 (. T284 T279))",
                        "(mergesort (. X174 ([])) (. X174 ([])))"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T279",
                        "T284"
                    ],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "3": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "520": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 5,
                        "term": "(mergesort (. T30 T29) X12)"
                    },
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(mergesort (. T30 T29) X12)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(mergesort (. T30 T29) X12)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X12"],
                    "exprvars": []
                }
            },
            "762": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "521": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(mergesort (. T30 T29) X12)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(mergesort (. T30 T29) X12)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X12"],
                    "exprvars": []
                }
            },
            "763": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "764": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "6": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "765": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (= T307 T312) (merge (. T307 T314) T313 T311))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T307",
                        "T311"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "524": {
                "goal": [{
                    "clause": 1,
                    "scope": 5,
                    "term": "(mergesort (. T30 T29) X12)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X12"],
                    "exprvars": []
                }
            },
            "766": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "525": {
                "goal": [{
                    "clause": 2,
                    "scope": 5,
                    "term": "(mergesort (. T30 T29) X12)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X12"],
                    "exprvars": []
                }
            },
            "646": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "767": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge (. T316 T318) T317 T311)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T311",
                        "T316"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "526": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "647": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "768": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "527": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "648": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "769": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 14,
                        "term": "(merge (. T316 T318) T317 T311)"
                    },
                    {
                        "clause": 6,
                        "scope": 14,
                        "term": "(merge (. T316 T318) T317 T311)"
                    },
                    {
                        "clause": 7,
                        "scope": 14,
                        "term": "(merge (. T316 T318) T317 T311)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T311",
                        "T316"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "529": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "24": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(mergesort T1 ([]))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "770": {
                "goal": [
                    {
                        "clause": 6,
                        "scope": 14,
                        "term": "(merge (. T316 T318) T317 T311)"
                    },
                    {
                        "clause": 7,
                        "scope": 14,
                        "term": "(merge (. T316 T318) T317 T311)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T311",
                        "T316"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "771": {
                "goal": [{
                    "clause": 6,
                    "scope": 14,
                    "term": "(merge (. T316 T318) T317 T311)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T311",
                        "T316"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "651": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T83 (. T84 T85)) X119 X120) (',' (mergesort X119 X121) (',' (mergesort X120 X122) (merge X121 X122 X123))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X123",
                        "X119",
                        "X120",
                        "X121",
                        "X122"
                    ],
                    "exprvars": []
                }
            },
            "772": {
                "goal": [{
                    "clause": 7,
                    "scope": 14,
                    "term": "(merge (. T316 T318) T317 T311)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T311",
                        "T316"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "652": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "773": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "774": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "775": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "776": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (= T339 T344) (merge (. T339 T346) T345 T343))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T339",
                        "T343"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "777": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "778": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge (. T348 T350) T349 T343)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T343",
                        "T348"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "779": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "31": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T10 (. T11 T12)) X10 X11) (',' (mergesort X10 X12) (',' (mergesort X11 X13) (merge X12 X13 ([])))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X10",
                        "X11",
                        "X12",
                        "X13"
                    ],
                    "exprvars": []
                }
            },
            "33": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "35": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 2,
                        "term": "(',' (split (. T10 (. T11 T12)) X10 X11) (',' (mergesort X10 X12) (',' (mergesort X11 X13) (merge X12 X13 ([])))))"
                    },
                    {
                        "clause": 4,
                        "scope": 2,
                        "term": "(',' (split (. T10 (. T11 T12)) X10 X11) (',' (mergesort X10 X12) (',' (mergesort X11 X13) (merge X12 X13 ([])))))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X10",
                        "X11",
                        "X12",
                        "X13"
                    ],
                    "exprvars": []
                }
            },
            "36": {
                "goal": [{
                    "clause": 4,
                    "scope": 2,
                    "term": "(',' (split (. T10 (. T11 T12)) X10 X11) (',' (mergesort X10 X12) (',' (mergesort X11 X13) (merge X12 X13 ([])))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X10",
                        "X11",
                        "X12",
                        "X13"
                    ],
                    "exprvars": []
                }
            },
            "661": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T68 X94)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X94"],
                    "exprvars": []
                }
            },
            "662": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge T87 T86 X95)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X95"],
                    "exprvars": []
                }
            },
            "666": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 7,
                        "term": "(merge T87 T86 X95)"
                    },
                    {
                        "clause": 6,
                        "scope": 7,
                        "term": "(merge T87 T86 X95)"
                    },
                    {
                        "clause": 7,
                        "scope": 7,
                        "term": "(merge T87 T86 X95)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X95"],
                    "exprvars": []
                }
            },
            "667": {
                "goal": [{
                    "clause": 5,
                    "scope": 7,
                    "term": "(merge T87 T86 X95)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X95"],
                    "exprvars": []
                }
            },
            "700": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "701": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "669": {
                "goal": [
                    {
                        "clause": 6,
                        "scope": 7,
                        "term": "(merge T87 T86 X95)"
                    },
                    {
                        "clause": 7,
                        "scope": 7,
                        "term": "(merge T87 T86 X95)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X95"],
                    "exprvars": []
                }
            },
            "702": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "703": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": -1,
                        "term": "(true)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(mergesort T1 (. T140 ([])))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T140"],
                    "free": [],
                    "exprvars": []
                }
            },
            "704": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(mergesort T1 T2)"
                }],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T1 T2)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T1 T2)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "705": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(mergesort T1 (. T140 ([])))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T140"],
                    "free": [],
                    "exprvars": []
                }
            },
            "706": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T149 (. T150 T151)) X183 X184) (',' (mergesort X183 X185) (',' (mergesort X184 X186) (merge X185 X186 (. T148 ([]))))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": [
                        "X183",
                        "X184",
                        "X185",
                        "X186"
                    ],
                    "exprvars": []
                }
            },
            "707": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "708": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 9,
                        "term": "(',' (split (. T149 (. T150 T151)) X183 X184) (',' (mergesort X183 X185) (',' (mergesort X184 X186) (merge X185 X186 (. T148 ([]))))))"
                    },
                    {
                        "clause": 4,
                        "scope": 9,
                        "term": "(',' (split (. T149 (. T150 T151)) X183 X184) (',' (mergesort X183 X185) (',' (mergesort X184 X186) (merge X185 X186 (. T148 ([]))))))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": [
                        "X183",
                        "X184",
                        "X185",
                        "X186"
                    ],
                    "exprvars": []
                }
            },
            "709": {
                "goal": [{
                    "clause": 4,
                    "scope": 9,
                    "term": "(',' (split (. T149 (. T150 T151)) X183 X184) (',' (mergesort X183 X185) (',' (mergesort X184 X186) (merge X185 X186 (. T148 ([]))))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": [
                        "X183",
                        "X184",
                        "X185",
                        "X186"
                    ],
                    "exprvars": []
                }
            },
            "673": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "674": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "675": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "676": {
                "goal": [{
                    "clause": 6,
                    "scope": 7,
                    "term": "(merge T87 T86 X95)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X95"],
                    "exprvars": []
                }
            },
            "435": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split (. T25 T26) X31 X30)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X30",
                        "X31"
                    ],
                    "exprvars": []
                }
            },
            "677": {
                "goal": [{
                    "clause": 7,
                    "scope": 7,
                    "term": "(merge T87 T86 X95)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X95"],
                    "exprvars": []
                }
            },
            "710": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T164 T165) X204 X203) (',' (mergesort (. T166 X203) X185) (',' (mergesort X204 X186) (merge X185 X186 (. T148 ([]))))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": [
                        "X185",
                        "X186",
                        "X203",
                        "X204"
                    ],
                    "exprvars": []
                }
            },
            "436": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort (. T30 T29) X12) (',' (mergesort T28 X13) (merge X12 X13 ([]))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X12",
                        "X13"
                    ],
                    "exprvars": []
                }
            },
            "678": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "711": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split (. T164 T165) X204 X203)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X203",
                        "X204"
                    ],
                    "exprvars": []
                }
            },
            "437": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 3,
                        "term": "(split (. T25 T26) X31 X30)"
                    },
                    {
                        "clause": 4,
                        "scope": 3,
                        "term": "(split (. T25 T26) X31 X30)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X30",
                        "X31"
                    ],
                    "exprvars": []
                }
            },
            "679": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "712": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort (. T169 T168) X185) (',' (mergesort T167 X186) (merge X185 X186 (. T148 ([])))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": [
                        "X185",
                        "X186"
                    ],
                    "exprvars": []
                }
            },
            "438": {
                "goal": [{
                    "clause": 4,
                    "scope": 3,
                    "term": "(split (. T25 T26) X31 X30)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X30",
                        "X31"
                    ],
                    "exprvars": []
                }
            },
            "713": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort (. T169 T168) X185)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X185"],
                    "exprvars": []
                }
            },
            "714": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T171 X186) (merge T170 X186 (. T148 ([]))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": ["X186"],
                    "exprvars": []
                }
            },
            "715": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T171 X186)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X186"],
                    "exprvars": []
                }
            },
            "716": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge T173 T172 (. T148 ([])))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": [],
                    "exprvars": []
                }
            },
            "717": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 10,
                        "term": "(merge T173 T172 (. T148 ([])))"
                    },
                    {
                        "clause": 6,
                        "scope": 10,
                        "term": "(merge T173 T172 (. T148 ([])))"
                    },
                    {
                        "clause": 7,
                        "scope": 10,
                        "term": "(merge T173 T172 (. T148 ([])))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": [],
                    "exprvars": []
                }
            },
            "718": {
                "goal": [{
                    "clause": 5,
                    "scope": 10,
                    "term": "(merge T173 T172 (. T148 ([])))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": [],
                    "exprvars": []
                }
            },
            "719": {
                "goal": [
                    {
                        "clause": 6,
                        "scope": 10,
                        "term": "(merge T173 T172 (. T148 ([])))"
                    },
                    {
                        "clause": 7,
                        "scope": 10,
                        "term": "(merge T173 T172 (. T148 ([])))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": [],
                    "exprvars": []
                }
            },
            "57": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T25 T26) X31 X30) (',' (mergesort (. T27 X30) X12) (',' (mergesort X31 X13) (merge X12 X13 ([])))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X12",
                        "X13",
                        "X30",
                        "X31"
                    ],
                    "exprvars": []
                }
            },
            "680": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "685": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (= T112 T113) (merge (. T112 T115) T114 X153))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X153"],
                    "exprvars": []
                }
            },
            "565": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T62 (. T63 T64)) X91 X92) (',' (mergesort X91 X93) (',' (mergesort X92 X94) (merge X93 X94 X95))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X95",
                        "X91",
                        "X92",
                        "X93",
                        "X94"
                    ],
                    "exprvars": []
                }
            },
            "686": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "566": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "687": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge (. T119 T120) T118 X153)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X153"],
                    "exprvars": []
                }
            },
            "720": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "688": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "721": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "689": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T47 X13)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X13"],
                    "exprvars": []
                }
            },
            "722": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "723": {
                "goal": [{
                    "clause": 6,
                    "scope": 10,
                    "term": "(merge T173 T172 (. T148 ([])))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": [],
                    "exprvars": []
                }
            },
            "724": {
                "goal": [{
                    "clause": 7,
                    "scope": 10,
                    "term": "(merge T173 T172 (. T148 ([])))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T148"],
                    "free": [],
                    "exprvars": []
                }
            },
            "725": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "726": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "727": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "728": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (= T206 T210) (merge (. T206 T212) T211 ([])))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T206"],
                    "free": [],
                    "exprvars": []
                }
            },
            "729": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "690": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge T122 T121 ([]))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "570": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split (. T62 (. T63 T64)) X91 X92)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X91",
                        "X92"
                    ],
                    "exprvars": []
                }
            },
            "691": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 8,
                        "term": "(merge T122 T121 ([]))"
                    },
                    {
                        "clause": 6,
                        "scope": 8,
                        "term": "(merge T122 T121 ([]))"
                    },
                    {
                        "clause": 7,
                        "scope": 8,
                        "term": "(merge T122 T121 ([]))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "571": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T65 X93) (',' (mergesort T66 X94) (merge X93 X94 X95)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X95",
                        "X93",
                        "X94"
                    ],
                    "exprvars": []
                }
            },
            "692": {
                "goal": [{
                    "clause": 5,
                    "scope": 8,
                    "term": "(merge T122 T121 ([]))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "693": {
                "goal": [
                    {
                        "clause": 6,
                        "scope": 8,
                        "term": "(merge T122 T121 ([]))"
                    },
                    {
                        "clause": 7,
                        "scope": 8,
                        "term": "(merge T122 T121 ([]))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "694": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "574": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T65 X93)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X93"],
                    "exprvars": []
                }
            },
            "695": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "575": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T68 X94) (merge T67 X94 X95))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X95",
                        "X94"
                    ],
                    "exprvars": []
                }
            },
            "696": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "576": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 6,
                        "term": "(mergesort T65 X93)"
                    },
                    {
                        "clause": 1,
                        "scope": 6,
                        "term": "(mergesort T65 X93)"
                    },
                    {
                        "clause": 2,
                        "scope": 6,
                        "term": "(mergesort T65 X93)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X93"],
                    "exprvars": []
                }
            },
            "697": {
                "goal": [{
                    "clause": 6,
                    "scope": 8,
                    "term": "(merge T122 T121 ([]))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "730": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge (. T214 T216) T215 ([]))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T214"],
                    "free": [],
                    "exprvars": []
                }
            },
            "577": {
                "goal": [{
                    "clause": 0,
                    "scope": 6,
                    "term": "(mergesort T65 X93)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X93"],
                    "exprvars": []
                }
            },
            "698": {
                "goal": [{
                    "clause": 7,
                    "scope": 8,
                    "term": "(merge T122 T121 ([]))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "731": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "578": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 6,
                        "term": "(mergesort T65 X93)"
                    },
                    {
                        "clause": 2,
                        "scope": 6,
                        "term": "(mergesort T65 X93)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X93"],
                    "exprvars": []
                }
            },
            "699": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "732": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T225 (. T226 T227)) X242 X243) (',' (mergesort X242 X244) (',' (mergesort X243 X245) (merge X244 X245 T224))))"
                }],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T1 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T1 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": [
                        "X174",
                        "X242",
                        "X243",
                        "X244",
                        "X245"
                    ],
                    "exprvars": []
                }
            },
            "579": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "733": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "734": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 11,
                        "term": "(',' (split (. T225 (. T226 T227)) X242 X243) (',' (mergesort X242 X244) (',' (mergesort X243 X245) (merge X244 X245 T224))))"
                    },
                    {
                        "clause": 4,
                        "scope": 11,
                        "term": "(',' (split (. T225 (. T226 T227)) X242 X243) (',' (mergesort X242 X244) (',' (mergesort X243 X245) (merge X244 X245 T224))))"
                    }
                ],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T1 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T1 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": [
                        "X174",
                        "X242",
                        "X243",
                        "X244",
                        "X245"
                    ],
                    "exprvars": []
                }
            },
            "735": {
                "goal": [{
                    "clause": 4,
                    "scope": 11,
                    "term": "(',' (split (. T225 (. T226 T227)) X242 X243) (',' (mergesort X242 X244) (',' (mergesort X243 X245) (merge X244 X245 T224))))"
                }],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T1 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T1 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": [
                        "X174",
                        "X242",
                        "X243",
                        "X244",
                        "X245"
                    ],
                    "exprvars": []
                }
            },
            "736": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T240 T241) X263 X262) (',' (mergesort (. T242 X262) X244) (',' (mergesort X263 X245) (merge X244 X245 T224))))"
                }],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T1 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T1 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": [
                        "X174",
                        "X244",
                        "X245",
                        "X262",
                        "X263"
                    ],
                    "exprvars": []
                }
            },
            "737": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split (. T240 T241) X263 X262)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X262",
                        "X263"
                    ],
                    "exprvars": []
                }
            },
            "738": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort (. T245 T244) X244) (',' (mergesort T243 X245) (merge X244 X245 T224)))"
                }],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T246 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T246 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": [
                        "X174",
                        "X244",
                        "X245"
                    ],
                    "exprvars": []
                }
            },
            "739": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort (. T245 T244) X244)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X244"],
                    "exprvars": []
                }
            },
            "580": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "581": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "582": {
                "goal": [{
                    "clause": 1,
                    "scope": 6,
                    "term": "(mergesort T65 X93)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X93"],
                    "exprvars": []
                }
            },
            "583": {
                "goal": [{
                    "clause": 2,
                    "scope": 6,
                    "term": "(mergesort T65 X93)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X93"],
                    "exprvars": []
                }
            },
            "740": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T248 X245) (merge T247 X245 T224))"
                }],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T249 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T249 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": [
                        "X174",
                        "X245"
                    ],
                    "exprvars": []
                }
            },
            "741": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T248 X245)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X245"],
                    "exprvars": []
                }
            },
            "742": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge T251 T250 T224)"
                }],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T252 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T252 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "743": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 12,
                        "term": "(merge T251 T250 T224)"
                    },
                    {
                        "clause": 6,
                        "scope": 12,
                        "term": "(merge T251 T250 T224)"
                    },
                    {
                        "clause": 7,
                        "scope": 12,
                        "term": "(merge T251 T250 T224)"
                    }
                ],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T252 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T252 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "744": {
                "goal": [{
                    "clause": 5,
                    "scope": 12,
                    "term": "(merge T251 T250 T224)"
                }],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T252 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T252 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "503": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split T38 X49 X48)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X48",
                        "X49"
                    ],
                    "exprvars": []
                }
            },
            "745": {
                "goal": [
                    {
                        "clause": 6,
                        "scope": 12,
                        "term": "(merge T251 T250 T224)"
                    },
                    {
                        "clause": 7,
                        "scope": 12,
                        "term": "(merge T251 T250 T224)"
                    }
                ],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T252 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T252 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "504": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 4,
                        "term": "(split T38 X49 X48)"
                    },
                    {
                        "clause": 4,
                        "scope": 4,
                        "term": "(split T38 X49 X48)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X48",
                        "X49"
                    ],
                    "exprvars": []
                }
            },
            "746": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "505": {
                "goal": [{
                    "clause": 3,
                    "scope": 4,
                    "term": "(split T38 X49 X48)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X48",
                        "X49"
                    ],
                    "exprvars": []
                }
            },
            "747": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "506": {
                "goal": [{
                    "clause": 4,
                    "scope": 4,
                    "term": "(split T38 X49 X48)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X48",
                        "X49"
                    ],
                    "exprvars": []
                }
            },
            "748": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "507": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "749": {
                "goal": [{
                    "clause": 6,
                    "scope": 12,
                    "term": "(merge T251 T250 T224)"
                }],
                "kb": {
                    "nonunifying": [
                        [
                            "(mergesort T252 T224)",
                            "(mergesort ([]) ([]))"
                        ],
                        [
                            "(mergesort T252 T224)",
                            "(mergesort (. X174 ([])) (. X174 ([])))"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T224"],
                    "free": ["X174"],
                    "exprvars": []
                }
            },
            "508": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "509": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 3,
                "to": 6,
                "label": "CASE"
            },
            {
                "from": 6,
                "to": 13,
                "label": "EVAL with clause\nmergesort([], []).\nand substitutionT1 -> [],\nT2 -> []"
            },
            {
                "from": 6,
                "to": 14,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 13,
                "to": 18,
                "label": "SUCCESS"
            },
            {
                "from": 14,
                "to": 703,
                "label": "EVAL with clause\nmergesort(.(X174, []), .(X174, [])).\nand substitutionX174 -> T140,\nT1 -> .(T140, []),\nT2 -> .(T140, [])"
            },
            {
                "from": 14,
                "to": 704,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 18,
                "to": 24,
                "label": "BACKTRACK\nfor clause: mergesort(.(X, []), .(X, []))because of non-unification"
            },
            {
                "from": 24,
                "to": 31,
                "label": "EVAL with clause\nmergesort(.(X6, .(X7, X8)), X9) :- ','(split(.(X6, .(X7, X8)), X10, X11), ','(mergesort(X10, X12), ','(mergesort(X11, X13), merge(X12, X13, X9)))).\nand substitutionX6 -> T10,\nX7 -> T11,\nX8 -> T12,\nT1 -> .(T10, .(T11, T12)),\nX9 -> [],\nT7 -> T10,\nT8 -> T11,\nT9 -> T12"
            },
            {
                "from": 24,
                "to": 33,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 31,
                "to": 35,
                "label": "CASE"
            },
            {
                "from": 35,
                "to": 36,
                "label": "BACKTRACK\nfor clause: split([], [], [])because of non-unification"
            },
            {
                "from": 36,
                "to": 57,
                "label": "ONLY EVAL with clause\nsplit(.(X26, X27), .(X26, X28), X29) :- split(X27, X29, X28).\nand substitutionT10 -> T27,\nX26 -> T27,\nT11 -> T25,\nT12 -> T26,\nX27 -> .(T25, T26),\nX28 -> X30,\nX10 -> .(T27, X30),\nX11 -> X31,\nX29 -> X31,\nT23 -> T25,\nT24 -> T26,\nT22 -> T27"
            },
            {
                "from": 57,
                "to": 435,
                "label": "SPLIT 1"
            },
            {
                "from": 57,
                "to": 436,
                "label": "SPLIT 2\nreplacements:X31 -> T28,\nX30 -> T29,\nT27 -> T30"
            },
            {
                "from": 435,
                "to": 437,
                "label": "CASE"
            },
            {
                "from": 436,
                "to": 518,
                "label": "SPLIT 1"
            },
            {
                "from": 436,
                "to": 519,
                "label": "SPLIT 2\nreplacements:X12 -> T46,\nT28 -> T47"
            },
            {
                "from": 437,
                "to": 438,
                "label": "BACKTRACK\nfor clause: split([], [], [])because of non-unification"
            },
            {
                "from": 438,
                "to": 503,
                "label": "ONLY EVAL with clause\nsplit(.(X44, X45), .(X44, X46), X47) :- split(X45, X47, X46).\nand substitutionT25 -> T36,\nX44 -> T36,\nT26 -> T38,\nX45 -> T38,\nX46 -> X48,\nX31 -> .(T36, X48),\nX30 -> X49,\nX47 -> X49,\nT37 -> T38"
            },
            {
                "from": 503,
                "to": 504,
                "label": "CASE"
            },
            {
                "from": 504,
                "to": 505,
                "label": "PARALLEL"
            },
            {
                "from": 504,
                "to": 506,
                "label": "PARALLEL"
            },
            {
                "from": 505,
                "to": 507,
                "label": "EVAL with clause\nsplit([], [], []).\nand substitutionT38 -> [],\nX49 -> [],\nX48 -> []"
            },
            {
                "from": 505,
                "to": 508,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 506,
                "to": 514,
                "label": "EVAL with clause\nsplit(.(X62, X63), .(X62, X64), X65) :- split(X63, X65, X64).\nand substitutionX62 -> T43,\nX63 -> T45,\nT38 -> .(T43, T45),\nX64 -> X66,\nX49 -> .(T43, X66),\nX48 -> X67,\nX65 -> X67,\nT44 -> T45"
            },
            {
                "from": 506,
                "to": 515,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 507,
                "to": 509,
                "label": "SUCCESS"
            },
            {
                "from": 514,
                "to": 503,
                "label": "INSTANCE with matching:\nT38 -> T45\nX49 -> X67\nX48 -> X66"
            },
            {
                "from": 518,
                "to": 520,
                "label": "CASE"
            },
            {
                "from": 519,
                "to": 689,
                "label": "SPLIT 1"
            },
            {
                "from": 519,
                "to": 690,
                "label": "SPLIT 2\nreplacements:X13 -> T121,\nT46 -> T122"
            },
            {
                "from": 520,
                "to": 521,
                "label": "BACKTRACK\nfor clause: mergesort([], [])because of non-unification"
            },
            {
                "from": 521,
                "to": 524,
                "label": "PARALLEL"
            },
            {
                "from": 521,
                "to": 525,
                "label": "PARALLEL"
            },
            {
                "from": 524,
                "to": 526,
                "label": "EVAL with clause\nmergesort(.(X72, []), .(X72, [])).\nand substitutionT30 -> T52,\nX72 -> T52,\nT29 -> [],\nX12 -> .(T52, [])"
            },
            {
                "from": 524,
                "to": 527,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 525,
                "to": 565,
                "label": "EVAL with clause\nmergesort(.(X87, .(X88, X89)), X90) :- ','(split(.(X87, .(X88, X89)), X91, X92), ','(mergesort(X91, X93), ','(mergesort(X92, X94), merge(X93, X94, X90)))).\nand substitutionT30 -> T62,\nX87 -> T62,\nX88 -> T63,\nX89 -> T64,\nT29 -> .(T63, T64),\nX12 -> X95,\nX90 -> X95,\nT59 -> T62,\nT60 -> T63,\nT61 -> T64"
            },
            {
                "from": 525,
                "to": 566,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 526,
                "to": 529,
                "label": "SUCCESS"
            },
            {
                "from": 565,
                "to": 570,
                "label": "SPLIT 1"
            },
            {
                "from": 565,
                "to": 571,
                "label": "SPLIT 2\nreplacements:X91 -> T65,\nX92 -> T66"
            },
            {
                "from": 570,
                "to": 435,
                "label": "INSTANCE with matching:\nT25 -> T62\nT26 -> .(T63, T64)\nX31 -> X91\nX30 -> X92"
            },
            {
                "from": 571,
                "to": 574,
                "label": "SPLIT 1"
            },
            {
                "from": 571,
                "to": 575,
                "label": "SPLIT 2\nreplacements:X93 -> T67,\nT66 -> T68"
            },
            {
                "from": 574,
                "to": 576,
                "label": "CASE"
            },
            {
                "from": 575,
                "to": 661,
                "label": "SPLIT 1"
            },
            {
                "from": 575,
                "to": 662,
                "label": "SPLIT 2\nreplacements:X94 -> T86,\nT67 -> T87"
            },
            {
                "from": 576,
                "to": 577,
                "label": "PARALLEL"
            },
            {
                "from": 576,
                "to": 578,
                "label": "PARALLEL"
            },
            {
                "from": 577,
                "to": 579,
                "label": "EVAL with clause\nmergesort([], []).\nand substitutionT65 -> [],\nX93 -> []"
            },
            {
                "from": 577,
                "to": 580,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 578,
                "to": 582,
                "label": "PARALLEL"
            },
            {
                "from": 578,
                "to": 583,
                "label": "PARALLEL"
            },
            {
                "from": 579,
                "to": 581,
                "label": "SUCCESS"
            },
            {
                "from": 582,
                "to": 646,
                "label": "EVAL with clause\nmergesort(.(X100, []), .(X100, [])).\nand substitutionX100 -> T73,\nT65 -> .(T73, []),\nX93 -> .(T73, [])"
            },
            {
                "from": 582,
                "to": 647,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 583,
                "to": 651,
                "label": "EVAL with clause\nmergesort(.(X115, .(X116, X117)), X118) :- ','(split(.(X115, .(X116, X117)), X119, X120), ','(mergesort(X119, X121), ','(mergesort(X120, X122), merge(X121, X122, X118)))).\nand substitutionX115 -> T83,\nX116 -> T84,\nX117 -> T85,\nT65 -> .(T83, .(T84, T85)),\nX93 -> X123,\nX118 -> X123,\nT80 -> T83,\nT81 -> T84,\nT82 -> T85"
            },
            {
                "from": 583,
                "to": 652,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 646,
                "to": 648,
                "label": "SUCCESS"
            },
            {
                "from": 651,
                "to": 565,
                "label": "INSTANCE with matching:\nT62 -> T83\nT63 -> T84\nT64 -> T85\nX91 -> X119\nX92 -> X120\nX93 -> X121\nX94 -> X122\nX95 -> X123"
            },
            {
                "from": 661,
                "to": 574,
                "label": "INSTANCE with matching:\nT65 -> T68\nX93 -> X94"
            },
            {
                "from": 662,
                "to": 666,
                "label": "CASE"
            },
            {
                "from": 666,
                "to": 667,
                "label": "PARALLEL"
            },
            {
                "from": 666,
                "to": 669,
                "label": "PARALLEL"
            },
            {
                "from": 667,
                "to": 673,
                "label": "EVAL with clause\nmerge([], X130, X130).\nand substitutionT87 -> [],\nT86 -> T94,\nX130 -> T94,\nX95 -> T94"
            },
            {
                "from": 667,
                "to": 674,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 669,
                "to": 676,
                "label": "PARALLEL"
            },
            {
                "from": 669,
                "to": 677,
                "label": "PARALLEL"
            },
            {
                "from": 673,
                "to": 675,
                "label": "SUCCESS"
            },
            {
                "from": 676,
                "to": 678,
                "label": "EVAL with clause\nmerge(X135, [], X135).\nand substitutionT87 -> T99,\nX135 -> T99,\nT86 -> [],\nX95 -> T99"
            },
            {
                "from": 676,
                "to": 679,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 677,
                "to": 685,
                "label": "EVAL with clause\nmerge(.(X148, X149), .(X150, X151), .(X148, X152)) :- ','(=(X148, X150), merge(.(X148, X149), X151, X152)).\nand substitutionX148 -> T112,\nX149 -> T115,\nT87 -> .(T112, T115),\nX150 -> T113,\nX151 -> T114,\nT86 -> .(T113, T114),\nX152 -> X153,\nX95 -> .(T112, X153),\nT108 -> T112,\nT110 -> T113,\nT111 -> T114,\nT109 -> T115"
            },
            {
                "from": 677,
                "to": 686,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 678,
                "to": 680,
                "label": "SUCCESS"
            },
            {
                "from": 685,
                "to": 687,
                "label": "UNIFY CASE with substitutionT112 -> T119,\nT113 -> T119,\nT114 -> T118,\nT117 -> T119,\nT115 -> T120"
            },
            {
                "from": 685,
                "to": 688,
                "label": "UNIFY-BACKTRACK"
            },
            {
                "from": 687,
                "to": 662,
                "label": "INSTANCE with matching:\nT87 -> .(T119, T120)\nT86 -> T118\nX95 -> X153"
            },
            {
                "from": 689,
                "to": 574,
                "label": "INSTANCE with matching:\nT65 -> T47\nX93 -> X13"
            },
            {
                "from": 690,
                "to": 691,
                "label": "CASE"
            },
            {
                "from": 691,
                "to": 692,
                "label": "PARALLEL"
            },
            {
                "from": 691,
                "to": 693,
                "label": "PARALLEL"
            },
            {
                "from": 692,
                "to": 694,
                "label": "EVAL with clause\nmerge([], X162, X162).\nand substitutionT122 -> [],\nT121 -> [],\nX162 -> [],\nT129 -> []"
            },
            {
                "from": 692,
                "to": 695,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 693,
                "to": 697,
                "label": "PARALLEL"
            },
            {
                "from": 693,
                "to": 698,
                "label": "PARALLEL"
            },
            {
                "from": 694,
                "to": 696,
                "label": "SUCCESS"
            },
            {
                "from": 697,
                "to": 699,
                "label": "EVAL with clause\nmerge(X167, [], X167).\nand substitutionT122 -> [],\nX167 -> [],\nT121 -> [],\nT134 -> []"
            },
            {
                "from": 697,
                "to": 700,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 698,
                "to": 702,
                "label": "BACKTRACK\nfor clause: merge(.(X, Xs), .(Y, Ys), .(X, Zs)) :- ','(=(X, Y), merge(.(X, Xs), Ys, Zs))because of non-unification"
            },
            {
                "from": 699,
                "to": 701,
                "label": "SUCCESS"
            },
            {
                "from": 703,
                "to": 705,
                "label": "SUCCESS"
            },
            {
                "from": 704,
                "to": 732,
                "label": "EVAL with clause\nmergesort(.(X238, .(X239, X240)), X241) :- ','(split(.(X238, .(X239, X240)), X242, X243), ','(mergesort(X242, X244), ','(mergesort(X243, X245), merge(X244, X245, X241)))).\nand substitutionX238 -> T225,\nX239 -> T226,\nX240 -> T227,\nT1 -> .(T225, .(T226, T227)),\nT2 -> T224,\nX241 -> T224,\nT221 -> T225,\nT222 -> T226,\nT223 -> T227"
            },
            {
                "from": 704,
                "to": 733,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 705,
                "to": 706,
                "label": "EVAL with clause\nmergesort(.(X179, .(X180, X181)), X182) :- ','(split(.(X179, .(X180, X181)), X183, X184), ','(mergesort(X183, X185), ','(mergesort(X184, X186), merge(X185, X186, X182)))).\nand substitutionX179 -> T149,\nX180 -> T150,\nX181 -> T151,\nT1 -> .(T149, .(T150, T151)),\nT140 -> T148,\nX182 -> .(T148, []),\nT145 -> T149,\nT146 -> T150,\nT147 -> T151"
            },
            {
                "from": 705,
                "to": 707,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 706,
                "to": 708,
                "label": "CASE"
            },
            {
                "from": 708,
                "to": 709,
                "label": "BACKTRACK\nfor clause: split([], [], [])because of non-unification"
            },
            {
                "from": 709,
                "to": 710,
                "label": "ONLY EVAL with clause\nsplit(.(X199, X200), .(X199, X201), X202) :- split(X200, X202, X201).\nand substitutionT149 -> T166,\nX199 -> T166,\nT150 -> T164,\nT151 -> T165,\nX200 -> .(T164, T165),\nX201 -> X203,\nX183 -> .(T166, X203),\nX184 -> X204,\nX202 -> X204,\nT162 -> T164,\nT163 -> T165,\nT161 -> T166"
            },
            {
                "from": 710,
                "to": 711,
                "label": "SPLIT 1"
            },
            {
                "from": 710,
                "to": 712,
                "label": "SPLIT 2\nreplacements:X204 -> T167,\nX203 -> T168,\nT166 -> T169"
            },
            {
                "from": 711,
                "to": 435,
                "label": "INSTANCE with matching:\nT25 -> T164\nT26 -> T165\nX31 -> X204\nX30 -> X203"
            },
            {
                "from": 712,
                "to": 713,
                "label": "SPLIT 1"
            },
            {
                "from": 712,
                "to": 714,
                "label": "SPLIT 2\nreplacements:X185 -> T170,\nT167 -> T171"
            },
            {
                "from": 713,
                "to": 518,
                "label": "INSTANCE with matching:\nT30 -> T169\nT29 -> T168\nX12 -> X185"
            },
            {
                "from": 714,
                "to": 715,
                "label": "SPLIT 1"
            },
            {
                "from": 714,
                "to": 716,
                "label": "SPLIT 2\nreplacements:X186 -> T172,\nT170 -> T173"
            },
            {
                "from": 715,
                "to": 574,
                "label": "INSTANCE with matching:\nT65 -> T171\nX93 -> X186"
            },
            {
                "from": 716,
                "to": 717,
                "label": "CASE"
            },
            {
                "from": 717,
                "to": 718,
                "label": "PARALLEL"
            },
            {
                "from": 717,
                "to": 719,
                "label": "PARALLEL"
            },
            {
                "from": 718,
                "to": 720,
                "label": "EVAL with clause\nmerge([], X211, X211).\nand substitutionT173 -> [],\nT172 -> .(T187, []),\nX211 -> .(T187, []),\nT148 -> T187,\nT186 -> .(T187, [])"
            },
            {
                "from": 718,
                "to": 721,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 719,
                "to": 723,
                "label": "PARALLEL"
            },
            {
                "from": 719,
                "to": 724,
                "label": "PARALLEL"
            },
            {
                "from": 720,
                "to": 722,
                "label": "SUCCESS"
            },
            {
                "from": 723,
                "to": 725,
                "label": "EVAL with clause\nmerge(X216, [], X216).\nand substitutionT173 -> .(T197, []),\nX216 -> .(T197, []),\nT172 -> [],\nT148 -> T197,\nT196 -> .(T197, [])"
            },
            {
                "from": 723,
                "to": 726,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 724,
                "to": 728,
                "label": "EVAL with clause\nmerge(.(X227, X228), .(X229, X230), .(X227, X231)) :- ','(=(X227, X229), merge(.(X227, X228), X230, X231)).\nand substitutionX227 -> T206,\nX228 -> T212,\nT173 -> .(T206, T212),\nX229 -> T210,\nX230 -> T211,\nT172 -> .(T210, T211),\nT148 -> T206,\nX231 -> [],\nT208 -> T210,\nT209 -> T211,\nT207 -> T212"
            },
            {
                "from": 724,
                "to": 729,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 725,
                "to": 727,
                "label": "SUCCESS"
            },
            {
                "from": 728,
                "to": 730,
                "label": "UNIFY CASE with substitutionT206 -> T214,\nT210 -> T214,\nT211 -> T215,\nT212 -> T216"
            },
            {
                "from": 728,
                "to": 731,
                "label": "UNIFY-BACKTRACK"
            },
            {
                "from": 730,
                "to": 690,
                "label": "INSTANCE with matching:\nT122 -> .(T214, T216)\nT121 -> T215"
            },
            {
                "from": 732,
                "to": 734,
                "label": "CASE"
            },
            {
                "from": 734,
                "to": 735,
                "label": "BACKTRACK\nfor clause: split([], [], [])because of non-unification"
            },
            {
                "from": 735,
                "to": 736,
                "label": "ONLY EVAL with clause\nsplit(.(X258, X259), .(X258, X260), X261) :- split(X259, X261, X260).\nand substitutionT225 -> T242,\nX258 -> T242,\nT226 -> T240,\nT227 -> T241,\nX259 -> .(T240, T241),\nX260 -> X262,\nX242 -> .(T242, X262),\nX243 -> X263,\nX261 -> X263,\nT238 -> T240,\nT239 -> T241,\nT237 -> T242"
            },
            {
                "from": 736,
                "to": 737,
                "label": "SPLIT 1"
            },
            {
                "from": 736,
                "to": 738,
                "label": "SPLIT 2\nreplacements:X263 -> T243,\nX262 -> T244,\nT242 -> T245,\nT1 -> T246"
            },
            {
                "from": 737,
                "to": 435,
                "label": "INSTANCE with matching:\nT25 -> T240\nT26 -> T241\nX31 -> X263\nX30 -> X262"
            },
            {
                "from": 738,
                "to": 739,
                "label": "SPLIT 1"
            },
            {
                "from": 738,
                "to": 740,
                "label": "SPLIT 2\nreplacements:X244 -> T247,\nT243 -> T248,\nT246 -> T249"
            },
            {
                "from": 739,
                "to": 518,
                "label": "INSTANCE with matching:\nT30 -> T245\nT29 -> T244\nX12 -> X244"
            },
            {
                "from": 740,
                "to": 741,
                "label": "SPLIT 1"
            },
            {
                "from": 740,
                "to": 742,
                "label": "SPLIT 2\nreplacements:X245 -> T250,\nT247 -> T251,\nT249 -> T252"
            },
            {
                "from": 741,
                "to": 574,
                "label": "INSTANCE with matching:\nT65 -> T248\nX93 -> X245"
            },
            {
                "from": 742,
                "to": 743,
                "label": "CASE"
            },
            {
                "from": 743,
                "to": 744,
                "label": "PARALLEL"
            },
            {
                "from": 743,
                "to": 745,
                "label": "PARALLEL"
            },
            {
                "from": 744,
                "to": 746,
                "label": "EVAL with clause\nmerge([], X270, X270).\nand substitutionT251 -> [],\nT250 -> T259,\nX270 -> T259,\nT224 -> T259"
            },
            {
                "from": 744,
                "to": 747,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 745,
                "to": 749,
                "label": "PARALLEL"
            },
            {
                "from": 745,
                "to": 750,
                "label": "PARALLEL"
            },
            {
                "from": 746,
                "to": 748,
                "label": "SUCCESS"
            },
            {
                "from": 749,
                "to": 751,
                "label": "EVAL with clause\nmerge(X275, [], X275).\nand substitutionT251 -> T264,\nX275 -> T264,\nT250 -> [],\nT224 -> T264"
            },
            {
                "from": 749,
                "to": 752,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 750,
                "to": 754,
                "label": "EVAL with clause\nmerge(.(X286, X287), .(X288, X289), .(X286, X290)) :- ','(=(X286, X288), merge(.(X286, X287), X289, X290)).\nand substitutionX286 -> T275,\nX287 -> T282,\nT251 -> .(T275, T282),\nX288 -> T280,\nX289 -> T281,\nT250 -> .(T280, T281),\nX290 -> T279,\nT224 -> .(T275, T279),\nT277 -> T280,\nT278 -> T281,\nT276 -> T282"
            },
            {
                "from": 750,
                "to": 755,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 751,
                "to": 753,
                "label": "SUCCESS"
            },
            {
                "from": 754,
                "to": 756,
                "label": "UNIFY CASE with substitutionT275 -> T284,\nT280 -> T284,\nT281 -> T285,\nT282 -> T286"
            },
            {
                "from": 754,
                "to": 757,
                "label": "UNIFY-BACKTRACK"
            },
            {
                "from": 756,
                "to": 758,
                "label": "CASE"
            },
            {
                "from": 758,
                "to": 759,
                "label": "BACKTRACK\nfor clause: merge([], Xs, Xs)because of non-unification"
            },
            {
                "from": 759,
                "to": 760,
                "label": "PARALLEL"
            },
            {
                "from": 759,
                "to": 761,
                "label": "PARALLEL"
            },
            {
                "from": 760,
                "to": 762,
                "label": "EVAL with clause\nmerge(X298, [], X298).\nand substitutionT284 -> T295,\nT286 -> T296,\nX298 -> .(T295, T296),\nT285 -> [],\nT279 -> .(T295, T296)"
            },
            {
                "from": 760,
                "to": 763,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 761,
                "to": 765,
                "label": "EVAL with clause\nmerge(.(X309, X310), .(X311, X312), .(X309, X313)) :- ','(=(X309, X311), merge(.(X309, X310), X312, X313)).\nand substitutionT284 -> T307,\nX309 -> T307,\nT286 -> T314,\nX310 -> T314,\nX311 -> T312,\nX312 -> T313,\nT285 -> .(T312, T313),\nX313 -> T311,\nT279 -> .(T307, T311),\nT309 -> T312,\nT310 -> T313,\nT308 -> T314"
            },
            {
                "from": 761,
                "to": 766,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 762,
                "to": 764,
                "label": "SUCCESS"
            },
            {
                "from": 765,
                "to": 767,
                "label": "UNIFY CASE with substitutionT307 -> T316,\nT312 -> T316,\nT313 -> T317,\nT314 -> T318"
            },
            {
                "from": 765,
                "to": 768,
                "label": "UNIFY-BACKTRACK"
            },
            {
                "from": 767,
                "to": 769,
                "label": "CASE"
            },
            {
                "from": 769,
                "to": 770,
                "label": "BACKTRACK\nfor clause: merge([], Xs, Xs)because of non-unification"
            },
            {
                "from": 770,
                "to": 771,
                "label": "PARALLEL"
            },
            {
                "from": 770,
                "to": 772,
                "label": "PARALLEL"
            },
            {
                "from": 771,
                "to": 773,
                "label": "EVAL with clause\nmerge(X321, [], X321).\nand substitutionT316 -> T327,\nT318 -> T328,\nX321 -> .(T327, T328),\nT317 -> [],\nT311 -> .(T327, T328)"
            },
            {
                "from": 771,
                "to": 774,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 772,
                "to": 776,
                "label": "EVAL with clause\nmerge(.(X332, X333), .(X334, X335), .(X332, X336)) :- ','(=(X332, X334), merge(.(X332, X333), X335, X336)).\nand substitutionT316 -> T339,\nX332 -> T339,\nT318 -> T346,\nX333 -> T346,\nX334 -> T344,\nX335 -> T345,\nT317 -> .(T344, T345),\nX336 -> T343,\nT311 -> .(T339, T343),\nT341 -> T344,\nT342 -> T345,\nT340 -> T346"
            },
            {
                "from": 772,
                "to": 777,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 773,
                "to": 775,
                "label": "SUCCESS"
            },
            {
                "from": 776,
                "to": 778,
                "label": "UNIFY CASE with substitutionT339 -> T348,\nT344 -> T348,\nT345 -> T349,\nT346 -> T350"
            },
            {
                "from": 776,
                "to": 779,
                "label": "UNIFY-BACKTRACK"
            },
            {
                "from": 778,
                "to": 767,
                "label": "INSTANCE with matching:\nT316 -> T348\nT318 -> T350\nT317 -> T349\nT311 -> T343"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(133)
Obligation:
Triples:

splitA(.(X1, X2), .(X1, X3), X4) :- splitA(X2, X4, X3).
splitB(X1, X2, .(X1, X3), X4) :- splitA(X2, X4, X3).
pC(X1, X2, X3, X4, X5, X6, X7, X8) :- splitB(X1, .(X2, X3), X4, X5).
pC(X1, X2, X3, X4, X5, X6, X7, X8) :- ','(splitcB(X1, .(X2, X3), X4, X5), mergesortE(X4, X6)).
pC(X1, X2, X3, X4, X5, X6, X7, X8) :- ','(splitcB(X1, .(X2, X3), X4, X5), ','(mergesortcE(X4, X6), mergesortE(X5, X7))).
pC(X1, X2, X3, X4, X5, X6, X7, X8) :- ','(splitcB(X1, .(X2, X3), X4, X5), ','(mergesortcE(X4, X6), ','(mergesortcE(X5, X7), mergeD(X6, X7, X8)))).
mergesortE(.(X1, .(X2, X3)), X4) :- pC(X1, X2, X3, X5, X6, X7, X8, X4).
mergeD(.(X1, X2), .(X1, X3), .(X1, X4)) :- mergeD(.(X1, X2), X3, X4).
mergesortF(X1, .(X2, X3), X4) :- pC(X1, X2, X3, X5, X6, X7, X8, X4).
mergeH(X1, X2, .(X1, X3), .(X1, X4)) :- mergeH(X1, X2, X3, X4).
mergesortI(.(X1, .(X2, X3)), []) :- splitB(X2, X3, X4, X5).
mergesortI(.(X1, .(X2, X3)), []) :- ','(splitcB(X2, X3, X4, X5), mergesortF(X1, X5, X6)).
mergesortI(.(X1, .(X2, X3)), []) :- ','(splitcB(X2, X3, X4, X5), ','(mergesortcF(X1, X5, X6), mergesortE(X4, X7))).
mergesortI(.(X1, .(X2, X3)), []) :- ','(splitcB(X2, X3, X4, X5), ','(mergesortcF(X1, X5, X6), ','(mergesortcE(X4, X7), mergeG(X6, X7)))).
mergesortI(.(X1, .(X2, X3)), .(X4, [])) :- splitB(X2, X3, X5, X6).
mergesortI(.(X1, .(X2, X3)), .(X4, [])) :- ','(splitcB(X2, X3, X5, X6), mergesortF(X1, X6, X7)).
mergesortI(.(X1, .(X2, X3)), .(X4, [])) :- ','(splitcB(X2, X3, X5, X6), ','(mergesortcF(X1, X6, X7), mergesortE(X5, X8))).
mergesortI(.(X1, .(X2, X3)), .(X4, [])) :- ','(splitcB(X2, X3, X5, X6), ','(mergesortcF(X1, X6, .(X4, X7)), ','(mergesortcE(X5, .(X4, X8)), mergeG(.(X4, X7), X8)))).
mergesortI(.(X1, .(X2, X3)), X4) :- splitB(X2, X3, X5, X6).
mergesortI(.(X1, .(X2, X3)), X4) :- ','(splitcB(X2, X3, X5, X6), mergesortF(X1, X6, X7)).
mergesortI(.(X1, .(X2, X3)), X4) :- ','(splitcB(X2, X3, X5, X6), ','(mergesortcF(X1, X6, X7), mergesortE(X5, X8))).
mergesortI(.(X1, .(X2, X3)), .(X4, .(X4, X5))) :- ','(splitcB(X2, X3, X6, X7), ','(mergesortcF(X1, X7, .(X4, X8)), ','(mergesortcE(X6, .(X4, .(X4, X9))), mergeH(X4, X8, X9, X5)))).

Clauses:

splitcA([], [], []).
splitcA(.(X1, X2), .(X1, X3), X4) :- splitcA(X2, X4, X3).
splitcB(X1, X2, .(X1, X3), X4) :- splitcA(X2, X4, X3).
qcC(X1, X2, X3, X4, X5, X6, X7, X8) :- ','(splitcB(X1, .(X2, X3), X4, X5), ','(mergesortcE(X4, X6), ','(mergesortcE(X5, X7), mergecD(X6, X7, X8)))).
mergesortcE([], []).
mergesortcE(.(X1, []), .(X1, [])).
mergesortcE(.(X1, .(X2, X3)), X4) :- qcC(X1, X2, X3, X5, X6, X7, X8, X4).
mergecD([], X1, X1).
mergecD(X1, [], X1).
mergecD(.(X1, X2), .(X1, X3), .(X1, X4)) :- mergecD(.(X1, X2), X3, X4).
mergesortcF(X1, [], .(X1, [])).
mergesortcF(X1, .(X2, X3), X4) :- qcC(X1, X2, X3, X5, X6, X7, X8, X4).
mergecG([], []).
mergecG([], []).
mergecH(X1, X2, [], .(X1, X2)).
mergecH(X1, X2, .(X1, X3), .(X1, X4)) :- mergecH(X1, X2, X3, X4).

Afs:

mergesortI(x1, x2)  =  mergesortI(x2)


----------------------------------------

(134) UndefinedPredicateInTriplesTransformerProof (SOUND)
Deleted triples and predicates having undefined goals [DT09].
----------------------------------------

(135)
Obligation:
Triples:

splitA(.(X1, X2), .(X1, X3), X4) :- splitA(X2, X4, X3).
splitB(X1, X2, .(X1, X3), X4) :- splitA(X2, X4, X3).
pC(X1, X2, X3, X4, X5, X6, X7, X8) :- splitB(X1, .(X2, X3), X4, X5).
pC(X1, X2, X3, X4, X5, X6, X7, X8) :- ','(splitcB(X1, .(X2, X3), X4, X5), mergesortE(X4, X6)).
pC(X1, X2, X3, X4, X5, X6, X7, X8) :- ','(splitcB(X1, .(X2, X3), X4, X5), ','(mergesortcE(X4, X6), mergesortE(X5, X7))).
pC(X1, X2, X3, X4, X5, X6, X7, X8) :- ','(splitcB(X1, .(X2, X3), X4, X5), ','(mergesortcE(X4, X6), ','(mergesortcE(X5, X7), mergeD(X6, X7, X8)))).
mergesortE(.(X1, .(X2, X3)), X4) :- pC(X1, X2, X3, X5, X6, X7, X8, X4).
mergeD(.(X1, X2), .(X1, X3), .(X1, X4)) :- mergeD(.(X1, X2), X3, X4).
mergesortF(X1, .(X2, X3), X4) :- pC(X1, X2, X3, X5, X6, X7, X8, X4).
mergeH(X1, X2, .(X1, X3), .(X1, X4)) :- mergeH(X1, X2, X3, X4).
mergesortI(.(X1, .(X2, X3)), []) :- splitB(X2, X3, X4, X5).
mergesortI(.(X1, .(X2, X3)), []) :- ','(splitcB(X2, X3, X4, X5), mergesortF(X1, X5, X6)).
mergesortI(.(X1, .(X2, X3)), []) :- ','(splitcB(X2, X3, X4, X5), ','(mergesortcF(X1, X5, X6), mergesortE(X4, X7))).
mergesortI(.(X1, .(X2, X3)), .(X4, [])) :- splitB(X2, X3, X5, X6).
mergesortI(.(X1, .(X2, X3)), .(X4, [])) :- ','(splitcB(X2, X3, X5, X6), mergesortF(X1, X6, X7)).
mergesortI(.(X1, .(X2, X3)), .(X4, [])) :- ','(splitcB(X2, X3, X5, X6), ','(mergesortcF(X1, X6, X7), mergesortE(X5, X8))).
mergesortI(.(X1, .(X2, X3)), X4) :- splitB(X2, X3, X5, X6).
mergesortI(.(X1, .(X2, X3)), X4) :- ','(splitcB(X2, X3, X5, X6), mergesortF(X1, X6, X7)).
mergesortI(.(X1, .(X2, X3)), X4) :- ','(splitcB(X2, X3, X5, X6), ','(mergesortcF(X1, X6, X7), mergesortE(X5, X8))).
mergesortI(.(X1, .(X2, X3)), .(X4, .(X4, X5))) :- ','(splitcB(X2, X3, X6, X7), ','(mergesortcF(X1, X7, .(X4, X8)), ','(mergesortcE(X6, .(X4, .(X4, X9))), mergeH(X4, X8, X9, X5)))).

Clauses:

splitcA([], [], []).
splitcA(.(X1, X2), .(X1, X3), X4) :- splitcA(X2, X4, X3).
splitcB(X1, X2, .(X1, X3), X4) :- splitcA(X2, X4, X3).
qcC(X1, X2, X3, X4, X5, X6, X7, X8) :- ','(splitcB(X1, .(X2, X3), X4, X5), ','(mergesortcE(X4, X6), ','(mergesortcE(X5, X7), mergecD(X6, X7, X8)))).
mergesortcE([], []).
mergesortcE(.(X1, []), .(X1, [])).
mergesortcE(.(X1, .(X2, X3)), X4) :- qcC(X1, X2, X3, X5, X6, X7, X8, X4).
mergecD([], X1, X1).
mergecD(X1, [], X1).
mergecD(.(X1, X2), .(X1, X3), .(X1, X4)) :- mergecD(.(X1, X2), X3, X4).
mergesortcF(X1, [], .(X1, [])).
mergesortcF(X1, .(X2, X3), X4) :- qcC(X1, X2, X3, X5, X6, X7, X8, X4).
mergecG([], []).
mergecG([], []).
mergecH(X1, X2, [], .(X1, X2)).
mergecH(X1, X2, .(X1, X3), .(X1, X4)) :- mergecH(X1, X2, X3, X4).

Afs:

mergesortI(x1, x2)  =  mergesortI(x2)


----------------------------------------

(136) TriplesToPiDPProof (SOUND)
We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:

mergesortI_in_2: (f,b)

splitB_in_4: (f,f,f,f) (f,b,f,f)

splitA_in_3: (f,f,f) (b,f,f)

splitcB_in_4: (f,f,f,f) (f,b,f,f)

splitcA_in_3: (f,f,f) (b,f,f)

mergesortF_in_3: (f,b,f)

pC_in_8: (f,f,b,f,f,f,f,f)

mergesortE_in_2: (b,f)

mergesortcE_in_2: (b,f)

qcC_in_8: (f,f,b,f,f,f,f,f)

mergecD_in_3: (b,b,f)

mergeD_in_3: (b,b,f)

mergesortcF_in_3: (f,b,f)

mergeH_in_4: (f,b,b,b)

Transforming TRIPLES into the following Term Rewriting System:

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

   MERGESORTI_IN_AG(.(X1, .(X2, X3)), []) -> U14_AG(X1, X2, X3, splitB_in_aaaa(X2, X3, X4, X5))
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), []) -> SPLITB_IN_AAAA(X2, X3, X4, X5)
   SPLITB_IN_AAAA(X1, X2, .(X1, X3), X4) -> U2_AAAA(X1, X2, X3, X4, splitA_in_aaa(X2, X4, X3))
   SPLITB_IN_AAAA(X1, X2, .(X1, X3), X4) -> SPLITA_IN_AAA(X2, X4, X3)
   SPLITA_IN_AAA(.(X1, X2), .(X1, X3), X4) -> U1_AAA(X1, X2, X3, X4, splitA_in_aaa(X2, X4, X3))
   SPLITA_IN_AAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_AAA(X2, X4, X3)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), []) -> U15_AG(X1, X2, X3, splitcB_in_aaaa(X2, X3, X4, X5))
   U15_AG(X1, X2, X3, splitcB_out_aaaa(X2, X3, X4, X5)) -> U16_AG(X1, X2, X3, mergesortF_in_aga(X1, X5, X6))
   U15_AG(X1, X2, X3, splitcB_out_aaaa(X2, X3, X4, X5)) -> MERGESORTF_IN_AGA(X1, X5, X6)
   MERGESORTF_IN_AGA(X1, .(X2, X3), X4) -> U12_AGA(X1, X2, X3, X4, pC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   MERGESORTF_IN_AGA(X1, .(X2, X3), X4) -> PC_IN_AAGAAAAA(X1, X2, X3, X5, X6, X7, X8, X4)
   PC_IN_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8) -> U3_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitB_in_agaa(X1, .(X2, X3), X4, X5))
   PC_IN_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8) -> SPLITB_IN_AGAA(X1, .(X2, X3), X4, X5)
   SPLITB_IN_AGAA(X1, X2, .(X1, X3), X4) -> U2_AGAA(X1, X2, X3, X4, splitA_in_gaa(X2, X4, X3))
   SPLITB_IN_AGAA(X1, X2, .(X1, X3), X4) -> SPLITA_IN_GAA(X2, X4, X3)
   SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> U1_GAA(X1, X2, X3, X4, splitA_in_gaa(X2, X4, X3))
   SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_GAA(X2, X4, X3)
   PC_IN_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8) -> U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U5_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortE_in_ga(X4, X6))
   U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> MERGESORTE_IN_GA(X4, X6)
   MERGESORTE_IN_GA(.(X1, .(X2, X3)), X4) -> U10_GA(X1, X2, X3, X4, pC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   MERGESORTE_IN_GA(.(X1, .(X2, X3)), X4) -> PC_IN_AAGAAAAA(X1, X2, X3, X5, X6, X7, X8, X4)
   U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U7_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortE_in_ga(X5, X7))
   U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> MERGESORTE_IN_GA(X5, X7)
   U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U8_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X5, X7))
   U8_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> U9_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergeD_in_gga(X6, X7, X8))
   U8_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> MERGED_IN_GGA(X6, X7, X8)
   MERGED_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> U11_GGA(X1, X2, X3, X4, mergeD_in_gga(.(X1, X2), X3, X4))
   MERGED_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> MERGED_IN_GGA(.(X1, X2), X3, X4)
   U15_AG(X1, X2, X3, splitcB_out_aaaa(X2, X3, X4, X5)) -> U17_AG(X1, X2, X3, X4, mergesortcF_in_aga(X1, X5, X6))
   U17_AG(X1, X2, X3, X4, mergesortcF_out_aga(X1, X5, X6)) -> U18_AG(X1, X2, X3, mergesortE_in_ga(X4, X7))
   U17_AG(X1, X2, X3, X4, mergesortcF_out_aga(X1, X5, X6)) -> MERGESORTE_IN_GA(X4, X7)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), .(X4, [])) -> U19_AG(X1, X2, X3, X4, splitB_in_aaaa(X2, X3, X5, X6))
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), .(X4, [])) -> SPLITB_IN_AAAA(X2, X3, X5, X6)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), .(X4, [])) -> U20_AG(X1, X2, X3, X4, splitcB_in_aaaa(X2, X3, X5, X6))
   U20_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> U21_AG(X1, X2, X3, X4, mergesortF_in_aga(X1, X6, X7))
   U20_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> MERGESORTF_IN_AGA(X1, X6, X7)
   U20_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> U22_AG(X1, X2, X3, X4, X5, mergesortcF_in_aga(X1, X6, X7))
   U22_AG(X1, X2, X3, X4, X5, mergesortcF_out_aga(X1, X6, X7)) -> U23_AG(X1, X2, X3, X4, mergesortE_in_ga(X5, X8))
   U22_AG(X1, X2, X3, X4, X5, mergesortcF_out_aga(X1, X6, X7)) -> MERGESORTE_IN_GA(X5, X8)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), X4) -> U24_AG(X1, X2, X3, X4, splitB_in_aaaa(X2, X3, X5, X6))
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), X4) -> SPLITB_IN_AAAA(X2, X3, X5, X6)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), X4) -> U25_AG(X1, X2, X3, X4, splitcB_in_aaaa(X2, X3, X5, X6))
   U25_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> U26_AG(X1, X2, X3, X4, mergesortF_in_aga(X1, X6, X7))
   U25_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> MERGESORTF_IN_AGA(X1, X6, X7)
   U25_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> U27_AG(X1, X2, X3, X4, X5, mergesortcF_in_aga(X1, X6, X7))
   U27_AG(X1, X2, X3, X4, X5, mergesortcF_out_aga(X1, X6, X7)) -> U28_AG(X1, X2, X3, X4, mergesortE_in_ga(X5, X8))
   U27_AG(X1, X2, X3, X4, X5, mergesortcF_out_aga(X1, X6, X7)) -> MERGESORTE_IN_GA(X5, X8)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), .(X4, .(X4, X5))) -> U29_AG(X1, X2, X3, X4, X5, splitcB_in_aaaa(X2, X3, X6, X7))
   U29_AG(X1, X2, X3, X4, X5, splitcB_out_aaaa(X2, X3, X6, X7)) -> U30_AG(X1, X2, X3, X4, X5, X6, mergesortcF_in_aga(X1, X7, .(X4, X8)))
   U30_AG(X1, X2, X3, X4, X5, X6, mergesortcF_out_aga(X1, X7, .(X4, X8))) -> U31_AG(X1, X2, X3, X4, X5, X8, mergesortcE_in_ga(X6, .(X4, .(X4, X9))))
   U31_AG(X1, X2, X3, X4, X5, X8, mergesortcE_out_ga(X6, .(X4, .(X4, X9)))) -> U32_AG(X1, X2, X3, X4, X5, mergeH_in_aggg(X4, X8, X9, X5))
   U31_AG(X1, X2, X3, X4, X5, X8, mergesortcE_out_ga(X6, .(X4, .(X4, X9)))) -> MERGEH_IN_AGGG(X4, X8, X9, X5)
   MERGEH_IN_AGGG(X1, X2, .(X1, X3), .(X1, X4)) -> U13_AGGG(X1, X2, X3, X4, mergeH_in_aggg(X1, X2, X3, X4))
   MERGEH_IN_AGGG(X1, X2, .(X1, X3), .(X1, X4)) -> MERGEH_IN_AGGG(X1, X2, X3, X4)

The TRS R consists of the following rules:

   splitcB_in_aaaa(X1, X2, .(X1, X3), X4) -> U35_aaaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   splitcA_in_aaa([], [], []) -> splitcA_out_aaa([], [], [])
   splitcA_in_aaa(.(X1, X2), .(X1, X3), X4) -> U34_aaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   U34_aaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcA_out_aaa(.(X1, X2), .(X1, X3), X4)
   U35_aaaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcB_out_aaaa(X1, X2, .(X1, X3), X4)
   splitcB_in_agaa(X1, X2, .(X1, X3), X4) -> U35_agaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U34_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   U34_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4)
   U35_agaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X1, X2, .(X1, X3), X4)
   mergesortcE_in_ga([], []) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.(X1, []), .(X1, [])) -> mergesortcE_out_ga(.(X1, []), .(X1, []))
   mergesortcE_in_ga(.(X1, .(X2, X3)), X4) -> U40_ga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   qcC_in_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8) -> U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X5, X7))
   U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_in_gga(X6, X7, X8))
   mergecD_in_gga([], X1, X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, [], X1) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U41_gga(X1, X2, X3, X4, mergecD_in_gga(.(X1, X2), X3, X4))
   U41_gga(X1, X2, X3, X4, mergecD_out_gga(.(X1, X2), X3, X4)) -> mergecD_out_gga(.(X1, X2), .(X1, X3), .(X1, X4))
   U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8)
   U40_ga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(X1, .(X2, X3)), X4)
   mergesortcF_in_aga(X1, [], .(X1, [])) -> mergesortcF_out_aga(X1, [], .(X1, []))
   mergesortcF_in_aga(X1, .(X2, X3), X4) -> U42_aga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   U42_aga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcF_out_aga(X1, .(X2, X3), X4)

The argument filtering Pi contains the following mapping:
[]  =  []

splitB_in_aaaa(x1, x2, x3, x4)  =  splitB_in_aaaa

splitA_in_aaa(x1, x2, x3)  =  splitA_in_aaa

.(x1, x2)  =  .(x2)

splitcB_in_aaaa(x1, x2, x3, x4)  =  splitcB_in_aaaa

U35_aaaa(x1, x2, x3, x4, x5)  =  U35_aaaa(x5)

splitcA_in_aaa(x1, x2, x3)  =  splitcA_in_aaa

splitcA_out_aaa(x1, x2, x3)  =  splitcA_out_aaa(x1, x2, x3)

U34_aaa(x1, x2, x3, x4, x5)  =  U34_aaa(x5)

splitcB_out_aaaa(x1, x2, x3, x4)  =  splitcB_out_aaaa(x2, x3, x4)

mergesortF_in_aga(x1, x2, x3)  =  mergesortF_in_aga(x2)

pC_in_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  pC_in_aagaaaaa(x3)

splitB_in_agaa(x1, x2, x3, x4)  =  splitB_in_agaa(x2)

splitA_in_gaa(x1, x2, x3)  =  splitA_in_gaa(x1)

splitcB_in_agaa(x1, x2, x3, x4)  =  splitcB_in_agaa(x2)

U35_agaa(x1, x2, x3, x4, x5)  =  U35_agaa(x2, x5)

splitcA_in_gaa(x1, x2, x3)  =  splitcA_in_gaa(x1)

splitcA_out_gaa(x1, x2, x3)  =  splitcA_out_gaa(x1, x2, x3)

U34_gaa(x1, x2, x3, x4, x5)  =  U34_gaa(x2, x5)

splitcB_out_agaa(x1, x2, x3, x4)  =  splitcB_out_agaa(x2, x3, x4)

mergesortE_in_ga(x1, x2)  =  mergesortE_in_ga(x1)

mergesortcE_in_ga(x1, x2)  =  mergesortcE_in_ga(x1)

mergesortcE_out_ga(x1, x2)  =  mergesortcE_out_ga(x1, x2)

U40_ga(x1, x2, x3, x4, x5)  =  U40_ga(x3, x5)

qcC_in_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_in_aagaaaaa(x3)

U36_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U36_aagaaaaa(x3, x9)

U37_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U37_aagaaaaa(x3, x4, x5, x9)

U38_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U38_aagaaaaa(x3, x4, x5, x6, x9)

U39_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U39_aagaaaaa(x3, x4, x5, x6, x7, x9)

mergecD_in_gga(x1, x2, x3)  =  mergecD_in_gga(x1, x2)

mergecD_out_gga(x1, x2, x3)  =  mergecD_out_gga(x1, x2, x3)

U41_gga(x1, x2, x3, x4, x5)  =  U41_gga(x2, x3, x5)

qcC_out_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_out_aagaaaaa(x3, x4, x5, x6, x7, x8)

mergeD_in_gga(x1, x2, x3)  =  mergeD_in_gga(x1, x2)

mergesortcF_in_aga(x1, x2, x3)  =  mergesortcF_in_aga(x2)

mergesortcF_out_aga(x1, x2, x3)  =  mergesortcF_out_aga(x2, x3)

U42_aga(x1, x2, x3, x4, x5)  =  U42_aga(x3, x5)

mergeH_in_aggg(x1, x2, x3, x4)  =  mergeH_in_aggg(x2, x3, x4)

MERGESORTI_IN_AG(x1, x2)  =  MERGESORTI_IN_AG(x2)

U14_AG(x1, x2, x3, x4)  =  U14_AG(x4)

SPLITB_IN_AAAA(x1, x2, x3, x4)  =  SPLITB_IN_AAAA

U2_AAAA(x1, x2, x3, x4, x5)  =  U2_AAAA(x5)

SPLITA_IN_AAA(x1, x2, x3)  =  SPLITA_IN_AAA

U1_AAA(x1, x2, x3, x4, x5)  =  U1_AAA(x5)

U15_AG(x1, x2, x3, x4)  =  U15_AG(x4)

U16_AG(x1, x2, x3, x4)  =  U16_AG(x3, x4)

MERGESORTF_IN_AGA(x1, x2, x3)  =  MERGESORTF_IN_AGA(x2)

U12_AGA(x1, x2, x3, x4, x5)  =  U12_AGA(x3, x5)

PC_IN_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  PC_IN_AAGAAAAA(x3)

U3_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_AAGAAAAA(x3, x9)

SPLITB_IN_AGAA(x1, x2, x3, x4)  =  SPLITB_IN_AGAA(x2)

U2_AGAA(x1, x2, x3, x4, x5)  =  U2_AGAA(x2, x5)

SPLITA_IN_GAA(x1, x2, x3)  =  SPLITA_IN_GAA(x1)

U1_GAA(x1, x2, x3, x4, x5)  =  U1_GAA(x2, x5)

U4_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_AAGAAAAA(x3, x9)

U5_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U5_AAGAAAAA(x3, x4, x5, x9)

MERGESORTE_IN_GA(x1, x2)  =  MERGESORTE_IN_GA(x1)

U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x3, x5)

U6_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U6_AAGAAAAA(x3, x4, x5, x9)

U7_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U7_AAGAAAAA(x3, x4, x5, x9)

U8_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U8_AAGAAAAA(x3, x4, x5, x6, x9)

U9_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U9_AAGAAAAA(x3, x4, x5, x9)

MERGED_IN_GGA(x1, x2, x3)  =  MERGED_IN_GGA(x1, x2)

U11_GGA(x1, x2, x3, x4, x5)  =  U11_GGA(x2, x3, x5)

U17_AG(x1, x2, x3, x4, x5)  =  U17_AG(x3, x4, x5)

U18_AG(x1, x2, x3, x4)  =  U18_AG(x3, x4)

U19_AG(x1, x2, x3, x4, x5)  =  U19_AG(x5)

U20_AG(x1, x2, x3, x4, x5)  =  U20_AG(x5)

U21_AG(x1, x2, x3, x4, x5)  =  U21_AG(x3, x5)

U22_AG(x1, x2, x3, x4, x5, x6)  =  U22_AG(x3, x5, x6)

U23_AG(x1, x2, x3, x4, x5)  =  U23_AG(x3, x5)

U24_AG(x1, x2, x3, x4, x5)  =  U24_AG(x4, x5)

U25_AG(x1, x2, x3, x4, x5)  =  U25_AG(x4, x5)

U26_AG(x1, x2, x3, x4, x5)  =  U26_AG(x3, x4, x5)

U27_AG(x1, x2, x3, x4, x5, x6)  =  U27_AG(x3, x4, x5, x6)

U28_AG(x1, x2, x3, x4, x5)  =  U28_AG(x3, x4, x5)

U29_AG(x1, x2, x3, x4, x5, x6)  =  U29_AG(x5, x6)

U30_AG(x1, x2, x3, x4, x5, x6, x7)  =  U30_AG(x3, x5, x6, x7)

U31_AG(x1, x2, x3, x4, x5, x6, x7)  =  U31_AG(x3, x5, x6, x7)

U32_AG(x1, x2, x3, x4, x5, x6)  =  U32_AG(x3, x5, x6)

MERGEH_IN_AGGG(x1, x2, x3, x4)  =  MERGEH_IN_AGGG(x2, x3, x4)

U13_AGGG(x1, x2, x3, x4, x5)  =  U13_AGGG(x2, x3, x4, x5)


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


Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES



----------------------------------------

(137)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MERGESORTI_IN_AG(.(X1, .(X2, X3)), []) -> U14_AG(X1, X2, X3, splitB_in_aaaa(X2, X3, X4, X5))
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), []) -> SPLITB_IN_AAAA(X2, X3, X4, X5)
   SPLITB_IN_AAAA(X1, X2, .(X1, X3), X4) -> U2_AAAA(X1, X2, X3, X4, splitA_in_aaa(X2, X4, X3))
   SPLITB_IN_AAAA(X1, X2, .(X1, X3), X4) -> SPLITA_IN_AAA(X2, X4, X3)
   SPLITA_IN_AAA(.(X1, X2), .(X1, X3), X4) -> U1_AAA(X1, X2, X3, X4, splitA_in_aaa(X2, X4, X3))
   SPLITA_IN_AAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_AAA(X2, X4, X3)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), []) -> U15_AG(X1, X2, X3, splitcB_in_aaaa(X2, X3, X4, X5))
   U15_AG(X1, X2, X3, splitcB_out_aaaa(X2, X3, X4, X5)) -> U16_AG(X1, X2, X3, mergesortF_in_aga(X1, X5, X6))
   U15_AG(X1, X2, X3, splitcB_out_aaaa(X2, X3, X4, X5)) -> MERGESORTF_IN_AGA(X1, X5, X6)
   MERGESORTF_IN_AGA(X1, .(X2, X3), X4) -> U12_AGA(X1, X2, X3, X4, pC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   MERGESORTF_IN_AGA(X1, .(X2, X3), X4) -> PC_IN_AAGAAAAA(X1, X2, X3, X5, X6, X7, X8, X4)
   PC_IN_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8) -> U3_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitB_in_agaa(X1, .(X2, X3), X4, X5))
   PC_IN_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8) -> SPLITB_IN_AGAA(X1, .(X2, X3), X4, X5)
   SPLITB_IN_AGAA(X1, X2, .(X1, X3), X4) -> U2_AGAA(X1, X2, X3, X4, splitA_in_gaa(X2, X4, X3))
   SPLITB_IN_AGAA(X1, X2, .(X1, X3), X4) -> SPLITA_IN_GAA(X2, X4, X3)
   SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> U1_GAA(X1, X2, X3, X4, splitA_in_gaa(X2, X4, X3))
   SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_GAA(X2, X4, X3)
   PC_IN_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8) -> U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U5_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortE_in_ga(X4, X6))
   U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> MERGESORTE_IN_GA(X4, X6)
   MERGESORTE_IN_GA(.(X1, .(X2, X3)), X4) -> U10_GA(X1, X2, X3, X4, pC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   MERGESORTE_IN_GA(.(X1, .(X2, X3)), X4) -> PC_IN_AAGAAAAA(X1, X2, X3, X5, X6, X7, X8, X4)
   U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U7_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortE_in_ga(X5, X7))
   U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> MERGESORTE_IN_GA(X5, X7)
   U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U8_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X5, X7))
   U8_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> U9_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergeD_in_gga(X6, X7, X8))
   U8_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> MERGED_IN_GGA(X6, X7, X8)
   MERGED_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> U11_GGA(X1, X2, X3, X4, mergeD_in_gga(.(X1, X2), X3, X4))
   MERGED_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> MERGED_IN_GGA(.(X1, X2), X3, X4)
   U15_AG(X1, X2, X3, splitcB_out_aaaa(X2, X3, X4, X5)) -> U17_AG(X1, X2, X3, X4, mergesortcF_in_aga(X1, X5, X6))
   U17_AG(X1, X2, X3, X4, mergesortcF_out_aga(X1, X5, X6)) -> U18_AG(X1, X2, X3, mergesortE_in_ga(X4, X7))
   U17_AG(X1, X2, X3, X4, mergesortcF_out_aga(X1, X5, X6)) -> MERGESORTE_IN_GA(X4, X7)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), .(X4, [])) -> U19_AG(X1, X2, X3, X4, splitB_in_aaaa(X2, X3, X5, X6))
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), .(X4, [])) -> SPLITB_IN_AAAA(X2, X3, X5, X6)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), .(X4, [])) -> U20_AG(X1, X2, X3, X4, splitcB_in_aaaa(X2, X3, X5, X6))
   U20_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> U21_AG(X1, X2, X3, X4, mergesortF_in_aga(X1, X6, X7))
   U20_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> MERGESORTF_IN_AGA(X1, X6, X7)
   U20_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> U22_AG(X1, X2, X3, X4, X5, mergesortcF_in_aga(X1, X6, X7))
   U22_AG(X1, X2, X3, X4, X5, mergesortcF_out_aga(X1, X6, X7)) -> U23_AG(X1, X2, X3, X4, mergesortE_in_ga(X5, X8))
   U22_AG(X1, X2, X3, X4, X5, mergesortcF_out_aga(X1, X6, X7)) -> MERGESORTE_IN_GA(X5, X8)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), X4) -> U24_AG(X1, X2, X3, X4, splitB_in_aaaa(X2, X3, X5, X6))
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), X4) -> SPLITB_IN_AAAA(X2, X3, X5, X6)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), X4) -> U25_AG(X1, X2, X3, X4, splitcB_in_aaaa(X2, X3, X5, X6))
   U25_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> U26_AG(X1, X2, X3, X4, mergesortF_in_aga(X1, X6, X7))
   U25_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> MERGESORTF_IN_AGA(X1, X6, X7)
   U25_AG(X1, X2, X3, X4, splitcB_out_aaaa(X2, X3, X5, X6)) -> U27_AG(X1, X2, X3, X4, X5, mergesortcF_in_aga(X1, X6, X7))
   U27_AG(X1, X2, X3, X4, X5, mergesortcF_out_aga(X1, X6, X7)) -> U28_AG(X1, X2, X3, X4, mergesortE_in_ga(X5, X8))
   U27_AG(X1, X2, X3, X4, X5, mergesortcF_out_aga(X1, X6, X7)) -> MERGESORTE_IN_GA(X5, X8)
   MERGESORTI_IN_AG(.(X1, .(X2, X3)), .(X4, .(X4, X5))) -> U29_AG(X1, X2, X3, X4, X5, splitcB_in_aaaa(X2, X3, X6, X7))
   U29_AG(X1, X2, X3, X4, X5, splitcB_out_aaaa(X2, X3, X6, X7)) -> U30_AG(X1, X2, X3, X4, X5, X6, mergesortcF_in_aga(X1, X7, .(X4, X8)))
   U30_AG(X1, X2, X3, X4, X5, X6, mergesortcF_out_aga(X1, X7, .(X4, X8))) -> U31_AG(X1, X2, X3, X4, X5, X8, mergesortcE_in_ga(X6, .(X4, .(X4, X9))))
   U31_AG(X1, X2, X3, X4, X5, X8, mergesortcE_out_ga(X6, .(X4, .(X4, X9)))) -> U32_AG(X1, X2, X3, X4, X5, mergeH_in_aggg(X4, X8, X9, X5))
   U31_AG(X1, X2, X3, X4, X5, X8, mergesortcE_out_ga(X6, .(X4, .(X4, X9)))) -> MERGEH_IN_AGGG(X4, X8, X9, X5)
   MERGEH_IN_AGGG(X1, X2, .(X1, X3), .(X1, X4)) -> U13_AGGG(X1, X2, X3, X4, mergeH_in_aggg(X1, X2, X3, X4))
   MERGEH_IN_AGGG(X1, X2, .(X1, X3), .(X1, X4)) -> MERGEH_IN_AGGG(X1, X2, X3, X4)

The TRS R consists of the following rules:

   splitcB_in_aaaa(X1, X2, .(X1, X3), X4) -> U35_aaaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   splitcA_in_aaa([], [], []) -> splitcA_out_aaa([], [], [])
   splitcA_in_aaa(.(X1, X2), .(X1, X3), X4) -> U34_aaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   U34_aaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcA_out_aaa(.(X1, X2), .(X1, X3), X4)
   U35_aaaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcB_out_aaaa(X1, X2, .(X1, X3), X4)
   splitcB_in_agaa(X1, X2, .(X1, X3), X4) -> U35_agaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U34_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   U34_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4)
   U35_agaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X1, X2, .(X1, X3), X4)
   mergesortcE_in_ga([], []) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.(X1, []), .(X1, [])) -> mergesortcE_out_ga(.(X1, []), .(X1, []))
   mergesortcE_in_ga(.(X1, .(X2, X3)), X4) -> U40_ga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   qcC_in_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8) -> U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X5, X7))
   U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_in_gga(X6, X7, X8))
   mergecD_in_gga([], X1, X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, [], X1) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U41_gga(X1, X2, X3, X4, mergecD_in_gga(.(X1, X2), X3, X4))
   U41_gga(X1, X2, X3, X4, mergecD_out_gga(.(X1, X2), X3, X4)) -> mergecD_out_gga(.(X1, X2), .(X1, X3), .(X1, X4))
   U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8)
   U40_ga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(X1, .(X2, X3)), X4)
   mergesortcF_in_aga(X1, [], .(X1, [])) -> mergesortcF_out_aga(X1, [], .(X1, []))
   mergesortcF_in_aga(X1, .(X2, X3), X4) -> U42_aga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   U42_aga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcF_out_aga(X1, .(X2, X3), X4)

The argument filtering Pi contains the following mapping:
[]  =  []

splitB_in_aaaa(x1, x2, x3, x4)  =  splitB_in_aaaa

splitA_in_aaa(x1, x2, x3)  =  splitA_in_aaa

.(x1, x2)  =  .(x2)

splitcB_in_aaaa(x1, x2, x3, x4)  =  splitcB_in_aaaa

U35_aaaa(x1, x2, x3, x4, x5)  =  U35_aaaa(x5)

splitcA_in_aaa(x1, x2, x3)  =  splitcA_in_aaa

splitcA_out_aaa(x1, x2, x3)  =  splitcA_out_aaa(x1, x2, x3)

U34_aaa(x1, x2, x3, x4, x5)  =  U34_aaa(x5)

splitcB_out_aaaa(x1, x2, x3, x4)  =  splitcB_out_aaaa(x2, x3, x4)

mergesortF_in_aga(x1, x2, x3)  =  mergesortF_in_aga(x2)

pC_in_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  pC_in_aagaaaaa(x3)

splitB_in_agaa(x1, x2, x3, x4)  =  splitB_in_agaa(x2)

splitA_in_gaa(x1, x2, x3)  =  splitA_in_gaa(x1)

splitcB_in_agaa(x1, x2, x3, x4)  =  splitcB_in_agaa(x2)

U35_agaa(x1, x2, x3, x4, x5)  =  U35_agaa(x2, x5)

splitcA_in_gaa(x1, x2, x3)  =  splitcA_in_gaa(x1)

splitcA_out_gaa(x1, x2, x3)  =  splitcA_out_gaa(x1, x2, x3)

U34_gaa(x1, x2, x3, x4, x5)  =  U34_gaa(x2, x5)

splitcB_out_agaa(x1, x2, x3, x4)  =  splitcB_out_agaa(x2, x3, x4)

mergesortE_in_ga(x1, x2)  =  mergesortE_in_ga(x1)

mergesortcE_in_ga(x1, x2)  =  mergesortcE_in_ga(x1)

mergesortcE_out_ga(x1, x2)  =  mergesortcE_out_ga(x1, x2)

U40_ga(x1, x2, x3, x4, x5)  =  U40_ga(x3, x5)

qcC_in_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_in_aagaaaaa(x3)

U36_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U36_aagaaaaa(x3, x9)

U37_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U37_aagaaaaa(x3, x4, x5, x9)

U38_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U38_aagaaaaa(x3, x4, x5, x6, x9)

U39_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U39_aagaaaaa(x3, x4, x5, x6, x7, x9)

mergecD_in_gga(x1, x2, x3)  =  mergecD_in_gga(x1, x2)

mergecD_out_gga(x1, x2, x3)  =  mergecD_out_gga(x1, x2, x3)

U41_gga(x1, x2, x3, x4, x5)  =  U41_gga(x2, x3, x5)

qcC_out_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_out_aagaaaaa(x3, x4, x5, x6, x7, x8)

mergeD_in_gga(x1, x2, x3)  =  mergeD_in_gga(x1, x2)

mergesortcF_in_aga(x1, x2, x3)  =  mergesortcF_in_aga(x2)

mergesortcF_out_aga(x1, x2, x3)  =  mergesortcF_out_aga(x2, x3)

U42_aga(x1, x2, x3, x4, x5)  =  U42_aga(x3, x5)

mergeH_in_aggg(x1, x2, x3, x4)  =  mergeH_in_aggg(x2, x3, x4)

MERGESORTI_IN_AG(x1, x2)  =  MERGESORTI_IN_AG(x2)

U14_AG(x1, x2, x3, x4)  =  U14_AG(x4)

SPLITB_IN_AAAA(x1, x2, x3, x4)  =  SPLITB_IN_AAAA

U2_AAAA(x1, x2, x3, x4, x5)  =  U2_AAAA(x5)

SPLITA_IN_AAA(x1, x2, x3)  =  SPLITA_IN_AAA

U1_AAA(x1, x2, x3, x4, x5)  =  U1_AAA(x5)

U15_AG(x1, x2, x3, x4)  =  U15_AG(x4)

U16_AG(x1, x2, x3, x4)  =  U16_AG(x3, x4)

MERGESORTF_IN_AGA(x1, x2, x3)  =  MERGESORTF_IN_AGA(x2)

U12_AGA(x1, x2, x3, x4, x5)  =  U12_AGA(x3, x5)

PC_IN_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  PC_IN_AAGAAAAA(x3)

U3_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_AAGAAAAA(x3, x9)

SPLITB_IN_AGAA(x1, x2, x3, x4)  =  SPLITB_IN_AGAA(x2)

U2_AGAA(x1, x2, x3, x4, x5)  =  U2_AGAA(x2, x5)

SPLITA_IN_GAA(x1, x2, x3)  =  SPLITA_IN_GAA(x1)

U1_GAA(x1, x2, x3, x4, x5)  =  U1_GAA(x2, x5)

U4_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_AAGAAAAA(x3, x9)

U5_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U5_AAGAAAAA(x3, x4, x5, x9)

MERGESORTE_IN_GA(x1, x2)  =  MERGESORTE_IN_GA(x1)

U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x3, x5)

U6_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U6_AAGAAAAA(x3, x4, x5, x9)

U7_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U7_AAGAAAAA(x3, x4, x5, x9)

U8_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U8_AAGAAAAA(x3, x4, x5, x6, x9)

U9_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U9_AAGAAAAA(x3, x4, x5, x9)

MERGED_IN_GGA(x1, x2, x3)  =  MERGED_IN_GGA(x1, x2)

U11_GGA(x1, x2, x3, x4, x5)  =  U11_GGA(x2, x3, x5)

U17_AG(x1, x2, x3, x4, x5)  =  U17_AG(x3, x4, x5)

U18_AG(x1, x2, x3, x4)  =  U18_AG(x3, x4)

U19_AG(x1, x2, x3, x4, x5)  =  U19_AG(x5)

U20_AG(x1, x2, x3, x4, x5)  =  U20_AG(x5)

U21_AG(x1, x2, x3, x4, x5)  =  U21_AG(x3, x5)

U22_AG(x1, x2, x3, x4, x5, x6)  =  U22_AG(x3, x5, x6)

U23_AG(x1, x2, x3, x4, x5)  =  U23_AG(x3, x5)

U24_AG(x1, x2, x3, x4, x5)  =  U24_AG(x4, x5)

U25_AG(x1, x2, x3, x4, x5)  =  U25_AG(x4, x5)

U26_AG(x1, x2, x3, x4, x5)  =  U26_AG(x3, x4, x5)

U27_AG(x1, x2, x3, x4, x5, x6)  =  U27_AG(x3, x4, x5, x6)

U28_AG(x1, x2, x3, x4, x5)  =  U28_AG(x3, x4, x5)

U29_AG(x1, x2, x3, x4, x5, x6)  =  U29_AG(x5, x6)

U30_AG(x1, x2, x3, x4, x5, x6, x7)  =  U30_AG(x3, x5, x6, x7)

U31_AG(x1, x2, x3, x4, x5, x6, x7)  =  U31_AG(x3, x5, x6, x7)

U32_AG(x1, x2, x3, x4, x5, x6)  =  U32_AG(x3, x5, x6)

MERGEH_IN_AGGG(x1, x2, x3, x4)  =  MERGEH_IN_AGGG(x2, x3, x4)

U13_AGGG(x1, x2, x3, x4, x5)  =  U13_AGGG(x2, x3, x4, x5)


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

(138) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 5 SCCs with 47 less nodes.
----------------------------------------

(139)
Complex Obligation (AND)

----------------------------------------

(140)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MERGEH_IN_AGGG(X1, X2, .(X1, X3), .(X1, X4)) -> MERGEH_IN_AGGG(X1, X2, X3, X4)

The TRS R consists of the following rules:

   splitcB_in_aaaa(X1, X2, .(X1, X3), X4) -> U35_aaaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   splitcA_in_aaa([], [], []) -> splitcA_out_aaa([], [], [])
   splitcA_in_aaa(.(X1, X2), .(X1, X3), X4) -> U34_aaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   U34_aaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcA_out_aaa(.(X1, X2), .(X1, X3), X4)
   U35_aaaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcB_out_aaaa(X1, X2, .(X1, X3), X4)
   splitcB_in_agaa(X1, X2, .(X1, X3), X4) -> U35_agaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U34_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   U34_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4)
   U35_agaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X1, X2, .(X1, X3), X4)
   mergesortcE_in_ga([], []) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.(X1, []), .(X1, [])) -> mergesortcE_out_ga(.(X1, []), .(X1, []))
   mergesortcE_in_ga(.(X1, .(X2, X3)), X4) -> U40_ga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   qcC_in_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8) -> U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X5, X7))
   U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_in_gga(X6, X7, X8))
   mergecD_in_gga([], X1, X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, [], X1) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U41_gga(X1, X2, X3, X4, mergecD_in_gga(.(X1, X2), X3, X4))
   U41_gga(X1, X2, X3, X4, mergecD_out_gga(.(X1, X2), X3, X4)) -> mergecD_out_gga(.(X1, X2), .(X1, X3), .(X1, X4))
   U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8)
   U40_ga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(X1, .(X2, X3)), X4)
   mergesortcF_in_aga(X1, [], .(X1, [])) -> mergesortcF_out_aga(X1, [], .(X1, []))
   mergesortcF_in_aga(X1, .(X2, X3), X4) -> U42_aga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   U42_aga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcF_out_aga(X1, .(X2, X3), X4)

The argument filtering Pi contains the following mapping:
[]  =  []

.(x1, x2)  =  .(x2)

splitcB_in_aaaa(x1, x2, x3, x4)  =  splitcB_in_aaaa

U35_aaaa(x1, x2, x3, x4, x5)  =  U35_aaaa(x5)

splitcA_in_aaa(x1, x2, x3)  =  splitcA_in_aaa

splitcA_out_aaa(x1, x2, x3)  =  splitcA_out_aaa(x1, x2, x3)

U34_aaa(x1, x2, x3, x4, x5)  =  U34_aaa(x5)

splitcB_out_aaaa(x1, x2, x3, x4)  =  splitcB_out_aaaa(x2, x3, x4)

splitcB_in_agaa(x1, x2, x3, x4)  =  splitcB_in_agaa(x2)

U35_agaa(x1, x2, x3, x4, x5)  =  U35_agaa(x2, x5)

splitcA_in_gaa(x1, x2, x3)  =  splitcA_in_gaa(x1)

splitcA_out_gaa(x1, x2, x3)  =  splitcA_out_gaa(x1, x2, x3)

U34_gaa(x1, x2, x3, x4, x5)  =  U34_gaa(x2, x5)

splitcB_out_agaa(x1, x2, x3, x4)  =  splitcB_out_agaa(x2, x3, x4)

mergesortcE_in_ga(x1, x2)  =  mergesortcE_in_ga(x1)

mergesortcE_out_ga(x1, x2)  =  mergesortcE_out_ga(x1, x2)

U40_ga(x1, x2, x3, x4, x5)  =  U40_ga(x3, x5)

qcC_in_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_in_aagaaaaa(x3)

U36_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U36_aagaaaaa(x3, x9)

U37_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U37_aagaaaaa(x3, x4, x5, x9)

U38_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U38_aagaaaaa(x3, x4, x5, x6, x9)

U39_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U39_aagaaaaa(x3, x4, x5, x6, x7, x9)

mergecD_in_gga(x1, x2, x3)  =  mergecD_in_gga(x1, x2)

mergecD_out_gga(x1, x2, x3)  =  mergecD_out_gga(x1, x2, x3)

U41_gga(x1, x2, x3, x4, x5)  =  U41_gga(x2, x3, x5)

qcC_out_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_out_aagaaaaa(x3, x4, x5, x6, x7, x8)

mergesortcF_in_aga(x1, x2, x3)  =  mergesortcF_in_aga(x2)

mergesortcF_out_aga(x1, x2, x3)  =  mergesortcF_out_aga(x2, x3)

U42_aga(x1, x2, x3, x4, x5)  =  U42_aga(x3, x5)

MERGEH_IN_AGGG(x1, x2, x3, x4)  =  MERGEH_IN_AGGG(x2, x3, x4)


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

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

(142)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MERGEH_IN_AGGG(X1, X2, .(X1, X3), .(X1, X4)) -> MERGEH_IN_AGGG(X1, X2, X3, X4)

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

MERGEH_IN_AGGG(x1, x2, x3, x4)  =  MERGEH_IN_AGGG(x2, x3, x4)


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

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

(144)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MERGEH_IN_AGGG(X2, .(X3), .(X4)) -> MERGEH_IN_AGGG(X2, X3, X4)

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

(145) QDPSizeChangeProof (EQUIVALENT)
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:
*MERGEH_IN_AGGG(X2, .(X3), .(X4)) -> MERGEH_IN_AGGG(X2, X3, X4)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3


----------------------------------------

(146)
YES

----------------------------------------

(147)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MERGED_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> MERGED_IN_GGA(.(X1, X2), X3, X4)

The TRS R consists of the following rules:

   splitcB_in_aaaa(X1, X2, .(X1, X3), X4) -> U35_aaaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   splitcA_in_aaa([], [], []) -> splitcA_out_aaa([], [], [])
   splitcA_in_aaa(.(X1, X2), .(X1, X3), X4) -> U34_aaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   U34_aaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcA_out_aaa(.(X1, X2), .(X1, X3), X4)
   U35_aaaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcB_out_aaaa(X1, X2, .(X1, X3), X4)
   splitcB_in_agaa(X1, X2, .(X1, X3), X4) -> U35_agaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U34_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   U34_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4)
   U35_agaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X1, X2, .(X1, X3), X4)
   mergesortcE_in_ga([], []) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.(X1, []), .(X1, [])) -> mergesortcE_out_ga(.(X1, []), .(X1, []))
   mergesortcE_in_ga(.(X1, .(X2, X3)), X4) -> U40_ga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   qcC_in_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8) -> U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X5, X7))
   U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_in_gga(X6, X7, X8))
   mergecD_in_gga([], X1, X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, [], X1) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U41_gga(X1, X2, X3, X4, mergecD_in_gga(.(X1, X2), X3, X4))
   U41_gga(X1, X2, X3, X4, mergecD_out_gga(.(X1, X2), X3, X4)) -> mergecD_out_gga(.(X1, X2), .(X1, X3), .(X1, X4))
   U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8)
   U40_ga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(X1, .(X2, X3)), X4)
   mergesortcF_in_aga(X1, [], .(X1, [])) -> mergesortcF_out_aga(X1, [], .(X1, []))
   mergesortcF_in_aga(X1, .(X2, X3), X4) -> U42_aga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   U42_aga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcF_out_aga(X1, .(X2, X3), X4)

The argument filtering Pi contains the following mapping:
[]  =  []

.(x1, x2)  =  .(x2)

splitcB_in_aaaa(x1, x2, x3, x4)  =  splitcB_in_aaaa

U35_aaaa(x1, x2, x3, x4, x5)  =  U35_aaaa(x5)

splitcA_in_aaa(x1, x2, x3)  =  splitcA_in_aaa

splitcA_out_aaa(x1, x2, x3)  =  splitcA_out_aaa(x1, x2, x3)

U34_aaa(x1, x2, x3, x4, x5)  =  U34_aaa(x5)

splitcB_out_aaaa(x1, x2, x3, x4)  =  splitcB_out_aaaa(x2, x3, x4)

splitcB_in_agaa(x1, x2, x3, x4)  =  splitcB_in_agaa(x2)

U35_agaa(x1, x2, x3, x4, x5)  =  U35_agaa(x2, x5)

splitcA_in_gaa(x1, x2, x3)  =  splitcA_in_gaa(x1)

splitcA_out_gaa(x1, x2, x3)  =  splitcA_out_gaa(x1, x2, x3)

U34_gaa(x1, x2, x3, x4, x5)  =  U34_gaa(x2, x5)

splitcB_out_agaa(x1, x2, x3, x4)  =  splitcB_out_agaa(x2, x3, x4)

mergesortcE_in_ga(x1, x2)  =  mergesortcE_in_ga(x1)

mergesortcE_out_ga(x1, x2)  =  mergesortcE_out_ga(x1, x2)

U40_ga(x1, x2, x3, x4, x5)  =  U40_ga(x3, x5)

qcC_in_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_in_aagaaaaa(x3)

U36_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U36_aagaaaaa(x3, x9)

U37_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U37_aagaaaaa(x3, x4, x5, x9)

U38_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U38_aagaaaaa(x3, x4, x5, x6, x9)

U39_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U39_aagaaaaa(x3, x4, x5, x6, x7, x9)

mergecD_in_gga(x1, x2, x3)  =  mergecD_in_gga(x1, x2)

mergecD_out_gga(x1, x2, x3)  =  mergecD_out_gga(x1, x2, x3)

U41_gga(x1, x2, x3, x4, x5)  =  U41_gga(x2, x3, x5)

qcC_out_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_out_aagaaaaa(x3, x4, x5, x6, x7, x8)

mergesortcF_in_aga(x1, x2, x3)  =  mergesortcF_in_aga(x2)

mergesortcF_out_aga(x1, x2, x3)  =  mergesortcF_out_aga(x2, x3)

U42_aga(x1, x2, x3, x4, x5)  =  U42_aga(x3, x5)

MERGED_IN_GGA(x1, x2, x3)  =  MERGED_IN_GGA(x1, x2)


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

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

(149)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MERGED_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> MERGED_IN_GGA(.(X1, X2), X3, X4)

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

MERGED_IN_GGA(x1, x2, x3)  =  MERGED_IN_GGA(x1, x2)


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

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

(151)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MERGED_IN_GGA(.(X2), .(X3)) -> MERGED_IN_GGA(.(X2), X3)

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

(152) QDPSizeChangeProof (EQUIVALENT)
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:
*MERGED_IN_GGA(.(X2), .(X3)) -> MERGED_IN_GGA(.(X2), X3)
The graph contains the following edges 1 >= 1, 2 > 2


----------------------------------------

(153)
YES

----------------------------------------

(154)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_GAA(X2, X4, X3)

The TRS R consists of the following rules:

   splitcB_in_aaaa(X1, X2, .(X1, X3), X4) -> U35_aaaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   splitcA_in_aaa([], [], []) -> splitcA_out_aaa([], [], [])
   splitcA_in_aaa(.(X1, X2), .(X1, X3), X4) -> U34_aaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   U34_aaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcA_out_aaa(.(X1, X2), .(X1, X3), X4)
   U35_aaaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcB_out_aaaa(X1, X2, .(X1, X3), X4)
   splitcB_in_agaa(X1, X2, .(X1, X3), X4) -> U35_agaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U34_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   U34_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4)
   U35_agaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X1, X2, .(X1, X3), X4)
   mergesortcE_in_ga([], []) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.(X1, []), .(X1, [])) -> mergesortcE_out_ga(.(X1, []), .(X1, []))
   mergesortcE_in_ga(.(X1, .(X2, X3)), X4) -> U40_ga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   qcC_in_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8) -> U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X5, X7))
   U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_in_gga(X6, X7, X8))
   mergecD_in_gga([], X1, X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, [], X1) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U41_gga(X1, X2, X3, X4, mergecD_in_gga(.(X1, X2), X3, X4))
   U41_gga(X1, X2, X3, X4, mergecD_out_gga(.(X1, X2), X3, X4)) -> mergecD_out_gga(.(X1, X2), .(X1, X3), .(X1, X4))
   U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8)
   U40_ga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(X1, .(X2, X3)), X4)
   mergesortcF_in_aga(X1, [], .(X1, [])) -> mergesortcF_out_aga(X1, [], .(X1, []))
   mergesortcF_in_aga(X1, .(X2, X3), X4) -> U42_aga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   U42_aga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcF_out_aga(X1, .(X2, X3), X4)

The argument filtering Pi contains the following mapping:
[]  =  []

.(x1, x2)  =  .(x2)

splitcB_in_aaaa(x1, x2, x3, x4)  =  splitcB_in_aaaa

U35_aaaa(x1, x2, x3, x4, x5)  =  U35_aaaa(x5)

splitcA_in_aaa(x1, x2, x3)  =  splitcA_in_aaa

splitcA_out_aaa(x1, x2, x3)  =  splitcA_out_aaa(x1, x2, x3)

U34_aaa(x1, x2, x3, x4, x5)  =  U34_aaa(x5)

splitcB_out_aaaa(x1, x2, x3, x4)  =  splitcB_out_aaaa(x2, x3, x4)

splitcB_in_agaa(x1, x2, x3, x4)  =  splitcB_in_agaa(x2)

U35_agaa(x1, x2, x3, x4, x5)  =  U35_agaa(x2, x5)

splitcA_in_gaa(x1, x2, x3)  =  splitcA_in_gaa(x1)

splitcA_out_gaa(x1, x2, x3)  =  splitcA_out_gaa(x1, x2, x3)

U34_gaa(x1, x2, x3, x4, x5)  =  U34_gaa(x2, x5)

splitcB_out_agaa(x1, x2, x3, x4)  =  splitcB_out_agaa(x2, x3, x4)

mergesortcE_in_ga(x1, x2)  =  mergesortcE_in_ga(x1)

mergesortcE_out_ga(x1, x2)  =  mergesortcE_out_ga(x1, x2)

U40_ga(x1, x2, x3, x4, x5)  =  U40_ga(x3, x5)

qcC_in_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_in_aagaaaaa(x3)

U36_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U36_aagaaaaa(x3, x9)

U37_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U37_aagaaaaa(x3, x4, x5, x9)

U38_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U38_aagaaaaa(x3, x4, x5, x6, x9)

U39_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U39_aagaaaaa(x3, x4, x5, x6, x7, x9)

mergecD_in_gga(x1, x2, x3)  =  mergecD_in_gga(x1, x2)

mergecD_out_gga(x1, x2, x3)  =  mergecD_out_gga(x1, x2, x3)

U41_gga(x1, x2, x3, x4, x5)  =  U41_gga(x2, x3, x5)

qcC_out_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_out_aagaaaaa(x3, x4, x5, x6, x7, x8)

mergesortcF_in_aga(x1, x2, x3)  =  mergesortcF_in_aga(x2)

mergesortcF_out_aga(x1, x2, x3)  =  mergesortcF_out_aga(x2, x3)

U42_aga(x1, x2, x3, x4, x5)  =  U42_aga(x3, x5)

SPLITA_IN_GAA(x1, x2, x3)  =  SPLITA_IN_GAA(x1)


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

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

(156)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_GAA(X2, X4, X3)

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

SPLITA_IN_GAA(x1, x2, x3)  =  SPLITA_IN_GAA(x1)


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

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

(158)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   SPLITA_IN_GAA(.(X2)) -> SPLITA_IN_GAA(X2)

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

(159) QDPSizeChangeProof (EQUIVALENT)
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:
*SPLITA_IN_GAA(.(X2)) -> SPLITA_IN_GAA(X2)
The graph contains the following edges 1 > 1


----------------------------------------

(160)
YES

----------------------------------------

(161)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   PC_IN_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8) -> U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> MERGESORTE_IN_GA(X4, X6)
   MERGESORTE_IN_GA(.(X1, .(X2, X3)), X4) -> PC_IN_AAGAAAAA(X1, X2, X3, X5, X6, X7, X8, X4)
   U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> MERGESORTE_IN_GA(X5, X7)

The TRS R consists of the following rules:

   splitcB_in_aaaa(X1, X2, .(X1, X3), X4) -> U35_aaaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   splitcA_in_aaa([], [], []) -> splitcA_out_aaa([], [], [])
   splitcA_in_aaa(.(X1, X2), .(X1, X3), X4) -> U34_aaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   U34_aaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcA_out_aaa(.(X1, X2), .(X1, X3), X4)
   U35_aaaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcB_out_aaaa(X1, X2, .(X1, X3), X4)
   splitcB_in_agaa(X1, X2, .(X1, X3), X4) -> U35_agaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U34_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   U34_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4)
   U35_agaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X1, X2, .(X1, X3), X4)
   mergesortcE_in_ga([], []) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.(X1, []), .(X1, [])) -> mergesortcE_out_ga(.(X1, []), .(X1, []))
   mergesortcE_in_ga(.(X1, .(X2, X3)), X4) -> U40_ga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   qcC_in_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8) -> U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X5, X7))
   U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_in_gga(X6, X7, X8))
   mergecD_in_gga([], X1, X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, [], X1) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U41_gga(X1, X2, X3, X4, mergecD_in_gga(.(X1, X2), X3, X4))
   U41_gga(X1, X2, X3, X4, mergecD_out_gga(.(X1, X2), X3, X4)) -> mergecD_out_gga(.(X1, X2), .(X1, X3), .(X1, X4))
   U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8)
   U40_ga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(X1, .(X2, X3)), X4)
   mergesortcF_in_aga(X1, [], .(X1, [])) -> mergesortcF_out_aga(X1, [], .(X1, []))
   mergesortcF_in_aga(X1, .(X2, X3), X4) -> U42_aga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   U42_aga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcF_out_aga(X1, .(X2, X3), X4)

The argument filtering Pi contains the following mapping:
[]  =  []

.(x1, x2)  =  .(x2)

splitcB_in_aaaa(x1, x2, x3, x4)  =  splitcB_in_aaaa

U35_aaaa(x1, x2, x3, x4, x5)  =  U35_aaaa(x5)

splitcA_in_aaa(x1, x2, x3)  =  splitcA_in_aaa

splitcA_out_aaa(x1, x2, x3)  =  splitcA_out_aaa(x1, x2, x3)

U34_aaa(x1, x2, x3, x4, x5)  =  U34_aaa(x5)

splitcB_out_aaaa(x1, x2, x3, x4)  =  splitcB_out_aaaa(x2, x3, x4)

splitcB_in_agaa(x1, x2, x3, x4)  =  splitcB_in_agaa(x2)

U35_agaa(x1, x2, x3, x4, x5)  =  U35_agaa(x2, x5)

splitcA_in_gaa(x1, x2, x3)  =  splitcA_in_gaa(x1)

splitcA_out_gaa(x1, x2, x3)  =  splitcA_out_gaa(x1, x2, x3)

U34_gaa(x1, x2, x3, x4, x5)  =  U34_gaa(x2, x5)

splitcB_out_agaa(x1, x2, x3, x4)  =  splitcB_out_agaa(x2, x3, x4)

mergesortcE_in_ga(x1, x2)  =  mergesortcE_in_ga(x1)

mergesortcE_out_ga(x1, x2)  =  mergesortcE_out_ga(x1, x2)

U40_ga(x1, x2, x3, x4, x5)  =  U40_ga(x3, x5)

qcC_in_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_in_aagaaaaa(x3)

U36_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U36_aagaaaaa(x3, x9)

U37_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U37_aagaaaaa(x3, x4, x5, x9)

U38_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U38_aagaaaaa(x3, x4, x5, x6, x9)

U39_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U39_aagaaaaa(x3, x4, x5, x6, x7, x9)

mergecD_in_gga(x1, x2, x3)  =  mergecD_in_gga(x1, x2)

mergecD_out_gga(x1, x2, x3)  =  mergecD_out_gga(x1, x2, x3)

U41_gga(x1, x2, x3, x4, x5)  =  U41_gga(x2, x3, x5)

qcC_out_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_out_aagaaaaa(x3, x4, x5, x6, x7, x8)

mergesortcF_in_aga(x1, x2, x3)  =  mergesortcF_in_aga(x2)

mergesortcF_out_aga(x1, x2, x3)  =  mergesortcF_out_aga(x2, x3)

U42_aga(x1, x2, x3, x4, x5)  =  U42_aga(x3, x5)

PC_IN_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  PC_IN_AAGAAAAA(x3)

U4_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_AAGAAAAA(x3, x9)

MERGESORTE_IN_GA(x1, x2)  =  MERGESORTE_IN_GA(x1)

U6_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U6_AAGAAAAA(x3, x4, x5, x9)


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

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

(163)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   PC_IN_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8) -> U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> MERGESORTE_IN_GA(X4, X6)
   MERGESORTE_IN_GA(.(X1, .(X2, X3)), X4) -> PC_IN_AAGAAAAA(X1, X2, X3, X5, X6, X7, X8, X4)
   U4_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U6_AAGAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> MERGESORTE_IN_GA(X5, X7)

The TRS R consists of the following rules:

   splitcB_in_agaa(X1, X2, .(X1, X3), X4) -> U35_agaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   mergesortcE_in_ga([], []) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.(X1, []), .(X1, [])) -> mergesortcE_out_ga(.(X1, []), .(X1, []))
   mergesortcE_in_ga(.(X1, .(X2, X3)), X4) -> U40_ga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   U35_agaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X1, X2, .(X1, X3), X4)
   U40_ga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(X1, .(X2, X3)), X4)
   splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U34_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   qcC_in_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8) -> U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U34_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4)
   U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X5, X7))
   U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_in_gga(X6, X7, X8))
   U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8)
   mergecD_in_gga([], X1, X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, [], X1) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U41_gga(X1, X2, X3, X4, mergecD_in_gga(.(X1, X2), X3, X4))
   U41_gga(X1, X2, X3, X4, mergecD_out_gga(.(X1, X2), X3, X4)) -> mergecD_out_gga(.(X1, X2), .(X1, X3), .(X1, X4))

The argument filtering Pi contains the following mapping:
[]  =  []

.(x1, x2)  =  .(x2)

splitcB_in_agaa(x1, x2, x3, x4)  =  splitcB_in_agaa(x2)

U35_agaa(x1, x2, x3, x4, x5)  =  U35_agaa(x2, x5)

splitcA_in_gaa(x1, x2, x3)  =  splitcA_in_gaa(x1)

splitcA_out_gaa(x1, x2, x3)  =  splitcA_out_gaa(x1, x2, x3)

U34_gaa(x1, x2, x3, x4, x5)  =  U34_gaa(x2, x5)

splitcB_out_agaa(x1, x2, x3, x4)  =  splitcB_out_agaa(x2, x3, x4)

mergesortcE_in_ga(x1, x2)  =  mergesortcE_in_ga(x1)

mergesortcE_out_ga(x1, x2)  =  mergesortcE_out_ga(x1, x2)

U40_ga(x1, x2, x3, x4, x5)  =  U40_ga(x3, x5)

qcC_in_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_in_aagaaaaa(x3)

U36_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U36_aagaaaaa(x3, x9)

U37_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U37_aagaaaaa(x3, x4, x5, x9)

U38_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U38_aagaaaaa(x3, x4, x5, x6, x9)

U39_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U39_aagaaaaa(x3, x4, x5, x6, x7, x9)

mergecD_in_gga(x1, x2, x3)  =  mergecD_in_gga(x1, x2)

mergecD_out_gga(x1, x2, x3)  =  mergecD_out_gga(x1, x2, x3)

U41_gga(x1, x2, x3, x4, x5)  =  U41_gga(x2, x3, x5)

qcC_out_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_out_aagaaaaa(x3, x4, x5, x6, x7, x8)

PC_IN_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  PC_IN_AAGAAAAA(x3)

U4_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_AAGAAAAA(x3, x9)

MERGESORTE_IN_GA(x1, x2)  =  MERGESORTE_IN_GA(x1)

U6_AAGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U6_AAGAAAAA(x3, x4, x5, x9)


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

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

(165)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   PC_IN_AAGAAAAA(X3) -> U4_AAGAAAAA(X3, splitcB_in_agaa(.(X3)))
   U4_AAGAAAAA(X3, splitcB_out_agaa(.(X3), X4, X5)) -> MERGESORTE_IN_GA(X4)
   MERGESORTE_IN_GA(.(.(X3))) -> PC_IN_AAGAAAAA(X3)
   U4_AAGAAAAA(X3, splitcB_out_agaa(.(X3), X4, X5)) -> U6_AAGAAAAA(X3, X4, X5, mergesortcE_in_ga(X4))
   U6_AAGAAAAA(X3, X4, X5, mergesortcE_out_ga(X4, X6)) -> MERGESORTE_IN_GA(X5)

The TRS R consists of the following rules:

   splitcB_in_agaa(X2) -> U35_agaa(X2, splitcA_in_gaa(X2))
   mergesortcE_in_ga([]) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.([])) -> mergesortcE_out_ga(.([]), .([]))
   mergesortcE_in_ga(.(.(X3))) -> U40_ga(X3, qcC_in_aagaaaaa(X3))
   U35_agaa(X2, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X2, .(X3), X4)
   U40_ga(X3, qcC_out_aagaaaaa(X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(.(X3)), X4)
   splitcA_in_gaa([]) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X2)) -> U34_gaa(X2, splitcA_in_gaa(X2))
   qcC_in_aagaaaaa(X3) -> U36_aagaaaaa(X3, splitcB_in_agaa(.(X3)))
   U34_gaa(X2, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X2), .(X3), X4)
   U36_aagaaaaa(X3, splitcB_out_agaa(.(X3), X4, X5)) -> U37_aagaaaaa(X3, X4, X5, mergesortcE_in_ga(X4))
   U37_aagaaaaa(X3, X4, X5, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X3, X4, X5, X6, mergesortcE_in_ga(X5))
   U38_aagaaaaa(X3, X4, X5, X6, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X3, X4, X5, X6, X7, mergecD_in_gga(X6, X7))
   U39_aagaaaaa(X3, X4, X5, X6, X7, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X3, X4, X5, X6, X7, X8)
   mergecD_in_gga([], X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, []) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X2), .(X3)) -> U41_gga(X2, X3, mergecD_in_gga(.(X2), X3))
   U41_gga(X2, X3, mergecD_out_gga(.(X2), X3, X4)) -> mergecD_out_gga(.(X2), .(X3), .(X4))

The set Q consists of the following terms:

   splitcB_in_agaa(x0)
   mergesortcE_in_ga(x0)
   U35_agaa(x0, x1)
   U40_ga(x0, x1)
   splitcA_in_gaa(x0)
   qcC_in_aagaaaaa(x0)
   U34_gaa(x0, x1)
   U36_aagaaaaa(x0, x1)
   U37_aagaaaaa(x0, x1, x2, x3)
   U38_aagaaaaa(x0, x1, x2, x3, x4)
   U39_aagaaaaa(x0, x1, x2, x3, x4, x5)
   mergecD_in_gga(x0, x1)
   U41_gga(x0, x1, x2)

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

(166) TransformationProof (EQUIVALENT)
By rewriting [LPAR04] the rule PC_IN_AAGAAAAA(X3) -> U4_AAGAAAAA(X3, splitcB_in_agaa(.(X3))) at position [1] we obtained the following new rules [LPAR04]:

   (PC_IN_AAGAAAAA(X3) -> U4_AAGAAAAA(X3, U35_agaa(.(X3), splitcA_in_gaa(.(X3)))),PC_IN_AAGAAAAA(X3) -> U4_AAGAAAAA(X3, U35_agaa(.(X3), splitcA_in_gaa(.(X3)))))


----------------------------------------

(167)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U4_AAGAAAAA(X3, splitcB_out_agaa(.(X3), X4, X5)) -> MERGESORTE_IN_GA(X4)
   MERGESORTE_IN_GA(.(.(X3))) -> PC_IN_AAGAAAAA(X3)
   U4_AAGAAAAA(X3, splitcB_out_agaa(.(X3), X4, X5)) -> U6_AAGAAAAA(X3, X4, X5, mergesortcE_in_ga(X4))
   U6_AAGAAAAA(X3, X4, X5, mergesortcE_out_ga(X4, X6)) -> MERGESORTE_IN_GA(X5)
   PC_IN_AAGAAAAA(X3) -> U4_AAGAAAAA(X3, U35_agaa(.(X3), splitcA_in_gaa(.(X3))))

The TRS R consists of the following rules:

   splitcB_in_agaa(X2) -> U35_agaa(X2, splitcA_in_gaa(X2))
   mergesortcE_in_ga([]) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.([])) -> mergesortcE_out_ga(.([]), .([]))
   mergesortcE_in_ga(.(.(X3))) -> U40_ga(X3, qcC_in_aagaaaaa(X3))
   U35_agaa(X2, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X2, .(X3), X4)
   U40_ga(X3, qcC_out_aagaaaaa(X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(.(X3)), X4)
   splitcA_in_gaa([]) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X2)) -> U34_gaa(X2, splitcA_in_gaa(X2))
   qcC_in_aagaaaaa(X3) -> U36_aagaaaaa(X3, splitcB_in_agaa(.(X3)))
   U34_gaa(X2, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X2), .(X3), X4)
   U36_aagaaaaa(X3, splitcB_out_agaa(.(X3), X4, X5)) -> U37_aagaaaaa(X3, X4, X5, mergesortcE_in_ga(X4))
   U37_aagaaaaa(X3, X4, X5, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X3, X4, X5, X6, mergesortcE_in_ga(X5))
   U38_aagaaaaa(X3, X4, X5, X6, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X3, X4, X5, X6, X7, mergecD_in_gga(X6, X7))
   U39_aagaaaaa(X3, X4, X5, X6, X7, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X3, X4, X5, X6, X7, X8)
   mergecD_in_gga([], X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, []) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X2), .(X3)) -> U41_gga(X2, X3, mergecD_in_gga(.(X2), X3))
   U41_gga(X2, X3, mergecD_out_gga(.(X2), X3, X4)) -> mergecD_out_gga(.(X2), .(X3), .(X4))

The set Q consists of the following terms:

   splitcB_in_agaa(x0)
   mergesortcE_in_ga(x0)
   U35_agaa(x0, x1)
   U40_ga(x0, x1)
   splitcA_in_gaa(x0)
   qcC_in_aagaaaaa(x0)
   U34_gaa(x0, x1)
   U36_aagaaaaa(x0, x1)
   U37_aagaaaaa(x0, x1, x2, x3)
   U38_aagaaaaa(x0, x1, x2, x3, x4)
   U39_aagaaaaa(x0, x1, x2, x3, x4, x5)
   mergecD_in_gga(x0, x1)
   U41_gga(x0, x1, x2)

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

(168) TransformationProof (EQUIVALENT)
By rewriting [LPAR04] the rule PC_IN_AAGAAAAA(X3) -> U4_AAGAAAAA(X3, U35_agaa(.(X3), splitcA_in_gaa(.(X3)))) at position [1,1] we obtained the following new rules [LPAR04]:

   (PC_IN_AAGAAAAA(X3) -> U4_AAGAAAAA(X3, U35_agaa(.(X3), U34_gaa(X3, splitcA_in_gaa(X3)))),PC_IN_AAGAAAAA(X3) -> U4_AAGAAAAA(X3, U35_agaa(.(X3), U34_gaa(X3, splitcA_in_gaa(X3)))))


----------------------------------------

(169)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U4_AAGAAAAA(X3, splitcB_out_agaa(.(X3), X4, X5)) -> MERGESORTE_IN_GA(X4)
   MERGESORTE_IN_GA(.(.(X3))) -> PC_IN_AAGAAAAA(X3)
   U4_AAGAAAAA(X3, splitcB_out_agaa(.(X3), X4, X5)) -> U6_AAGAAAAA(X3, X4, X5, mergesortcE_in_ga(X4))
   U6_AAGAAAAA(X3, X4, X5, mergesortcE_out_ga(X4, X6)) -> MERGESORTE_IN_GA(X5)
   PC_IN_AAGAAAAA(X3) -> U4_AAGAAAAA(X3, U35_agaa(.(X3), U34_gaa(X3, splitcA_in_gaa(X3))))

The TRS R consists of the following rules:

   splitcB_in_agaa(X2) -> U35_agaa(X2, splitcA_in_gaa(X2))
   mergesortcE_in_ga([]) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.([])) -> mergesortcE_out_ga(.([]), .([]))
   mergesortcE_in_ga(.(.(X3))) -> U40_ga(X3, qcC_in_aagaaaaa(X3))
   U35_agaa(X2, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X2, .(X3), X4)
   U40_ga(X3, qcC_out_aagaaaaa(X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(.(X3)), X4)
   splitcA_in_gaa([]) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X2)) -> U34_gaa(X2, splitcA_in_gaa(X2))
   qcC_in_aagaaaaa(X3) -> U36_aagaaaaa(X3, splitcB_in_agaa(.(X3)))
   U34_gaa(X2, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X2), .(X3), X4)
   U36_aagaaaaa(X3, splitcB_out_agaa(.(X3), X4, X5)) -> U37_aagaaaaa(X3, X4, X5, mergesortcE_in_ga(X4))
   U37_aagaaaaa(X3, X4, X5, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X3, X4, X5, X6, mergesortcE_in_ga(X5))
   U38_aagaaaaa(X3, X4, X5, X6, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X3, X4, X5, X6, X7, mergecD_in_gga(X6, X7))
   U39_aagaaaaa(X3, X4, X5, X6, X7, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X3, X4, X5, X6, X7, X8)
   mergecD_in_gga([], X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, []) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X2), .(X3)) -> U41_gga(X2, X3, mergecD_in_gga(.(X2), X3))
   U41_gga(X2, X3, mergecD_out_gga(.(X2), X3, X4)) -> mergecD_out_gga(.(X2), .(X3), .(X4))

The set Q consists of the following terms:

   splitcB_in_agaa(x0)
   mergesortcE_in_ga(x0)
   U35_agaa(x0, x1)
   U40_ga(x0, x1)
   splitcA_in_gaa(x0)
   qcC_in_aagaaaaa(x0)
   U34_gaa(x0, x1)
   U36_aagaaaaa(x0, x1)
   U37_aagaaaaa(x0, x1, x2, x3)
   U38_aagaaaaa(x0, x1, x2, x3, x4)
   U39_aagaaaaa(x0, x1, x2, x3, x4, x5)
   mergecD_in_gga(x0, x1)
   U41_gga(x0, x1, x2)

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

(170) QDPQMonotonicMRRProof (EQUIVALENT)
By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.

Strictly oriented dependency pairs:

   MERGESORTE_IN_GA(.(.(X3))) -> PC_IN_AAGAAAAA(X3)


Used ordering: Polynomial interpretation [POLO]:

   POL(.(x_1)) = 1 + 2*x_1
   POL(MERGESORTE_IN_GA(x_1)) = x_1
   POL(PC_IN_AAGAAAAA(x_1)) = 2 + 2*x_1
   POL(U34_gaa(x_1, x_2)) = 1 + 2*x_2
   POL(U35_agaa(x_1, x_2)) = 1 + x_2
   POL(U36_aagaaaaa(x_1, x_2)) = 2
   POL(U37_aagaaaaa(x_1, x_2, x_3, x_4)) = 1
   POL(U38_aagaaaaa(x_1, x_2, x_3, x_4, x_5)) = 1
   POL(U39_aagaaaaa(x_1, x_2, x_3, x_4, x_5, x_6)) = 0
   POL(U40_ga(x_1, x_2)) = 0
   POL(U41_gga(x_1, x_2, x_3)) = 0
   POL(U4_AAGAAAAA(x_1, x_2)) = x_2
   POL(U6_AAGAAAAA(x_1, x_2, x_3, x_4)) = x_3
   POL([]) = 0
   POL(mergecD_in_gga(x_1, x_2)) = 0
   POL(mergecD_out_gga(x_1, x_2, x_3)) = 0
   POL(mergesortcE_in_ga(x_1)) = 0
   POL(mergesortcE_out_ga(x_1, x_2)) = 0
   POL(qcC_in_aagaaaaa(x_1)) = 2
   POL(qcC_out_aagaaaaa(x_1, x_2, x_3, x_4, x_5, x_6)) = 0
   POL(splitcA_in_gaa(x_1)) = x_1
   POL(splitcA_out_gaa(x_1, x_2, x_3)) = x_2 + 2*x_3
   POL(splitcB_in_agaa(x_1)) = 2 + x_1
   POL(splitcB_out_agaa(x_1, x_2, x_3)) = x_2 + x_3


----------------------------------------

(171)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U4_AAGAAAAA(X3, splitcB_out_agaa(.(X3), X4, X5)) -> MERGESORTE_IN_GA(X4)
   U4_AAGAAAAA(X3, splitcB_out_agaa(.(X3), X4, X5)) -> U6_AAGAAAAA(X3, X4, X5, mergesortcE_in_ga(X4))
   U6_AAGAAAAA(X3, X4, X5, mergesortcE_out_ga(X4, X6)) -> MERGESORTE_IN_GA(X5)
   PC_IN_AAGAAAAA(X3) -> U4_AAGAAAAA(X3, U35_agaa(.(X3), U34_gaa(X3, splitcA_in_gaa(X3))))

The TRS R consists of the following rules:

   splitcB_in_agaa(X2) -> U35_agaa(X2, splitcA_in_gaa(X2))
   mergesortcE_in_ga([]) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.([])) -> mergesortcE_out_ga(.([]), .([]))
   mergesortcE_in_ga(.(.(X3))) -> U40_ga(X3, qcC_in_aagaaaaa(X3))
   U35_agaa(X2, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X2, .(X3), X4)
   U40_ga(X3, qcC_out_aagaaaaa(X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(.(X3)), X4)
   splitcA_in_gaa([]) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X2)) -> U34_gaa(X2, splitcA_in_gaa(X2))
   qcC_in_aagaaaaa(X3) -> U36_aagaaaaa(X3, splitcB_in_agaa(.(X3)))
   U34_gaa(X2, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X2), .(X3), X4)
   U36_aagaaaaa(X3, splitcB_out_agaa(.(X3), X4, X5)) -> U37_aagaaaaa(X3, X4, X5, mergesortcE_in_ga(X4))
   U37_aagaaaaa(X3, X4, X5, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X3, X4, X5, X6, mergesortcE_in_ga(X5))
   U38_aagaaaaa(X3, X4, X5, X6, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X3, X4, X5, X6, X7, mergecD_in_gga(X6, X7))
   U39_aagaaaaa(X3, X4, X5, X6, X7, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X3, X4, X5, X6, X7, X8)
   mergecD_in_gga([], X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, []) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X2), .(X3)) -> U41_gga(X2, X3, mergecD_in_gga(.(X2), X3))
   U41_gga(X2, X3, mergecD_out_gga(.(X2), X3, X4)) -> mergecD_out_gga(.(X2), .(X3), .(X4))

The set Q consists of the following terms:

   splitcB_in_agaa(x0)
   mergesortcE_in_ga(x0)
   U35_agaa(x0, x1)
   U40_ga(x0, x1)
   splitcA_in_gaa(x0)
   qcC_in_aagaaaaa(x0)
   U34_gaa(x0, x1)
   U36_aagaaaaa(x0, x1)
   U37_aagaaaaa(x0, x1, x2, x3)
   U38_aagaaaaa(x0, x1, x2, x3, x4)
   U39_aagaaaaa(x0, x1, x2, x3, x4, x5)
   mergecD_in_gga(x0, x1)
   U41_gga(x0, x1, x2)

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

(172) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 4 less nodes.
----------------------------------------

(173)
TRUE

----------------------------------------

(174)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SPLITA_IN_AAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_AAA(X2, X4, X3)

The TRS R consists of the following rules:

   splitcB_in_aaaa(X1, X2, .(X1, X3), X4) -> U35_aaaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   splitcA_in_aaa([], [], []) -> splitcA_out_aaa([], [], [])
   splitcA_in_aaa(.(X1, X2), .(X1, X3), X4) -> U34_aaa(X1, X2, X3, X4, splitcA_in_aaa(X2, X4, X3))
   U34_aaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcA_out_aaa(.(X1, X2), .(X1, X3), X4)
   U35_aaaa(X1, X2, X3, X4, splitcA_out_aaa(X2, X4, X3)) -> splitcB_out_aaaa(X1, X2, .(X1, X3), X4)
   splitcB_in_agaa(X1, X2, .(X1, X3), X4) -> U35_agaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], [])
   splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U34_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3))
   U34_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4)
   U35_agaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcB_out_agaa(X1, X2, .(X1, X3), X4)
   mergesortcE_in_ga([], []) -> mergesortcE_out_ga([], [])
   mergesortcE_in_ga(.(X1, []), .(X1, [])) -> mergesortcE_out_ga(.(X1, []), .(X1, []))
   mergesortcE_in_ga(.(X1, .(X2, X3)), X4) -> U40_ga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   qcC_in_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8) -> U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_in_agaa(X1, .(X2, X3), X4, X5))
   U36_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, splitcB_out_agaa(X1, .(X2, X3), X4, X5)) -> U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X4, X6))
   U37_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X4, X6)) -> U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_in_ga(X5, X7))
   U38_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergesortcE_out_ga(X5, X7)) -> U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_in_gga(X6, X7, X8))
   mergecD_in_gga([], X1, X1) -> mergecD_out_gga([], X1, X1)
   mergecD_in_gga(X1, [], X1) -> mergecD_out_gga(X1, [], X1)
   mergecD_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U41_gga(X1, X2, X3, X4, mergecD_in_gga(.(X1, X2), X3, X4))
   U41_gga(X1, X2, X3, X4, mergecD_out_gga(.(X1, X2), X3, X4)) -> mergecD_out_gga(.(X1, X2), .(X1, X3), .(X1, X4))
   U39_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, mergecD_out_gga(X6, X7, X8)) -> qcC_out_aagaaaaa(X1, X2, X3, X4, X5, X6, X7, X8)
   U40_ga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcE_out_ga(.(X1, .(X2, X3)), X4)
   mergesortcF_in_aga(X1, [], .(X1, [])) -> mergesortcF_out_aga(X1, [], .(X1, []))
   mergesortcF_in_aga(X1, .(X2, X3), X4) -> U42_aga(X1, X2, X3, X4, qcC_in_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4))
   U42_aga(X1, X2, X3, X4, qcC_out_aagaaaaa(X1, X2, X3, X5, X6, X7, X8, X4)) -> mergesortcF_out_aga(X1, .(X2, X3), X4)

The argument filtering Pi contains the following mapping:
[]  =  []

.(x1, x2)  =  .(x2)

splitcB_in_aaaa(x1, x2, x3, x4)  =  splitcB_in_aaaa

U35_aaaa(x1, x2, x3, x4, x5)  =  U35_aaaa(x5)

splitcA_in_aaa(x1, x2, x3)  =  splitcA_in_aaa

splitcA_out_aaa(x1, x2, x3)  =  splitcA_out_aaa(x1, x2, x3)

U34_aaa(x1, x2, x3, x4, x5)  =  U34_aaa(x5)

splitcB_out_aaaa(x1, x2, x3, x4)  =  splitcB_out_aaaa(x2, x3, x4)

splitcB_in_agaa(x1, x2, x3, x4)  =  splitcB_in_agaa(x2)

U35_agaa(x1, x2, x3, x4, x5)  =  U35_agaa(x2, x5)

splitcA_in_gaa(x1, x2, x3)  =  splitcA_in_gaa(x1)

splitcA_out_gaa(x1, x2, x3)  =  splitcA_out_gaa(x1, x2, x3)

U34_gaa(x1, x2, x3, x4, x5)  =  U34_gaa(x2, x5)

splitcB_out_agaa(x1, x2, x3, x4)  =  splitcB_out_agaa(x2, x3, x4)

mergesortcE_in_ga(x1, x2)  =  mergesortcE_in_ga(x1)

mergesortcE_out_ga(x1, x2)  =  mergesortcE_out_ga(x1, x2)

U40_ga(x1, x2, x3, x4, x5)  =  U40_ga(x3, x5)

qcC_in_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_in_aagaaaaa(x3)

U36_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U36_aagaaaaa(x3, x9)

U37_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U37_aagaaaaa(x3, x4, x5, x9)

U38_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U38_aagaaaaa(x3, x4, x5, x6, x9)

U39_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U39_aagaaaaa(x3, x4, x5, x6, x7, x9)

mergecD_in_gga(x1, x2, x3)  =  mergecD_in_gga(x1, x2)

mergecD_out_gga(x1, x2, x3)  =  mergecD_out_gga(x1, x2, x3)

U41_gga(x1, x2, x3, x4, x5)  =  U41_gga(x2, x3, x5)

qcC_out_aagaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  qcC_out_aagaaaaa(x3, x4, x5, x6, x7, x8)

mergesortcF_in_aga(x1, x2, x3)  =  mergesortcF_in_aga(x2)

mergesortcF_out_aga(x1, x2, x3)  =  mergesortcF_out_aga(x2, x3)

U42_aga(x1, x2, x3, x4, x5)  =  U42_aga(x3, x5)

SPLITA_IN_AAA(x1, x2, x3)  =  SPLITA_IN_AAA


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

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

(176)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SPLITA_IN_AAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_AAA(X2, X4, X3)

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

SPLITA_IN_AAA(x1, x2, x3)  =  SPLITA_IN_AAA


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

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

(178)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   SPLITA_IN_AAA -> SPLITA_IN_AAA

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

(179) NonTerminationLoopProof (COMPLETE)
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 = SPLITA_IN_AAA evaluates to  t =SPLITA_IN_AAA

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

--------------------------------------------------------------------------------
Rewriting sequence

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




----------------------------------------

(180)
NO

----------------------------------------

(181) PrologToIRSwTTransformerProof (SOUND)
Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert

{
    "root": 2,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(mergesort ([]) ([]))",
                null
            ],
            [
                "(mergesort (. X ([])) (. X ([])))",
                null
            ],
            [
                "(mergesort (. X (. Y Xs)) Ys)",
                "(',' (split (. X (. Y Xs)) X1s X2s) (',' (mergesort X1s Y1s) (',' (mergesort X2s Y2s) (merge Y1s Y2s Ys))))"
            ],
            [
                "(split ([]) ([]) ([]))",
                null
            ],
            [
                "(split (. X Xs) (. X Ys) Zs)",
                "(split Xs Zs Ys)"
            ],
            [
                "(merge ([]) Xs Xs)",
                null
            ],
            [
                "(merge Xs ([]) Xs)",
                null
            ],
            [
                "(merge (. X Xs) (. Y Ys) (. X Zs))",
                "(',' (= X Y) (merge (. X Xs) Ys Zs))"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "type": "Nodes",
            "590": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "591": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "592": {
                "goal": [{
                    "clause": 6,
                    "scope": 6,
                    "term": "(merge T77 T76 X107)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "593": {
                "goal": [{
                    "clause": 7,
                    "scope": 6,
                    "term": "(merge T77 T76 X107)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "670": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "594": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "671": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge (. T144 T146) T145 T139)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T139",
                        "T144"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "430": {
                "goal": [{
                    "clause": 1,
                    "scope": 5,
                    "term": "(mergesort T23 X24)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "595": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "672": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "431": {
                "goal": [{
                    "clause": 2,
                    "scope": 5,
                    "term": "(mergesort T23 X24)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "432": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "597": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "433": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "434": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "10": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "15": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "16": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "17": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "2": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "443": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T69 (. T70 T71)) X103 X104) (',' (mergesort X103 X105) (',' (mergesort X104 X106) (merge X105 X106 X107))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X107",
                        "X103",
                        "X104",
                        "X105",
                        "X106"
                    ],
                    "exprvars": []
                }
            },
            "4": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(mergesort T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "444": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "7": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(mergesort T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "601": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (= T102 T103) (merge (. T102 T105) T104 X137))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X137"],
                    "exprvars": []
                }
            },
            "602": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "405": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split T45 X61 X60)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X60",
                        "X61"
                    ],
                    "exprvars": []
                }
            },
            "603": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge (. T109 T110) T108 X137)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X137"],
                    "exprvars": []
                }
            },
            "604": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "649": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T54 X25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X25"],
                    "exprvars": []
                }
            },
            "21": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(mergesort T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "23": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(mergesort T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "28": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "29": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "370": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split (. T36 T37) X43 X42)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X42",
                        "X43"
                    ],
                    "exprvars": []
                }
            },
            "450": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split (. T69 (. T70 T71)) X103 X104)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X103",
                        "X104"
                    ],
                    "exprvars": []
                }
            },
            "572": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T72 X105)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X105"],
                    "exprvars": []
                }
            },
            "452": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T72 X105) (',' (mergesort T73 X106) (merge X105 X106 X107)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X107",
                        "X105",
                        "X106"
                    ],
                    "exprvars": []
                }
            },
            "573": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T75 X106) (merge T74 X106 X107))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X107",
                        "X106"
                    ],
                    "exprvars": []
                }
            },
            "650": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge T112 T111 T19)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "377": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 3,
                        "term": "(split (. T36 T37) X43 X42)"
                    },
                    {
                        "clause": 4,
                        "scope": 3,
                        "term": "(split (. T36 T37) X43 X42)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X42",
                        "X43"
                    ],
                    "exprvars": []
                }
            },
            "411": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 4,
                        "term": "(split T45 X61 X60)"
                    },
                    {
                        "clause": 4,
                        "scope": 4,
                        "term": "(split T45 X61 X60)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X60",
                        "X61"
                    ],
                    "exprvars": []
                }
            },
            "653": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 7,
                        "term": "(merge T112 T111 T19)"
                    },
                    {
                        "clause": 6,
                        "scope": 7,
                        "term": "(merge T112 T111 T19)"
                    },
                    {
                        "clause": 7,
                        "scope": 7,
                        "term": "(merge T112 T111 T19)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "379": {
                "goal": [{
                    "clause": 4,
                    "scope": 3,
                    "term": "(split (. T36 T37) X43 X42)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X42",
                        "X43"
                    ],
                    "exprvars": []
                }
            },
            "654": {
                "goal": [{
                    "clause": 5,
                    "scope": 7,
                    "term": "(merge T112 T111 T19)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "655": {
                "goal": [
                    {
                        "clause": 6,
                        "scope": 7,
                        "term": "(merge T112 T111 T19)"
                    },
                    {
                        "clause": 7,
                        "scope": 7,
                        "term": "(merge T112 T111 T19)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "656": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "415": {
                "goal": [{
                    "clause": 3,
                    "scope": 4,
                    "term": "(split T45 X61 X60)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X60",
                        "X61"
                    ],
                    "exprvars": []
                }
            },
            "657": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "416": {
                "goal": [{
                    "clause": 4,
                    "scope": 4,
                    "term": "(split T45 X61 X60)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X60",
                        "X61"
                    ],
                    "exprvars": []
                }
            },
            "658": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "417": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "659": {
                "goal": [{
                    "clause": 6,
                    "scope": 7,
                    "term": "(merge T112 T111 T19)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "418": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "419": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "30": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "32": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (split (. T20 (. T21 T22)) X22 X23) (',' (mergesort X22 X24) (',' (mergesort X23 X25) (merge X24 X25 T19))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [
                        "X22",
                        "X23",
                        "X24",
                        "X25"
                    ],
                    "exprvars": []
                }
            },
            "34": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "341": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split (. T20 (. T21 T22)) X22 X23)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X22",
                        "X23"
                    ],
                    "exprvars": []
                }
            },
            "660": {
                "goal": [{
                    "clause": 7,
                    "scope": 7,
                    "term": "(merge T112 T111 T19)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [],
                    "exprvars": []
                }
            },
            "342": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T23 X24) (',' (mergesort T24 X25) (merge X24 X25 T19)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": [
                        "X24",
                        "X25"
                    ],
                    "exprvars": []
                }
            },
            "584": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T75 X106)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X106"],
                    "exprvars": []
                }
            },
            "420": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(split T52 X79 X78)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X78",
                        "X79"
                    ],
                    "exprvars": []
                }
            },
            "585": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(merge T77 T76 X107)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "344": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 2,
                        "term": "(split (. T20 (. T21 T22)) X22 X23)"
                    },
                    {
                        "clause": 4,
                        "scope": 2,
                        "term": "(split (. T20 (. T21 T22)) X22 X23)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X22",
                        "X23"
                    ],
                    "exprvars": []
                }
            },
            "421": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "586": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 6,
                        "term": "(merge T77 T76 X107)"
                    },
                    {
                        "clause": 6,
                        "scope": 6,
                        "term": "(merge T77 T76 X107)"
                    },
                    {
                        "clause": 7,
                        "scope": 6,
                        "term": "(merge T77 T76 X107)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "663": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "422": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(mergesort T23 X24)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "587": {
                "goal": [{
                    "clause": 5,
                    "scope": 6,
                    "term": "(merge T77 T76 X107)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "664": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "423": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (mergesort T54 X25) (merge T53 X25 T19))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": ["X25"],
                    "exprvars": []
                }
            },
            "588": {
                "goal": [
                    {
                        "clause": 6,
                        "scope": 6,
                        "term": "(merge T77 T76 X107)"
                    },
                    {
                        "clause": 7,
                        "scope": 6,
                        "term": "(merge T77 T76 X107)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X107"],
                    "exprvars": []
                }
            },
            "665": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "347": {
                "goal": [{
                    "clause": 4,
                    "scope": 2,
                    "term": "(split (. T20 (. T21 T22)) X22 X23)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [
                        "X22",
                        "X23"
                    ],
                    "exprvars": []
                }
            },
            "424": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 5,
                        "term": "(mergesort T23 X24)"
                    },
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(mergesort T23 X24)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(mergesort T23 X24)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "589": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "425": {
                "goal": [{
                    "clause": 0,
                    "scope": 5,
                    "term": "(mergesort T23 X24)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "426": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(mergesort T23 X24)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(mergesort T23 X24)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": ["X24"],
                    "exprvars": []
                }
            },
            "668": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (= T135 T140) (merge (. T135 T142) T141 T139))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T135",
                        "T139"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "427": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "428": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "429": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 2,
                "to": 4,
                "label": "CASE"
            },
            {
                "from": 4,
                "to": 7,
                "label": "PARALLEL"
            },
            {
                "from": 4,
                "to": 10,
                "label": "PARALLEL"
            },
            {
                "from": 7,
                "to": 15,
                "label": "EVAL with clause\nmergesort([], []).\nand substitutionT1 -> [],\nT2 -> []"
            },
            {
                "from": 7,
                "to": 16,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 10,
                "to": 21,
                "label": "PARALLEL"
            },
            {
                "from": 10,
                "to": 23,
                "label": "PARALLEL"
            },
            {
                "from": 15,
                "to": 17,
                "label": "SUCCESS"
            },
            {
                "from": 21,
                "to": 28,
                "label": "EVAL with clause\nmergesort(.(X5, []), .(X5, [])).\nand substitutionX5 -> T7,\nT1 -> .(T7, []),\nT2 -> .(T7, [])"
            },
            {
                "from": 21,
                "to": 29,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 23,
                "to": 32,
                "label": "EVAL with clause\nmergesort(.(X18, .(X19, X20)), X21) :- ','(split(.(X18, .(X19, X20)), X22, X23), ','(mergesort(X22, X24), ','(mergesort(X23, X25), merge(X24, X25, X21)))).\nand substitutionX18 -> T20,\nX19 -> T21,\nX20 -> T22,\nT1 -> .(T20, .(T21, T22)),\nT2 -> T19,\nX21 -> T19,\nT16 -> T20,\nT17 -> T21,\nT18 -> T22"
            },
            {
                "from": 23,
                "to": 34,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 28,
                "to": 30,
                "label": "SUCCESS"
            },
            {
                "from": 32,
                "to": 341,
                "label": "SPLIT 1"
            },
            {
                "from": 32,
                "to": 342,
                "label": "SPLIT 2\nreplacements:X22 -> T23,\nX23 -> T24"
            },
            {
                "from": 341,
                "to": 344,
                "label": "CASE"
            },
            {
                "from": 342,
                "to": 422,
                "label": "SPLIT 1"
            },
            {
                "from": 342,
                "to": 423,
                "label": "SPLIT 2\nreplacements:X24 -> T53,\nT24 -> T54"
            },
            {
                "from": 344,
                "to": 347,
                "label": "BACKTRACK\nfor clause: split([], [], [])because of non-unification"
            },
            {
                "from": 347,
                "to": 370,
                "label": "ONLY EVAL with clause\nsplit(.(X38, X39), .(X38, X40), X41) :- split(X39, X41, X40).\nand substitutionT20 -> T33,\nX38 -> T33,\nT21 -> T36,\nT22 -> T37,\nX39 -> .(T36, T37),\nX40 -> X42,\nX22 -> .(T33, X42),\nX23 -> X43,\nX41 -> X43,\nT34 -> T36,\nT35 -> T37"
            },
            {
                "from": 370,
                "to": 377,
                "label": "CASE"
            },
            {
                "from": 377,
                "to": 379,
                "label": "BACKTRACK\nfor clause: split([], [], [])because of non-unification"
            },
            {
                "from": 379,
                "to": 405,
                "label": "ONLY EVAL with clause\nsplit(.(X56, X57), .(X56, X58), X59) :- split(X57, X59, X58).\nand substitutionT36 -> T43,\nX56 -> T43,\nT37 -> T45,\nX57 -> T45,\nX58 -> X60,\nX43 -> .(T43, X60),\nX42 -> X61,\nX59 -> X61,\nT44 -> T45"
            },
            {
                "from": 405,
                "to": 411,
                "label": "CASE"
            },
            {
                "from": 411,
                "to": 415,
                "label": "PARALLEL"
            },
            {
                "from": 411,
                "to": 416,
                "label": "PARALLEL"
            },
            {
                "from": 415,
                "to": 417,
                "label": "EVAL with clause\nsplit([], [], []).\nand substitutionT45 -> [],\nX61 -> [],\nX60 -> []"
            },
            {
                "from": 415,
                "to": 418,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 416,
                "to": 420,
                "label": "EVAL with clause\nsplit(.(X74, X75), .(X74, X76), X77) :- split(X75, X77, X76).\nand substitutionX74 -> T50,\nX75 -> T52,\nT45 -> .(T50, T52),\nX76 -> X78,\nX61 -> .(T50, X78),\nX60 -> X79,\nX77 -> X79,\nT51 -> T52"
            },
            {
                "from": 416,
                "to": 421,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 417,
                "to": 419,
                "label": "SUCCESS"
            },
            {
                "from": 420,
                "to": 405,
                "label": "INSTANCE with matching:\nT45 -> T52\nX61 -> X79\nX60 -> X78"
            },
            {
                "from": 422,
                "to": 424,
                "label": "CASE"
            },
            {
                "from": 423,
                "to": 649,
                "label": "SPLIT 1"
            },
            {
                "from": 423,
                "to": 650,
                "label": "SPLIT 2\nreplacements:X25 -> T111,\nT53 -> T112"
            },
            {
                "from": 424,
                "to": 425,
                "label": "PARALLEL"
            },
            {
                "from": 424,
                "to": 426,
                "label": "PARALLEL"
            },
            {
                "from": 425,
                "to": 427,
                "label": "EVAL with clause\nmergesort([], []).\nand substitutionT23 -> [],\nX24 -> []"
            },
            {
                "from": 425,
                "to": 428,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 426,
                "to": 430,
                "label": "PARALLEL"
            },
            {
                "from": 426,
                "to": 431,
                "label": "PARALLEL"
            },
            {
                "from": 427,
                "to": 429,
                "label": "SUCCESS"
            },
            {
                "from": 430,
                "to": 432,
                "label": "EVAL with clause\nmergesort(.(X84, []), .(X84, [])).\nand substitutionX84 -> T59,\nT23 -> .(T59, []),\nX24 -> .(T59, [])"
            },
            {
                "from": 430,
                "to": 433,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 431,
                "to": 443,
                "label": "EVAL with clause\nmergesort(.(X99, .(X100, X101)), X102) :- ','(split(.(X99, .(X100, X101)), X103, X104), ','(mergesort(X103, X105), ','(mergesort(X104, X106), merge(X105, X106, X102)))).\nand substitutionX99 -> T69,\nX100 -> T70,\nX101 -> T71,\nT23 -> .(T69, .(T70, T71)),\nX24 -> X107,\nX102 -> X107,\nT66 -> T69,\nT67 -> T70,\nT68 -> T71"
            },
            {
                "from": 431,
                "to": 444,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 432,
                "to": 434,
                "label": "SUCCESS"
            },
            {
                "from": 443,
                "to": 450,
                "label": "SPLIT 1"
            },
            {
                "from": 443,
                "to": 452,
                "label": "SPLIT 2\nreplacements:X103 -> T72,\nX104 -> T73"
            },
            {
                "from": 450,
                "to": 341,
                "label": "INSTANCE with matching:\nT20 -> T69\nT21 -> T70\nT22 -> T71\nX22 -> X103\nX23 -> X104"
            },
            {
                "from": 452,
                "to": 572,
                "label": "SPLIT 1"
            },
            {
                "from": 452,
                "to": 573,
                "label": "SPLIT 2\nreplacements:X105 -> T74,\nT73 -> T75"
            },
            {
                "from": 572,
                "to": 422,
                "label": "INSTANCE with matching:\nT23 -> T72\nX24 -> X105"
            },
            {
                "from": 573,
                "to": 584,
                "label": "SPLIT 1"
            },
            {
                "from": 573,
                "to": 585,
                "label": "SPLIT 2\nreplacements:X106 -> T76,\nT74 -> T77"
            },
            {
                "from": 584,
                "to": 422,
                "label": "INSTANCE with matching:\nT23 -> T75\nX24 -> X106"
            },
            {
                "from": 585,
                "to": 586,
                "label": "CASE"
            },
            {
                "from": 586,
                "to": 587,
                "label": "PARALLEL"
            },
            {
                "from": 586,
                "to": 588,
                "label": "PARALLEL"
            },
            {
                "from": 587,
                "to": 589,
                "label": "EVAL with clause\nmerge([], X114, X114).\nand substitutionT77 -> [],\nT76 -> T84,\nX114 -> T84,\nX107 -> T84"
            },
            {
                "from": 587,
                "to": 590,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 588,
                "to": 592,
                "label": "PARALLEL"
            },
            {
                "from": 588,
                "to": 593,
                "label": "PARALLEL"
            },
            {
                "from": 589,
                "to": 591,
                "label": "SUCCESS"
            },
            {
                "from": 592,
                "to": 594,
                "label": "EVAL with clause\nmerge(X119, [], X119).\nand substitutionT77 -> T89,\nX119 -> T89,\nT76 -> [],\nX107 -> T89"
            },
            {
                "from": 592,
                "to": 595,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 593,
                "to": 601,
                "label": "EVAL with clause\nmerge(.(X132, X133), .(X134, X135), .(X132, X136)) :- ','(=(X132, X134), merge(.(X132, X133), X135, X136)).\nand substitutionX132 -> T102,\nX133 -> T105,\nT77 -> .(T102, T105),\nX134 -> T103,\nX135 -> T104,\nT76 -> .(T103, T104),\nX136 -> X137,\nX107 -> .(T102, X137),\nT98 -> T102,\nT100 -> T103,\nT101 -> T104,\nT99 -> T105"
            },
            {
                "from": 593,
                "to": 602,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 594,
                "to": 597,
                "label": "SUCCESS"
            },
            {
                "from": 601,
                "to": 603,
                "label": "UNIFY CASE with substitutionT102 -> T109,\nT103 -> T109,\nT104 -> T108,\nT107 -> T109,\nT105 -> T110"
            },
            {
                "from": 601,
                "to": 604,
                "label": "UNIFY-BACKTRACK"
            },
            {
                "from": 603,
                "to": 585,
                "label": "INSTANCE with matching:\nT77 -> .(T109, T110)\nT76 -> T108\nX107 -> X137"
            },
            {
                "from": 649,
                "to": 422,
                "label": "INSTANCE with matching:\nT23 -> T54\nX24 -> X25"
            },
            {
                "from": 650,
                "to": 653,
                "label": "CASE"
            },
            {
                "from": 653,
                "to": 654,
                "label": "PARALLEL"
            },
            {
                "from": 653,
                "to": 655,
                "label": "PARALLEL"
            },
            {
                "from": 654,
                "to": 656,
                "label": "EVAL with clause\nmerge([], X146, X146).\nand substitutionT112 -> [],\nT111 -> T119,\nX146 -> T119,\nT19 -> T119"
            },
            {
                "from": 654,
                "to": 657,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 655,
                "to": 659,
                "label": "PARALLEL"
            },
            {
                "from": 655,
                "to": 660,
                "label": "PARALLEL"
            },
            {
                "from": 656,
                "to": 658,
                "label": "SUCCESS"
            },
            {
                "from": 659,
                "to": 663,
                "label": "EVAL with clause\nmerge(X151, [], X151).\nand substitutionT112 -> T124,\nX151 -> T124,\nT111 -> [],\nT19 -> T124"
            },
            {
                "from": 659,
                "to": 664,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 660,
                "to": 668,
                "label": "EVAL with clause\nmerge(.(X162, X163), .(X164, X165), .(X162, X166)) :- ','(=(X162, X164), merge(.(X162, X163), X165, X166)).\nand substitutionX162 -> T135,\nX163 -> T142,\nT112 -> .(T135, T142),\nX164 -> T140,\nX165 -> T141,\nT111 -> .(T140, T141),\nX166 -> T139,\nT19 -> .(T135, T139),\nT137 -> T140,\nT138 -> T141,\nT136 -> T142"
            },
            {
                "from": 660,
                "to": 670,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 663,
                "to": 665,
                "label": "SUCCESS"
            },
            {
                "from": 668,
                "to": 671,
                "label": "UNIFY CASE with substitutionT135 -> T144,\nT140 -> T144,\nT141 -> T145,\nT142 -> T146"
            },
            {
                "from": 668,
                "to": 672,
                "label": "UNIFY-BACKTRACK"
            },
            {
                "from": 671,
                "to": 650,
                "label": "INSTANCE with matching:\nT112 -> .(T144, T146)\nT111 -> T145\nT19 -> T139"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(182)
Complex Obligation (AND)

----------------------------------------

(183)
Obligation:
Rules:
f653_in(T19) -> f655_in(T19) :|: TRUE
f653_in(x) -> f654_in(x) :|: TRUE
f655_out(x1) -> f653_out(x1) :|: TRUE
f654_out(x2) -> f653_out(x2) :|: TRUE
f653_out(x3) -> f650_out(x3) :|: TRUE
f650_in(x4) -> f653_in(x4) :|: TRUE
f671_out(T144, T139) -> f668_out(T135, T139) :|: TRUE
f668_in(x5, x6) -> f671_in(x7, x6) :|: TRUE
f668_in(x8, x9) -> f672_in :|: TRUE
f672_out -> f668_out(x10, x11) :|: TRUE
f668_out(x12, x13) -> f660_out(.(x12, x13)) :|: TRUE
f660_in(x14) -> f670_in :|: TRUE
f660_in(.(x15, x16)) -> f668_in(x15, x16) :|: TRUE
f670_out -> f660_out(x17) :|: TRUE
f655_in(x18) -> f660_in(x18) :|: TRUE
f659_out(x19) -> f655_out(x19) :|: TRUE
f660_out(x20) -> f655_out(x20) :|: TRUE
f655_in(x21) -> f659_in(x21) :|: TRUE
f650_out(x22) -> f671_out(x23, x22) :|: TRUE
f671_in(x24, x25) -> f650_in(x25) :|: TRUE
f2_in(T2) -> f4_in(T2) :|: TRUE
f4_out(x26) -> f2_out(x26) :|: TRUE
f7_out(x27) -> f4_out(x27) :|: TRUE
f4_in(x28) -> f10_in(x28) :|: TRUE
f10_out(x29) -> f4_out(x29) :|: TRUE
f4_in(x30) -> f7_in(x30) :|: TRUE
f10_in(x31) -> f21_in(x31) :|: TRUE
f21_out(x32) -> f10_out(x32) :|: TRUE
f10_in(x33) -> f23_in(x33) :|: TRUE
f23_out(x34) -> f10_out(x34) :|: TRUE
f34_out -> f23_out(x35) :|: TRUE
f23_in(x36) -> f34_in :|: TRUE
f32_out(x37) -> f23_out(x37) :|: TRUE
f23_in(x38) -> f32_in(x38) :|: TRUE
f342_out(x39) -> f32_out(x39) :|: TRUE
f32_in(x40) -> f341_in :|: TRUE
f341_out -> f342_in(x41) :|: TRUE
f423_out(x42) -> f342_out(x42) :|: TRUE
f422_out -> f423_in(x43) :|: TRUE
f342_in(x44) -> f422_in :|: TRUE
f423_in(x45) -> f649_in :|: TRUE
f649_out -> f650_in(x46) :|: TRUE
f650_out(x47) -> f423_out(x47) :|: TRUE
Start term: f2_in(T2)

----------------------------------------

(184) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:


----------------------------------------

(185)
TRUE

----------------------------------------

(186)
Obligation:
Rules:
f586_out -> f585_out :|: TRUE
f585_in -> f586_in :|: TRUE
f588_in -> f593_in :|: TRUE
f588_in -> f592_in :|: TRUE
f592_out -> f588_out :|: TRUE
f593_out -> f588_out :|: TRUE
f588_out -> f586_out :|: TRUE
f586_in -> f587_in :|: TRUE
f587_out -> f586_out :|: TRUE
f586_in -> f588_in :|: TRUE
f593_in -> f602_in :|: TRUE
f602_out -> f593_out :|: TRUE
f601_out -> f593_out :|: TRUE
f593_in -> f601_in :|: TRUE
f585_out -> f603_out :|: TRUE
f603_in -> f585_in :|: TRUE
f603_out -> f601_out :|: TRUE
f601_in -> f604_in :|: TRUE
f601_in -> f603_in :|: TRUE
f604_out -> f601_out :|: TRUE
f2_in(T2) -> f4_in(T2) :|: TRUE
f4_out(x) -> f2_out(x) :|: TRUE
f7_out(x1) -> f4_out(x1) :|: TRUE
f4_in(x2) -> f10_in(x2) :|: TRUE
f10_out(x3) -> f4_out(x3) :|: TRUE
f4_in(x4) -> f7_in(x4) :|: TRUE
f10_in(x5) -> f21_in(x5) :|: TRUE
f21_out(x6) -> f10_out(x6) :|: TRUE
f10_in(x7) -> f23_in(x7) :|: TRUE
f23_out(x8) -> f10_out(x8) :|: TRUE
f34_out -> f23_out(x9) :|: TRUE
f23_in(x10) -> f34_in :|: TRUE
f32_out(T19) -> f23_out(T19) :|: TRUE
f23_in(x11) -> f32_in(x11) :|: TRUE
f342_out(x12) -> f32_out(x12) :|: TRUE
f32_in(x13) -> f341_in :|: TRUE
f341_out -> f342_in(x14) :|: TRUE
f423_out(x15) -> f342_out(x15) :|: TRUE
f422_out -> f423_in(x16) :|: TRUE
f342_in(x17) -> f422_in :|: TRUE
f424_out -> f422_out :|: TRUE
f422_in -> f424_in :|: TRUE
f425_out -> f424_out :|: TRUE
f424_in -> f425_in :|: TRUE
f424_in -> f426_in :|: TRUE
f426_out -> f424_out :|: TRUE
f430_out -> f426_out :|: TRUE
f426_in -> f431_in :|: TRUE
f426_in -> f430_in :|: TRUE
f431_out -> f426_out :|: TRUE
f431_in -> f443_in :|: TRUE
f443_out -> f431_out :|: TRUE
f431_in -> f444_in :|: TRUE
f444_out -> f431_out :|: TRUE
f450_out -> f452_in :|: TRUE
f443_in -> f450_in :|: TRUE
f452_out -> f443_out :|: TRUE
f572_out -> f573_in :|: TRUE
f452_in -> f572_in :|: TRUE
f573_out -> f452_out :|: TRUE
f573_in -> f584_in :|: TRUE
f584_out -> f585_in :|: TRUE
f585_out -> f573_out :|: TRUE
f423_in(x18) -> f649_in :|: TRUE
f649_out -> f650_in(x19) :|: TRUE
f650_out(x20) -> f423_out(x20) :|: TRUE
f649_in -> f422_in :|: TRUE
f422_out -> f649_out :|: TRUE
Start term: f2_in(T2)

----------------------------------------

(187) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:


----------------------------------------

(188)
TRUE

----------------------------------------

(189)
Obligation:
Rules:
f411_out -> f405_out :|: TRUE
f405_in -> f411_in :|: TRUE
f411_in -> f415_in :|: TRUE
f415_out -> f411_out :|: TRUE
f416_out -> f411_out :|: TRUE
f411_in -> f416_in :|: TRUE
f421_out -> f416_out :|: TRUE
f416_in -> f420_in :|: TRUE
f416_in -> f421_in :|: TRUE
f420_out -> f416_out :|: TRUE
f420_in -> f405_in :|: TRUE
f405_out -> f420_out :|: TRUE
f2_in(T2) -> f4_in(T2) :|: TRUE
f4_out(x) -> f2_out(x) :|: TRUE
f7_out(x1) -> f4_out(x1) :|: TRUE
f4_in(x2) -> f10_in(x2) :|: TRUE
f10_out(x3) -> f4_out(x3) :|: TRUE
f4_in(x4) -> f7_in(x4) :|: TRUE
f10_in(x5) -> f21_in(x5) :|: TRUE
f21_out(x6) -> f10_out(x6) :|: TRUE
f10_in(x7) -> f23_in(x7) :|: TRUE
f23_out(x8) -> f10_out(x8) :|: TRUE
f34_out -> f23_out(x9) :|: TRUE
f23_in(x10) -> f34_in :|: TRUE
f32_out(T19) -> f23_out(T19) :|: TRUE
f23_in(x11) -> f32_in(x11) :|: TRUE
f342_out(x12) -> f32_out(x12) :|: TRUE
f32_in(x13) -> f341_in :|: TRUE
f341_out -> f342_in(x14) :|: TRUE
f423_out(x15) -> f342_out(x15) :|: TRUE
f422_out -> f423_in(x16) :|: TRUE
f342_in(x17) -> f422_in :|: TRUE
f423_in(x18) -> f649_in :|: TRUE
f649_out -> f650_in(x19) :|: TRUE
f650_out(x20) -> f423_out(x20) :|: TRUE
f649_in -> f422_in :|: TRUE
f422_out -> f649_out :|: TRUE
f424_out -> f422_out :|: TRUE
f422_in -> f424_in :|: TRUE
f425_out -> f424_out :|: TRUE
f424_in -> f425_in :|: TRUE
f424_in -> f426_in :|: TRUE
f426_out -> f424_out :|: TRUE
f430_out -> f426_out :|: TRUE
f426_in -> f431_in :|: TRUE
f426_in -> f430_in :|: TRUE
f431_out -> f426_out :|: TRUE
f431_in -> f443_in :|: TRUE
f443_out -> f431_out :|: TRUE
f431_in -> f444_in :|: TRUE
f444_out -> f431_out :|: TRUE
f450_out -> f452_in :|: TRUE
f443_in -> f450_in :|: TRUE
f452_out -> f443_out :|: TRUE
f450_in -> f341_in :|: TRUE
f341_out -> f450_out :|: TRUE
f341_in -> f344_in :|: TRUE
f344_out -> f341_out :|: TRUE
f344_in -> f347_in :|: TRUE
f347_out -> f344_out :|: TRUE
f347_in -> f370_in :|: TRUE
f370_out -> f347_out :|: TRUE
f370_in -> f377_in :|: TRUE
f377_out -> f370_out :|: TRUE
f377_in -> f379_in :|: TRUE
f379_out -> f377_out :|: TRUE
f405_out -> f379_out :|: TRUE
f379_in -> f405_in :|: TRUE
Start term: f2_in(T2)

----------------------------------------

(190) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f405_in -> f411_in :|: TRUE
f411_in -> f416_in :|: TRUE
f416_in -> f420_in :|: TRUE
f420_in -> f405_in :|: TRUE


----------------------------------------

(191)
Obligation:
Rules:
f405_in -> f411_in :|: TRUE
f411_in -> f416_in :|: TRUE
f416_in -> f420_in :|: TRUE
f420_in -> f405_in :|: TRUE

----------------------------------------

(192) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(193)
Obligation:
Rules:
f405_in -> f405_in :|: TRUE

----------------------------------------

(194) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(195)
Obligation:
Rules:
f405_in -> f405_in :|: TRUE

----------------------------------------

(196) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f405_in -> f405_in :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!
----------------------------------------

(197)
Obligation:

Termination digraph:
Nodes:
(1) f405_in -> f405_in :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!

----------------------------------------

(198) FilterProof (EQUIVALENT)
Used the following sort dictionary for filtering: 
f405_in()
Replaced non-predefined constructor symbols by 0.
----------------------------------------

(199)
Obligation:
Rules:
f405_in -> f405_in :|: TRUE

----------------------------------------

(200) IntTRSPeriodicNontermProof (COMPLETE)
Normalized system to the following form:
f(pc) -> f(1) :|: pc = 1 && TRUE
Witness term starting non-terminating reduction: f(1)
----------------------------------------

(201)
NO

----------------------------------------

(202)
Obligation:
Rules:
f586_out -> f585_out :|: TRUE
f585_in -> f586_in :|: TRUE
f572_out -> f573_in :|: TRUE
f452_in -> f572_in :|: TRUE
f573_out -> f452_out :|: TRUE
f588_in -> f593_in :|: TRUE
f588_in -> f592_in :|: TRUE
f592_out -> f588_out :|: TRUE
f593_out -> f588_out :|: TRUE
f592_in -> f594_in :|: TRUE
f592_in -> f595_in :|: TRUE
f595_out -> f592_out :|: TRUE
f594_out -> f592_out :|: TRUE
f430_out -> f426_out :|: TRUE
f426_in -> f431_in :|: TRUE
f426_in -> f430_in :|: TRUE
f431_out -> f426_out :|: TRUE
f424_out -> f422_out :|: TRUE
f422_in -> f424_in :|: TRUE
f420_in -> f405_in :|: TRUE
f405_out -> f420_out :|: TRUE
f422_out -> f572_out :|: TRUE
f572_in -> f422_in :|: TRUE
f411_in -> f415_in :|: TRUE
f415_out -> f411_out :|: TRUE
f416_out -> f411_out :|: TRUE
f411_in -> f416_in :|: TRUE
f593_in -> f602_in :|: TRUE
f602_out -> f593_out :|: TRUE
f601_out -> f593_out :|: TRUE
f593_in -> f601_in :|: TRUE
f421_out -> f416_out :|: TRUE
f416_in -> f420_in :|: TRUE
f416_in -> f421_in :|: TRUE
f420_out -> f416_out :|: TRUE
f450_out -> f452_in :|: TRUE
f443_in -> f450_in :|: TRUE
f452_out -> f443_out :|: TRUE
f344_in -> f347_in :|: TRUE
f347_out -> f344_out :|: TRUE
f377_in -> f379_in :|: TRUE
f379_out -> f377_out :|: TRUE
f405_out -> f379_out :|: TRUE
f379_in -> f405_in :|: TRUE
f411_out -> f405_out :|: TRUE
f405_in -> f411_in :|: TRUE
f341_in -> f344_in :|: TRUE
f344_out -> f341_out :|: TRUE
f422_out -> f584_out :|: TRUE
f584_in -> f422_in :|: TRUE
f594_in -> f594_out :|: TRUE
f589_in -> f589_out :|: TRUE
f431_in -> f443_in :|: TRUE
f443_out -> f431_out :|: TRUE
f431_in -> f444_in :|: TRUE
f444_out -> f431_out :|: TRUE
f587_in -> f589_in :|: TRUE
f590_out -> f587_out :|: TRUE
f587_in -> f590_in :|: TRUE
f589_out -> f587_out :|: TRUE
f370_in -> f377_in :|: TRUE
f377_out -> f370_out :|: TRUE
f603_out -> f601_out :|: TRUE
f601_in -> f604_in :|: TRUE
f601_in -> f603_in :|: TRUE
f604_out -> f601_out :|: TRUE
f450_in -> f341_in :|: TRUE
f341_out -> f450_out :|: TRUE
f417_in -> f417_out :|: TRUE
f415_in -> f417_in :|: TRUE
f418_out -> f415_out :|: TRUE
f417_out -> f415_out :|: TRUE
f415_in -> f418_in :|: TRUE
f588_out -> f586_out :|: TRUE
f586_in -> f587_in :|: TRUE
f587_out -> f586_out :|: TRUE
f586_in -> f588_in :|: TRUE
f585_out -> f603_out :|: TRUE
f603_in -> f585_in :|: TRUE
f347_in -> f370_in :|: TRUE
f370_out -> f347_out :|: TRUE
f425_out -> f424_out :|: TRUE
f424_in -> f425_in :|: TRUE
f424_in -> f426_in :|: TRUE
f426_out -> f424_out :|: TRUE
f573_in -> f584_in :|: TRUE
f584_out -> f585_in :|: TRUE
f585_out -> f573_out :|: TRUE
f2_in(T2) -> f4_in(T2) :|: TRUE
f4_out(x) -> f2_out(x) :|: TRUE
f7_out(x1) -> f4_out(x1) :|: TRUE
f4_in(x2) -> f10_in(x2) :|: TRUE
f10_out(x3) -> f4_out(x3) :|: TRUE
f4_in(x4) -> f7_in(x4) :|: TRUE
f10_in(x5) -> f21_in(x5) :|: TRUE
f21_out(x6) -> f10_out(x6) :|: TRUE
f10_in(x7) -> f23_in(x7) :|: TRUE
f23_out(x8) -> f10_out(x8) :|: TRUE
f34_out -> f23_out(x9) :|: TRUE
f23_in(x10) -> f34_in :|: TRUE
f32_out(T19) -> f23_out(T19) :|: TRUE
f23_in(x11) -> f32_in(x11) :|: TRUE
f342_out(x12) -> f32_out(x12) :|: TRUE
f32_in(x13) -> f341_in :|: TRUE
f341_out -> f342_in(x14) :|: TRUE
f423_out(x15) -> f342_out(x15) :|: TRUE
f422_out -> f423_in(x16) :|: TRUE
f342_in(x17) -> f422_in :|: TRUE
f423_in(x18) -> f649_in :|: TRUE
f649_out -> f650_in(x19) :|: TRUE
f650_out(x20) -> f423_out(x20) :|: TRUE
f649_in -> f422_in :|: TRUE
f422_out -> f649_out :|: TRUE
Start term: f2_in(T2)

----------------------------------------

(203) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f452_in -> f572_in :|: TRUE
f426_in -> f431_in :|: TRUE
f422_in -> f424_in :|: TRUE
f420_in -> f405_in :|: TRUE
f405_out -> f420_out :|: TRUE
f572_in -> f422_in :|: TRUE
f411_in -> f415_in :|: TRUE
f415_out -> f411_out :|: TRUE
f416_out -> f411_out :|: TRUE
f411_in -> f416_in :|: TRUE
f416_in -> f420_in :|: TRUE
f420_out -> f416_out :|: TRUE
f450_out -> f452_in :|: TRUE
f443_in -> f450_in :|: TRUE
f344_in -> f347_in :|: TRUE
f347_out -> f344_out :|: TRUE
f377_in -> f379_in :|: TRUE
f379_out -> f377_out :|: TRUE
f405_out -> f379_out :|: TRUE
f379_in -> f405_in :|: TRUE
f411_out -> f405_out :|: TRUE
f405_in -> f411_in :|: TRUE
f341_in -> f344_in :|: TRUE
f344_out -> f341_out :|: TRUE
f431_in -> f443_in :|: TRUE
f370_in -> f377_in :|: TRUE
f377_out -> f370_out :|: TRUE
f450_in -> f341_in :|: TRUE
f341_out -> f450_out :|: TRUE
f417_in -> f417_out :|: TRUE
f415_in -> f417_in :|: TRUE
f417_out -> f415_out :|: TRUE
f347_in -> f370_in :|: TRUE
f370_out -> f347_out :|: TRUE
f424_in -> f426_in :|: TRUE
f341_out -> f342_in(x14) :|: TRUE
f342_in(x17) -> f422_in :|: TRUE


----------------------------------------

(204)
Obligation:
Rules:
f452_in -> f572_in :|: TRUE
f426_in -> f431_in :|: TRUE
f422_in -> f424_in :|: TRUE
f420_in -> f405_in :|: TRUE
f405_out -> f420_out :|: TRUE
f572_in -> f422_in :|: TRUE
f411_in -> f415_in :|: TRUE
f415_out -> f411_out :|: TRUE
f416_out -> f411_out :|: TRUE
f411_in -> f416_in :|: TRUE
f416_in -> f420_in :|: TRUE
f420_out -> f416_out :|: TRUE
f450_out -> f452_in :|: TRUE
f443_in -> f450_in :|: TRUE
f344_in -> f347_in :|: TRUE
f347_out -> f344_out :|: TRUE
f377_in -> f379_in :|: TRUE
f379_out -> f377_out :|: TRUE
f405_out -> f379_out :|: TRUE
f379_in -> f405_in :|: TRUE
f411_out -> f405_out :|: TRUE
f405_in -> f411_in :|: TRUE
f341_in -> f344_in :|: TRUE
f344_out -> f341_out :|: TRUE
f431_in -> f443_in :|: TRUE
f370_in -> f377_in :|: TRUE
f377_out -> f370_out :|: TRUE
f450_in -> f341_in :|: TRUE
f341_out -> f450_out :|: TRUE
f417_in -> f417_out :|: TRUE
f415_in -> f417_in :|: TRUE
f417_out -> f415_out :|: TRUE
f347_in -> f370_in :|: TRUE
f370_out -> f347_out :|: TRUE
f424_in -> f426_in :|: TRUE
f341_out -> f342_in(x14) :|: TRUE
f342_in(x17) -> f422_in :|: TRUE

----------------------------------------

(205) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(206)
Obligation:
Rules:
f411_in -> f411_in :|: TRUE
f411_in -> f405_out :|: TRUE
f405_out -> f405_out :|: TRUE
f405_out -> f411_in :|: TRUE

----------------------------------------

(207) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(208)
Obligation:
Rules:
f411_in -> f411_in :|: TRUE
f411_in -> f405_out :|: TRUE
f405_out -> f405_out :|: TRUE
f405_out -> f411_in :|: TRUE

----------------------------------------

(209) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f411_in -> f411_in :|: TRUE
(2) f411_in -> f405_out :|: TRUE
(3) f405_out -> f405_out :|: TRUE
(4) f405_out -> f411_in :|: TRUE

Arcs:
(1) -> (1), (2)
(2) -> (3), (4)
(3) -> (3), (4)
(4) -> (1), (2)

This digraph is fully evaluated!
----------------------------------------

(210)
Obligation:

Termination digraph:
Nodes:
(1) f411_in -> f411_in :|: TRUE
(2) f405_out -> f411_in :|: TRUE
(3) f405_out -> f405_out :|: TRUE
(4) f411_in -> f405_out :|: TRUE

Arcs:
(1) -> (1), (4)
(2) -> (1), (4)
(3) -> (2), (3)
(4) -> (2), (3)

This digraph is fully evaluated!

----------------------------------------

(211) FilterProof (EQUIVALENT)
Used the following sort dictionary for filtering: 
f411_in()
f405_out()
Replaced non-predefined constructor symbols by 0.
----------------------------------------

(212)
Obligation:
Rules:
f411_in -> f411_in :|: TRUE
f405_out -> f411_in :|: TRUE
f405_out -> f405_out :|: TRUE
f411_in -> f405_out :|: TRUE

----------------------------------------

(213) IntTRSPeriodicNontermProof (COMPLETE)
Normalized system to the following form:
f(pc) -> f(1) :|: pc = 1 && TRUE
f(pc) -> f(1) :|: pc = 2 && TRUE
f(pc) -> f(2) :|: pc = 2 && TRUE
f(pc) -> f(2) :|: pc = 1 && TRUE
Witness term starting non-terminating reduction: f(1)
----------------------------------------

(214)
NO
