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/AIIWB.pl
# AProVE Commit ID: 23a904c96b029b0a549cde0d0d17dbccf967db59 jckassing 20260626 unpublished dirty


Left Termination of the query pattern

reach(g,g,g)

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

(0) Prolog
(1) PrologToPiTRSProof [SOUND, 0 ms]
(2) PiTRS
    (3) DependencyPairsProof [EQUIVALENT, 0 ms]
    (4) PiDP
    (5) DependencyGraphProof [EQUIVALENT, 0 ms]
    (6) AND
        (7) PiDP
            (8) UsableRulesProof [EQUIVALENT, 0 ms]
            (9) PiDP
            (10) PiDPToQDPProof [SOUND, 0 ms]
            (11) QDP
            (12) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (13) YES
        (14) PiDP
            (15) UsableRulesProof [EQUIVALENT, 0 ms]
            (16) PiDP
            (17) PiDPToQDPProof [EQUIVALENT, 0 ms]
            (18) QDP
            (19) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (20) YES
        (21) PiDP
            (22) UsableRulesProof [EQUIVALENT, 0 ms]
            (23) PiDP
            (24) PiDPToQDPProof [SOUND, 0 ms]
            (25) QDP
            (26) TransformationProof [SOUND, 0 ms]
            (27) QDP
            (28) TransformationProof [EQUIVALENT, 0 ms]
            (29) QDP
            (30) TransformationProof [EQUIVALENT, 0 ms]
            (31) QDP
(32) PrologToPiTRSProof [SOUND, 0 ms]
(33) PiTRS
    (34) DependencyPairsProof [EQUIVALENT, 0 ms]
    (35) PiDP
    (36) DependencyGraphProof [EQUIVALENT, 0 ms]
    (37) AND
        (38) PiDP
            (39) UsableRulesProof [EQUIVALENT, 0 ms]
            (40) PiDP
            (41) PiDPToQDPProof [SOUND, 0 ms]
            (42) QDP
            (43) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (44) YES
        (45) PiDP
            (46) UsableRulesProof [EQUIVALENT, 0 ms]
            (47) PiDP
            (48) PiDPToQDPProof [EQUIVALENT, 0 ms]
            (49) QDP
            (50) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (51) YES
        (52) PiDP
            (53) UsableRulesProof [EQUIVALENT, 0 ms]
            (54) PiDP
            (55) PiDPToQDPProof [SOUND, 0 ms]
            (56) QDP
            (57) TransformationProof [SOUND, 0 ms]
            (58) QDP
            (59) TransformationProof [EQUIVALENT, 0 ms]
            (60) QDP
            (61) TransformationProof [EQUIVALENT, 0 ms]
            (62) QDP
(63) PrologToTRSTransformerProof [SOUND, 0 ms]
(64) QTRS
    (65) DependencyPairsProof [EQUIVALENT, 0 ms]
    (66) QDP
    (67) DependencyGraphProof [EQUIVALENT, 0 ms]
    (68) AND
        (69) QDP
            (70) UsableRulesProof [EQUIVALENT, 0 ms]
            (71) QDP
            (72) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (73) YES
        (74) QDP
            (75) UsableRulesProof [EQUIVALENT, 0 ms]
            (76) QDP
            (77) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (78) YES
        (79) QDP
            (80) NonTerminationLoopProof [COMPLETE, 157 ms]
            (81) NO
(82) PrologToDTProblemTransformerProof [SOUND, 0 ms]
(83) TRIPLES
    (84) TriplesToPiDPProof [SOUND, 0 ms]
    (85) PiDP
    (86) DependencyGraphProof [EQUIVALENT, 0 ms]
    (87) AND
        (88) PiDP
            (89) UsableRulesProof [EQUIVALENT, 0 ms]
            (90) PiDP
            (91) PiDPToQDPProof [SOUND, 0 ms]
            (92) QDP
            (93) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (94) YES
        (95) PiDP
            (96) UsableRulesProof [EQUIVALENT, 0 ms]
            (97) PiDP
            (98) PiDPToQDPProof [EQUIVALENT, 0 ms]
            (99) QDP
            (100) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (101) YES
        (102) PiDP
            (103) PiDPToQDPProof [SOUND, 0 ms]
            (104) QDP
(105) PrologToIRSwTTransformerProof [SOUND, 29 ms]
(106) AND
    (107) IRSwT
        (108) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (109) IRSwT
        (110) IntTRSCompressionProof [EQUIVALENT, 10 ms]
        (111) IRSwT
        (112) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (113) IRSwT
        (114) IRSwTTerminationDigraphProof [EQUIVALENT, 3 ms]
        (115) IRSwT
        (116) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms]
        (117) IRSwT
        (118) TempFilterProof [SOUND, 1 ms]
        (119) IRSwT
        (120) IRSwTToQDPProof [SOUND, 0 ms]
        (121) QDP
        (122) QDPSizeChangeProof [EQUIVALENT, 0 ms]
        (123) YES
    (124) IRSwT
        (125) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (126) IRSwT
        (127) IntTRSCompressionProof [EQUIVALENT, 1 ms]
        (128) IRSwT
        (129) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (130) IRSwT
        (131) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms]
        (132) IRSwT
        (133) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms]
        (134) IRSwT
        (135) TempFilterProof [SOUND, 0 ms]
        (136) IRSwT
        (137) IRSwTToQDPProof [SOUND, 0 ms]
        (138) QDP
        (139) QDPSizeChangeProof [EQUIVALENT, 0 ms]
        (140) YES
    (141) IRSwT
        (142) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (143) IRSwT
        (144) IntTRSCompressionProof [EQUIVALENT, 5 ms]
        (145) IRSwT
        (146) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (147) IRSwT


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

(0)
Obligation:
Clauses:

reach(X, Y, Edges) :- member(.(X, .(Y, [])), Edges).
reach(X, Z, Edges) :- ','(member1(.(X, .(Y, [])), Edges), reach(Y, Z, Edges)).
member(H, .(H, L)).
member(X, .(H, L)) :- member(X, L).
member1(H, .(H, L)).
member1(X, .(H, L)) :- member1(X, L).


Query: reach(g,g,g)
----------------------------------------

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

reach_in_3: (b,b,b)

member_in_2: (b,b)

member1_in_2: (f,b)

Transforming Prolog into the following Term Rewriting System:

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

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg

U4_gg(x1, x2, x3, x4)  =  U4_gg(x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



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

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

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg

U4_gg(x1, x2, x3, x4)  =  U4_gg(x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)



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

(3) 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:

   REACH_IN_GGG(X, Y, Edges) -> U1_GGG(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   REACH_IN_GGG(X, Y, Edges) -> MEMBER_IN_GG(.(X, .(Y, [])), Edges)
   MEMBER_IN_GG(X, .(H, L)) -> U4_GG(X, H, L, member_in_gg(X, L))
   MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)
   REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   REACH_IN_GGG(X, Z, Edges) -> MEMBER1_IN_AG(.(X, .(Y, [])), Edges)
   MEMBER1_IN_AG(X, .(H, L)) -> U5_AG(X, H, L, member1_in_ag(X, L))
   MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L)
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_GGG(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges)

The TRS R consists of the following rules:

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg

U4_gg(x1, x2, x3, x4)  =  U4_gg(x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

REACH_IN_GGG(x1, x2, x3)  =  REACH_IN_GGG(x1, x2, x3)

U1_GGG(x1, x2, x3, x4)  =  U1_GGG(x4)

MEMBER_IN_GG(x1, x2)  =  MEMBER_IN_GG(x1, x2)

U4_GG(x1, x2, x3, x4)  =  U4_GG(x4)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x2, x3, x4)

MEMBER1_IN_AG(x1, x2)  =  MEMBER1_IN_AG(x2)

U5_AG(x1, x2, x3, x4)  =  U5_AG(x4)

U3_GGG(x1, x2, x3, x4)  =  U3_GGG(x4)


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

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

   REACH_IN_GGG(X, Y, Edges) -> U1_GGG(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   REACH_IN_GGG(X, Y, Edges) -> MEMBER_IN_GG(.(X, .(Y, [])), Edges)
   MEMBER_IN_GG(X, .(H, L)) -> U4_GG(X, H, L, member_in_gg(X, L))
   MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)
   REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   REACH_IN_GGG(X, Z, Edges) -> MEMBER1_IN_AG(.(X, .(Y, [])), Edges)
   MEMBER1_IN_AG(X, .(H, L)) -> U5_AG(X, H, L, member1_in_ag(X, L))
   MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L)
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_GGG(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges)

The TRS R consists of the following rules:

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg

U4_gg(x1, x2, x3, x4)  =  U4_gg(x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

REACH_IN_GGG(x1, x2, x3)  =  REACH_IN_GGG(x1, x2, x3)

U1_GGG(x1, x2, x3, x4)  =  U1_GGG(x4)

MEMBER_IN_GG(x1, x2)  =  MEMBER_IN_GG(x1, x2)

U4_GG(x1, x2, x3, x4)  =  U4_GG(x4)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x2, x3, x4)

MEMBER1_IN_AG(x1, x2)  =  MEMBER1_IN_AG(x2)

U5_AG(x1, x2, x3, x4)  =  U5_AG(x4)

U3_GGG(x1, x2, x3, x4)  =  U3_GGG(x4)


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

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

(6)
Complex Obligation (AND)

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

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

   MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L)

The TRS R consists of the following rules:

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg

U4_gg(x1, x2, x3, x4)  =  U4_gg(x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

MEMBER1_IN_AG(x1, x2)  =  MEMBER1_IN_AG(x2)


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

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

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

   MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L)

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

MEMBER1_IN_AG(x1, x2)  =  MEMBER1_IN_AG(x2)


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

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

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

   MEMBER1_IN_AG(.(H, L)) -> MEMBER1_IN_AG(L)

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

(12) 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:
*MEMBER1_IN_AG(.(H, L)) -> MEMBER1_IN_AG(L)
The graph contains the following edges 1 > 1


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

(13)
YES

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

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

   MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)

The TRS R consists of the following rules:

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg

U4_gg(x1, x2, x3, x4)  =  U4_gg(x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

MEMBER_IN_GG(x1, x2)  =  MEMBER_IN_GG(x1, x2)


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

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

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

   MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)

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

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

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

   MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)

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

(19) 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:
*MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)
The graph contains the following edges 1 >= 1, 2 > 2


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

(20)
YES

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

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

   REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges)

The TRS R consists of the following rules:

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg

U4_gg(x1, x2, x3, x4)  =  U4_gg(x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

REACH_IN_GGG(x1, x2, x3)  =  REACH_IN_GGG(x1, x2, x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x2, x3, x4)


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

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

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

   REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges)

The TRS R consists of the following rules:

   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))

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

[]  =  []

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x4)

REACH_IN_GGG(x1, x2, x3)  =  REACH_IN_GGG(x1, x2, x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x2, x3, x4)


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

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

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

   REACH_IN_GGG(X, Z, Edges) -> U2_GGG(Z, Edges, member1_in_ag(Edges))
   U2_GGG(Z, Edges, member1_out_ag(.(X, .(Y, [])))) -> REACH_IN_GGG(Y, Z, Edges)

The TRS R consists of the following rules:

   member1_in_ag(.(H, L)) -> member1_out_ag(H)
   member1_in_ag(.(H, L)) -> U5_ag(member1_in_ag(L))
   U5_ag(member1_out_ag(X)) -> member1_out_ag(X)

The set Q consists of the following terms:

   member1_in_ag(x0)
   U5_ag(x0)

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

(26) TransformationProof (SOUND)
By narrowing [LPAR04] the rule REACH_IN_GGG(X, Z, Edges) -> U2_GGG(Z, Edges, member1_in_ag(Edges)) at position [2] we obtained the following new rules [LPAR04]:

   (REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), member1_out_ag(x0)),REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), member1_out_ag(x0)))
   (REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), U5_ag(member1_in_ag(x1))),REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), U5_ag(member1_in_ag(x1))))


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

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

   U2_GGG(Z, Edges, member1_out_ag(.(X, .(Y, [])))) -> REACH_IN_GGG(Y, Z, Edges)
   REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), member1_out_ag(x0))
   REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), U5_ag(member1_in_ag(x1)))

The TRS R consists of the following rules:

   member1_in_ag(.(H, L)) -> member1_out_ag(H)
   member1_in_ag(.(H, L)) -> U5_ag(member1_in_ag(L))
   U5_ag(member1_out_ag(X)) -> member1_out_ag(X)

The set Q consists of the following terms:

   member1_in_ag(x0)
   U5_ag(x0)

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

(28) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule U2_GGG(Z, Edges, member1_out_ag(.(X, .(Y, [])))) -> REACH_IN_GGG(Y, Z, Edges) we obtained the following new rules [LPAR04]:

   (U2_GGG(z1, .(.(x2, .(x3, [])), z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(.(x2, .(x3, [])), z3)),U2_GGG(z1, .(.(x2, .(x3, [])), z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(.(x2, .(x3, [])), z3)))
   (U2_GGG(z1, .(z2, z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(z2, z3)),U2_GGG(z1, .(z2, z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(z2, z3)))


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

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

   REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), member1_out_ag(x0))
   REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), U5_ag(member1_in_ag(x1)))
   U2_GGG(z1, .(.(x2, .(x3, [])), z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(.(x2, .(x3, [])), z3))
   U2_GGG(z1, .(z2, z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(z2, z3))

The TRS R consists of the following rules:

   member1_in_ag(.(H, L)) -> member1_out_ag(H)
   member1_in_ag(.(H, L)) -> U5_ag(member1_in_ag(L))
   U5_ag(member1_out_ag(X)) -> member1_out_ag(X)

The set Q consists of the following terms:

   member1_in_ag(x0)
   U5_ag(x0)

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

(30) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), member1_out_ag(x0)) we obtained the following new rules [LPAR04]:

   (REACH_IN_GGG(x0, x1, .(.(y_1, .(y_2, [])), x3)) -> U2_GGG(x1, .(.(y_1, .(y_2, [])), x3), member1_out_ag(.(y_1, .(y_2, [])))),REACH_IN_GGG(x0, x1, .(.(y_1, .(y_2, [])), x3)) -> U2_GGG(x1, .(.(y_1, .(y_2, [])), x3), member1_out_ag(.(y_1, .(y_2, [])))))


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

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

   REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), U5_ag(member1_in_ag(x1)))
   U2_GGG(z1, .(.(x2, .(x3, [])), z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(.(x2, .(x3, [])), z3))
   U2_GGG(z1, .(z2, z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(z2, z3))
   REACH_IN_GGG(x0, x1, .(.(y_1, .(y_2, [])), x3)) -> U2_GGG(x1, .(.(y_1, .(y_2, [])), x3), member1_out_ag(.(y_1, .(y_2, []))))

The TRS R consists of the following rules:

   member1_in_ag(.(H, L)) -> member1_out_ag(H)
   member1_in_ag(.(H, L)) -> U5_ag(member1_in_ag(L))
   U5_ag(member1_out_ag(X)) -> member1_out_ag(X)

The set Q consists of the following terms:

   member1_in_ag(x0)
   U5_ag(x0)

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

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

reach_in_3: (b,b,b)

member_in_2: (b,b)

member1_in_2: (f,b)

Transforming Prolog into the following Term Rewriting System:

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

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x1, x2, x3, x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg(x1, x2)

U4_gg(x1, x2, x3, x4)  =  U4_gg(x1, x2, x3, x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1, x2)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x2, x3, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



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

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

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x1, x2, x3, x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg(x1, x2)

U4_gg(x1, x2, x3, x4)  =  U4_gg(x1, x2, x3, x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1, x2)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x2, x3, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)



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

(34) 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:

   REACH_IN_GGG(X, Y, Edges) -> U1_GGG(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   REACH_IN_GGG(X, Y, Edges) -> MEMBER_IN_GG(.(X, .(Y, [])), Edges)
   MEMBER_IN_GG(X, .(H, L)) -> U4_GG(X, H, L, member_in_gg(X, L))
   MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)
   REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   REACH_IN_GGG(X, Z, Edges) -> MEMBER1_IN_AG(.(X, .(Y, [])), Edges)
   MEMBER1_IN_AG(X, .(H, L)) -> U5_AG(X, H, L, member1_in_ag(X, L))
   MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L)
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_GGG(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges)

The TRS R consists of the following rules:

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x1, x2, x3, x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg(x1, x2)

U4_gg(x1, x2, x3, x4)  =  U4_gg(x1, x2, x3, x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1, x2)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x2, x3, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

REACH_IN_GGG(x1, x2, x3)  =  REACH_IN_GGG(x1, x2, x3)

U1_GGG(x1, x2, x3, x4)  =  U1_GGG(x1, x2, x3, x4)

MEMBER_IN_GG(x1, x2)  =  MEMBER_IN_GG(x1, x2)

U4_GG(x1, x2, x3, x4)  =  U4_GG(x1, x2, x3, x4)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x2, x3, x4)

MEMBER1_IN_AG(x1, x2)  =  MEMBER1_IN_AG(x2)

U5_AG(x1, x2, x3, x4)  =  U5_AG(x2, x3, x4)

U3_GGG(x1, x2, x3, x4)  =  U3_GGG(x1, x2, x3, x4)


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

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

   REACH_IN_GGG(X, Y, Edges) -> U1_GGG(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   REACH_IN_GGG(X, Y, Edges) -> MEMBER_IN_GG(.(X, .(Y, [])), Edges)
   MEMBER_IN_GG(X, .(H, L)) -> U4_GG(X, H, L, member_in_gg(X, L))
   MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)
   REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   REACH_IN_GGG(X, Z, Edges) -> MEMBER1_IN_AG(.(X, .(Y, [])), Edges)
   MEMBER1_IN_AG(X, .(H, L)) -> U5_AG(X, H, L, member1_in_ag(X, L))
   MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L)
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_GGG(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges)

The TRS R consists of the following rules:

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x1, x2, x3, x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg(x1, x2)

U4_gg(x1, x2, x3, x4)  =  U4_gg(x1, x2, x3, x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1, x2)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x2, x3, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

REACH_IN_GGG(x1, x2, x3)  =  REACH_IN_GGG(x1, x2, x3)

U1_GGG(x1, x2, x3, x4)  =  U1_GGG(x1, x2, x3, x4)

MEMBER_IN_GG(x1, x2)  =  MEMBER_IN_GG(x1, x2)

U4_GG(x1, x2, x3, x4)  =  U4_GG(x1, x2, x3, x4)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x2, x3, x4)

MEMBER1_IN_AG(x1, x2)  =  MEMBER1_IN_AG(x2)

U5_AG(x1, x2, x3, x4)  =  U5_AG(x2, x3, x4)

U3_GGG(x1, x2, x3, x4)  =  U3_GGG(x1, x2, x3, x4)


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

(36) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 6 less nodes.
----------------------------------------

(37)
Complex Obligation (AND)

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

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

   MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L)

The TRS R consists of the following rules:

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x1, x2, x3, x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg(x1, x2)

U4_gg(x1, x2, x3, x4)  =  U4_gg(x1, x2, x3, x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1, x2)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x2, x3, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

MEMBER1_IN_AG(x1, x2)  =  MEMBER1_IN_AG(x2)


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

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

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

   MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L)

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

MEMBER1_IN_AG(x1, x2)  =  MEMBER1_IN_AG(x2)


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

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

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

   MEMBER1_IN_AG(.(H, L)) -> MEMBER1_IN_AG(L)

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

(43) 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:
*MEMBER1_IN_AG(.(H, L)) -> MEMBER1_IN_AG(L)
The graph contains the following edges 1 > 1


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

(44)
YES

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

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

   MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)

The TRS R consists of the following rules:

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x1, x2, x3, x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg(x1, x2)

U4_gg(x1, x2, x3, x4)  =  U4_gg(x1, x2, x3, x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1, x2)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x2, x3, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

MEMBER_IN_GG(x1, x2)  =  MEMBER_IN_GG(x1, x2)


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

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

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

   MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)

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

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

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

   MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)

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

(50) 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:
*MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L)
The graph contains the following edges 1 >= 1, 2 > 2


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

(51)
YES

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

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

   REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges)

The TRS R consists of the following rules:

   reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges))
   member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L))
   member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L))
   U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L))
   U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges)
   reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))
   U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges))
   U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges)

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

U1_ggg(x1, x2, x3, x4)  =  U1_ggg(x1, x2, x3, x4)

member_in_gg(x1, x2)  =  member_in_gg(x1, x2)

.(x1, x2)  =  .(x1, x2)

member_out_gg(x1, x2)  =  member_out_gg(x1, x2)

U4_gg(x1, x2, x3, x4)  =  U4_gg(x1, x2, x3, x4)

[]  =  []

reach_out_ggg(x1, x2, x3)  =  reach_out_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1, x2)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x2, x3, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

REACH_IN_GGG(x1, x2, x3)  =  REACH_IN_GGG(x1, x2, x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x2, x3, x4)


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

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

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

   REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges))
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges)

The TRS R consists of the following rules:

   member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L))
   U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))

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

[]  =  []

member1_in_ag(x1, x2)  =  member1_in_ag(x2)

member1_out_ag(x1, x2)  =  member1_out_ag(x1, x2)

U5_ag(x1, x2, x3, x4)  =  U5_ag(x2, x3, x4)

REACH_IN_GGG(x1, x2, x3)  =  REACH_IN_GGG(x1, x2, x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x2, x3, x4)


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

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

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

   REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(Edges))
   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges)

The TRS R consists of the following rules:

   member1_in_ag(.(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(.(H, L)) -> U5_ag(H, L, member1_in_ag(L))
   U5_ag(H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))

The set Q consists of the following terms:

   member1_in_ag(x0)
   U5_ag(x0, x1, x2)

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

(57) TransformationProof (SOUND)
By narrowing [LPAR04] the rule REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(Edges)) at position [3] we obtained the following new rules [LPAR04]:

   (REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), member1_out_ag(x0, .(x0, x1))),REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), member1_out_ag(x0, .(x0, x1))))
   (REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), U5_ag(x0, x1, member1_in_ag(x1))),REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), U5_ag(x0, x1, member1_in_ag(x1))))


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

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

   U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges)
   REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), member1_out_ag(x0, .(x0, x1)))
   REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), U5_ag(x0, x1, member1_in_ag(x1)))

The TRS R consists of the following rules:

   member1_in_ag(.(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(.(H, L)) -> U5_ag(H, L, member1_in_ag(L))
   U5_ag(H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))

The set Q consists of the following terms:

   member1_in_ag(x0)
   U5_ag(x0, x1, x2)

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

(59) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges) we obtained the following new rules [LPAR04]:

   (U2_GGG(z0, z1, .(.(z0, .(x3, [])), z3), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) -> REACH_IN_GGG(x3, z1, .(.(z0, .(x3, [])), z3)),U2_GGG(z0, z1, .(.(z0, .(x3, [])), z3), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) -> REACH_IN_GGG(x3, z1, .(.(z0, .(x3, [])), z3)))
   (U2_GGG(z0, z1, .(z2, z3), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) -> REACH_IN_GGG(x3, z1, .(z2, z3)),U2_GGG(z0, z1, .(z2, z3), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) -> REACH_IN_GGG(x3, z1, .(z2, z3)))


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

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

   REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), member1_out_ag(x0, .(x0, x1)))
   REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), U5_ag(x0, x1, member1_in_ag(x1)))
   U2_GGG(z0, z1, .(.(z0, .(x3, [])), z3), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) -> REACH_IN_GGG(x3, z1, .(.(z0, .(x3, [])), z3))
   U2_GGG(z0, z1, .(z2, z3), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) -> REACH_IN_GGG(x3, z1, .(z2, z3))

The TRS R consists of the following rules:

   member1_in_ag(.(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(.(H, L)) -> U5_ag(H, L, member1_in_ag(L))
   U5_ag(H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))

The set Q consists of the following terms:

   member1_in_ag(x0)
   U5_ag(x0, x1, x2)

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

(61) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), member1_out_ag(x0, .(x0, x1))) we obtained the following new rules [LPAR04]:

   (REACH_IN_GGG(x0, x1, .(.(y_2, .(y_3, [])), x3)) -> U2_GGG(x0, x1, .(.(y_2, .(y_3, [])), x3), member1_out_ag(.(y_2, .(y_3, [])), .(.(y_2, .(y_3, [])), x3))),REACH_IN_GGG(x0, x1, .(.(y_2, .(y_3, [])), x3)) -> U2_GGG(x0, x1, .(.(y_2, .(y_3, [])), x3), member1_out_ag(.(y_2, .(y_3, [])), .(.(y_2, .(y_3, [])), x3))))


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

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

   REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), U5_ag(x0, x1, member1_in_ag(x1)))
   U2_GGG(z0, z1, .(.(z0, .(x3, [])), z3), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) -> REACH_IN_GGG(x3, z1, .(.(z0, .(x3, [])), z3))
   U2_GGG(z0, z1, .(z2, z3), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) -> REACH_IN_GGG(x3, z1, .(z2, z3))
   REACH_IN_GGG(x0, x1, .(.(y_2, .(y_3, [])), x3)) -> U2_GGG(x0, x1, .(.(y_2, .(y_3, [])), x3), member1_out_ag(.(y_2, .(y_3, [])), .(.(y_2, .(y_3, [])), x3)))

The TRS R consists of the following rules:

   member1_in_ag(.(H, L)) -> member1_out_ag(H, .(H, L))
   member1_in_ag(.(H, L)) -> U5_ag(H, L, member1_in_ag(L))
   U5_ag(H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L))

The set Q consists of the following terms:

   member1_in_ag(x0)
   U5_ag(x0, x1, x2)

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

(63) PrologToTRSTransformerProof (SOUND)
Transformed Prolog program to TRS.

{
    "root": 2,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(reach X Y Edges)",
                "(member (. X (. Y ([]))) Edges)"
            ],
            [
                "(reach X Z Edges)",
                "(',' (member1 (. X (. Y ([]))) Edges) (reach Y Z Edges))"
            ],
            [
                "(member H (. H L))",
                null
            ],
            [
                "(member X (. H L))",
                "(member X L)"
            ],
            [
                "(member1 H (. H L))",
                null
            ],
            [
                "(member1 X (. H L))",
                "(member1 X L)"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "290": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member1 (. T119 (. X106 ([]))) T121)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T119",
                        "T121"
                    ],
                    "free": ["X106"],
                    "exprvars": []
                }
            },
            "291": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "150": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(member (. T28 (. T29 ([]))) T30)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T28",
                        "T29",
                        "T30"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "151": {
                "goal": [{
                    "clause": 3,
                    "scope": 2,
                    "term": "(member (. T28 (. T29 ([]))) T30)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T28",
                        "T29",
                        "T30"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "154": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "155": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "210": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "156": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "18": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(reach T1 T2 T3)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(reach T1 T2 T3)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "281": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member1 (. T82 (. X67 ([]))) T84) (reach X67 T83 T84))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T83",
                        "T84"
                    ],
                    "free": ["X67"],
                    "exprvars": []
                }
            },
            "282": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member1 (. T82 (. X67 ([]))) T84)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T84"
                    ],
                    "free": ["X67"],
                    "exprvars": []
                }
            },
            "283": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(reach T91 T83 T84)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T83",
                        "T84",
                        "T91"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "284": {
                "goal": [
                    {
                        "clause": 4,
                        "scope": 3,
                        "term": "(member1 (. T82 (. X67 ([]))) T84)"
                    },
                    {
                        "clause": 5,
                        "scope": 3,
                        "term": "(member1 (. T82 (. X67 ([]))) T84)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T84"
                    ],
                    "free": ["X67"],
                    "exprvars": []
                }
            },
            "285": {
                "goal": [{
                    "clause": 4,
                    "scope": 3,
                    "term": "(member1 (. T82 (. X67 ([]))) T84)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T84"
                    ],
                    "free": ["X67"],
                    "exprvars": []
                }
            },
            "286": {
                "goal": [{
                    "clause": 5,
                    "scope": 3,
                    "term": "(member1 (. T82 (. X67 ([]))) T84)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T84"
                    ],
                    "free": ["X67"],
                    "exprvars": []
                }
            },
            "287": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "2": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(reach T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "288": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "102": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(reach T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "289": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "126": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member (. T28 (. T29 ([]))) T30)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T28",
                        "T29",
                        "T30"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "148": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(member (. T28 (. T29 ([]))) T30)"
                    },
                    {
                        "clause": 3,
                        "scope": 2,
                        "term": "(member (. T28 (. T29 ([]))) T30)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T28",
                        "T29",
                        "T30"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "106": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(reach T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "208": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member (. T60 (. T61 ([]))) T63)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T60",
                        "T61",
                        "T63"
                    ],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 2,
                "to": 18,
                "label": "CASE"
            },
            {
                "from": 18,
                "to": 102,
                "label": "PARALLEL"
            },
            {
                "from": 18,
                "to": 106,
                "label": "PARALLEL"
            },
            {
                "from": 102,
                "to": 126,
                "label": "ONLY EVAL with clause\nreach(X21, X22, X23) :- member(.(X21, .(X22, [])), X23).\nand substitutionT1 -> T28,\nX21 -> T28,\nT2 -> T29,\nX22 -> T29,\nT3 -> T30,\nX23 -> T30"
            },
            {
                "from": 106,
                "to": 281,
                "label": "ONLY EVAL with clause\nreach(X64, X65, X66) :- ','(member1(.(X64, .(X67, [])), X66), reach(X67, X65, X66)).\nand substitutionT1 -> T82,\nX64 -> T82,\nT2 -> T83,\nX65 -> T83,\nT3 -> T84,\nX66 -> T84"
            },
            {
                "from": 126,
                "to": 148,
                "label": "CASE"
            },
            {
                "from": 148,
                "to": 150,
                "label": "PARALLEL"
            },
            {
                "from": 148,
                "to": 151,
                "label": "PARALLEL"
            },
            {
                "from": 150,
                "to": 154,
                "label": "EVAL with clause\nmember(X36, .(X36, X37)).\nand substitutionT28 -> T49,\nT29 -> T50,\nX36 -> .(T49, .(T50, [])),\nX37 -> T51,\nT30 -> .(.(T49, .(T50, [])), T51)"
            },
            {
                "from": 150,
                "to": 155,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 151,
                "to": 208,
                "label": "EVAL with clause\nmember(X44, .(X45, X46)) :- member(X44, X46).\nand substitutionT28 -> T60,\nT29 -> T61,\nX44 -> .(T60, .(T61, [])),\nX45 -> T62,\nX46 -> T63,\nT30 -> .(T62, T63)"
            },
            {
                "from": 151,
                "to": 210,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 154,
                "to": 156,
                "label": "SUCCESS"
            },
            {
                "from": 208,
                "to": 126,
                "label": "INSTANCE with matching:\nT28 -> T60\nT29 -> T61\nT30 -> T63"
            },
            {
                "from": 281,
                "to": 282,
                "label": "SPLIT 1"
            },
            {
                "from": 281,
                "to": 283,
                "label": "SPLIT 2\nnew knowledge:\nT82 is ground\nT91 is ground\nT84 is ground\nreplacements:X67 -> T91"
            },
            {
                "from": 282,
                "to": 284,
                "label": "CASE"
            },
            {
                "from": 283,
                "to": 2,
                "label": "INSTANCE with matching:\nT1 -> T91\nT2 -> T83\nT3 -> T84"
            },
            {
                "from": 284,
                "to": 285,
                "label": "PARALLEL"
            },
            {
                "from": 284,
                "to": 286,
                "label": "PARALLEL"
            },
            {
                "from": 285,
                "to": 287,
                "label": "EVAL with clause\nmember1(X92, .(X92, X93)).\nand substitutionT82 -> T110,\nX67 -> T111,\nX92 -> .(T110, .(T111, [])),\nX94 -> T111,\nX93 -> T112,\nT84 -> .(.(T110, .(T111, [])), T112)"
            },
            {
                "from": 285,
                "to": 288,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 286,
                "to": 290,
                "label": "EVAL with clause\nmember1(X103, .(X104, X105)) :- member1(X103, X105).\nand substitutionT82 -> T119,\nX67 -> X106,\nX103 -> .(T119, .(X106, [])),\nX104 -> T120,\nX105 -> T121,\nT84 -> .(T120, T121)"
            },
            {
                "from": 286,
                "to": 291,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 287,
                "to": 289,
                "label": "SUCCESS"
            },
            {
                "from": 290,
                "to": 282,
                "label": "INSTANCE with matching:\nT82 -> T119\nX67 -> X106\nT84 -> T121"
            }
        ],
        "type": "Graph"
    }
}

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

(64)
Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:

   f2_in(T28, T29, T30) -> U1(f126_in(T28, T29, T30), T28, T29, T30)
   U1(f126_out1, T28, T29, T30) -> f2_out1
   f2_in(T82, T83, T84) -> U2(f281_in(T82, T84, T83), T82, T83, T84)
   U2(f281_out1(X67), T82, T83, T84) -> f2_out1
   f126_in(T49, T50, .(.(T49, .(T50, [])), T51)) -> f126_out1
   f126_in(T60, T61, .(T62, T63)) -> U3(f126_in(T60, T61, T63), T60, T61, .(T62, T63))
   U3(f126_out1, T60, T61, .(T62, T63)) -> f126_out1
   f282_in(T110, .(.(T110, .(T111, [])), T112)) -> f282_out1(T111)
   f282_in(T119, .(T120, T121)) -> U4(f282_in(T119, T121), T119, .(T120, T121))
   U4(f282_out1(X106), T119, .(T120, T121)) -> f282_out1(X106)
   f281_in(T82, T84, T83) -> U5(f282_in(T82, T84), T82, T84, T83)
   U5(f282_out1(T91), T82, T84, T83) -> U6(f2_in(T91, T83, T84), T82, T84, T83, T91)
   U6(f2_out1, T82, T84, T83, T91) -> f281_out1(T91)

Q is empty.

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

(65) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.
----------------------------------------

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

   F2_IN(T28, T29, T30) -> U1^1(f126_in(T28, T29, T30), T28, T29, T30)
   F2_IN(T28, T29, T30) -> F126_IN(T28, T29, T30)
   F2_IN(T82, T83, T84) -> U2^1(f281_in(T82, T84, T83), T82, T83, T84)
   F2_IN(T82, T83, T84) -> F281_IN(T82, T84, T83)
   F126_IN(T60, T61, .(T62, T63)) -> U3^1(f126_in(T60, T61, T63), T60, T61, .(T62, T63))
   F126_IN(T60, T61, .(T62, T63)) -> F126_IN(T60, T61, T63)
   F282_IN(T119, .(T120, T121)) -> U4^1(f282_in(T119, T121), T119, .(T120, T121))
   F282_IN(T119, .(T120, T121)) -> F282_IN(T119, T121)
   F281_IN(T82, T84, T83) -> U5^1(f282_in(T82, T84), T82, T84, T83)
   F281_IN(T82, T84, T83) -> F282_IN(T82, T84)
   U5^1(f282_out1(T91), T82, T84, T83) -> U6^1(f2_in(T91, T83, T84), T82, T84, T83, T91)
   U5^1(f282_out1(T91), T82, T84, T83) -> F2_IN(T91, T83, T84)

The TRS R consists of the following rules:

   f2_in(T28, T29, T30) -> U1(f126_in(T28, T29, T30), T28, T29, T30)
   U1(f126_out1, T28, T29, T30) -> f2_out1
   f2_in(T82, T83, T84) -> U2(f281_in(T82, T84, T83), T82, T83, T84)
   U2(f281_out1(X67), T82, T83, T84) -> f2_out1
   f126_in(T49, T50, .(.(T49, .(T50, [])), T51)) -> f126_out1
   f126_in(T60, T61, .(T62, T63)) -> U3(f126_in(T60, T61, T63), T60, T61, .(T62, T63))
   U3(f126_out1, T60, T61, .(T62, T63)) -> f126_out1
   f282_in(T110, .(.(T110, .(T111, [])), T112)) -> f282_out1(T111)
   f282_in(T119, .(T120, T121)) -> U4(f282_in(T119, T121), T119, .(T120, T121))
   U4(f282_out1(X106), T119, .(T120, T121)) -> f282_out1(X106)
   f281_in(T82, T84, T83) -> U5(f282_in(T82, T84), T82, T84, T83)
   U5(f282_out1(T91), T82, T84, T83) -> U6(f2_in(T91, T83, T84), T82, T84, T83, T91)
   U6(f2_out1, T82, T84, T83, T91) -> f281_out1(T91)

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

(67) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 7 less nodes.
----------------------------------------

(68)
Complex Obligation (AND)

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

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

   F282_IN(T119, .(T120, T121)) -> F282_IN(T119, T121)

The TRS R consists of the following rules:

   f2_in(T28, T29, T30) -> U1(f126_in(T28, T29, T30), T28, T29, T30)
   U1(f126_out1, T28, T29, T30) -> f2_out1
   f2_in(T82, T83, T84) -> U2(f281_in(T82, T84, T83), T82, T83, T84)
   U2(f281_out1(X67), T82, T83, T84) -> f2_out1
   f126_in(T49, T50, .(.(T49, .(T50, [])), T51)) -> f126_out1
   f126_in(T60, T61, .(T62, T63)) -> U3(f126_in(T60, T61, T63), T60, T61, .(T62, T63))
   U3(f126_out1, T60, T61, .(T62, T63)) -> f126_out1
   f282_in(T110, .(.(T110, .(T111, [])), T112)) -> f282_out1(T111)
   f282_in(T119, .(T120, T121)) -> U4(f282_in(T119, T121), T119, .(T120, T121))
   U4(f282_out1(X106), T119, .(T120, T121)) -> f282_out1(X106)
   f281_in(T82, T84, T83) -> U5(f282_in(T82, T84), T82, T84, T83)
   U5(f282_out1(T91), T82, T84, T83) -> U6(f2_in(T91, T83, T84), T82, T84, T83, T91)
   U6(f2_out1, T82, T84, T83, T91) -> f281_out1(T91)

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

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

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

   F282_IN(T119, .(T120, T121)) -> F282_IN(T119, T121)

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

(72) 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:
*F282_IN(T119, .(T120, T121)) -> F282_IN(T119, T121)
The graph contains the following edges 1 >= 1, 2 > 2


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

(73)
YES

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

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

   F126_IN(T60, T61, .(T62, T63)) -> F126_IN(T60, T61, T63)

The TRS R consists of the following rules:

   f2_in(T28, T29, T30) -> U1(f126_in(T28, T29, T30), T28, T29, T30)
   U1(f126_out1, T28, T29, T30) -> f2_out1
   f2_in(T82, T83, T84) -> U2(f281_in(T82, T84, T83), T82, T83, T84)
   U2(f281_out1(X67), T82, T83, T84) -> f2_out1
   f126_in(T49, T50, .(.(T49, .(T50, [])), T51)) -> f126_out1
   f126_in(T60, T61, .(T62, T63)) -> U3(f126_in(T60, T61, T63), T60, T61, .(T62, T63))
   U3(f126_out1, T60, T61, .(T62, T63)) -> f126_out1
   f282_in(T110, .(.(T110, .(T111, [])), T112)) -> f282_out1(T111)
   f282_in(T119, .(T120, T121)) -> U4(f282_in(T119, T121), T119, .(T120, T121))
   U4(f282_out1(X106), T119, .(T120, T121)) -> f282_out1(X106)
   f281_in(T82, T84, T83) -> U5(f282_in(T82, T84), T82, T84, T83)
   U5(f282_out1(T91), T82, T84, T83) -> U6(f2_in(T91, T83, T84), T82, T84, T83, T91)
   U6(f2_out1, T82, T84, T83, T91) -> f281_out1(T91)

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

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

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

   F126_IN(T60, T61, .(T62, T63)) -> F126_IN(T60, T61, T63)

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

(77) 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:
*F126_IN(T60, T61, .(T62, T63)) -> F126_IN(T60, T61, T63)
The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3


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

(78)
YES

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

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

   F2_IN(T82, T83, T84) -> F281_IN(T82, T84, T83)
   F281_IN(T82, T84, T83) -> U5^1(f282_in(T82, T84), T82, T84, T83)
   U5^1(f282_out1(T91), T82, T84, T83) -> F2_IN(T91, T83, T84)

The TRS R consists of the following rules:

   f2_in(T28, T29, T30) -> U1(f126_in(T28, T29, T30), T28, T29, T30)
   U1(f126_out1, T28, T29, T30) -> f2_out1
   f2_in(T82, T83, T84) -> U2(f281_in(T82, T84, T83), T82, T83, T84)
   U2(f281_out1(X67), T82, T83, T84) -> f2_out1
   f126_in(T49, T50, .(.(T49, .(T50, [])), T51)) -> f126_out1
   f126_in(T60, T61, .(T62, T63)) -> U3(f126_in(T60, T61, T63), T60, T61, .(T62, T63))
   U3(f126_out1, T60, T61, .(T62, T63)) -> f126_out1
   f282_in(T110, .(.(T110, .(T111, [])), T112)) -> f282_out1(T111)
   f282_in(T119, .(T120, T121)) -> U4(f282_in(T119, T121), T119, .(T120, T121))
   U4(f282_out1(X106), T119, .(T120, T121)) -> f282_out1(X106)
   f281_in(T82, T84, T83) -> U5(f282_in(T82, T84), T82, T84, T83)
   U5(f282_out1(T91), T82, T84, T83) -> U6(f2_in(T91, T83, T84), T82, T84, T83, T91)
   U6(f2_out1, T82, T84, T83, T91) -> f281_out1(T91)

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

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

s = F281_IN(T82, .(.(T82, .(T111, [])), T112), T83) evaluates to  t =F281_IN(T111, .(.(T82, .(T111, [])), T112), T83)

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [T111 / T82]

--------------------------------------------------------------------------------
Rewriting sequence

F281_IN(T82, .(.(T82, .(T82, [])), T112), T83) -> U5^1(f282_in(T82, .(.(T82, .(T82, [])), T112)), T82, .(.(T82, .(T82, [])), T112), T83)
with rule F281_IN(T82', T84, T83') -> U5^1(f282_in(T82', T84), T82', T84, T83') at position [] and matcher [T82' / T82, T84 / .(.(T82, .(T82, [])), T112), T83' / T83]

U5^1(f282_in(T82, .(.(T82, .(T82, [])), T112)), T82, .(.(T82, .(T82, [])), T112), T83) -> U5^1(f282_out1(T82), T82, .(.(T82, .(T82, [])), T112), T83)
with rule f282_in(T110, .(.(T110, .(T111, [])), T112')) -> f282_out1(T111) at position [0] and matcher [T110 / T82, T111 / T82, T112' / T112]

U5^1(f282_out1(T82), T82, .(.(T82, .(T82, [])), T112), T83) -> F2_IN(T82, T83, .(.(T82, .(T82, [])), T112))
with rule U5^1(f282_out1(T91), T82', T84', T83') -> F2_IN(T91, T83', T84') at position [] and matcher [T91 / T82, T82' / T82, T84' / .(.(T82, .(T82, [])), T112), T83' / T83]

F2_IN(T82, T83, .(.(T82, .(T82, [])), T112)) -> F281_IN(T82, .(.(T82, .(T82, [])), T112), T83)
with rule F2_IN(T82, T83, T84) -> F281_IN(T82, T84, T83)

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


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




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

(81)
NO

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

(82) PrologToDTProblemTransformerProof (SOUND)
Built DT problem from termination graph DT10.

{
    "root": 3,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(reach X Y Edges)",
                "(member (. X (. Y ([]))) Edges)"
            ],
            [
                "(reach X Z Edges)",
                "(',' (member1 (. X (. Y ([]))) Edges) (reach Y Z Edges))"
            ],
            [
                "(member H (. H L))",
                null
            ],
            [
                "(member X (. H L))",
                "(member X L)"
            ],
            [
                "(member1 H (. H L))",
                null
            ],
            [
                "(member1 X (. H L))",
                "(member1 X L)"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "45": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 2,
                        "term": "(member (. T7 (. T8 ([]))) T9)"
                    },
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(reach T7 T8 T9)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T7",
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "292": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(reach T7 T8 T9)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T7",
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "294": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member1 (. T96 (. X75 ([]))) T98) (reach X75 T97 T98))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T96",
                        "T97",
                        "T98"
                    ],
                    "free": ["X75"],
                    "exprvars": []
                }
            },
            "152": {
                "goal": [{
                    "clause": 2,
                    "scope": 3,
                    "term": "(member (. T41 (. T42 ([]))) T44)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T41",
                        "T42",
                        "T44"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "153": {
                "goal": [{
                    "clause": 3,
                    "scope": 3,
                    "term": "(member (. T41 (. T42 ([]))) T44)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T41",
                        "T42",
                        "T44"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "297": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member1 (. T96 (. X75 ([]))) T98)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T96",
                        "T98"
                    ],
                    "free": ["X75"],
                    "exprvars": []
                }
            },
            "133": {
                "goal": [{
                    "clause": 3,
                    "scope": 2,
                    "term": "(member (. T7 (. T8 ([]))) T9)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T7",
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "298": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(reach T105 T97 T98)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T97",
                        "T98",
                        "T105"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "134": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(reach T7 T8 T9)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T7",
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "310": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "157": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "212": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member (. T74 (. T75 ([]))) T77)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T74",
                        "T75",
                        "T77"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "158": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "213": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "159": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "313": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member1 (. T133 (. X114 ([]))) T135)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T133",
                        "T135"
                    ],
                    "free": ["X114"],
                    "exprvars": []
                }
            },
            "314": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "117": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "118": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "35": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": -1,
                        "term": "(member (. T7 (. T8 ([]))) T9)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(reach T7 T8 T9)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T7",
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "36": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(member (. T7 (. T8 ([]))) T9)"
                    },
                    {
                        "clause": 3,
                        "scope": 2,
                        "term": "(member (. T7 (. T8 ([]))) T9)"
                    },
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(reach T7 T8 T9)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T7",
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "120": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "3": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(reach T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "146": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member (. T41 (. T42 ([]))) T44)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T41",
                        "T42",
                        "T44"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "300": {
                "goal": [
                    {
                        "clause": 4,
                        "scope": 4,
                        "term": "(member1 (. T96 (. X75 ([]))) T98)"
                    },
                    {
                        "clause": 5,
                        "scope": 4,
                        "term": "(member1 (. T96 (. X75 ([]))) T98)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T96",
                        "T98"
                    ],
                    "free": ["X75"],
                    "exprvars": []
                }
            },
            "147": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "149": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 3,
                        "term": "(member (. T41 (. T42 ([]))) T44)"
                    },
                    {
                        "clause": 3,
                        "scope": 3,
                        "term": "(member (. T41 (. T42 ([]))) T44)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T41",
                        "T42",
                        "T44"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "303": {
                "goal": [{
                    "clause": 4,
                    "scope": 4,
                    "term": "(member1 (. T96 (. X75 ([]))) T98)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T96",
                        "T98"
                    ],
                    "free": ["X75"],
                    "exprvars": []
                }
            },
            "7": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(reach T1 T2 T3)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(reach T1 T2 T3)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "304": {
                "goal": [{
                    "clause": 5,
                    "scope": 4,
                    "term": "(member1 (. T96 (. X75 ([]))) T98)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T96",
                        "T98"
                    ],
                    "free": ["X75"],
                    "exprvars": []
                }
            },
            "308": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "309": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "42": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(member (. T7 (. T8 ([]))) T9)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T7",
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 3,
                "to": 7,
                "label": "CASE"
            },
            {
                "from": 7,
                "to": 35,
                "label": "ONLY EVAL with clause\nreach(X4, X5, X6) :- member(.(X4, .(X5, [])), X6).\nand substitutionT1 -> T7,\nX4 -> T7,\nT2 -> T8,\nX5 -> T8,\nT3 -> T9,\nX6 -> T9"
            },
            {
                "from": 35,
                "to": 36,
                "label": "CASE"
            },
            {
                "from": 36,
                "to": 42,
                "label": "PARALLEL"
            },
            {
                "from": 36,
                "to": 45,
                "label": "PARALLEL"
            },
            {
                "from": 42,
                "to": 117,
                "label": "EVAL with clause\nmember(X15, .(X15, X16)).\nand substitutionT7 -> T22,\nT8 -> T23,\nX15 -> .(T22, .(T23, [])),\nX16 -> T24,\nT9 -> .(.(T22, .(T23, [])), T24)"
            },
            {
                "from": 42,
                "to": 118,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 45,
                "to": 133,
                "label": "PARALLEL"
            },
            {
                "from": 45,
                "to": 134,
                "label": "PARALLEL"
            },
            {
                "from": 117,
                "to": 120,
                "label": "SUCCESS"
            },
            {
                "from": 133,
                "to": 146,
                "label": "EVAL with clause\nmember(X29, .(X30, X31)) :- member(X29, X31).\nand substitutionT7 -> T41,\nT8 -> T42,\nX29 -> .(T41, .(T42, [])),\nX30 -> T43,\nX31 -> T44,\nT9 -> .(T43, T44)"
            },
            {
                "from": 133,
                "to": 147,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 134,
                "to": 292,
                "label": "FAILURE"
            },
            {
                "from": 146,
                "to": 149,
                "label": "CASE"
            },
            {
                "from": 149,
                "to": 152,
                "label": "PARALLEL"
            },
            {
                "from": 149,
                "to": 153,
                "label": "PARALLEL"
            },
            {
                "from": 152,
                "to": 157,
                "label": "EVAL with clause\nmember(X44, .(X44, X45)).\nand substitutionT41 -> T63,\nT42 -> T64,\nX44 -> .(T63, .(T64, [])),\nX45 -> T65,\nT44 -> .(.(T63, .(T64, [])), T65)"
            },
            {
                "from": 152,
                "to": 158,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 153,
                "to": 212,
                "label": "EVAL with clause\nmember(X52, .(X53, X54)) :- member(X52, X54).\nand substitutionT41 -> T74,\nT42 -> T75,\nX52 -> .(T74, .(T75, [])),\nX53 -> T76,\nX54 -> T77,\nT44 -> .(T76, T77)"
            },
            {
                "from": 153,
                "to": 213,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 157,
                "to": 159,
                "label": "SUCCESS"
            },
            {
                "from": 212,
                "to": 146,
                "label": "INSTANCE with matching:\nT41 -> T74\nT42 -> T75\nT44 -> T77"
            },
            {
                "from": 292,
                "to": 294,
                "label": "ONLY EVAL with clause\nreach(X72, X73, X74) :- ','(member1(.(X72, .(X75, [])), X74), reach(X75, X73, X74)).\nand substitutionT7 -> T96,\nX72 -> T96,\nT8 -> T97,\nX73 -> T97,\nT9 -> T98,\nX74 -> T98"
            },
            {
                "from": 294,
                "to": 297,
                "label": "SPLIT 1"
            },
            {
                "from": 294,
                "to": 298,
                "label": "SPLIT 2\nnew knowledge:\nT96 is ground\nT105 is ground\nT98 is ground\nreplacements:X75 -> T105"
            },
            {
                "from": 297,
                "to": 300,
                "label": "CASE"
            },
            {
                "from": 298,
                "to": 3,
                "label": "INSTANCE with matching:\nT1 -> T105\nT2 -> T97\nT3 -> T98"
            },
            {
                "from": 300,
                "to": 303,
                "label": "PARALLEL"
            },
            {
                "from": 300,
                "to": 304,
                "label": "PARALLEL"
            },
            {
                "from": 303,
                "to": 308,
                "label": "EVAL with clause\nmember1(X100, .(X100, X101)).\nand substitutionT96 -> T124,\nX75 -> T125,\nX100 -> .(T124, .(T125, [])),\nX102 -> T125,\nX101 -> T126,\nT98 -> .(.(T124, .(T125, [])), T126)"
            },
            {
                "from": 303,
                "to": 309,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 304,
                "to": 313,
                "label": "EVAL with clause\nmember1(X111, .(X112, X113)) :- member1(X111, X113).\nand substitutionT96 -> T133,\nX75 -> X114,\nX111 -> .(T133, .(X114, [])),\nX112 -> T134,\nX113 -> T135,\nT98 -> .(T134, T135)"
            },
            {
                "from": 304,
                "to": 314,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 308,
                "to": 310,
                "label": "SUCCESS"
            },
            {
                "from": 313,
                "to": 297,
                "label": "INSTANCE with matching:\nT96 -> T133\nX75 -> X114\nT98 -> T135"
            }
        ],
        "type": "Graph"
    }
}

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

(83)
Obligation:
Triples:

memberA(X1, X2, .(X3, X4)) :- memberA(X1, X2, X4).
member1C(X1, X2, .(X3, X4)) :- member1C(X1, X2, X4).
reachB(X1, X2, .(X3, X4)) :- memberA(X1, X2, X4).
reachB(X1, X2, X3) :- member1C(X1, X4, X3).
reachB(X1, X2, X3) :- ','(member1cC(X1, X4, X3), reachB(X4, X2, X3)).

Clauses:

membercA(X1, X2, .(.(X1, .(X2, [])), X3)).
membercA(X1, X2, .(X3, X4)) :- membercA(X1, X2, X4).
reachcB(X1, X2, .(.(X1, .(X2, [])), X3)).
reachcB(X1, X2, .(X3, X4)) :- membercA(X1, X2, X4).
reachcB(X1, X2, X3) :- ','(member1cC(X1, X4, X3), reachcB(X4, X2, X3)).
member1cC(X1, X2, .(.(X1, .(X2, [])), X3)).
member1cC(X1, X2, .(X3, X4)) :- member1cC(X1, X2, X4).

Afs:

reachB(x1, x2, x3)  =  reachB(x1, x2, x3)


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

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

reachB_in_3: (b,b,b)

memberA_in_3: (b,b,b)

member1C_in_3: (b,f,b)

member1cC_in_3: (b,f,b)

Transforming TRIPLES into the following Term Rewriting System:

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

   REACHB_IN_GGG(X1, X2, .(X3, X4)) -> U3_GGG(X1, X2, X3, X4, memberA_in_ggg(X1, X2, X4))
   REACHB_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4)
   MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> U1_GGG(X1, X2, X3, X4, memberA_in_ggg(X1, X2, X4))
   MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4)
   REACHB_IN_GGG(X1, X2, X3) -> U4_GGG(X1, X2, X3, member1C_in_gag(X1, X4, X3))
   REACHB_IN_GGG(X1, X2, X3) -> MEMBER1C_IN_GAG(X1, X4, X3)
   MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> U2_GAG(X1, X2, X3, X4, member1C_in_gag(X1, X2, X4))
   MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X2, X4)
   REACHB_IN_GGG(X1, X2, X3) -> U5_GGG(X1, X2, X3, member1cC_in_gag(X1, X4, X3))
   U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> U6_GGG(X1, X2, X3, reachB_in_ggg(X4, X2, X3))
   U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> REACHB_IN_GGG(X4, X2, X3)

The TRS R consists of the following rules:

   member1cC_in_gag(X1, X2, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3))
   member1cC_in_gag(X1, X2, .(X3, X4)) -> U12_gag(X1, X2, X3, X4, member1cC_in_gag(X1, X2, X4))
   U12_gag(X1, X2, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4))

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

.(x1, x2)  =  .(x1, x2)

memberA_in_ggg(x1, x2, x3)  =  memberA_in_ggg(x1, x2, x3)

member1C_in_gag(x1, x2, x3)  =  member1C_in_gag(x1, x3)

member1cC_in_gag(x1, x2, x3)  =  member1cC_in_gag(x1, x3)

[]  =  []

member1cC_out_gag(x1, x2, x3)  =  member1cC_out_gag(x1, x2, x3)

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

REACHB_IN_GGG(x1, x2, x3)  =  REACHB_IN_GGG(x1, x2, x3)

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

MEMBERA_IN_GGG(x1, x2, x3)  =  MEMBERA_IN_GGG(x1, x2, x3)

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

U4_GGG(x1, x2, x3, x4)  =  U4_GGG(x1, x2, x3, x4)

MEMBER1C_IN_GAG(x1, x2, x3)  =  MEMBER1C_IN_GAG(x1, x3)

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

U5_GGG(x1, x2, x3, x4)  =  U5_GGG(x1, x2, x3, x4)

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


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


Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES



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

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

   REACHB_IN_GGG(X1, X2, .(X3, X4)) -> U3_GGG(X1, X2, X3, X4, memberA_in_ggg(X1, X2, X4))
   REACHB_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4)
   MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> U1_GGG(X1, X2, X3, X4, memberA_in_ggg(X1, X2, X4))
   MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4)
   REACHB_IN_GGG(X1, X2, X3) -> U4_GGG(X1, X2, X3, member1C_in_gag(X1, X4, X3))
   REACHB_IN_GGG(X1, X2, X3) -> MEMBER1C_IN_GAG(X1, X4, X3)
   MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> U2_GAG(X1, X2, X3, X4, member1C_in_gag(X1, X2, X4))
   MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X2, X4)
   REACHB_IN_GGG(X1, X2, X3) -> U5_GGG(X1, X2, X3, member1cC_in_gag(X1, X4, X3))
   U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> U6_GGG(X1, X2, X3, reachB_in_ggg(X4, X2, X3))
   U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> REACHB_IN_GGG(X4, X2, X3)

The TRS R consists of the following rules:

   member1cC_in_gag(X1, X2, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3))
   member1cC_in_gag(X1, X2, .(X3, X4)) -> U12_gag(X1, X2, X3, X4, member1cC_in_gag(X1, X2, X4))
   U12_gag(X1, X2, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4))

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

.(x1, x2)  =  .(x1, x2)

memberA_in_ggg(x1, x2, x3)  =  memberA_in_ggg(x1, x2, x3)

member1C_in_gag(x1, x2, x3)  =  member1C_in_gag(x1, x3)

member1cC_in_gag(x1, x2, x3)  =  member1cC_in_gag(x1, x3)

[]  =  []

member1cC_out_gag(x1, x2, x3)  =  member1cC_out_gag(x1, x2, x3)

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

REACHB_IN_GGG(x1, x2, x3)  =  REACHB_IN_GGG(x1, x2, x3)

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

MEMBERA_IN_GGG(x1, x2, x3)  =  MEMBERA_IN_GGG(x1, x2, x3)

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

U4_GGG(x1, x2, x3, x4)  =  U4_GGG(x1, x2, x3, x4)

MEMBER1C_IN_GAG(x1, x2, x3)  =  MEMBER1C_IN_GAG(x1, x3)

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

U5_GGG(x1, x2, x3, x4)  =  U5_GGG(x1, x2, x3, x4)

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


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

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

(87)
Complex Obligation (AND)

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

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

   MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X2, X4)

The TRS R consists of the following rules:

   member1cC_in_gag(X1, X2, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3))
   member1cC_in_gag(X1, X2, .(X3, X4)) -> U12_gag(X1, X2, X3, X4, member1cC_in_gag(X1, X2, X4))
   U12_gag(X1, X2, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4))

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

member1cC_in_gag(x1, x2, x3)  =  member1cC_in_gag(x1, x3)

[]  =  []

member1cC_out_gag(x1, x2, x3)  =  member1cC_out_gag(x1, x2, x3)

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

MEMBER1C_IN_GAG(x1, x2, x3)  =  MEMBER1C_IN_GAG(x1, x3)


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

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

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

   MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X2, X4)

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

MEMBER1C_IN_GAG(x1, x2, x3)  =  MEMBER1C_IN_GAG(x1, x3)


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

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

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

   MEMBER1C_IN_GAG(X1, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X4)

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

(93) 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:
*MEMBER1C_IN_GAG(X1, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X4)
The graph contains the following edges 1 >= 1, 2 > 2


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

(94)
YES

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

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

   MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4)

The TRS R consists of the following rules:

   member1cC_in_gag(X1, X2, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3))
   member1cC_in_gag(X1, X2, .(X3, X4)) -> U12_gag(X1, X2, X3, X4, member1cC_in_gag(X1, X2, X4))
   U12_gag(X1, X2, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4))

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

member1cC_in_gag(x1, x2, x3)  =  member1cC_in_gag(x1, x3)

[]  =  []

member1cC_out_gag(x1, x2, x3)  =  member1cC_out_gag(x1, x2, x3)

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

MEMBERA_IN_GGG(x1, x2, x3)  =  MEMBERA_IN_GGG(x1, x2, x3)


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

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

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

   MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4)

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

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

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

   MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4)

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

(100) 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:
*MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4)
The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3


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

(101)
YES

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

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

   REACHB_IN_GGG(X1, X2, X3) -> U5_GGG(X1, X2, X3, member1cC_in_gag(X1, X4, X3))
   U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> REACHB_IN_GGG(X4, X2, X3)

The TRS R consists of the following rules:

   member1cC_in_gag(X1, X2, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3))
   member1cC_in_gag(X1, X2, .(X3, X4)) -> U12_gag(X1, X2, X3, X4, member1cC_in_gag(X1, X2, X4))
   U12_gag(X1, X2, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4))

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

member1cC_in_gag(x1, x2, x3)  =  member1cC_in_gag(x1, x3)

[]  =  []

member1cC_out_gag(x1, x2, x3)  =  member1cC_out_gag(x1, x2, x3)

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

REACHB_IN_GGG(x1, x2, x3)  =  REACHB_IN_GGG(x1, x2, x3)

U5_GGG(x1, x2, x3, x4)  =  U5_GGG(x1, x2, x3, x4)


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

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

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

   REACHB_IN_GGG(X1, X2, X3) -> U5_GGG(X1, X2, X3, member1cC_in_gag(X1, X3))
   U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> REACHB_IN_GGG(X4, X2, X3)

The TRS R consists of the following rules:

   member1cC_in_gag(X1, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3))
   member1cC_in_gag(X1, .(X3, X4)) -> U12_gag(X1, X3, X4, member1cC_in_gag(X1, X4))
   U12_gag(X1, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4))

The set Q consists of the following terms:

   member1cC_in_gag(x0, x1)
   U12_gag(x0, x1, x2, x3)

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

(105) PrologToIRSwTTransformerProof (SOUND)
Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert

{
    "root": 1,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(reach X Y Edges)",
                "(member (. X (. Y ([]))) Edges)"
            ],
            [
                "(reach X Z Edges)",
                "(',' (member1 (. X (. Y ([]))) Edges) (reach Y Z Edges))"
            ],
            [
                "(member H (. H L))",
                null
            ],
            [
                "(member X (. H L))",
                "(member X L)"
            ],
            [
                "(member1 H (. H L))",
                null
            ],
            [
                "(member1 X (. H L))",
                "(member1 X L)"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "type": "Nodes",
            "293": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member1 (. T82 (. X67 ([]))) T84) (reach X67 T83 T84))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T83",
                        "T84"
                    ],
                    "free": ["X67"],
                    "exprvars": []
                }
            },
            "295": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member1 (. T82 (. X67 ([]))) T84)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T84"
                    ],
                    "free": ["X67"],
                    "exprvars": []
                }
            },
            "131": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member (. T28 (. T29 ([]))) T30)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T28",
                        "T29",
                        "T30"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "296": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(reach T91 T83 T84)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T83",
                        "T84",
                        "T91"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "254": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member (. T60 (. T61 ([]))) T63)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T60",
                        "T61",
                        "T63"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "211": {
                "goal": [{
                    "clause": 3,
                    "scope": 2,
                    "term": "(member (. T28 (. T29 ([]))) T30)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T28",
                        "T29",
                        "T30"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "255": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "299": {
                "goal": [
                    {
                        "clause": 4,
                        "scope": 3,
                        "term": "(member1 (. T82 (. X67 ([]))) T84)"
                    },
                    {
                        "clause": 5,
                        "scope": 3,
                        "term": "(member1 (. T82 (. X67 ([]))) T84)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T84"
                    ],
                    "free": ["X67"],
                    "exprvars": []
                }
            },
            "311": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member1 (. T119 (. X106 ([]))) T121)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T119",
                        "T121"
                    ],
                    "free": ["X106"],
                    "exprvars": []
                }
            },
            "312": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "214": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "215": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "216": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "17": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(reach T1 T2 T3)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(reach T1 T2 T3)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "1": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(reach T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "101": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(reach T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "301": {
                "goal": [{
                    "clause": 4,
                    "scope": 3,
                    "term": "(member1 (. T82 (. X67 ([]))) T84)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T84"
                    ],
                    "free": ["X67"],
                    "exprvars": []
                }
            },
            "302": {
                "goal": [{
                    "clause": 5,
                    "scope": 3,
                    "term": "(member1 (. T82 (. X67 ([]))) T84)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T84"
                    ],
                    "free": ["X67"],
                    "exprvars": []
                }
            },
            "105": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(reach T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "305": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "207": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(member (. T28 (. T29 ([]))) T30)"
                    },
                    {
                        "clause": 3,
                        "scope": 2,
                        "term": "(member (. T28 (. T29 ([]))) T30)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T28",
                        "T29",
                        "T30"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "306": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "307": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "209": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(member (. T28 (. T29 ([]))) T30)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T28",
                        "T29",
                        "T30"
                    ],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 1,
                "to": 17,
                "label": "CASE"
            },
            {
                "from": 17,
                "to": 101,
                "label": "PARALLEL"
            },
            {
                "from": 17,
                "to": 105,
                "label": "PARALLEL"
            },
            {
                "from": 101,
                "to": 131,
                "label": "ONLY EVAL with clause\nreach(X21, X22, X23) :- member(.(X21, .(X22, [])), X23).\nand substitutionT1 -> T28,\nX21 -> T28,\nT2 -> T29,\nX22 -> T29,\nT3 -> T30,\nX23 -> T30"
            },
            {
                "from": 105,
                "to": 293,
                "label": "ONLY EVAL with clause\nreach(X64, X65, X66) :- ','(member1(.(X64, .(X67, [])), X66), reach(X67, X65, X66)).\nand substitutionT1 -> T82,\nX64 -> T82,\nT2 -> T83,\nX65 -> T83,\nT3 -> T84,\nX66 -> T84"
            },
            {
                "from": 131,
                "to": 207,
                "label": "CASE"
            },
            {
                "from": 207,
                "to": 209,
                "label": "PARALLEL"
            },
            {
                "from": 207,
                "to": 211,
                "label": "PARALLEL"
            },
            {
                "from": 209,
                "to": 214,
                "label": "EVAL with clause\nmember(X36, .(X36, X37)).\nand substitutionT28 -> T49,\nT29 -> T50,\nX36 -> .(T49, .(T50, [])),\nX37 -> T51,\nT30 -> .(.(T49, .(T50, [])), T51)"
            },
            {
                "from": 209,
                "to": 215,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 211,
                "to": 254,
                "label": "EVAL with clause\nmember(X44, .(X45, X46)) :- member(X44, X46).\nand substitutionT28 -> T60,\nT29 -> T61,\nX44 -> .(T60, .(T61, [])),\nX45 -> T62,\nX46 -> T63,\nT30 -> .(T62, T63)"
            },
            {
                "from": 211,
                "to": 255,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 214,
                "to": 216,
                "label": "SUCCESS"
            },
            {
                "from": 254,
                "to": 131,
                "label": "INSTANCE with matching:\nT28 -> T60\nT29 -> T61\nT30 -> T63"
            },
            {
                "from": 293,
                "to": 295,
                "label": "SPLIT 1"
            },
            {
                "from": 293,
                "to": 296,
                "label": "SPLIT 2\nnew knowledge:\nT82 is ground\nT91 is ground\nT84 is ground\nreplacements:X67 -> T91"
            },
            {
                "from": 295,
                "to": 299,
                "label": "CASE"
            },
            {
                "from": 296,
                "to": 1,
                "label": "INSTANCE with matching:\nT1 -> T91\nT2 -> T83\nT3 -> T84"
            },
            {
                "from": 299,
                "to": 301,
                "label": "PARALLEL"
            },
            {
                "from": 299,
                "to": 302,
                "label": "PARALLEL"
            },
            {
                "from": 301,
                "to": 305,
                "label": "EVAL with clause\nmember1(X92, .(X92, X93)).\nand substitutionT82 -> T110,\nX67 -> T111,\nX92 -> .(T110, .(T111, [])),\nX94 -> T111,\nX93 -> T112,\nT84 -> .(.(T110, .(T111, [])), T112)"
            },
            {
                "from": 301,
                "to": 306,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 302,
                "to": 311,
                "label": "EVAL with clause\nmember1(X103, .(X104, X105)) :- member1(X103, X105).\nand substitutionT82 -> T119,\nX67 -> X106,\nX103 -> .(T119, .(X106, [])),\nX104 -> T120,\nX105 -> T121,\nT84 -> .(T120, T121)"
            },
            {
                "from": 302,
                "to": 312,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 305,
                "to": 307,
                "label": "SUCCESS"
            },
            {
                "from": 311,
                "to": 295,
                "label": "INSTANCE with matching:\nT82 -> T119\nX67 -> X106\nT84 -> T121"
            }
        ],
        "type": "Graph"
    }
}

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

(106)
Complex Obligation (AND)

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

(107)
Obligation:
Rules:
f295_out(T119, T121) -> f311_out(T119, T121) :|: TRUE
f311_in(x, x1) -> f295_in(x, x1) :|: TRUE
f301_out(T82, T84) -> f299_out(T82, T84) :|: TRUE
f299_in(x2, x3) -> f302_in(x2, x3) :|: TRUE
f299_in(x4, x5) -> f301_in(x4, x5) :|: TRUE
f302_out(x6, x7) -> f299_out(x6, x7) :|: TRUE
f312_out -> f302_out(x8, x9) :|: TRUE
f302_in(x10, .(x11, x12)) -> f311_in(x10, x12) :|: TRUE
f311_out(x13, x14) -> f302_out(x13, .(x15, x14)) :|: TRUE
f302_in(x16, x17) -> f312_in :|: TRUE
f295_in(x18, x19) -> f299_in(x18, x19) :|: TRUE
f299_out(x20, x21) -> f295_out(x20, x21) :|: TRUE
f17_out(T1, T2, T3) -> f1_out(T1, T2, T3) :|: TRUE
f1_in(x22, x23, x24) -> f17_in(x22, x23, x24) :|: TRUE
f17_in(x25, x26, x27) -> f105_in(x25, x26, x27) :|: TRUE
f101_out(x28, x29, x30) -> f17_out(x28, x29, x30) :|: TRUE
f17_in(x31, x32, x33) -> f101_in(x31, x32, x33) :|: TRUE
f105_out(x34, x35, x36) -> f17_out(x34, x35, x36) :|: TRUE
f105_in(x37, x38, x39) -> f293_in(x37, x39, x38) :|: TRUE
f293_out(x40, x41, x42) -> f105_out(x40, x42, x41) :|: TRUE
f295_out(x43, x44) -> f296_in(x45, x46, x44) :|: TRUE
f293_in(x47, x48, x49) -> f295_in(x47, x48) :|: TRUE
f296_out(x50, x51, x52) -> f293_out(x53, x52, x51) :|: TRUE
Start term: f1_in(T1, T2, T3)

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

(108) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f311_in(x, x1) -> f295_in(x, x1) :|: TRUE
f299_in(x2, x3) -> f302_in(x2, x3) :|: TRUE
f302_in(x10, .(x11, x12)) -> f311_in(x10, x12) :|: TRUE
f295_in(x18, x19) -> f299_in(x18, x19) :|: TRUE


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

(109)
Obligation:
Rules:
f311_in(x, x1) -> f295_in(x, x1) :|: TRUE
f299_in(x2, x3) -> f302_in(x2, x3) :|: TRUE
f302_in(x10, .(x11, x12)) -> f311_in(x10, x12) :|: TRUE
f295_in(x18, x19) -> f299_in(x18, x19) :|: TRUE

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

(110) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(111)
Obligation:
Rules:
f299_in(x2:0, .(x11:0, x12:0)) -> f299_in(x2:0, x12:0) :|: TRUE

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

(112) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(113)
Obligation:
Rules:
f299_in(x2:0, .(x11:0, x12:0)) -> f299_in(x2:0, x12:0) :|: TRUE

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

(114) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f299_in(x2:0, .(x11:0, x12:0)) -> f299_in(x2:0, x12:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!
----------------------------------------

(115)
Obligation:

Termination digraph:
Nodes:
(1) f299_in(x2:0, .(x11:0, x12:0)) -> f299_in(x2:0, x12:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!

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

(116) IntTRSUnneededArgumentFilterProof (EQUIVALENT)
Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements:

   f299_in(x1, x2) -> f299_in(x2)
   .(x1, x2) -> .(x2)

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

(117)
Obligation:
Rules:
f299_in(.(x12:0)) -> f299_in(x12:0) :|: TRUE

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

(118) TempFilterProof (SOUND)
Used the following sort dictionary for filtering: 
f299_in(VARIABLE)
.(VARIABLE)
Removed predefined arithmetic.
----------------------------------------

(119)
Obligation:
Rules:
f299_in(.(x12:0)) -> f299_in(x12:0)

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

(120) IRSwTToQDPProof (SOUND)
Removed the integers and created a QDP-Problem.
----------------------------------------

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

   f299_in(.(x12:0)) -> f299_in(x12:0)

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

(122) 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:
*f299_in(.(x12:0)) -> f299_in(x12:0)
The graph contains the following edges 1 > 1


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

(123)
YES

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

(124)
Obligation:
Rules:
f131_in(T28, T29, T30) -> f207_in(T28, T29, T30) :|: TRUE
f207_out(x, x1, x2) -> f131_out(x, x1, x2) :|: TRUE
f207_in(x3, x4, x5) -> f211_in(x3, x4, x5) :|: TRUE
f209_out(x6, x7, x8) -> f207_out(x6, x7, x8) :|: TRUE
f207_in(x9, x10, x11) -> f209_in(x9, x10, x11) :|: TRUE
f211_out(x12, x13, x14) -> f207_out(x12, x13, x14) :|: TRUE
f255_out -> f211_out(x15, x16, x17) :|: TRUE
f211_in(T60, T61, .(T62, T63)) -> f254_in(T60, T61, T63) :|: TRUE
f254_out(x18, x19, x20) -> f211_out(x18, x19, .(x21, x20)) :|: TRUE
f211_in(x22, x23, x24) -> f255_in :|: TRUE
f254_in(x25, x26, x27) -> f131_in(x25, x26, x27) :|: TRUE
f131_out(x28, x29, x30) -> f254_out(x28, x29, x30) :|: TRUE
f17_out(T1, T2, T3) -> f1_out(T1, T2, T3) :|: TRUE
f1_in(x31, x32, x33) -> f17_in(x31, x32, x33) :|: TRUE
f17_in(x34, x35, x36) -> f105_in(x34, x35, x36) :|: TRUE
f101_out(x37, x38, x39) -> f17_out(x37, x38, x39) :|: TRUE
f17_in(x40, x41, x42) -> f101_in(x40, x41, x42) :|: TRUE
f105_out(x43, x44, x45) -> f17_out(x43, x44, x45) :|: TRUE
f131_out(x46, x47, x48) -> f101_out(x46, x47, x48) :|: TRUE
f101_in(x49, x50, x51) -> f131_in(x49, x50, x51) :|: TRUE
Start term: f1_in(T1, T2, T3)

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

(125) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f131_in(T28, T29, T30) -> f207_in(T28, T29, T30) :|: TRUE
f207_in(x3, x4, x5) -> f211_in(x3, x4, x5) :|: TRUE
f211_in(T60, T61, .(T62, T63)) -> f254_in(T60, T61, T63) :|: TRUE
f254_in(x25, x26, x27) -> f131_in(x25, x26, x27) :|: TRUE


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

(126)
Obligation:
Rules:
f131_in(T28, T29, T30) -> f207_in(T28, T29, T30) :|: TRUE
f207_in(x3, x4, x5) -> f211_in(x3, x4, x5) :|: TRUE
f211_in(T60, T61, .(T62, T63)) -> f254_in(T60, T61, T63) :|: TRUE
f254_in(x25, x26, x27) -> f131_in(x25, x26, x27) :|: TRUE

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

(127) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(128)
Obligation:
Rules:
f131_in(T28:0, T29:0, .(T62:0, T63:0)) -> f131_in(T28:0, T29:0, T63:0) :|: TRUE

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

(129) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(130)
Obligation:
Rules:
f131_in(T28:0, T29:0, .(T62:0, T63:0)) -> f131_in(T28:0, T29:0, T63:0) :|: TRUE

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

(131) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f131_in(T28:0, T29:0, .(T62:0, T63:0)) -> f131_in(T28:0, T29:0, T63:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!
----------------------------------------

(132)
Obligation:

Termination digraph:
Nodes:
(1) f131_in(T28:0, T29:0, .(T62:0, T63:0)) -> f131_in(T28:0, T29:0, T63:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!

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

(133) IntTRSUnneededArgumentFilterProof (EQUIVALENT)
Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements:

   f131_in(x1, x2, x3) -> f131_in(x3)
   .(x1, x2) -> .(x2)

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

(134)
Obligation:
Rules:
f131_in(.(T63:0)) -> f131_in(T63:0) :|: TRUE

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

(135) TempFilterProof (SOUND)
Used the following sort dictionary for filtering: 
f131_in(VARIABLE)
.(VARIABLE)
Removed predefined arithmetic.
----------------------------------------

(136)
Obligation:
Rules:
f131_in(.(T63:0)) -> f131_in(T63:0)

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

(137) IRSwTToQDPProof (SOUND)
Removed the integers and created a QDP-Problem.
----------------------------------------

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

   f131_in(.(T63:0)) -> f131_in(T63:0)

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

(139) 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:
*f131_in(.(T63:0)) -> f131_in(T63:0)
The graph contains the following edges 1 > 1


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

(140)
YES

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

(141)
Obligation:
Rules:
f17_in(T1, T2, T3) -> f105_in(T1, T2, T3) :|: TRUE
f101_out(x, x1, x2) -> f17_out(x, x1, x2) :|: TRUE
f17_in(x3, x4, x5) -> f101_in(x3, x4, x5) :|: TRUE
f105_out(x6, x7, x8) -> f17_out(x6, x7, x8) :|: TRUE
f305_out -> f301_out(T110, .(.(T110, .(T111, [])), T112)) :|: TRUE
f301_in(x9, .(.(x9, .(x10, [])), x11)) -> f305_in :|: TRUE
f306_out -> f301_out(T82, T84) :|: TRUE
f301_in(x12, x13) -> f306_in :|: TRUE
f312_out -> f302_out(x14, x15) :|: TRUE
f302_in(T119, .(T120, T121)) -> f311_in(T119, T121) :|: TRUE
f311_out(x16, x17) -> f302_out(x16, .(x18, x17)) :|: TRUE
f302_in(x19, x20) -> f312_in :|: TRUE
f305_in -> f305_out :|: TRUE
f17_out(x21, x22, x23) -> f1_out(x21, x22, x23) :|: TRUE
f1_in(x24, x25, x26) -> f17_in(x24, x25, x26) :|: TRUE
f295_out(x27, x28) -> f296_in(x29, x30, x28) :|: TRUE
f293_in(x31, x32, x33) -> f295_in(x31, x32) :|: TRUE
f296_out(x34, x35, x36) -> f293_out(x37, x36, x35) :|: TRUE
f1_out(x38, x39, x40) -> f296_out(x38, x39, x40) :|: TRUE
f296_in(x41, x42, x43) -> f1_in(x41, x42, x43) :|: TRUE
f295_out(x44, x45) -> f311_out(x44, x45) :|: TRUE
f311_in(x46, x47) -> f295_in(x46, x47) :|: TRUE
f301_out(x48, x49) -> f299_out(x48, x49) :|: TRUE
f299_in(x50, x51) -> f302_in(x50, x51) :|: TRUE
f299_in(x52, x53) -> f301_in(x52, x53) :|: TRUE
f302_out(x54, x55) -> f299_out(x54, x55) :|: TRUE
f295_in(x56, x57) -> f299_in(x56, x57) :|: TRUE
f299_out(x58, x59) -> f295_out(x58, x59) :|: TRUE
f105_in(x60, x61, x62) -> f293_in(x60, x62, x61) :|: TRUE
f293_out(x63, x64, x65) -> f105_out(x63, x65, x64) :|: TRUE
Start term: f1_in(T1, T2, T3)

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

(142) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f17_in(T1, T2, T3) -> f105_in(T1, T2, T3) :|: TRUE
f305_out -> f301_out(T110, .(.(T110, .(T111, [])), T112)) :|: TRUE
f301_in(x9, .(.(x9, .(x10, [])), x11)) -> f305_in :|: TRUE
f302_in(T119, .(T120, T121)) -> f311_in(T119, T121) :|: TRUE
f311_out(x16, x17) -> f302_out(x16, .(x18, x17)) :|: TRUE
f305_in -> f305_out :|: TRUE
f1_in(x24, x25, x26) -> f17_in(x24, x25, x26) :|: TRUE
f295_out(x27, x28) -> f296_in(x29, x30, x28) :|: TRUE
f293_in(x31, x32, x33) -> f295_in(x31, x32) :|: TRUE
f296_in(x41, x42, x43) -> f1_in(x41, x42, x43) :|: TRUE
f295_out(x44, x45) -> f311_out(x44, x45) :|: TRUE
f311_in(x46, x47) -> f295_in(x46, x47) :|: TRUE
f301_out(x48, x49) -> f299_out(x48, x49) :|: TRUE
f299_in(x50, x51) -> f302_in(x50, x51) :|: TRUE
f299_in(x52, x53) -> f301_in(x52, x53) :|: TRUE
f302_out(x54, x55) -> f299_out(x54, x55) :|: TRUE
f295_in(x56, x57) -> f299_in(x56, x57) :|: TRUE
f299_out(x58, x59) -> f295_out(x58, x59) :|: TRUE
f105_in(x60, x61, x62) -> f293_in(x60, x62, x61) :|: TRUE


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

(143)
Obligation:
Rules:
f17_in(T1, T2, T3) -> f105_in(T1, T2, T3) :|: TRUE
f305_out -> f301_out(T110, .(.(T110, .(T111, [])), T112)) :|: TRUE
f301_in(x9, .(.(x9, .(x10, [])), x11)) -> f305_in :|: TRUE
f302_in(T119, .(T120, T121)) -> f311_in(T119, T121) :|: TRUE
f311_out(x16, x17) -> f302_out(x16, .(x18, x17)) :|: TRUE
f305_in -> f305_out :|: TRUE
f1_in(x24, x25, x26) -> f17_in(x24, x25, x26) :|: TRUE
f295_out(x27, x28) -> f296_in(x29, x30, x28) :|: TRUE
f293_in(x31, x32, x33) -> f295_in(x31, x32) :|: TRUE
f296_in(x41, x42, x43) -> f1_in(x41, x42, x43) :|: TRUE
f295_out(x44, x45) -> f311_out(x44, x45) :|: TRUE
f311_in(x46, x47) -> f295_in(x46, x47) :|: TRUE
f301_out(x48, x49) -> f299_out(x48, x49) :|: TRUE
f299_in(x50, x51) -> f302_in(x50, x51) :|: TRUE
f299_in(x52, x53) -> f301_in(x52, x53) :|: TRUE
f302_out(x54, x55) -> f299_out(x54, x55) :|: TRUE
f295_in(x56, x57) -> f299_in(x56, x57) :|: TRUE
f299_out(x58, x59) -> f295_out(x58, x59) :|: TRUE
f105_in(x60, x61, x62) -> f293_in(x60, x62, x61) :|: TRUE

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

(144) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(145)
Obligation:
Rules:
f299_in(x52:0, .(.(x52:0, .(x10:0, [])), x11:0)) -> f295_out(T110:0, .(.(T110:0, .(T111:0, [])), T112:0)) :|: TRUE
f295_out(x27:0, x28:0) -> f299_in(x29:0, x28:0) :|: TRUE
f299_in(x50:0, .(T120:0, T121:0)) -> f299_in(x50:0, T121:0) :|: TRUE
f295_out(x44:0, x45:0) -> f295_out(x44:0, .(x18:0, x45:0)) :|: TRUE

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

(146) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(147)
Obligation:
Rules:
f299_in(x52:0, .(.(x52:0, .(x10:0, [])), x11:0)) -> f295_out(T110:0, .(.(T110:0, .(T111:0, [])), T112:0)) :|: TRUE
f295_out(x27:0, x28:0) -> f299_in(x29:0, x28:0) :|: TRUE
f299_in(x50:0, .(T120:0, T121:0)) -> f299_in(x50:0, T121:0) :|: TRUE
f295_out(x44:0, x45:0) -> f295_out(x44:0, .(x18:0, x45:0)) :|: TRUE
