15.10/5.66 MAYBE 16.14/6.82 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 16.14/6.82 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 16.14/6.82 16.14/6.82 16.14/6.82 Left Termination of the query pattern 16.14/6.82 16.14/6.82 reach(g,g,g) 16.14/6.82 16.14/6.82 w.r.t. the given Prolog program could not be shown: 16.14/6.82 16.14/6.82 (0) Prolog 16.14/6.82 (1) PrologToPiTRSProof [SOUND, 0 ms] 16.14/6.82 (2) PiTRS 16.14/6.82 (3) DependencyPairsProof [EQUIVALENT, 12 ms] 16.14/6.82 (4) PiDP 16.14/6.82 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 16.14/6.82 (6) AND 16.14/6.82 (7) PiDP 16.14/6.82 (8) UsableRulesProof [EQUIVALENT, 0 ms] 16.14/6.82 (9) PiDP 16.14/6.82 (10) PiDPToQDPProof [SOUND, 0 ms] 16.14/6.82 (11) QDP 16.14/6.82 (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] 16.14/6.82 (13) YES 16.14/6.82 (14) PiDP 16.14/6.82 (15) UsableRulesProof [EQUIVALENT, 0 ms] 16.14/6.82 (16) PiDP 16.14/6.82 (17) PiDPToQDPProof [EQUIVALENT, 0 ms] 16.14/6.82 (18) QDP 16.14/6.82 (19) QDPSizeChangeProof [EQUIVALENT, 0 ms] 16.14/6.82 (20) YES 16.14/6.82 (21) PiDP 16.14/6.82 (22) UsableRulesProof [EQUIVALENT, 0 ms] 16.14/6.82 (23) PiDP 16.14/6.82 (24) PiDPToQDPProof [SOUND, 0 ms] 16.14/6.82 (25) QDP 16.14/6.82 (26) TransformationProof [SOUND, 0 ms] 16.14/6.82 (27) QDP 16.14/6.82 (28) TransformationProof [EQUIVALENT, 0 ms] 16.14/6.82 (29) QDP 16.14/6.82 (30) TransformationProof [EQUIVALENT, 0 ms] 16.14/6.82 (31) QDP 16.14/6.82 (32) PrologToPiTRSProof [SOUND, 0 ms] 16.14/6.82 (33) PiTRS 16.14/6.82 (34) DependencyPairsProof [EQUIVALENT, 8 ms] 16.14/6.82 (35) PiDP 16.14/6.82 (36) DependencyGraphProof [EQUIVALENT, 0 ms] 16.14/6.82 (37) AND 16.14/6.82 (38) PiDP 16.14/6.82 (39) UsableRulesProof [EQUIVALENT, 0 ms] 16.14/6.82 (40) PiDP 16.14/6.82 (41) PiDPToQDPProof [SOUND, 10 ms] 16.14/6.82 (42) QDP 16.14/6.82 (43) QDPSizeChangeProof [EQUIVALENT, 0 ms] 16.14/6.82 (44) YES 16.14/6.82 (45) PiDP 16.14/6.82 (46) UsableRulesProof [EQUIVALENT, 0 ms] 16.14/6.82 (47) PiDP 16.14/6.82 (48) PiDPToQDPProof [EQUIVALENT, 0 ms] 16.14/6.82 (49) QDP 16.14/6.82 (50) QDPSizeChangeProof [EQUIVALENT, 0 ms] 16.14/6.82 (51) YES 16.14/6.82 (52) PiDP 16.14/6.82 (53) UsableRulesProof [EQUIVALENT, 0 ms] 16.14/6.82 (54) PiDP 16.14/6.82 (55) PiDPToQDPProof [SOUND, 1 ms] 16.14/6.82 (56) QDP 16.14/6.82 (57) TransformationProof [SOUND, 0 ms] 16.14/6.82 (58) QDP 16.14/6.82 (59) TransformationProof [EQUIVALENT, 0 ms] 16.14/6.82 (60) QDP 16.14/6.82 (61) TransformationProof [EQUIVALENT, 0 ms] 16.14/6.82 (62) QDP 16.14/6.82 (63) PrologToTRSTransformerProof [SOUND, 20 ms] 16.14/6.82 (64) QTRS 16.14/6.82 (65) DependencyPairsProof [EQUIVALENT, 0 ms] 16.14/6.82 (66) QDP 16.14/6.82 (67) DependencyGraphProof [EQUIVALENT, 0 ms] 16.14/6.82 (68) AND 16.14/6.82 (69) QDP 16.14/6.82 (70) UsableRulesProof [EQUIVALENT, 0 ms] 16.14/6.82 (71) QDP 16.14/6.82 (72) QDPSizeChangeProof [EQUIVALENT, 0 ms] 16.14/6.82 (73) YES 16.14/6.82 (74) QDP 16.14/6.82 (75) UsableRulesProof [EQUIVALENT, 0 ms] 16.14/6.82 (76) QDP 16.14/6.82 (77) QDPSizeChangeProof [EQUIVALENT, 0 ms] 16.14/6.82 (78) YES 16.14/6.82 (79) QDP 16.14/6.82 (80) NonTerminationLoopProof [COMPLETE, 562 ms] 16.14/6.82 (81) NO 16.14/6.82 (82) PrologToDTProblemTransformerProof [SOUND, 41 ms] 16.14/6.82 (83) TRIPLES 16.14/6.82 (84) TriplesToPiDPProof [SOUND, 0 ms] 16.14/6.82 (85) PiDP 16.14/6.82 (86) DependencyGraphProof [EQUIVALENT, 0 ms] 16.14/6.82 (87) AND 16.14/6.82 (88) PiDP 16.14/6.82 (89) UsableRulesProof [EQUIVALENT, 0 ms] 16.14/6.82 (90) PiDP 16.14/6.82 (91) PiDPToQDPProof [SOUND, 0 ms] 16.14/6.82 (92) QDP 16.14/6.82 (93) QDPSizeChangeProof [EQUIVALENT, 0 ms] 16.14/6.82 (94) YES 16.14/6.82 (95) PiDP 16.14/6.82 (96) UsableRulesProof [EQUIVALENT, 0 ms] 16.14/6.82 (97) PiDP 16.14/6.82 (98) PiDPToQDPProof [EQUIVALENT, 0 ms] 16.14/6.82 (99) QDP 16.14/6.82 (100) QDPSizeChangeProof [EQUIVALENT, 0 ms] 16.14/6.82 (101) YES 16.14/6.82 (102) PiDP 16.14/6.82 (103) PiDPToQDPProof [SOUND, 0 ms] 16.14/6.82 (104) QDP 16.14/6.82 (105) TransformationProof [SOUND, 0 ms] 16.14/6.82 (106) QDP 16.14/6.82 (107) PrologToIRSwTTransformerProof [SOUND, 34 ms] 16.14/6.82 (108) AND 16.14/6.82 (109) IRSwT 16.14/6.82 (110) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 16.14/6.82 (111) IRSwT 16.14/6.82 (112) IntTRSCompressionProof [EQUIVALENT, 3 ms] 16.14/6.82 (113) IRSwT 16.14/6.82 (114) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 16.14/6.82 (115) IRSwT 16.14/6.82 (116) IRSwTTerminationDigraphProof [EQUIVALENT, 2 ms] 16.14/6.82 (117) IRSwT 16.14/6.82 (118) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 33 ms] 16.14/6.82 (119) IRSwT 16.14/6.82 (120) TempFilterProof [SOUND, 3 ms] 16.14/6.82 (121) IRSwT 16.14/6.82 (122) IRSwTToQDPProof [SOUND, 0 ms] 16.14/6.82 (123) QDP 16.14/6.82 (124) QDPSizeChangeProof [EQUIVALENT, 0 ms] 16.14/6.82 (125) YES 16.14/6.82 (126) IRSwT 16.14/6.82 (127) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 16.14/6.82 (128) IRSwT 16.14/6.82 (129) IntTRSCompressionProof [EQUIVALENT, 0 ms] 16.14/6.82 (130) IRSwT 16.14/6.82 (131) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 16.14/6.82 (132) IRSwT 16.14/6.82 (133) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 16.14/6.82 (134) IRSwT 16.14/6.82 (135) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] 16.14/6.82 (136) IRSwT 16.14/6.82 (137) TempFilterProof [SOUND, 1 ms] 16.14/6.82 (138) IRSwT 16.14/6.82 (139) IRSwTToQDPProof [SOUND, 0 ms] 16.14/6.82 (140) QDP 16.14/6.82 (141) QDPSizeChangeProof [EQUIVALENT, 0 ms] 16.14/6.82 (142) YES 16.14/6.82 (143) IRSwT 16.14/6.82 (144) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 16.14/6.82 (145) IRSwT 16.14/6.82 (146) IntTRSCompressionProof [EQUIVALENT, 10 ms] 16.14/6.82 (147) IRSwT 16.14/6.82 (148) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 16.14/6.82 (149) IRSwT 16.14/6.82 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (0) 16.14/6.82 Obligation: 16.14/6.82 Clauses: 16.14/6.82 16.14/6.82 reach(X, Y, Edges) :- member(.(X, .(Y, [])), Edges). 16.14/6.82 reach(X, Z, Edges) :- ','(member1(.(X, .(Y, [])), Edges), reach(Y, Z, Edges)). 16.14/6.82 member(H, .(H, L)). 16.14/6.82 member(X, .(H, L)) :- member(X, L). 16.14/6.82 member1(H, .(H, L)). 16.14/6.82 member1(X, .(H, L)) :- member1(X, L). 16.14/6.82 16.14/6.82 16.14/6.82 Query: reach(g,g,g) 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (1) PrologToPiTRSProof (SOUND) 16.14/6.82 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 16.14/6.82 16.14/6.82 reach_in_3: (b,b,b) 16.14/6.82 16.14/6.82 member_in_2: (b,b) 16.14/6.82 16.14/6.82 member1_in_2: (f,b) 16.14/6.82 16.14/6.82 Transforming Prolog into the following Term Rewriting System: 16.14/6.82 16.14/6.82 Pi-finite rewrite system: 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.82 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.82 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.82 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.82 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.82 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.82 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.82 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.82 16.14/6.82 The argument filtering Pi contains the following mapping: 16.14/6.82 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U1_ggg(x1, x2, x3, x4) = U1_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.82 16.14/6.82 .(x1, x2) = .(x1, x2) 16.14/6.82 16.14/6.82 member_out_gg(x1, x2) = member_out_gg(x1, x2) 16.14/6.82 16.14/6.82 U4_gg(x1, x2, x3, x4) = U4_gg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 [] = [] 16.14/6.82 16.14/6.82 reach_out_ggg(x1, x2, x3) = reach_out_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.82 16.14/6.82 member1_out_ag(x1, x2) = member1_out_ag(x1, x2) 16.14/6.82 16.14/6.82 U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) 16.14/6.82 16.14/6.82 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 16.14/6.82 16.14/6.82 16.14/6.82 16.14/6.82 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 16.14/6.82 16.14/6.82 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (2) 16.14/6.82 Obligation: 16.14/6.82 Pi-finite rewrite system: 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.82 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.82 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.82 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.82 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.82 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.82 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.82 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.82 16.14/6.82 The argument filtering Pi contains the following mapping: 16.14/6.82 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U1_ggg(x1, x2, x3, x4) = U1_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.82 16.14/6.82 .(x1, x2) = .(x1, x2) 16.14/6.82 16.14/6.82 member_out_gg(x1, x2) = member_out_gg(x1, x2) 16.14/6.82 16.14/6.82 U4_gg(x1, x2, x3, x4) = U4_gg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 [] = [] 16.14/6.82 16.14/6.82 reach_out_ggg(x1, x2, x3) = reach_out_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.82 16.14/6.82 member1_out_ag(x1, x2) = member1_out_ag(x1, x2) 16.14/6.82 16.14/6.82 U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) 16.14/6.82 16.14/6.82 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (3) DependencyPairsProof (EQUIVALENT) 16.14/6.82 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 16.14/6.82 Pi DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 REACH_IN_GGG(X, Y, Edges) -> U1_GGG(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.82 REACH_IN_GGG(X, Y, Edges) -> MEMBER_IN_GG(.(X, .(Y, [])), Edges) 16.14/6.82 MEMBER_IN_GG(X, .(H, L)) -> U4_GG(X, H, L, member_in_gg(X, L)) 16.14/6.82 MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.82 REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 REACH_IN_GGG(X, Z, Edges) -> MEMBER1_IN_AG(.(X, .(Y, [])), Edges) 16.14/6.82 MEMBER1_IN_AG(X, .(H, L)) -> U5_AG(X, H, L, member1_in_ag(X, L)) 16.14/6.82 MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L) 16.14/6.82 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_GGG(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.82 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.82 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.82 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.82 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.82 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.82 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.82 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.82 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.82 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.82 16.14/6.82 The argument filtering Pi contains the following mapping: 16.14/6.82 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U1_ggg(x1, x2, x3, x4) = U1_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.82 16.14/6.82 .(x1, x2) = .(x1, x2) 16.14/6.82 16.14/6.82 member_out_gg(x1, x2) = member_out_gg(x1, x2) 16.14/6.82 16.14/6.82 U4_gg(x1, x2, x3, x4) = U4_gg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 [] = [] 16.14/6.82 16.14/6.82 reach_out_ggg(x1, x2, x3) = reach_out_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.82 16.14/6.82 member1_out_ag(x1, x2) = member1_out_ag(x1, x2) 16.14/6.82 16.14/6.82 U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) 16.14/6.82 16.14/6.82 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 REACH_IN_GGG(x1, x2, x3) = REACH_IN_GGG(x1, x2, x3) 16.14/6.82 16.14/6.82 U1_GGG(x1, x2, x3, x4) = U1_GGG(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 MEMBER_IN_GG(x1, x2) = MEMBER_IN_GG(x1, x2) 16.14/6.82 16.14/6.82 U4_GG(x1, x2, x3, x4) = U4_GG(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 MEMBER1_IN_AG(x1, x2) = MEMBER1_IN_AG(x2) 16.14/6.82 16.14/6.82 U5_AG(x1, x2, x3, x4) = U5_AG(x2, x3, x4) 16.14/6.82 16.14/6.82 U3_GGG(x1, x2, x3, x4) = U3_GGG(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 16.14/6.82 We have to consider all (P,R,Pi)-chains 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (4) 16.14/6.82 Obligation: 16.14/6.82 Pi DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 REACH_IN_GGG(X, Y, Edges) -> U1_GGG(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.82 REACH_IN_GGG(X, Y, Edges) -> MEMBER_IN_GG(.(X, .(Y, [])), Edges) 16.14/6.82 MEMBER_IN_GG(X, .(H, L)) -> U4_GG(X, H, L, member_in_gg(X, L)) 16.14/6.82 MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.82 REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 REACH_IN_GGG(X, Z, Edges) -> MEMBER1_IN_AG(.(X, .(Y, [])), Edges) 16.14/6.82 MEMBER1_IN_AG(X, .(H, L)) -> U5_AG(X, H, L, member1_in_ag(X, L)) 16.14/6.82 MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L) 16.14/6.82 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_GGG(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.82 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.82 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.82 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.82 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.82 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.82 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.82 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.82 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.82 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.82 16.14/6.82 The argument filtering Pi contains the following mapping: 16.14/6.82 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U1_ggg(x1, x2, x3, x4) = U1_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.82 16.14/6.82 .(x1, x2) = .(x1, x2) 16.14/6.82 16.14/6.82 member_out_gg(x1, x2) = member_out_gg(x1, x2) 16.14/6.82 16.14/6.82 U4_gg(x1, x2, x3, x4) = U4_gg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 [] = [] 16.14/6.82 16.14/6.82 reach_out_ggg(x1, x2, x3) = reach_out_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.82 16.14/6.82 member1_out_ag(x1, x2) = member1_out_ag(x1, x2) 16.14/6.82 16.14/6.82 U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) 16.14/6.82 16.14/6.82 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 REACH_IN_GGG(x1, x2, x3) = REACH_IN_GGG(x1, x2, x3) 16.14/6.82 16.14/6.82 U1_GGG(x1, x2, x3, x4) = U1_GGG(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 MEMBER_IN_GG(x1, x2) = MEMBER_IN_GG(x1, x2) 16.14/6.82 16.14/6.82 U4_GG(x1, x2, x3, x4) = U4_GG(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 MEMBER1_IN_AG(x1, x2) = MEMBER1_IN_AG(x2) 16.14/6.82 16.14/6.82 U5_AG(x1, x2, x3, x4) = U5_AG(x2, x3, x4) 16.14/6.82 16.14/6.82 U3_GGG(x1, x2, x3, x4) = U3_GGG(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 16.14/6.82 We have to consider all (P,R,Pi)-chains 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (5) DependencyGraphProof (EQUIVALENT) 16.14/6.82 The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 6 less nodes. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (6) 16.14/6.82 Complex Obligation (AND) 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (7) 16.14/6.82 Obligation: 16.14/6.82 Pi DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L) 16.14/6.82 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.82 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.82 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.82 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.82 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.82 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.82 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.82 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.82 16.14/6.82 The argument filtering Pi contains the following mapping: 16.14/6.82 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U1_ggg(x1, x2, x3, x4) = U1_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.82 16.14/6.82 .(x1, x2) = .(x1, x2) 16.14/6.82 16.14/6.82 member_out_gg(x1, x2) = member_out_gg(x1, x2) 16.14/6.82 16.14/6.82 U4_gg(x1, x2, x3, x4) = U4_gg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 [] = [] 16.14/6.82 16.14/6.82 reach_out_ggg(x1, x2, x3) = reach_out_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.82 16.14/6.82 member1_out_ag(x1, x2) = member1_out_ag(x1, x2) 16.14/6.82 16.14/6.82 U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) 16.14/6.82 16.14/6.82 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 MEMBER1_IN_AG(x1, x2) = MEMBER1_IN_AG(x2) 16.14/6.82 16.14/6.82 16.14/6.82 We have to consider all (P,R,Pi)-chains 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (8) UsableRulesProof (EQUIVALENT) 16.14/6.82 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (9) 16.14/6.82 Obligation: 16.14/6.82 Pi DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L) 16.14/6.82 16.14/6.82 R is empty. 16.14/6.82 The argument filtering Pi contains the following mapping: 16.14/6.82 .(x1, x2) = .(x1, x2) 16.14/6.82 16.14/6.82 MEMBER1_IN_AG(x1, x2) = MEMBER1_IN_AG(x2) 16.14/6.82 16.14/6.82 16.14/6.82 We have to consider all (P,R,Pi)-chains 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (10) PiDPToQDPProof (SOUND) 16.14/6.82 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (11) 16.14/6.82 Obligation: 16.14/6.82 Q DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 MEMBER1_IN_AG(.(H, L)) -> MEMBER1_IN_AG(L) 16.14/6.82 16.14/6.82 R is empty. 16.14/6.82 Q is empty. 16.14/6.82 We have to consider all (P,Q,R)-chains. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (12) QDPSizeChangeProof (EQUIVALENT) 16.14/6.82 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. 16.14/6.82 16.14/6.82 From the DPs we obtained the following set of size-change graphs: 16.14/6.82 *MEMBER1_IN_AG(.(H, L)) -> MEMBER1_IN_AG(L) 16.14/6.82 The graph contains the following edges 1 > 1 16.14/6.82 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (13) 16.14/6.82 YES 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (14) 16.14/6.82 Obligation: 16.14/6.82 Pi DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.82 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.82 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.82 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.82 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.82 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.82 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.82 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.82 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.82 16.14/6.82 The argument filtering Pi contains the following mapping: 16.14/6.82 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U1_ggg(x1, x2, x3, x4) = U1_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.82 16.14/6.82 .(x1, x2) = .(x1, x2) 16.14/6.82 16.14/6.82 member_out_gg(x1, x2) = member_out_gg(x1, x2) 16.14/6.82 16.14/6.82 U4_gg(x1, x2, x3, x4) = U4_gg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 [] = [] 16.14/6.82 16.14/6.82 reach_out_ggg(x1, x2, x3) = reach_out_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.82 16.14/6.82 member1_out_ag(x1, x2) = member1_out_ag(x1, x2) 16.14/6.82 16.14/6.82 U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) 16.14/6.82 16.14/6.82 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 MEMBER_IN_GG(x1, x2) = MEMBER_IN_GG(x1, x2) 16.14/6.82 16.14/6.82 16.14/6.82 We have to consider all (P,R,Pi)-chains 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (15) UsableRulesProof (EQUIVALENT) 16.14/6.82 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (16) 16.14/6.82 Obligation: 16.14/6.82 Pi DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.82 16.14/6.82 R is empty. 16.14/6.82 Pi is empty. 16.14/6.82 We have to consider all (P,R,Pi)-chains 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (17) PiDPToQDPProof (EQUIVALENT) 16.14/6.82 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (18) 16.14/6.82 Obligation: 16.14/6.82 Q DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.82 16.14/6.82 R is empty. 16.14/6.82 Q is empty. 16.14/6.82 We have to consider all (P,Q,R)-chains. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (19) QDPSizeChangeProof (EQUIVALENT) 16.14/6.82 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. 16.14/6.82 16.14/6.82 From the DPs we obtained the following set of size-change graphs: 16.14/6.82 *MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.82 The graph contains the following edges 1 >= 1, 2 > 2 16.14/6.82 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (20) 16.14/6.82 YES 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (21) 16.14/6.82 Obligation: 16.14/6.82 Pi DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.82 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.82 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.82 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.82 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.82 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.82 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.82 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.82 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.82 16.14/6.82 The argument filtering Pi contains the following mapping: 16.14/6.82 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U1_ggg(x1, x2, x3, x4) = U1_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.82 16.14/6.82 .(x1, x2) = .(x1, x2) 16.14/6.82 16.14/6.82 member_out_gg(x1, x2) = member_out_gg(x1, x2) 16.14/6.82 16.14/6.82 U4_gg(x1, x2, x3, x4) = U4_gg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 [] = [] 16.14/6.82 16.14/6.82 reach_out_ggg(x1, x2, x3) = reach_out_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.82 16.14/6.82 member1_out_ag(x1, x2) = member1_out_ag(x1, x2) 16.14/6.82 16.14/6.82 U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) 16.14/6.82 16.14/6.82 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 REACH_IN_GGG(x1, x2, x3) = REACH_IN_GGG(x1, x2, x3) 16.14/6.82 16.14/6.82 U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 16.14/6.82 We have to consider all (P,R,Pi)-chains 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (22) UsableRulesProof (EQUIVALENT) 16.14/6.82 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (23) 16.14/6.82 Obligation: 16.14/6.82 Pi DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.82 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.82 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 16.14/6.82 The argument filtering Pi contains the following mapping: 16.14/6.82 .(x1, x2) = .(x1, x2) 16.14/6.82 16.14/6.82 [] = [] 16.14/6.82 16.14/6.82 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.82 16.14/6.82 member1_out_ag(x1, x2) = member1_out_ag(x1, x2) 16.14/6.82 16.14/6.82 U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) 16.14/6.82 16.14/6.82 REACH_IN_GGG(x1, x2, x3) = REACH_IN_GGG(x1, x2, x3) 16.14/6.82 16.14/6.82 U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) 16.14/6.82 16.14/6.82 16.14/6.82 We have to consider all (P,R,Pi)-chains 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (24) PiDPToQDPProof (SOUND) 16.14/6.82 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (25) 16.14/6.82 Obligation: 16.14/6.82 Q DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(Edges)) 16.14/6.82 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.82 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 member1_in_ag(.(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(.(H, L)) -> U5_ag(H, L, member1_in_ag(L)) 16.14/6.82 U5_ag(H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 16.14/6.82 The set Q consists of the following terms: 16.14/6.82 16.14/6.82 member1_in_ag(x0) 16.14/6.82 U5_ag(x0, x1, x2) 16.14/6.82 16.14/6.82 We have to consider all (P,Q,R)-chains. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (26) TransformationProof (SOUND) 16.14/6.82 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]: 16.14/6.82 16.14/6.82 (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)))) 16.14/6.82 (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)))) 16.14/6.82 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (27) 16.14/6.82 Obligation: 16.14/6.82 Q DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.82 REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), member1_out_ag(x0, .(x0, x1))) 16.14/6.82 REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), U5_ag(x0, x1, member1_in_ag(x1))) 16.14/6.82 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 member1_in_ag(.(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(.(H, L)) -> U5_ag(H, L, member1_in_ag(L)) 16.14/6.82 U5_ag(H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 16.14/6.82 The set Q consists of the following terms: 16.14/6.82 16.14/6.82 member1_in_ag(x0) 16.14/6.82 U5_ag(x0, x1, x2) 16.14/6.82 16.14/6.82 We have to consider all (P,Q,R)-chains. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (28) TransformationProof (EQUIVALENT) 16.14/6.82 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]: 16.14/6.82 16.14/6.82 (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))) 16.14/6.82 (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))) 16.14/6.82 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (29) 16.14/6.82 Obligation: 16.14/6.82 Q DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), member1_out_ag(x0, .(x0, x1))) 16.14/6.82 REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), U5_ag(x0, x1, member1_in_ag(x1))) 16.14/6.82 U2_GGG(z0, z1, .(.(z0, .(x3, [])), z3), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) -> REACH_IN_GGG(x3, z1, .(.(z0, .(x3, [])), z3)) 16.14/6.82 U2_GGG(z0, z1, .(z2, z3), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) -> REACH_IN_GGG(x3, z1, .(z2, z3)) 16.14/6.82 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 member1_in_ag(.(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(.(H, L)) -> U5_ag(H, L, member1_in_ag(L)) 16.14/6.82 U5_ag(H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 16.14/6.82 The set Q consists of the following terms: 16.14/6.82 16.14/6.82 member1_in_ag(x0) 16.14/6.82 U5_ag(x0, x1, x2) 16.14/6.82 16.14/6.82 We have to consider all (P,Q,R)-chains. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (30) TransformationProof (EQUIVALENT) 16.14/6.82 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]: 16.14/6.82 16.14/6.82 (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)))) 16.14/6.82 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (31) 16.14/6.82 Obligation: 16.14/6.82 Q DP problem: 16.14/6.82 The TRS P consists of the following rules: 16.14/6.82 16.14/6.82 REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y0, y1, .(x0, x1), U5_ag(x0, x1, member1_in_ag(x1))) 16.14/6.82 U2_GGG(z0, z1, .(.(z0, .(x3, [])), z3), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) -> REACH_IN_GGG(x3, z1, .(.(z0, .(x3, [])), z3)) 16.14/6.82 U2_GGG(z0, z1, .(z2, z3), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) -> REACH_IN_GGG(x3, z1, .(z2, z3)) 16.14/6.82 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))) 16.14/6.82 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 member1_in_ag(.(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(.(H, L)) -> U5_ag(H, L, member1_in_ag(L)) 16.14/6.82 U5_ag(H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 16.14/6.82 The set Q consists of the following terms: 16.14/6.82 16.14/6.82 member1_in_ag(x0) 16.14/6.82 U5_ag(x0, x1, x2) 16.14/6.82 16.14/6.82 We have to consider all (P,Q,R)-chains. 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (32) PrologToPiTRSProof (SOUND) 16.14/6.82 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 16.14/6.82 16.14/6.82 reach_in_3: (b,b,b) 16.14/6.82 16.14/6.82 member_in_2: (b,b) 16.14/6.82 16.14/6.82 member1_in_2: (f,b) 16.14/6.82 16.14/6.82 Transforming Prolog into the following Term Rewriting System: 16.14/6.82 16.14/6.82 Pi-finite rewrite system: 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.82 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.82 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.82 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.82 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.82 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.82 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.82 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.82 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.82 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.82 16.14/6.82 The argument filtering Pi contains the following mapping: 16.14/6.82 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.82 16.14/6.82 U1_ggg(x1, x2, x3, x4) = U1_ggg(x4) 16.14/6.82 16.14/6.82 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.82 16.14/6.82 .(x1, x2) = .(x1, x2) 16.14/6.82 16.14/6.82 member_out_gg(x1, x2) = member_out_gg 16.14/6.82 16.14/6.82 U4_gg(x1, x2, x3, x4) = U4_gg(x4) 16.14/6.82 16.14/6.82 [] = [] 16.14/6.82 16.14/6.82 reach_out_ggg(x1, x2, x3) = reach_out_ggg 16.14/6.82 16.14/6.82 U2_ggg(x1, x2, x3, x4) = U2_ggg(x2, x3, x4) 16.14/6.82 16.14/6.82 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.82 16.14/6.82 member1_out_ag(x1, x2) = member1_out_ag(x1) 16.14/6.82 16.14/6.82 U5_ag(x1, x2, x3, x4) = U5_ag(x4) 16.14/6.82 16.14/6.82 U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) 16.14/6.82 16.14/6.82 16.14/6.82 16.14/6.82 16.14/6.82 16.14/6.82 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 16.14/6.82 16.14/6.82 16.14/6.82 16.14/6.82 ---------------------------------------- 16.14/6.82 16.14/6.82 (33) 16.14/6.82 Obligation: 16.14/6.82 Pi-finite rewrite system: 16.14/6.82 The TRS R consists of the following rules: 16.14/6.82 16.14/6.82 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.82 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.82 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.82 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.82 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.82 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.82 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.83 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.83 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.83 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.83 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.83 16.14/6.83 The argument filtering Pi contains the following mapping: 16.14/6.83 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.83 16.14/6.83 U1_ggg(x1, x2, x3, x4) = U1_ggg(x4) 16.14/6.83 16.14/6.83 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.83 16.14/6.83 .(x1, x2) = .(x1, x2) 16.14/6.83 16.14/6.83 member_out_gg(x1, x2) = member_out_gg 16.14/6.83 16.14/6.83 U4_gg(x1, x2, x3, x4) = U4_gg(x4) 16.14/6.83 16.14/6.83 [] = [] 16.14/6.83 16.14/6.83 reach_out_ggg(x1, x2, x3) = reach_out_ggg 16.14/6.83 16.14/6.83 U2_ggg(x1, x2, x3, x4) = U2_ggg(x2, x3, x4) 16.14/6.83 16.14/6.83 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.83 16.14/6.83 member1_out_ag(x1, x2) = member1_out_ag(x1) 16.14/6.83 16.14/6.83 U5_ag(x1, x2, x3, x4) = U5_ag(x4) 16.14/6.83 16.14/6.83 U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) 16.14/6.83 16.14/6.83 16.14/6.83 16.14/6.83 ---------------------------------------- 16.14/6.83 16.14/6.83 (34) DependencyPairsProof (EQUIVALENT) 16.14/6.83 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 16.14/6.83 Pi DP problem: 16.14/6.83 The TRS P consists of the following rules: 16.14/6.83 16.14/6.83 REACH_IN_GGG(X, Y, Edges) -> U1_GGG(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.83 REACH_IN_GGG(X, Y, Edges) -> MEMBER_IN_GG(.(X, .(Y, [])), Edges) 16.14/6.83 MEMBER_IN_GG(X, .(H, L)) -> U4_GG(X, H, L, member_in_gg(X, L)) 16.14/6.83 MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.83 REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.83 REACH_IN_GGG(X, Z, Edges) -> MEMBER1_IN_AG(.(X, .(Y, [])), Edges) 16.14/6.83 MEMBER1_IN_AG(X, .(H, L)) -> U5_AG(X, H, L, member1_in_ag(X, L)) 16.14/6.83 MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L) 16.14/6.83 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_GGG(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.83 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.83 16.14/6.83 The TRS R consists of the following rules: 16.14/6.83 16.14/6.83 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.83 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.83 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.83 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.83 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.83 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.83 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.83 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.83 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.83 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.83 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.83 16.14/6.83 The argument filtering Pi contains the following mapping: 16.14/6.83 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.83 16.14/6.83 U1_ggg(x1, x2, x3, x4) = U1_ggg(x4) 16.14/6.83 16.14/6.83 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.83 16.14/6.83 .(x1, x2) = .(x1, x2) 16.14/6.83 16.14/6.83 member_out_gg(x1, x2) = member_out_gg 16.14/6.83 16.14/6.83 U4_gg(x1, x2, x3, x4) = U4_gg(x4) 16.14/6.83 16.14/6.83 [] = [] 16.14/6.83 16.14/6.83 reach_out_ggg(x1, x2, x3) = reach_out_ggg 16.14/6.83 16.14/6.83 U2_ggg(x1, x2, x3, x4) = U2_ggg(x2, x3, x4) 16.14/6.83 16.14/6.83 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.83 16.14/6.83 member1_out_ag(x1, x2) = member1_out_ag(x1) 16.14/6.83 16.14/6.83 U5_ag(x1, x2, x3, x4) = U5_ag(x4) 16.14/6.83 16.14/6.83 U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) 16.14/6.83 16.14/6.83 REACH_IN_GGG(x1, x2, x3) = REACH_IN_GGG(x1, x2, x3) 16.14/6.83 16.14/6.83 U1_GGG(x1, x2, x3, x4) = U1_GGG(x4) 16.14/6.83 16.14/6.83 MEMBER_IN_GG(x1, x2) = MEMBER_IN_GG(x1, x2) 16.14/6.83 16.14/6.83 U4_GG(x1, x2, x3, x4) = U4_GG(x4) 16.14/6.83 16.14/6.83 U2_GGG(x1, x2, x3, x4) = U2_GGG(x2, x3, x4) 16.14/6.83 16.14/6.83 MEMBER1_IN_AG(x1, x2) = MEMBER1_IN_AG(x2) 16.14/6.83 16.14/6.83 U5_AG(x1, x2, x3, x4) = U5_AG(x4) 16.14/6.83 16.14/6.83 U3_GGG(x1, x2, x3, x4) = U3_GGG(x4) 16.14/6.83 16.14/6.83 16.14/6.83 We have to consider all (P,R,Pi)-chains 16.14/6.83 ---------------------------------------- 16.14/6.83 16.14/6.83 (35) 16.14/6.83 Obligation: 16.14/6.83 Pi DP problem: 16.14/6.83 The TRS P consists of the following rules: 16.14/6.83 16.14/6.83 REACH_IN_GGG(X, Y, Edges) -> U1_GGG(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.83 REACH_IN_GGG(X, Y, Edges) -> MEMBER_IN_GG(.(X, .(Y, [])), Edges) 16.14/6.83 MEMBER_IN_GG(X, .(H, L)) -> U4_GG(X, H, L, member_in_gg(X, L)) 16.14/6.83 MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.83 REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.83 REACH_IN_GGG(X, Z, Edges) -> MEMBER1_IN_AG(.(X, .(Y, [])), Edges) 16.14/6.83 MEMBER1_IN_AG(X, .(H, L)) -> U5_AG(X, H, L, member1_in_ag(X, L)) 16.14/6.83 MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L) 16.14/6.83 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_GGG(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.83 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.83 16.14/6.83 The TRS R consists of the following rules: 16.14/6.83 16.14/6.83 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.83 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.83 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.83 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.83 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.83 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.83 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.83 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.83 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.83 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.83 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.83 16.14/6.83 The argument filtering Pi contains the following mapping: 16.14/6.83 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.83 16.14/6.83 U1_ggg(x1, x2, x3, x4) = U1_ggg(x4) 16.14/6.83 16.14/6.83 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.83 16.14/6.83 .(x1, x2) = .(x1, x2) 16.14/6.83 16.14/6.83 member_out_gg(x1, x2) = member_out_gg 16.14/6.83 16.14/6.83 U4_gg(x1, x2, x3, x4) = U4_gg(x4) 16.14/6.83 16.14/6.83 [] = [] 16.14/6.83 16.14/6.83 reach_out_ggg(x1, x2, x3) = reach_out_ggg 16.14/6.83 16.14/6.83 U2_ggg(x1, x2, x3, x4) = U2_ggg(x2, x3, x4) 16.14/6.83 16.14/6.83 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.83 16.14/6.83 member1_out_ag(x1, x2) = member1_out_ag(x1) 16.14/6.83 16.14/6.83 U5_ag(x1, x2, x3, x4) = U5_ag(x4) 16.14/6.83 16.14/6.83 U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) 16.14/6.83 16.14/6.83 REACH_IN_GGG(x1, x2, x3) = REACH_IN_GGG(x1, x2, x3) 16.14/6.83 16.14/6.83 U1_GGG(x1, x2, x3, x4) = U1_GGG(x4) 16.14/6.83 16.14/6.83 MEMBER_IN_GG(x1, x2) = MEMBER_IN_GG(x1, x2) 16.14/6.83 16.14/6.83 U4_GG(x1, x2, x3, x4) = U4_GG(x4) 16.14/6.83 16.14/6.83 U2_GGG(x1, x2, x3, x4) = U2_GGG(x2, x3, x4) 16.14/6.83 16.14/6.83 MEMBER1_IN_AG(x1, x2) = MEMBER1_IN_AG(x2) 16.14/6.83 16.14/6.83 U5_AG(x1, x2, x3, x4) = U5_AG(x4) 16.14/6.83 16.14/6.83 U3_GGG(x1, x2, x3, x4) = U3_GGG(x4) 16.14/6.83 16.14/6.83 16.14/6.83 We have to consider all (P,R,Pi)-chains 16.14/6.83 ---------------------------------------- 16.14/6.83 16.14/6.83 (36) DependencyGraphProof (EQUIVALENT) 16.14/6.83 The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 6 less nodes. 16.14/6.83 ---------------------------------------- 16.14/6.83 16.14/6.83 (37) 16.14/6.83 Complex Obligation (AND) 16.14/6.83 16.14/6.83 ---------------------------------------- 16.14/6.83 16.14/6.83 (38) 16.14/6.83 Obligation: 16.14/6.83 Pi DP problem: 16.14/6.83 The TRS P consists of the following rules: 16.14/6.83 16.14/6.83 MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L) 16.14/6.83 16.14/6.83 The TRS R consists of the following rules: 16.14/6.83 16.14/6.83 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.83 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.83 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.83 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.83 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.83 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.83 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.83 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.83 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.83 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.83 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.83 16.14/6.83 The argument filtering Pi contains the following mapping: 16.14/6.83 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.83 16.14/6.83 U1_ggg(x1, x2, x3, x4) = U1_ggg(x4) 16.14/6.83 16.14/6.83 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.83 16.14/6.83 .(x1, x2) = .(x1, x2) 16.14/6.83 16.14/6.83 member_out_gg(x1, x2) = member_out_gg 16.14/6.83 16.14/6.83 U4_gg(x1, x2, x3, x4) = U4_gg(x4) 16.14/6.83 16.14/6.83 [] = [] 16.14/6.83 16.14/6.83 reach_out_ggg(x1, x2, x3) = reach_out_ggg 16.14/6.83 16.14/6.83 U2_ggg(x1, x2, x3, x4) = U2_ggg(x2, x3, x4) 16.14/6.83 16.14/6.83 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.84 16.14/6.84 member1_out_ag(x1, x2) = member1_out_ag(x1) 16.14/6.84 16.14/6.84 U5_ag(x1, x2, x3, x4) = U5_ag(x4) 16.14/6.84 16.14/6.84 U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) 16.14/6.84 16.14/6.84 MEMBER1_IN_AG(x1, x2) = MEMBER1_IN_AG(x2) 16.14/6.84 16.14/6.84 16.14/6.84 We have to consider all (P,R,Pi)-chains 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (39) UsableRulesProof (EQUIVALENT) 16.14/6.84 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (40) 16.14/6.84 Obligation: 16.14/6.84 Pi DP problem: 16.14/6.84 The TRS P consists of the following rules: 16.14/6.84 16.14/6.84 MEMBER1_IN_AG(X, .(H, L)) -> MEMBER1_IN_AG(X, L) 16.14/6.84 16.14/6.84 R is empty. 16.14/6.84 The argument filtering Pi contains the following mapping: 16.14/6.84 .(x1, x2) = .(x1, x2) 16.14/6.84 16.14/6.84 MEMBER1_IN_AG(x1, x2) = MEMBER1_IN_AG(x2) 16.14/6.84 16.14/6.84 16.14/6.84 We have to consider all (P,R,Pi)-chains 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (41) PiDPToQDPProof (SOUND) 16.14/6.84 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (42) 16.14/6.84 Obligation: 16.14/6.84 Q DP problem: 16.14/6.84 The TRS P consists of the following rules: 16.14/6.84 16.14/6.84 MEMBER1_IN_AG(.(H, L)) -> MEMBER1_IN_AG(L) 16.14/6.84 16.14/6.84 R is empty. 16.14/6.84 Q is empty. 16.14/6.84 We have to consider all (P,Q,R)-chains. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (43) QDPSizeChangeProof (EQUIVALENT) 16.14/6.84 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. 16.14/6.84 16.14/6.84 From the DPs we obtained the following set of size-change graphs: 16.14/6.84 *MEMBER1_IN_AG(.(H, L)) -> MEMBER1_IN_AG(L) 16.14/6.84 The graph contains the following edges 1 > 1 16.14/6.84 16.14/6.84 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (44) 16.14/6.84 YES 16.14/6.84 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (45) 16.14/6.84 Obligation: 16.14/6.84 Pi DP problem: 16.14/6.84 The TRS P consists of the following rules: 16.14/6.84 16.14/6.84 MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.84 16.14/6.84 The TRS R consists of the following rules: 16.14/6.84 16.14/6.84 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.84 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.84 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.84 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.84 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.84 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.84 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.84 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.84 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.84 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.84 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.84 16.14/6.84 The argument filtering Pi contains the following mapping: 16.14/6.84 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.84 16.14/6.84 U1_ggg(x1, x2, x3, x4) = U1_ggg(x4) 16.14/6.84 16.14/6.84 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.84 16.14/6.84 .(x1, x2) = .(x1, x2) 16.14/6.84 16.14/6.84 member_out_gg(x1, x2) = member_out_gg 16.14/6.84 16.14/6.84 U4_gg(x1, x2, x3, x4) = U4_gg(x4) 16.14/6.84 16.14/6.84 [] = [] 16.14/6.84 16.14/6.84 reach_out_ggg(x1, x2, x3) = reach_out_ggg 16.14/6.84 16.14/6.84 U2_ggg(x1, x2, x3, x4) = U2_ggg(x2, x3, x4) 16.14/6.84 16.14/6.84 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.84 16.14/6.84 member1_out_ag(x1, x2) = member1_out_ag(x1) 16.14/6.84 16.14/6.84 U5_ag(x1, x2, x3, x4) = U5_ag(x4) 16.14/6.84 16.14/6.84 U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) 16.14/6.84 16.14/6.84 MEMBER_IN_GG(x1, x2) = MEMBER_IN_GG(x1, x2) 16.14/6.84 16.14/6.84 16.14/6.84 We have to consider all (P,R,Pi)-chains 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (46) UsableRulesProof (EQUIVALENT) 16.14/6.84 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (47) 16.14/6.84 Obligation: 16.14/6.84 Pi DP problem: 16.14/6.84 The TRS P consists of the following rules: 16.14/6.84 16.14/6.84 MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.84 16.14/6.84 R is empty. 16.14/6.84 Pi is empty. 16.14/6.84 We have to consider all (P,R,Pi)-chains 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (48) PiDPToQDPProof (EQUIVALENT) 16.14/6.84 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (49) 16.14/6.84 Obligation: 16.14/6.84 Q DP problem: 16.14/6.84 The TRS P consists of the following rules: 16.14/6.84 16.14/6.84 MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.84 16.14/6.84 R is empty. 16.14/6.84 Q is empty. 16.14/6.84 We have to consider all (P,Q,R)-chains. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (50) QDPSizeChangeProof (EQUIVALENT) 16.14/6.84 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. 16.14/6.84 16.14/6.84 From the DPs we obtained the following set of size-change graphs: 16.14/6.84 *MEMBER_IN_GG(X, .(H, L)) -> MEMBER_IN_GG(X, L) 16.14/6.84 The graph contains the following edges 1 >= 1, 2 > 2 16.14/6.84 16.14/6.84 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (51) 16.14/6.84 YES 16.14/6.84 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (52) 16.14/6.84 Obligation: 16.14/6.84 Pi DP problem: 16.14/6.84 The TRS P consists of the following rules: 16.14/6.84 16.14/6.84 REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.84 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.84 16.14/6.84 The TRS R consists of the following rules: 16.14/6.84 16.14/6.84 reach_in_ggg(X, Y, Edges) -> U1_ggg(X, Y, Edges, member_in_gg(.(X, .(Y, [])), Edges)) 16.14/6.84 member_in_gg(H, .(H, L)) -> member_out_gg(H, .(H, L)) 16.14/6.84 member_in_gg(X, .(H, L)) -> U4_gg(X, H, L, member_in_gg(X, L)) 16.14/6.84 U4_gg(X, H, L, member_out_gg(X, L)) -> member_out_gg(X, .(H, L)) 16.14/6.84 U1_ggg(X, Y, Edges, member_out_gg(.(X, .(Y, [])), Edges)) -> reach_out_ggg(X, Y, Edges) 16.14/6.84 reach_in_ggg(X, Z, Edges) -> U2_ggg(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.84 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.84 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.84 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.84 U2_ggg(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> U3_ggg(X, Z, Edges, reach_in_ggg(Y, Z, Edges)) 16.14/6.84 U3_ggg(X, Z, Edges, reach_out_ggg(Y, Z, Edges)) -> reach_out_ggg(X, Z, Edges) 16.14/6.84 16.14/6.84 The argument filtering Pi contains the following mapping: 16.14/6.84 reach_in_ggg(x1, x2, x3) = reach_in_ggg(x1, x2, x3) 16.14/6.84 16.14/6.84 U1_ggg(x1, x2, x3, x4) = U1_ggg(x4) 16.14/6.84 16.14/6.84 member_in_gg(x1, x2) = member_in_gg(x1, x2) 16.14/6.84 16.14/6.84 .(x1, x2) = .(x1, x2) 16.14/6.84 16.14/6.84 member_out_gg(x1, x2) = member_out_gg 16.14/6.84 16.14/6.84 U4_gg(x1, x2, x3, x4) = U4_gg(x4) 16.14/6.84 16.14/6.84 [] = [] 16.14/6.84 16.14/6.84 reach_out_ggg(x1, x2, x3) = reach_out_ggg 16.14/6.84 16.14/6.84 U2_ggg(x1, x2, x3, x4) = U2_ggg(x2, x3, x4) 16.14/6.84 16.14/6.84 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.84 16.14/6.84 member1_out_ag(x1, x2) = member1_out_ag(x1) 16.14/6.84 16.14/6.84 U5_ag(x1, x2, x3, x4) = U5_ag(x4) 16.14/6.84 16.14/6.84 U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) 16.14/6.84 16.14/6.84 REACH_IN_GGG(x1, x2, x3) = REACH_IN_GGG(x1, x2, x3) 16.14/6.84 16.14/6.84 U2_GGG(x1, x2, x3, x4) = U2_GGG(x2, x3, x4) 16.14/6.84 16.14/6.84 16.14/6.84 We have to consider all (P,R,Pi)-chains 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (53) UsableRulesProof (EQUIVALENT) 16.14/6.84 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (54) 16.14/6.84 Obligation: 16.14/6.84 Pi DP problem: 16.14/6.84 The TRS P consists of the following rules: 16.14/6.84 16.14/6.84 REACH_IN_GGG(X, Z, Edges) -> U2_GGG(X, Z, Edges, member1_in_ag(.(X, .(Y, [])), Edges)) 16.14/6.84 U2_GGG(X, Z, Edges, member1_out_ag(.(X, .(Y, [])), Edges)) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.84 16.14/6.84 The TRS R consists of the following rules: 16.14/6.84 16.14/6.84 member1_in_ag(H, .(H, L)) -> member1_out_ag(H, .(H, L)) 16.14/6.84 member1_in_ag(X, .(H, L)) -> U5_ag(X, H, L, member1_in_ag(X, L)) 16.14/6.84 U5_ag(X, H, L, member1_out_ag(X, L)) -> member1_out_ag(X, .(H, L)) 16.14/6.84 16.14/6.84 The argument filtering Pi contains the following mapping: 16.14/6.84 .(x1, x2) = .(x1, x2) 16.14/6.84 16.14/6.84 [] = [] 16.14/6.84 16.14/6.84 member1_in_ag(x1, x2) = member1_in_ag(x2) 16.14/6.84 16.14/6.84 member1_out_ag(x1, x2) = member1_out_ag(x1) 16.14/6.84 16.14/6.84 U5_ag(x1, x2, x3, x4) = U5_ag(x4) 16.14/6.84 16.14/6.84 REACH_IN_GGG(x1, x2, x3) = REACH_IN_GGG(x1, x2, x3) 16.14/6.84 16.14/6.84 U2_GGG(x1, x2, x3, x4) = U2_GGG(x2, x3, x4) 16.14/6.84 16.14/6.84 16.14/6.84 We have to consider all (P,R,Pi)-chains 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (55) PiDPToQDPProof (SOUND) 16.14/6.84 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (56) 16.14/6.84 Obligation: 16.14/6.84 Q DP problem: 16.14/6.84 The TRS P consists of the following rules: 16.14/6.84 16.14/6.84 REACH_IN_GGG(X, Z, Edges) -> U2_GGG(Z, Edges, member1_in_ag(Edges)) 16.14/6.84 U2_GGG(Z, Edges, member1_out_ag(.(X, .(Y, [])))) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.84 16.14/6.84 The TRS R consists of the following rules: 16.14/6.84 16.14/6.84 member1_in_ag(.(H, L)) -> member1_out_ag(H) 16.14/6.84 member1_in_ag(.(H, L)) -> U5_ag(member1_in_ag(L)) 16.14/6.84 U5_ag(member1_out_ag(X)) -> member1_out_ag(X) 16.14/6.84 16.14/6.84 The set Q consists of the following terms: 16.14/6.84 16.14/6.84 member1_in_ag(x0) 16.14/6.84 U5_ag(x0) 16.14/6.84 16.14/6.84 We have to consider all (P,Q,R)-chains. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (57) TransformationProof (SOUND) 16.14/6.84 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]: 16.14/6.84 16.14/6.84 (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))) 16.14/6.84 (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)))) 16.14/6.84 16.14/6.84 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (58) 16.14/6.84 Obligation: 16.14/6.84 Q DP problem: 16.14/6.84 The TRS P consists of the following rules: 16.14/6.84 16.14/6.84 U2_GGG(Z, Edges, member1_out_ag(.(X, .(Y, [])))) -> REACH_IN_GGG(Y, Z, Edges) 16.14/6.84 REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), member1_out_ag(x0)) 16.14/6.84 REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), U5_ag(member1_in_ag(x1))) 16.14/6.84 16.14/6.84 The TRS R consists of the following rules: 16.14/6.84 16.14/6.84 member1_in_ag(.(H, L)) -> member1_out_ag(H) 16.14/6.84 member1_in_ag(.(H, L)) -> U5_ag(member1_in_ag(L)) 16.14/6.84 U5_ag(member1_out_ag(X)) -> member1_out_ag(X) 16.14/6.84 16.14/6.84 The set Q consists of the following terms: 16.14/6.84 16.14/6.84 member1_in_ag(x0) 16.14/6.84 U5_ag(x0) 16.14/6.84 16.14/6.84 We have to consider all (P,Q,R)-chains. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (59) TransformationProof (EQUIVALENT) 16.14/6.84 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]: 16.14/6.84 16.14/6.84 (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))) 16.14/6.84 (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))) 16.14/6.84 16.14/6.84 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (60) 16.14/6.84 Obligation: 16.14/6.84 Q DP problem: 16.14/6.84 The TRS P consists of the following rules: 16.14/6.84 16.14/6.84 REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), member1_out_ag(x0)) 16.14/6.84 REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), U5_ag(member1_in_ag(x1))) 16.14/6.84 U2_GGG(z1, .(.(x2, .(x3, [])), z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(.(x2, .(x3, [])), z3)) 16.14/6.84 U2_GGG(z1, .(z2, z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(z2, z3)) 16.14/6.84 16.14/6.84 The TRS R consists of the following rules: 16.14/6.84 16.14/6.84 member1_in_ag(.(H, L)) -> member1_out_ag(H) 16.14/6.84 member1_in_ag(.(H, L)) -> U5_ag(member1_in_ag(L)) 16.14/6.84 U5_ag(member1_out_ag(X)) -> member1_out_ag(X) 16.14/6.84 16.14/6.84 The set Q consists of the following terms: 16.14/6.84 16.14/6.84 member1_in_ag(x0) 16.14/6.84 U5_ag(x0) 16.14/6.84 16.14/6.84 We have to consider all (P,Q,R)-chains. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (61) TransformationProof (EQUIVALENT) 16.14/6.84 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]: 16.14/6.84 16.14/6.84 (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, []))))) 16.14/6.84 16.14/6.84 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (62) 16.14/6.84 Obligation: 16.14/6.84 Q DP problem: 16.14/6.84 The TRS P consists of the following rules: 16.14/6.84 16.14/6.84 REACH_IN_GGG(y0, y1, .(x0, x1)) -> U2_GGG(y1, .(x0, x1), U5_ag(member1_in_ag(x1))) 16.14/6.84 U2_GGG(z1, .(.(x2, .(x3, [])), z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(.(x2, .(x3, [])), z3)) 16.14/6.84 U2_GGG(z1, .(z2, z3), member1_out_ag(.(x2, .(x3, [])))) -> REACH_IN_GGG(x3, z1, .(z2, z3)) 16.14/6.84 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, [])))) 16.14/6.84 16.14/6.84 The TRS R consists of the following rules: 16.14/6.84 16.14/6.84 member1_in_ag(.(H, L)) -> member1_out_ag(H) 16.14/6.84 member1_in_ag(.(H, L)) -> U5_ag(member1_in_ag(L)) 16.14/6.84 U5_ag(member1_out_ag(X)) -> member1_out_ag(X) 16.14/6.84 16.14/6.84 The set Q consists of the following terms: 16.14/6.84 16.14/6.84 member1_in_ag(x0) 16.14/6.84 U5_ag(x0) 16.14/6.84 16.14/6.84 We have to consider all (P,Q,R)-chains. 16.14/6.84 ---------------------------------------- 16.14/6.84 16.14/6.84 (63) PrologToTRSTransformerProof (SOUND) 16.14/6.84 Transformed Prolog program to TRS. 16.14/6.84 16.14/6.84 { 16.14/6.84 "root": 1, 16.14/6.84 "program": { 16.14/6.84 "directives": [], 16.14/6.84 "clauses": [ 16.14/6.84 [ 16.14/6.84 "(reach X Y Edges)", 16.14/6.84 "(member (. X (. Y ([]))) Edges)" 16.14/6.84 ], 16.14/6.84 [ 16.14/6.84 "(reach X Z Edges)", 16.14/6.84 "(',' (member1 (. X (. Y ([]))) Edges) (reach Y Z Edges))" 16.14/6.84 ], 16.14/6.84 [ 16.14/6.84 "(member H (. H L))", 16.14/6.84 null 16.14/6.84 ], 16.14/6.84 [ 16.14/6.84 "(member X (. H L))", 16.14/6.84 "(member X L)" 16.14/6.84 ], 16.14/6.84 [ 16.14/6.84 "(member1 H (. H L))", 16.14/6.84 null 16.14/6.84 ], 16.14/6.84 [ 16.14/6.84 "(member1 X (. H L))", 16.14/6.84 "(member1 X L)" 16.14/6.84 ] 16.14/6.84 ] 16.14/6.84 }, 16.14/6.84 "graph": { 16.14/6.84 "nodes": { 16.14/6.84 "270": { 16.14/6.84 "goal": [], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [], 16.14/6.84 "free": [], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "type": "Nodes", 16.14/6.84 "298": { 16.14/6.84 "goal": [{ 16.14/6.84 "clause": -1, 16.14/6.84 "scope": -1, 16.14/6.84 "term": "(member1 (. T119 (. X106 ([]))) T121)" 16.14/6.84 }], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T119", 16.14/6.84 "T121" 16.14/6.84 ], 16.14/6.84 "free": ["X106"], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "299": { 16.14/6.84 "goal": [], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [], 16.14/6.84 "free": [], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "279": { 16.14/6.84 "goal": [{ 16.14/6.84 "clause": -1, 16.14/6.84 "scope": -1, 16.14/6.84 "term": "(',' (member1 (. T82 (. X67 ([]))) T84) (reach X67 T83 T84))" 16.14/6.84 }], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T82", 16.14/6.84 "T83", 16.14/6.84 "T84" 16.14/6.84 ], 16.14/6.84 "free": ["X67"], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "259": { 16.14/6.84 "goal": [{ 16.14/6.84 "clause": -1, 16.14/6.84 "scope": -1, 16.14/6.84 "term": "(member (. T28 (. T29 ([]))) T30)" 16.14/6.84 }], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T28", 16.14/6.84 "T29", 16.14/6.84 "T30" 16.14/6.84 ], 16.14/6.84 "free": [], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "32": { 16.14/6.84 "goal": [{ 16.14/6.84 "clause": 0, 16.14/6.84 "scope": 1, 16.14/6.84 "term": "(reach T1 T2 T3)" 16.14/6.84 }], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T1", 16.14/6.84 "T2", 16.14/6.84 "T3" 16.14/6.84 ], 16.14/6.84 "free": [], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "33": { 16.14/6.84 "goal": [{ 16.14/6.84 "clause": 1, 16.14/6.84 "scope": 1, 16.14/6.84 "term": "(reach T1 T2 T3)" 16.14/6.84 }], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T1", 16.14/6.84 "T2", 16.14/6.84 "T3" 16.14/6.84 ], 16.14/6.84 "free": [], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "19": { 16.14/6.84 "goal": [ 16.14/6.84 { 16.14/6.84 "clause": 0, 16.14/6.84 "scope": 1, 16.14/6.84 "term": "(reach T1 T2 T3)" 16.14/6.84 }, 16.14/6.84 { 16.14/6.84 "clause": 1, 16.14/6.84 "scope": 1, 16.14/6.84 "term": "(reach T1 T2 T3)" 16.14/6.84 } 16.14/6.84 ], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T1", 16.14/6.84 "T2", 16.14/6.84 "T3" 16.14/6.84 ], 16.14/6.84 "free": [], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "280": { 16.14/6.84 "goal": [{ 16.14/6.84 "clause": -1, 16.14/6.84 "scope": -1, 16.14/6.84 "term": "(member1 (. T82 (. X67 ([]))) T84)" 16.14/6.84 }], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T82", 16.14/6.84 "T84" 16.14/6.84 ], 16.14/6.84 "free": ["X67"], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "281": { 16.14/6.84 "goal": [{ 16.14/6.84 "clause": -1, 16.14/6.84 "scope": -1, 16.14/6.84 "term": "(reach T91 T83 T84)" 16.14/6.84 }], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T83", 16.14/6.84 "T84", 16.14/6.84 "T91" 16.14/6.84 ], 16.14/6.84 "free": [], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "282": { 16.14/6.84 "goal": [ 16.14/6.84 { 16.14/6.84 "clause": 4, 16.14/6.84 "scope": 3, 16.14/6.84 "term": "(member1 (. T82 (. X67 ([]))) T84)" 16.14/6.84 }, 16.14/6.84 { 16.14/6.84 "clause": 5, 16.14/6.84 "scope": 3, 16.14/6.84 "term": "(member1 (. T82 (. X67 ([]))) T84)" 16.14/6.84 } 16.14/6.84 ], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T82", 16.14/6.84 "T84" 16.14/6.84 ], 16.14/6.84 "free": ["X67"], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "283": { 16.14/6.84 "goal": [{ 16.14/6.84 "clause": 4, 16.14/6.84 "scope": 3, 16.14/6.84 "term": "(member1 (. T82 (. X67 ([]))) T84)" 16.14/6.84 }], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T82", 16.14/6.84 "T84" 16.14/6.84 ], 16.14/6.84 "free": ["X67"], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "262": { 16.14/6.84 "goal": [ 16.14/6.84 { 16.14/6.84 "clause": 2, 16.14/6.84 "scope": 2, 16.14/6.84 "term": "(member (. T28 (. T29 ([]))) T30)" 16.14/6.84 }, 16.14/6.84 { 16.14/6.84 "clause": 3, 16.14/6.84 "scope": 2, 16.14/6.84 "term": "(member (. T28 (. T29 ([]))) T30)" 16.14/6.84 } 16.14/6.84 ], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T28", 16.14/6.84 "T29", 16.14/6.84 "T30" 16.14/6.84 ], 16.14/6.84 "free": [], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "284": { 16.14/6.84 "goal": [{ 16.14/6.84 "clause": 5, 16.14/6.84 "scope": 3, 16.14/6.84 "term": "(member1 (. T82 (. X67 ([]))) T84)" 16.14/6.84 }], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T82", 16.14/6.84 "T84" 16.14/6.84 ], 16.14/6.84 "free": ["X67"], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "263": { 16.14/6.84 "goal": [{ 16.14/6.84 "clause": 2, 16.14/6.84 "scope": 2, 16.14/6.84 "term": "(member (. T28 (. T29 ([]))) T30)" 16.14/6.84 }], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [ 16.14/6.84 "T28", 16.14/6.84 "T29", 16.14/6.84 "T30" 16.14/6.84 ], 16.14/6.84 "free": [], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.84 "285": { 16.14/6.84 "goal": [{ 16.14/6.84 "clause": -1, 16.14/6.84 "scope": -1, 16.14/6.84 "term": "(true)" 16.14/6.84 }], 16.14/6.84 "kb": { 16.14/6.84 "nonunifying": [], 16.14/6.84 "intvars": {}, 16.14/6.84 "arithmetic": { 16.14/6.84 "type": "PlainIntegerRelationState", 16.14/6.84 "relations": [] 16.14/6.84 }, 16.14/6.84 "ground": [], 16.14/6.84 "free": [], 16.14/6.84 "exprvars": [] 16.14/6.84 } 16.14/6.84 }, 16.14/6.85 "264": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": 3, 16.14/6.85 "scope": 2, 16.14/6.85 "term": "(member (. T28 (. T29 ([]))) T30)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T28", 16.14/6.85 "T29", 16.14/6.85 "T30" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "286": { 16.14/6.85 "goal": [], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "1": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": -1, 16.14/6.85 "scope": -1, 16.14/6.85 "term": "(reach T1 T2 T3)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T1", 16.14/6.85 "T2", 16.14/6.85 "T3" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "287": { 16.14/6.85 "goal": [], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "266": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": -1, 16.14/6.85 "scope": -1, 16.14/6.85 "term": "(true)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "267": { 16.14/6.85 "goal": [], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "268": { 16.14/6.85 "goal": [], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "269": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": -1, 16.14/6.85 "scope": -1, 16.14/6.85 "term": "(member (. T60 (. T61 ([]))) T63)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T60", 16.14/6.85 "T61", 16.14/6.85 "T63" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "edges": [ 16.14/6.85 { 16.14/6.85 "from": 1, 16.14/6.85 "to": 19, 16.14/6.85 "label": "CASE" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 19, 16.14/6.85 "to": 32, 16.14/6.85 "label": "PARALLEL" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 19, 16.14/6.85 "to": 33, 16.14/6.85 "label": "PARALLEL" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 32, 16.14/6.85 "to": 259, 16.14/6.85 "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" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 33, 16.14/6.85 "to": 279, 16.14/6.85 "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" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 259, 16.14/6.85 "to": 262, 16.14/6.85 "label": "CASE" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 262, 16.14/6.85 "to": 263, 16.14/6.85 "label": "PARALLEL" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 262, 16.14/6.85 "to": 264, 16.14/6.85 "label": "PARALLEL" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 263, 16.14/6.85 "to": 266, 16.14/6.85 "label": "EVAL with clause\nmember(X36, .(X36, X37)).\nand substitutionT28 -> T49,\nT29 -> T50,\nX36 -> .(T49, .(T50, [])),\nX37 -> T51,\nT30 -> .(.(T49, .(T50, [])), T51)" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 263, 16.14/6.85 "to": 267, 16.14/6.85 "label": "EVAL-BACKTRACK" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 264, 16.14/6.85 "to": 269, 16.14/6.85 "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)" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 264, 16.14/6.85 "to": 270, 16.14/6.85 "label": "EVAL-BACKTRACK" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 266, 16.14/6.85 "to": 268, 16.14/6.85 "label": "SUCCESS" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 269, 16.14/6.85 "to": 259, 16.14/6.85 "label": "INSTANCE with matching:\nT28 -> T60\nT29 -> T61\nT30 -> T63" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 279, 16.14/6.85 "to": 280, 16.14/6.85 "label": "SPLIT 1" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 279, 16.14/6.85 "to": 281, 16.14/6.85 "label": "SPLIT 2\nnew knowledge:\nT82 is ground\nT91 is ground\nT84 is ground\nreplacements:X67 -> T91" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 280, 16.14/6.85 "to": 282, 16.14/6.85 "label": "CASE" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 281, 16.14/6.85 "to": 1, 16.14/6.85 "label": "INSTANCE with matching:\nT1 -> T91\nT2 -> T83\nT3 -> T84" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 282, 16.14/6.85 "to": 283, 16.14/6.85 "label": "PARALLEL" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 282, 16.14/6.85 "to": 284, 16.14/6.85 "label": "PARALLEL" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 283, 16.14/6.85 "to": 285, 16.14/6.85 "label": "EVAL with clause\nmember1(X92, .(X92, X93)).\nand substitutionT82 -> T110,\nX67 -> T111,\nX92 -> .(T110, .(T111, [])),\nX94 -> T111,\nX93 -> T112,\nT84 -> .(.(T110, .(T111, [])), T112)" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 283, 16.14/6.85 "to": 286, 16.14/6.85 "label": "EVAL-BACKTRACK" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 284, 16.14/6.85 "to": 298, 16.14/6.85 "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)" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 284, 16.14/6.85 "to": 299, 16.14/6.85 "label": "EVAL-BACKTRACK" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 285, 16.14/6.85 "to": 287, 16.14/6.85 "label": "SUCCESS" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "from": 298, 16.14/6.85 "to": 280, 16.14/6.85 "label": "INSTANCE with matching:\nT82 -> T119\nX67 -> X106\nT84 -> T121" 16.14/6.85 } 16.14/6.85 ], 16.14/6.85 "type": "Graph" 16.14/6.85 } 16.14/6.85 } 16.14/6.85 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (64) 16.14/6.85 Obligation: 16.14/6.85 Q restricted rewrite system: 16.14/6.85 The TRS R consists of the following rules: 16.14/6.85 16.14/6.85 f1_in(T28, T29, T30) -> U1(f259_in(T28, T29, T30), T28, T29, T30) 16.14/6.85 U1(f259_out1, T28, T29, T30) -> f1_out1 16.14/6.85 f1_in(T82, T83, T84) -> U2(f279_in(T82, T84, T83), T82, T83, T84) 16.14/6.85 U2(f279_out1(X67), T82, T83, T84) -> f1_out1 16.14/6.85 f259_in(T49, T50, .(.(T49, .(T50, [])), T51)) -> f259_out1 16.14/6.85 f259_in(T60, T61, .(T62, T63)) -> U3(f259_in(T60, T61, T63), T60, T61, .(T62, T63)) 16.14/6.85 U3(f259_out1, T60, T61, .(T62, T63)) -> f259_out1 16.14/6.85 f280_in(T110, .(.(T110, .(T111, [])), T112)) -> f280_out1(T111) 16.14/6.85 f280_in(T119, .(T120, T121)) -> U4(f280_in(T119, T121), T119, .(T120, T121)) 16.14/6.85 U4(f280_out1(X106), T119, .(T120, T121)) -> f280_out1(X106) 16.14/6.85 f279_in(T82, T84, T83) -> U5(f280_in(T82, T84), T82, T84, T83) 16.14/6.85 U5(f280_out1(T91), T82, T84, T83) -> U6(f1_in(T91, T83, T84), T82, T84, T83, T91) 16.14/6.85 U6(f1_out1, T82, T84, T83, T91) -> f279_out1(T91) 16.14/6.85 16.14/6.85 Q is empty. 16.14/6.85 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (65) DependencyPairsProof (EQUIVALENT) 16.14/6.85 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (66) 16.14/6.85 Obligation: 16.14/6.85 Q DP problem: 16.14/6.85 The TRS P consists of the following rules: 16.14/6.85 16.14/6.85 F1_IN(T28, T29, T30) -> U1^1(f259_in(T28, T29, T30), T28, T29, T30) 16.14/6.85 F1_IN(T28, T29, T30) -> F259_IN(T28, T29, T30) 16.14/6.85 F1_IN(T82, T83, T84) -> U2^1(f279_in(T82, T84, T83), T82, T83, T84) 16.14/6.85 F1_IN(T82, T83, T84) -> F279_IN(T82, T84, T83) 16.14/6.85 F259_IN(T60, T61, .(T62, T63)) -> U3^1(f259_in(T60, T61, T63), T60, T61, .(T62, T63)) 16.14/6.85 F259_IN(T60, T61, .(T62, T63)) -> F259_IN(T60, T61, T63) 16.14/6.85 F280_IN(T119, .(T120, T121)) -> U4^1(f280_in(T119, T121), T119, .(T120, T121)) 16.14/6.85 F280_IN(T119, .(T120, T121)) -> F280_IN(T119, T121) 16.14/6.85 F279_IN(T82, T84, T83) -> U5^1(f280_in(T82, T84), T82, T84, T83) 16.14/6.85 F279_IN(T82, T84, T83) -> F280_IN(T82, T84) 16.14/6.85 U5^1(f280_out1(T91), T82, T84, T83) -> U6^1(f1_in(T91, T83, T84), T82, T84, T83, T91) 16.14/6.85 U5^1(f280_out1(T91), T82, T84, T83) -> F1_IN(T91, T83, T84) 16.14/6.85 16.14/6.85 The TRS R consists of the following rules: 16.14/6.85 16.14/6.85 f1_in(T28, T29, T30) -> U1(f259_in(T28, T29, T30), T28, T29, T30) 16.14/6.85 U1(f259_out1, T28, T29, T30) -> f1_out1 16.14/6.85 f1_in(T82, T83, T84) -> U2(f279_in(T82, T84, T83), T82, T83, T84) 16.14/6.85 U2(f279_out1(X67), T82, T83, T84) -> f1_out1 16.14/6.85 f259_in(T49, T50, .(.(T49, .(T50, [])), T51)) -> f259_out1 16.14/6.85 f259_in(T60, T61, .(T62, T63)) -> U3(f259_in(T60, T61, T63), T60, T61, .(T62, T63)) 16.14/6.85 U3(f259_out1, T60, T61, .(T62, T63)) -> f259_out1 16.14/6.85 f280_in(T110, .(.(T110, .(T111, [])), T112)) -> f280_out1(T111) 16.14/6.85 f280_in(T119, .(T120, T121)) -> U4(f280_in(T119, T121), T119, .(T120, T121)) 16.14/6.85 U4(f280_out1(X106), T119, .(T120, T121)) -> f280_out1(X106) 16.14/6.85 f279_in(T82, T84, T83) -> U5(f280_in(T82, T84), T82, T84, T83) 16.14/6.85 U5(f280_out1(T91), T82, T84, T83) -> U6(f1_in(T91, T83, T84), T82, T84, T83, T91) 16.14/6.85 U6(f1_out1, T82, T84, T83, T91) -> f279_out1(T91) 16.14/6.85 16.14/6.85 Q is empty. 16.14/6.85 We have to consider all minimal (P,Q,R)-chains. 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (67) DependencyGraphProof (EQUIVALENT) 16.14/6.85 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 7 less nodes. 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (68) 16.14/6.85 Complex Obligation (AND) 16.14/6.85 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (69) 16.14/6.85 Obligation: 16.14/6.85 Q DP problem: 16.14/6.85 The TRS P consists of the following rules: 16.14/6.85 16.14/6.85 F280_IN(T119, .(T120, T121)) -> F280_IN(T119, T121) 16.14/6.85 16.14/6.85 The TRS R consists of the following rules: 16.14/6.85 16.14/6.85 f1_in(T28, T29, T30) -> U1(f259_in(T28, T29, T30), T28, T29, T30) 16.14/6.85 U1(f259_out1, T28, T29, T30) -> f1_out1 16.14/6.85 f1_in(T82, T83, T84) -> U2(f279_in(T82, T84, T83), T82, T83, T84) 16.14/6.85 U2(f279_out1(X67), T82, T83, T84) -> f1_out1 16.14/6.85 f259_in(T49, T50, .(.(T49, .(T50, [])), T51)) -> f259_out1 16.14/6.85 f259_in(T60, T61, .(T62, T63)) -> U3(f259_in(T60, T61, T63), T60, T61, .(T62, T63)) 16.14/6.85 U3(f259_out1, T60, T61, .(T62, T63)) -> f259_out1 16.14/6.85 f280_in(T110, .(.(T110, .(T111, [])), T112)) -> f280_out1(T111) 16.14/6.85 f280_in(T119, .(T120, T121)) -> U4(f280_in(T119, T121), T119, .(T120, T121)) 16.14/6.85 U4(f280_out1(X106), T119, .(T120, T121)) -> f280_out1(X106) 16.14/6.85 f279_in(T82, T84, T83) -> U5(f280_in(T82, T84), T82, T84, T83) 16.14/6.85 U5(f280_out1(T91), T82, T84, T83) -> U6(f1_in(T91, T83, T84), T82, T84, T83, T91) 16.14/6.85 U6(f1_out1, T82, T84, T83, T91) -> f279_out1(T91) 16.14/6.85 16.14/6.85 Q is empty. 16.14/6.85 We have to consider all minimal (P,Q,R)-chains. 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (70) UsableRulesProof (EQUIVALENT) 16.14/6.85 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. 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (71) 16.14/6.85 Obligation: 16.14/6.85 Q DP problem: 16.14/6.85 The TRS P consists of the following rules: 16.14/6.85 16.14/6.85 F280_IN(T119, .(T120, T121)) -> F280_IN(T119, T121) 16.14/6.85 16.14/6.85 R is empty. 16.14/6.85 Q is empty. 16.14/6.85 We have to consider all minimal (P,Q,R)-chains. 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (72) QDPSizeChangeProof (EQUIVALENT) 16.14/6.85 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. 16.14/6.85 16.14/6.85 From the DPs we obtained the following set of size-change graphs: 16.14/6.85 *F280_IN(T119, .(T120, T121)) -> F280_IN(T119, T121) 16.14/6.85 The graph contains the following edges 1 >= 1, 2 > 2 16.14/6.85 16.14/6.85 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (73) 16.14/6.85 YES 16.14/6.85 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (74) 16.14/6.85 Obligation: 16.14/6.85 Q DP problem: 16.14/6.85 The TRS P consists of the following rules: 16.14/6.85 16.14/6.85 F259_IN(T60, T61, .(T62, T63)) -> F259_IN(T60, T61, T63) 16.14/6.85 16.14/6.85 The TRS R consists of the following rules: 16.14/6.85 16.14/6.85 f1_in(T28, T29, T30) -> U1(f259_in(T28, T29, T30), T28, T29, T30) 16.14/6.85 U1(f259_out1, T28, T29, T30) -> f1_out1 16.14/6.85 f1_in(T82, T83, T84) -> U2(f279_in(T82, T84, T83), T82, T83, T84) 16.14/6.85 U2(f279_out1(X67), T82, T83, T84) -> f1_out1 16.14/6.85 f259_in(T49, T50, .(.(T49, .(T50, [])), T51)) -> f259_out1 16.14/6.85 f259_in(T60, T61, .(T62, T63)) -> U3(f259_in(T60, T61, T63), T60, T61, .(T62, T63)) 16.14/6.85 U3(f259_out1, T60, T61, .(T62, T63)) -> f259_out1 16.14/6.85 f280_in(T110, .(.(T110, .(T111, [])), T112)) -> f280_out1(T111) 16.14/6.85 f280_in(T119, .(T120, T121)) -> U4(f280_in(T119, T121), T119, .(T120, T121)) 16.14/6.85 U4(f280_out1(X106), T119, .(T120, T121)) -> f280_out1(X106) 16.14/6.85 f279_in(T82, T84, T83) -> U5(f280_in(T82, T84), T82, T84, T83) 16.14/6.85 U5(f280_out1(T91), T82, T84, T83) -> U6(f1_in(T91, T83, T84), T82, T84, T83, T91) 16.14/6.85 U6(f1_out1, T82, T84, T83, T91) -> f279_out1(T91) 16.14/6.85 16.14/6.85 Q is empty. 16.14/6.85 We have to consider all minimal (P,Q,R)-chains. 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (75) UsableRulesProof (EQUIVALENT) 16.14/6.85 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. 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (76) 16.14/6.85 Obligation: 16.14/6.85 Q DP problem: 16.14/6.85 The TRS P consists of the following rules: 16.14/6.85 16.14/6.85 F259_IN(T60, T61, .(T62, T63)) -> F259_IN(T60, T61, T63) 16.14/6.85 16.14/6.85 R is empty. 16.14/6.85 Q is empty. 16.14/6.85 We have to consider all minimal (P,Q,R)-chains. 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (77) QDPSizeChangeProof (EQUIVALENT) 16.14/6.85 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. 16.14/6.85 16.14/6.85 From the DPs we obtained the following set of size-change graphs: 16.14/6.85 *F259_IN(T60, T61, .(T62, T63)) -> F259_IN(T60, T61, T63) 16.14/6.85 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 16.14/6.85 16.14/6.85 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (78) 16.14/6.85 YES 16.14/6.85 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (79) 16.14/6.85 Obligation: 16.14/6.85 Q DP problem: 16.14/6.85 The TRS P consists of the following rules: 16.14/6.85 16.14/6.85 F1_IN(T82, T83, T84) -> F279_IN(T82, T84, T83) 16.14/6.85 F279_IN(T82, T84, T83) -> U5^1(f280_in(T82, T84), T82, T84, T83) 16.14/6.85 U5^1(f280_out1(T91), T82, T84, T83) -> F1_IN(T91, T83, T84) 16.14/6.85 16.14/6.85 The TRS R consists of the following rules: 16.14/6.85 16.14/6.85 f1_in(T28, T29, T30) -> U1(f259_in(T28, T29, T30), T28, T29, T30) 16.14/6.85 U1(f259_out1, T28, T29, T30) -> f1_out1 16.14/6.85 f1_in(T82, T83, T84) -> U2(f279_in(T82, T84, T83), T82, T83, T84) 16.14/6.85 U2(f279_out1(X67), T82, T83, T84) -> f1_out1 16.14/6.85 f259_in(T49, T50, .(.(T49, .(T50, [])), T51)) -> f259_out1 16.14/6.85 f259_in(T60, T61, .(T62, T63)) -> U3(f259_in(T60, T61, T63), T60, T61, .(T62, T63)) 16.14/6.85 U3(f259_out1, T60, T61, .(T62, T63)) -> f259_out1 16.14/6.85 f280_in(T110, .(.(T110, .(T111, [])), T112)) -> f280_out1(T111) 16.14/6.85 f280_in(T119, .(T120, T121)) -> U4(f280_in(T119, T121), T119, .(T120, T121)) 16.14/6.85 U4(f280_out1(X106), T119, .(T120, T121)) -> f280_out1(X106) 16.14/6.85 f279_in(T82, T84, T83) -> U5(f280_in(T82, T84), T82, T84, T83) 16.14/6.85 U5(f280_out1(T91), T82, T84, T83) -> U6(f1_in(T91, T83, T84), T82, T84, T83, T91) 16.14/6.85 U6(f1_out1, T82, T84, T83, T91) -> f279_out1(T91) 16.14/6.85 16.14/6.85 Q is empty. 16.14/6.85 We have to consider all minimal (P,Q,R)-chains. 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (80) NonTerminationLoopProof (COMPLETE) 16.14/6.85 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 16.14/6.85 Found a loop by narrowing to the left: 16.14/6.85 16.14/6.85 s = F279_IN(T82, .(.(T82, .(T111, [])), T112), T83) evaluates to t =F279_IN(T111, .(.(T82, .(T111, [])), T112), T83) 16.14/6.85 16.14/6.85 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 16.14/6.85 * Matcher: [ ] 16.14/6.85 * Semiunifier: [T111 / T82] 16.14/6.85 16.14/6.85 -------------------------------------------------------------------------------- 16.14/6.85 Rewriting sequence 16.14/6.85 16.14/6.85 F279_IN(T82, .(.(T82, .(T82, [])), T112), T83) -> U5^1(f280_in(T82, .(.(T82, .(T82, [])), T112)), T82, .(.(T82, .(T82, [])), T112), T83) 16.14/6.85 with rule F279_IN(T82', T84, T83') -> U5^1(f280_in(T82', T84), T82', T84, T83') at position [] and matcher [T82' / T82, T84 / .(.(T82, .(T82, [])), T112), T83' / T83] 16.14/6.85 16.14/6.85 U5^1(f280_in(T82, .(.(T82, .(T82, [])), T112)), T82, .(.(T82, .(T82, [])), T112), T83) -> U5^1(f280_out1(T82), T82, .(.(T82, .(T82, [])), T112), T83) 16.14/6.85 with rule f280_in(T110, .(.(T110, .(T111, [])), T112')) -> f280_out1(T111) at position [0] and matcher [T110 / T82, T111 / T82, T112' / T112] 16.14/6.85 16.14/6.85 U5^1(f280_out1(T82), T82, .(.(T82, .(T82, [])), T112), T83) -> F1_IN(T82, T83, .(.(T82, .(T82, [])), T112)) 16.14/6.85 with rule U5^1(f280_out1(T91), T82', T84', T83') -> F1_IN(T91, T83', T84') at position [] and matcher [T91 / T82, T82' / T82, T84' / .(.(T82, .(T82, [])), T112), T83' / T83] 16.14/6.85 16.14/6.85 F1_IN(T82, T83, .(.(T82, .(T82, [])), T112)) -> F279_IN(T82, .(.(T82, .(T82, [])), T112), T83) 16.14/6.85 with rule F1_IN(T82, T83, T84) -> F279_IN(T82, T84, T83) 16.14/6.85 16.14/6.85 Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence 16.14/6.85 16.14/6.85 16.14/6.85 All these steps are and every following step will be a correct step w.r.t to Q. 16.14/6.85 16.14/6.85 16.14/6.85 16.14/6.85 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (81) 16.14/6.85 NO 16.14/6.85 16.14/6.85 ---------------------------------------- 16.14/6.85 16.14/6.85 (82) PrologToDTProblemTransformerProof (SOUND) 16.14/6.85 Built DT problem from termination graph DT10. 16.14/6.85 16.14/6.85 { 16.14/6.85 "root": 3, 16.14/6.85 "program": { 16.14/6.85 "directives": [], 16.14/6.85 "clauses": [ 16.14/6.85 [ 16.14/6.85 "(reach X Y Edges)", 16.14/6.85 "(member (. X (. Y ([]))) Edges)" 16.14/6.85 ], 16.14/6.85 [ 16.14/6.85 "(reach X Z Edges)", 16.14/6.85 "(',' (member1 (. X (. Y ([]))) Edges) (reach Y Z Edges))" 16.14/6.85 ], 16.14/6.85 [ 16.14/6.85 "(member H (. H L))", 16.14/6.85 null 16.14/6.85 ], 16.14/6.85 [ 16.14/6.85 "(member X (. H L))", 16.14/6.85 "(member X L)" 16.14/6.85 ], 16.14/6.85 [ 16.14/6.85 "(member1 H (. H L))", 16.14/6.85 null 16.14/6.85 ], 16.14/6.85 [ 16.14/6.85 "(member1 X (. H L))", 16.14/6.85 "(member1 X L)" 16.14/6.85 ] 16.14/6.85 ] 16.14/6.85 }, 16.14/6.85 "graph": { 16.14/6.85 "nodes": { 16.14/6.85 "type": "Nodes", 16.14/6.85 "271": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": -1, 16.14/6.85 "scope": -1, 16.14/6.85 "term": "(',' (member1 (. T96 (. X75 ([]))) T98) (reach X75 T97 T98))" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T96", 16.14/6.85 "T97", 16.14/6.85 "T98" 16.14/6.85 ], 16.14/6.85 "free": ["X75"], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "272": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": -1, 16.14/6.85 "scope": -1, 16.14/6.85 "term": "(member1 (. T96 (. X75 ([]))) T98)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T96", 16.14/6.85 "T98" 16.14/6.85 ], 16.14/6.85 "free": ["X75"], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "273": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": -1, 16.14/6.85 "scope": -1, 16.14/6.85 "term": "(reach T105 T97 T98)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T97", 16.14/6.85 "T98", 16.14/6.85 "T105" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "274": { 16.14/6.85 "goal": [ 16.14/6.85 { 16.14/6.85 "clause": 4, 16.14/6.85 "scope": 4, 16.14/6.85 "term": "(member1 (. T96 (. X75 ([]))) T98)" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "clause": 5, 16.14/6.85 "scope": 4, 16.14/6.85 "term": "(member1 (. T96 (. X75 ([]))) T98)" 16.14/6.85 } 16.14/6.85 ], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T96", 16.14/6.85 "T98" 16.14/6.85 ], 16.14/6.85 "free": ["X75"], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "254": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": 2, 16.14/6.85 "scope": 3, 16.14/6.85 "term": "(member (. T41 (. T42 ([]))) T44)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T41", 16.14/6.85 "T42", 16.14/6.85 "T44" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "233": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": 3, 16.14/6.85 "scope": 2, 16.14/6.85 "term": "(member (. T7 (. T8 ([]))) T9)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T7", 16.14/6.85 "T8", 16.14/6.85 "T9" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "255": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": 3, 16.14/6.85 "scope": 3, 16.14/6.85 "term": "(member (. T41 (. T42 ([]))) T44)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T41", 16.14/6.85 "T42", 16.14/6.85 "T44" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "277": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": 4, 16.14/6.85 "scope": 4, 16.14/6.85 "term": "(member1 (. T96 (. X75 ([]))) T98)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T96", 16.14/6.85 "T98" 16.14/6.85 ], 16.14/6.85 "free": ["X75"], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "234": { 16.14/6.85 "goal": [ 16.14/6.85 { 16.14/6.85 "clause": -1, 16.14/6.85 "scope": 2, 16.14/6.85 "term": null 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "clause": 1, 16.14/6.85 "scope": 1, 16.14/6.85 "term": "(reach T7 T8 T9)" 16.14/6.85 } 16.14/6.85 ], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T7", 16.14/6.85 "T8", 16.14/6.85 "T9" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "256": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": -1, 16.14/6.85 "scope": -1, 16.14/6.85 "term": "(true)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "278": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": 5, 16.14/6.85 "scope": 4, 16.14/6.85 "term": "(member1 (. T96 (. X75 ([]))) T98)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T96", 16.14/6.85 "T98" 16.14/6.85 ], 16.14/6.85 "free": ["X75"], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "257": { 16.14/6.85 "goal": [], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "258": { 16.14/6.85 "goal": [], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "238": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": -1, 16.14/6.85 "scope": -1, 16.14/6.85 "term": "(member (. T41 (. T42 ([]))) T44)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T41", 16.14/6.85 "T42", 16.14/6.85 "T44" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "219": { 16.14/6.85 "goal": [ 16.14/6.85 { 16.14/6.85 "clause": 0, 16.14/6.85 "scope": 1, 16.14/6.85 "term": "(reach T1 T2 T3)" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "clause": 1, 16.14/6.85 "scope": 1, 16.14/6.85 "term": "(reach T1 T2 T3)" 16.14/6.85 } 16.14/6.85 ], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T1", 16.14/6.85 "T2", 16.14/6.85 "T3" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "260": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": -1, 16.14/6.85 "scope": -1, 16.14/6.85 "term": "(member (. T74 (. T75 ([]))) T77)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T74", 16.14/6.85 "T75", 16.14/6.85 "T77" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "261": { 16.14/6.85 "goal": [], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "240": { 16.14/6.85 "goal": [], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "220": { 16.14/6.85 "goal": [ 16.14/6.85 { 16.14/6.85 "clause": -1, 16.14/6.85 "scope": -1, 16.14/6.85 "term": "(member (. T7 (. T8 ([]))) T9)" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "clause": 1, 16.14/6.85 "scope": 1, 16.14/6.85 "term": "(reach T7 T8 T9)" 16.14/6.85 } 16.14/6.85 ], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T7", 16.14/6.85 "T8", 16.14/6.85 "T9" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "221": { 16.14/6.85 "goal": [ 16.14/6.85 { 16.14/6.85 "clause": 2, 16.14/6.85 "scope": 2, 16.14/6.85 "term": "(member (. T7 (. T8 ([]))) T9)" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "clause": 3, 16.14/6.85 "scope": 2, 16.14/6.85 "term": "(member (. T7 (. T8 ([]))) T9)" 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "clause": -1, 16.14/6.85 "scope": 2, 16.14/6.85 "term": null 16.14/6.85 }, 16.14/6.85 { 16.14/6.85 "clause": 1, 16.14/6.85 "scope": 1, 16.14/6.85 "term": "(reach T7 T8 T9)" 16.14/6.85 } 16.14/6.85 ], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T7", 16.14/6.85 "T8", 16.14/6.85 "T9" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "265": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": 1, 16.14/6.85 "scope": 1, 16.14/6.85 "term": "(reach T7 T8 T9)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.85 "relations": [] 16.14/6.85 }, 16.14/6.85 "ground": [ 16.14/6.85 "T7", 16.14/6.85 "T8", 16.14/6.85 "T9" 16.14/6.85 ], 16.14/6.85 "free": [], 16.14/6.85 "exprvars": [] 16.14/6.85 } 16.14/6.85 }, 16.14/6.85 "222": { 16.14/6.85 "goal": [{ 16.14/6.85 "clause": 2, 16.14/6.85 "scope": 2, 16.14/6.85 "term": "(member (. T7 (. T8 ([]))) T9)" 16.14/6.85 }], 16.14/6.85 "kb": { 16.14/6.85 "nonunifying": [], 16.14/6.85 "intvars": {}, 16.14/6.85 "arithmetic": { 16.14/6.85 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T7", 16.14/6.86 "T8", 16.14/6.86 "T9" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "3": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(reach T1 T2 T3)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T1", 16.14/6.86 "T2", 16.14/6.86 "T3" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "223": { 16.14/6.86 "goal": [ 16.14/6.86 { 16.14/6.86 "clause": 3, 16.14/6.86 "scope": 2, 16.14/6.86 "term": "(member (. T7 (. T8 ([]))) T9)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "clause": -1, 16.14/6.86 "scope": 2, 16.14/6.86 "term": null 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "clause": 1, 16.14/6.86 "scope": 1, 16.14/6.86 "term": "(reach T7 T8 T9)" 16.14/6.86 } 16.14/6.86 ], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T7", 16.14/6.86 "T8", 16.14/6.86 "T9" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "300": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(true)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "224": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(true)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "301": { 16.14/6.86 "goal": [], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "302": { 16.14/6.86 "goal": [], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "226": { 16.14/6.86 "goal": [], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "303": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(member1 (. T133 (. X114 ([]))) T135)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T133", 16.14/6.86 "T135" 16.14/6.86 ], 16.14/6.86 "free": ["X114"], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "227": { 16.14/6.86 "goal": [], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "249": { 16.14/6.86 "goal": [ 16.14/6.86 { 16.14/6.86 "clause": 2, 16.14/6.86 "scope": 3, 16.14/6.86 "term": "(member (. T41 (. T42 ([]))) T44)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "clause": 3, 16.14/6.86 "scope": 3, 16.14/6.86 "term": "(member (. T41 (. T42 ([]))) T44)" 16.14/6.86 } 16.14/6.86 ], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T41", 16.14/6.86 "T42", 16.14/6.86 "T44" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "304": { 16.14/6.86 "goal": [], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "edges": [ 16.14/6.86 { 16.14/6.86 "from": 3, 16.14/6.86 "to": 219, 16.14/6.86 "label": "CASE" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 219, 16.14/6.86 "to": 220, 16.14/6.86 "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" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 220, 16.14/6.86 "to": 221, 16.14/6.86 "label": "CASE" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 221, 16.14/6.86 "to": 222, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 221, 16.14/6.86 "to": 223, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 222, 16.14/6.86 "to": 224, 16.14/6.86 "label": "EVAL with clause\nmember(X15, .(X15, X16)).\nand substitutionT7 -> T22,\nT8 -> T23,\nX15 -> .(T22, .(T23, [])),\nX16 -> T24,\nT9 -> .(.(T22, .(T23, [])), T24)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 222, 16.14/6.86 "to": 226, 16.14/6.86 "label": "EVAL-BACKTRACK" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 223, 16.14/6.86 "to": 233, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 223, 16.14/6.86 "to": 234, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 224, 16.14/6.86 "to": 227, 16.14/6.86 "label": "SUCCESS" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 233, 16.14/6.86 "to": 238, 16.14/6.86 "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)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 233, 16.14/6.86 "to": 240, 16.14/6.86 "label": "EVAL-BACKTRACK" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 234, 16.14/6.86 "to": 265, 16.14/6.86 "label": "FAILURE" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 238, 16.14/6.86 "to": 249, 16.14/6.86 "label": "CASE" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 249, 16.14/6.86 "to": 254, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 249, 16.14/6.86 "to": 255, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 254, 16.14/6.86 "to": 256, 16.14/6.86 "label": "EVAL with clause\nmember(X44, .(X44, X45)).\nand substitutionT41 -> T63,\nT42 -> T64,\nX44 -> .(T63, .(T64, [])),\nX45 -> T65,\nT44 -> .(.(T63, .(T64, [])), T65)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 254, 16.14/6.86 "to": 257, 16.14/6.86 "label": "EVAL-BACKTRACK" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 255, 16.14/6.86 "to": 260, 16.14/6.86 "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)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 255, 16.14/6.86 "to": 261, 16.14/6.86 "label": "EVAL-BACKTRACK" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 256, 16.14/6.86 "to": 258, 16.14/6.86 "label": "SUCCESS" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 260, 16.14/6.86 "to": 238, 16.14/6.86 "label": "INSTANCE with matching:\nT41 -> T74\nT42 -> T75\nT44 -> T77" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 265, 16.14/6.86 "to": 271, 16.14/6.86 "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" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 271, 16.14/6.86 "to": 272, 16.14/6.86 "label": "SPLIT 1" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 271, 16.14/6.86 "to": 273, 16.14/6.86 "label": "SPLIT 2\nnew knowledge:\nT96 is ground\nT105 is ground\nT98 is ground\nreplacements:X75 -> T105" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 272, 16.14/6.86 "to": 274, 16.14/6.86 "label": "CASE" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 273, 16.14/6.86 "to": 3, 16.14/6.86 "label": "INSTANCE with matching:\nT1 -> T105\nT2 -> T97\nT3 -> T98" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 274, 16.14/6.86 "to": 277, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 274, 16.14/6.86 "to": 278, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 277, 16.14/6.86 "to": 300, 16.14/6.86 "label": "EVAL with clause\nmember1(X100, .(X100, X101)).\nand substitutionT96 -> T124,\nX75 -> T125,\nX100 -> .(T124, .(T125, [])),\nX102 -> T125,\nX101 -> T126,\nT98 -> .(.(T124, .(T125, [])), T126)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 277, 16.14/6.86 "to": 301, 16.14/6.86 "label": "EVAL-BACKTRACK" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 278, 16.14/6.86 "to": 303, 16.14/6.86 "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)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 278, 16.14/6.86 "to": 304, 16.14/6.86 "label": "EVAL-BACKTRACK" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 300, 16.14/6.86 "to": 302, 16.14/6.86 "label": "SUCCESS" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 303, 16.14/6.86 "to": 272, 16.14/6.86 "label": "INSTANCE with matching:\nT96 -> T133\nX75 -> X114\nT98 -> T135" 16.14/6.86 } 16.14/6.86 ], 16.14/6.86 "type": "Graph" 16.14/6.86 } 16.14/6.86 } 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (83) 16.14/6.86 Obligation: 16.14/6.86 Triples: 16.14/6.86 16.14/6.86 memberA(X1, X2, .(X3, X4)) :- memberA(X1, X2, X4). 16.14/6.86 member1C(X1, X2, .(X3, X4)) :- member1C(X1, X2, X4). 16.14/6.86 reachB(X1, X2, .(X3, X4)) :- memberA(X1, X2, X4). 16.14/6.86 reachB(X1, X2, X3) :- member1C(X1, X4, X3). 16.14/6.86 reachB(X1, X2, X3) :- ','(member1cC(X1, X4, X3), reachB(X4, X2, X3)). 16.14/6.86 16.14/6.86 Clauses: 16.14/6.86 16.14/6.86 membercA(X1, X2, .(.(X1, .(X2, [])), X3)). 16.14/6.86 membercA(X1, X2, .(X3, X4)) :- membercA(X1, X2, X4). 16.14/6.86 reachcB(X1, X2, .(.(X1, .(X2, [])), X3)). 16.14/6.86 reachcB(X1, X2, .(X3, X4)) :- membercA(X1, X2, X4). 16.14/6.86 reachcB(X1, X2, X3) :- ','(member1cC(X1, X4, X3), reachcB(X4, X2, X3)). 16.14/6.86 member1cC(X1, X2, .(.(X1, .(X2, [])), X3)). 16.14/6.86 member1cC(X1, X2, .(X3, X4)) :- member1cC(X1, X2, X4). 16.14/6.86 16.14/6.86 Afs: 16.14/6.86 16.14/6.86 reachB(x1, x2, x3) = reachB(x1, x2, x3) 16.14/6.86 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (84) TriplesToPiDPProof (SOUND) 16.14/6.86 We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: 16.14/6.86 16.14/6.86 reachB_in_3: (b,b,b) 16.14/6.86 16.14/6.86 memberA_in_3: (b,b,b) 16.14/6.86 16.14/6.86 member1C_in_3: (b,f,b) 16.14/6.86 16.14/6.86 member1cC_in_3: (b,f,b) 16.14/6.86 16.14/6.86 Transforming TRIPLES into the following Term Rewriting System: 16.14/6.86 16.14/6.86 Pi DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 REACHB_IN_GGG(X1, X2, .(X3, X4)) -> U3_GGG(X1, X2, X3, X4, memberA_in_ggg(X1, X2, X4)) 16.14/6.86 REACHB_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4) 16.14/6.86 MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> U1_GGG(X1, X2, X3, X4, memberA_in_ggg(X1, X2, X4)) 16.14/6.86 MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4) 16.14/6.86 REACHB_IN_GGG(X1, X2, X3) -> U4_GGG(X1, X2, X3, member1C_in_gag(X1, X4, X3)) 16.14/6.86 REACHB_IN_GGG(X1, X2, X3) -> MEMBER1C_IN_GAG(X1, X4, X3) 16.14/6.86 MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> U2_GAG(X1, X2, X3, X4, member1C_in_gag(X1, X2, X4)) 16.14/6.86 MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X2, X4) 16.14/6.86 REACHB_IN_GGG(X1, X2, X3) -> U5_GGG(X1, X2, X3, member1cC_in_gag(X1, X4, X3)) 16.14/6.86 U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> U6_GGG(X1, X2, X3, reachB_in_ggg(X4, X2, X3)) 16.14/6.86 U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> REACHB_IN_GGG(X4, X2, X3) 16.14/6.86 16.14/6.86 The TRS R consists of the following rules: 16.14/6.86 16.14/6.86 member1cC_in_gag(X1, X2, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3)) 16.14/6.86 member1cC_in_gag(X1, X2, .(X3, X4)) -> U12_gag(X1, X2, X3, X4, member1cC_in_gag(X1, X2, X4)) 16.14/6.86 U12_gag(X1, X2, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4)) 16.14/6.86 16.14/6.86 The argument filtering Pi contains the following mapping: 16.14/6.86 reachB_in_ggg(x1, x2, x3) = reachB_in_ggg(x1, x2, x3) 16.14/6.86 16.14/6.86 .(x1, x2) = .(x1, x2) 16.14/6.86 16.14/6.86 memberA_in_ggg(x1, x2, x3) = memberA_in_ggg(x1, x2, x3) 16.14/6.86 16.14/6.86 member1C_in_gag(x1, x2, x3) = member1C_in_gag(x1, x3) 16.14/6.86 16.14/6.86 member1cC_in_gag(x1, x2, x3) = member1cC_in_gag(x1, x3) 16.14/6.86 16.14/6.86 [] = [] 16.14/6.86 16.14/6.86 member1cC_out_gag(x1, x2, x3) = member1cC_out_gag(x1, x2, x3) 16.14/6.86 16.14/6.86 U12_gag(x1, x2, x3, x4, x5) = U12_gag(x1, x3, x4, x5) 16.14/6.86 16.14/6.86 REACHB_IN_GGG(x1, x2, x3) = REACHB_IN_GGG(x1, x2, x3) 16.14/6.86 16.14/6.86 U3_GGG(x1, x2, x3, x4, x5) = U3_GGG(x1, x2, x3, x4, x5) 16.14/6.86 16.14/6.86 MEMBERA_IN_GGG(x1, x2, x3) = MEMBERA_IN_GGG(x1, x2, x3) 16.14/6.86 16.14/6.86 U1_GGG(x1, x2, x3, x4, x5) = U1_GGG(x1, x2, x3, x4, x5) 16.14/6.86 16.14/6.86 U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x2, x3, x4) 16.14/6.86 16.14/6.86 MEMBER1C_IN_GAG(x1, x2, x3) = MEMBER1C_IN_GAG(x1, x3) 16.14/6.86 16.14/6.86 U2_GAG(x1, x2, x3, x4, x5) = U2_GAG(x1, x3, x4, x5) 16.14/6.86 16.14/6.86 U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x2, x3, x4) 16.14/6.86 16.14/6.86 U6_GGG(x1, x2, x3, x4) = U6_GGG(x1, x2, x3, x4) 16.14/6.86 16.14/6.86 16.14/6.86 We have to consider all (P,R,Pi)-chains 16.14/6.86 16.14/6.86 16.14/6.86 Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES 16.14/6.86 16.14/6.86 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (85) 16.14/6.86 Obligation: 16.14/6.86 Pi DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 REACHB_IN_GGG(X1, X2, .(X3, X4)) -> U3_GGG(X1, X2, X3, X4, memberA_in_ggg(X1, X2, X4)) 16.14/6.86 REACHB_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4) 16.14/6.86 MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> U1_GGG(X1, X2, X3, X4, memberA_in_ggg(X1, X2, X4)) 16.14/6.86 MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4) 16.14/6.86 REACHB_IN_GGG(X1, X2, X3) -> U4_GGG(X1, X2, X3, member1C_in_gag(X1, X4, X3)) 16.14/6.86 REACHB_IN_GGG(X1, X2, X3) -> MEMBER1C_IN_GAG(X1, X4, X3) 16.14/6.86 MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> U2_GAG(X1, X2, X3, X4, member1C_in_gag(X1, X2, X4)) 16.14/6.86 MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X2, X4) 16.14/6.86 REACHB_IN_GGG(X1, X2, X3) -> U5_GGG(X1, X2, X3, member1cC_in_gag(X1, X4, X3)) 16.14/6.86 U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> U6_GGG(X1, X2, X3, reachB_in_ggg(X4, X2, X3)) 16.14/6.86 U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> REACHB_IN_GGG(X4, X2, X3) 16.14/6.86 16.14/6.86 The TRS R consists of the following rules: 16.14/6.86 16.14/6.86 member1cC_in_gag(X1, X2, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3)) 16.14/6.86 member1cC_in_gag(X1, X2, .(X3, X4)) -> U12_gag(X1, X2, X3, X4, member1cC_in_gag(X1, X2, X4)) 16.14/6.86 U12_gag(X1, X2, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4)) 16.14/6.86 16.14/6.86 The argument filtering Pi contains the following mapping: 16.14/6.86 reachB_in_ggg(x1, x2, x3) = reachB_in_ggg(x1, x2, x3) 16.14/6.86 16.14/6.86 .(x1, x2) = .(x1, x2) 16.14/6.86 16.14/6.86 memberA_in_ggg(x1, x2, x3) = memberA_in_ggg(x1, x2, x3) 16.14/6.86 16.14/6.86 member1C_in_gag(x1, x2, x3) = member1C_in_gag(x1, x3) 16.14/6.86 16.14/6.86 member1cC_in_gag(x1, x2, x3) = member1cC_in_gag(x1, x3) 16.14/6.86 16.14/6.86 [] = [] 16.14/6.86 16.14/6.86 member1cC_out_gag(x1, x2, x3) = member1cC_out_gag(x1, x2, x3) 16.14/6.86 16.14/6.86 U12_gag(x1, x2, x3, x4, x5) = U12_gag(x1, x3, x4, x5) 16.14/6.86 16.14/6.86 REACHB_IN_GGG(x1, x2, x3) = REACHB_IN_GGG(x1, x2, x3) 16.14/6.86 16.14/6.86 U3_GGG(x1, x2, x3, x4, x5) = U3_GGG(x1, x2, x3, x4, x5) 16.14/6.86 16.14/6.86 MEMBERA_IN_GGG(x1, x2, x3) = MEMBERA_IN_GGG(x1, x2, x3) 16.14/6.86 16.14/6.86 U1_GGG(x1, x2, x3, x4, x5) = U1_GGG(x1, x2, x3, x4, x5) 16.14/6.86 16.14/6.86 U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x2, x3, x4) 16.14/6.86 16.14/6.86 MEMBER1C_IN_GAG(x1, x2, x3) = MEMBER1C_IN_GAG(x1, x3) 16.14/6.86 16.14/6.86 U2_GAG(x1, x2, x3, x4, x5) = U2_GAG(x1, x3, x4, x5) 16.14/6.86 16.14/6.86 U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x2, x3, x4) 16.14/6.86 16.14/6.86 U6_GGG(x1, x2, x3, x4) = U6_GGG(x1, x2, x3, x4) 16.14/6.86 16.14/6.86 16.14/6.86 We have to consider all (P,R,Pi)-chains 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (86) DependencyGraphProof (EQUIVALENT) 16.14/6.86 The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 7 less nodes. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (87) 16.14/6.86 Complex Obligation (AND) 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (88) 16.14/6.86 Obligation: 16.14/6.86 Pi DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X2, X4) 16.14/6.86 16.14/6.86 The TRS R consists of the following rules: 16.14/6.86 16.14/6.86 member1cC_in_gag(X1, X2, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3)) 16.14/6.86 member1cC_in_gag(X1, X2, .(X3, X4)) -> U12_gag(X1, X2, X3, X4, member1cC_in_gag(X1, X2, X4)) 16.14/6.86 U12_gag(X1, X2, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4)) 16.14/6.86 16.14/6.86 The argument filtering Pi contains the following mapping: 16.14/6.86 .(x1, x2) = .(x1, x2) 16.14/6.86 16.14/6.86 member1cC_in_gag(x1, x2, x3) = member1cC_in_gag(x1, x3) 16.14/6.86 16.14/6.86 [] = [] 16.14/6.86 16.14/6.86 member1cC_out_gag(x1, x2, x3) = member1cC_out_gag(x1, x2, x3) 16.14/6.86 16.14/6.86 U12_gag(x1, x2, x3, x4, x5) = U12_gag(x1, x3, x4, x5) 16.14/6.86 16.14/6.86 MEMBER1C_IN_GAG(x1, x2, x3) = MEMBER1C_IN_GAG(x1, x3) 16.14/6.86 16.14/6.86 16.14/6.86 We have to consider all (P,R,Pi)-chains 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (89) UsableRulesProof (EQUIVALENT) 16.14/6.86 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (90) 16.14/6.86 Obligation: 16.14/6.86 Pi DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 MEMBER1C_IN_GAG(X1, X2, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X2, X4) 16.14/6.86 16.14/6.86 R is empty. 16.14/6.86 The argument filtering Pi contains the following mapping: 16.14/6.86 .(x1, x2) = .(x1, x2) 16.14/6.86 16.14/6.86 MEMBER1C_IN_GAG(x1, x2, x3) = MEMBER1C_IN_GAG(x1, x3) 16.14/6.86 16.14/6.86 16.14/6.86 We have to consider all (P,R,Pi)-chains 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (91) PiDPToQDPProof (SOUND) 16.14/6.86 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (92) 16.14/6.86 Obligation: 16.14/6.86 Q DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 MEMBER1C_IN_GAG(X1, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X4) 16.14/6.86 16.14/6.86 R is empty. 16.14/6.86 Q is empty. 16.14/6.86 We have to consider all (P,Q,R)-chains. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (93) QDPSizeChangeProof (EQUIVALENT) 16.14/6.86 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. 16.14/6.86 16.14/6.86 From the DPs we obtained the following set of size-change graphs: 16.14/6.86 *MEMBER1C_IN_GAG(X1, .(X3, X4)) -> MEMBER1C_IN_GAG(X1, X4) 16.14/6.86 The graph contains the following edges 1 >= 1, 2 > 2 16.14/6.86 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (94) 16.14/6.86 YES 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (95) 16.14/6.86 Obligation: 16.14/6.86 Pi DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4) 16.14/6.86 16.14/6.86 The TRS R consists of the following rules: 16.14/6.86 16.14/6.86 member1cC_in_gag(X1, X2, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3)) 16.14/6.86 member1cC_in_gag(X1, X2, .(X3, X4)) -> U12_gag(X1, X2, X3, X4, member1cC_in_gag(X1, X2, X4)) 16.14/6.86 U12_gag(X1, X2, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4)) 16.14/6.86 16.14/6.86 The argument filtering Pi contains the following mapping: 16.14/6.86 .(x1, x2) = .(x1, x2) 16.14/6.86 16.14/6.86 member1cC_in_gag(x1, x2, x3) = member1cC_in_gag(x1, x3) 16.14/6.86 16.14/6.86 [] = [] 16.14/6.86 16.14/6.86 member1cC_out_gag(x1, x2, x3) = member1cC_out_gag(x1, x2, x3) 16.14/6.86 16.14/6.86 U12_gag(x1, x2, x3, x4, x5) = U12_gag(x1, x3, x4, x5) 16.14/6.86 16.14/6.86 MEMBERA_IN_GGG(x1, x2, x3) = MEMBERA_IN_GGG(x1, x2, x3) 16.14/6.86 16.14/6.86 16.14/6.86 We have to consider all (P,R,Pi)-chains 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (96) UsableRulesProof (EQUIVALENT) 16.14/6.86 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (97) 16.14/6.86 Obligation: 16.14/6.86 Pi DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4) 16.14/6.86 16.14/6.86 R is empty. 16.14/6.86 Pi is empty. 16.14/6.86 We have to consider all (P,R,Pi)-chains 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (98) PiDPToQDPProof (EQUIVALENT) 16.14/6.86 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (99) 16.14/6.86 Obligation: 16.14/6.86 Q DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4) 16.14/6.86 16.14/6.86 R is empty. 16.14/6.86 Q is empty. 16.14/6.86 We have to consider all (P,Q,R)-chains. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (100) QDPSizeChangeProof (EQUIVALENT) 16.14/6.86 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. 16.14/6.86 16.14/6.86 From the DPs we obtained the following set of size-change graphs: 16.14/6.86 *MEMBERA_IN_GGG(X1, X2, .(X3, X4)) -> MEMBERA_IN_GGG(X1, X2, X4) 16.14/6.86 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 16.14/6.86 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (101) 16.14/6.86 YES 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (102) 16.14/6.86 Obligation: 16.14/6.86 Pi DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 REACHB_IN_GGG(X1, X2, X3) -> U5_GGG(X1, X2, X3, member1cC_in_gag(X1, X4, X3)) 16.14/6.86 U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> REACHB_IN_GGG(X4, X2, X3) 16.14/6.86 16.14/6.86 The TRS R consists of the following rules: 16.14/6.86 16.14/6.86 member1cC_in_gag(X1, X2, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3)) 16.14/6.86 member1cC_in_gag(X1, X2, .(X3, X4)) -> U12_gag(X1, X2, X3, X4, member1cC_in_gag(X1, X2, X4)) 16.14/6.86 U12_gag(X1, X2, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4)) 16.14/6.86 16.14/6.86 The argument filtering Pi contains the following mapping: 16.14/6.86 .(x1, x2) = .(x1, x2) 16.14/6.86 16.14/6.86 member1cC_in_gag(x1, x2, x3) = member1cC_in_gag(x1, x3) 16.14/6.86 16.14/6.86 [] = [] 16.14/6.86 16.14/6.86 member1cC_out_gag(x1, x2, x3) = member1cC_out_gag(x1, x2, x3) 16.14/6.86 16.14/6.86 U12_gag(x1, x2, x3, x4, x5) = U12_gag(x1, x3, x4, x5) 16.14/6.86 16.14/6.86 REACHB_IN_GGG(x1, x2, x3) = REACHB_IN_GGG(x1, x2, x3) 16.14/6.86 16.14/6.86 U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x2, x3, x4) 16.14/6.86 16.14/6.86 16.14/6.86 We have to consider all (P,R,Pi)-chains 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (103) PiDPToQDPProof (SOUND) 16.14/6.86 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (104) 16.14/6.86 Obligation: 16.14/6.86 Q DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 REACHB_IN_GGG(X1, X2, X3) -> U5_GGG(X1, X2, X3, member1cC_in_gag(X1, X3)) 16.14/6.86 U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> REACHB_IN_GGG(X4, X2, X3) 16.14/6.86 16.14/6.86 The TRS R consists of the following rules: 16.14/6.86 16.14/6.86 member1cC_in_gag(X1, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3)) 16.14/6.86 member1cC_in_gag(X1, .(X3, X4)) -> U12_gag(X1, X3, X4, member1cC_in_gag(X1, X4)) 16.14/6.86 U12_gag(X1, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4)) 16.14/6.86 16.14/6.86 The set Q consists of the following terms: 16.14/6.86 16.14/6.86 member1cC_in_gag(x0, x1) 16.14/6.86 U12_gag(x0, x1, x2, x3) 16.14/6.86 16.14/6.86 We have to consider all (P,Q,R)-chains. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (105) TransformationProof (SOUND) 16.14/6.86 By narrowing [LPAR04] the rule REACHB_IN_GGG(X1, X2, X3) -> U5_GGG(X1, X2, X3, member1cC_in_gag(X1, X3)) at position [3] we obtained the following new rules [LPAR04]: 16.14/6.86 16.14/6.86 (REACHB_IN_GGG(x0, y1, .(.(x0, .(x1, [])), x2)) -> U5_GGG(x0, y1, .(.(x0, .(x1, [])), x2), member1cC_out_gag(x0, x1, .(.(x0, .(x1, [])), x2))),REACHB_IN_GGG(x0, y1, .(.(x0, .(x1, [])), x2)) -> U5_GGG(x0, y1, .(.(x0, .(x1, [])), x2), member1cC_out_gag(x0, x1, .(.(x0, .(x1, [])), x2)))) 16.14/6.86 (REACHB_IN_GGG(x0, y1, .(x1, x2)) -> U5_GGG(x0, y1, .(x1, x2), U12_gag(x0, x1, x2, member1cC_in_gag(x0, x2))),REACHB_IN_GGG(x0, y1, .(x1, x2)) -> U5_GGG(x0, y1, .(x1, x2), U12_gag(x0, x1, x2, member1cC_in_gag(x0, x2)))) 16.14/6.86 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (106) 16.14/6.86 Obligation: 16.14/6.86 Q DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 U5_GGG(X1, X2, X3, member1cC_out_gag(X1, X4, X3)) -> REACHB_IN_GGG(X4, X2, X3) 16.14/6.86 REACHB_IN_GGG(x0, y1, .(.(x0, .(x1, [])), x2)) -> U5_GGG(x0, y1, .(.(x0, .(x1, [])), x2), member1cC_out_gag(x0, x1, .(.(x0, .(x1, [])), x2))) 16.14/6.86 REACHB_IN_GGG(x0, y1, .(x1, x2)) -> U5_GGG(x0, y1, .(x1, x2), U12_gag(x0, x1, x2, member1cC_in_gag(x0, x2))) 16.14/6.86 16.14/6.86 The TRS R consists of the following rules: 16.14/6.86 16.14/6.86 member1cC_in_gag(X1, .(.(X1, .(X2, [])), X3)) -> member1cC_out_gag(X1, X2, .(.(X1, .(X2, [])), X3)) 16.14/6.86 member1cC_in_gag(X1, .(X3, X4)) -> U12_gag(X1, X3, X4, member1cC_in_gag(X1, X4)) 16.14/6.86 U12_gag(X1, X3, X4, member1cC_out_gag(X1, X2, X4)) -> member1cC_out_gag(X1, X2, .(X3, X4)) 16.14/6.86 16.14/6.86 The set Q consists of the following terms: 16.14/6.86 16.14/6.86 member1cC_in_gag(x0, x1) 16.14/6.86 U12_gag(x0, x1, x2, x3) 16.14/6.86 16.14/6.86 We have to consider all (P,Q,R)-chains. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (107) PrologToIRSwTTransformerProof (SOUND) 16.14/6.86 Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert 16.14/6.86 16.14/6.86 { 16.14/6.86 "root": 2, 16.14/6.86 "program": { 16.14/6.86 "directives": [], 16.14/6.86 "clauses": [ 16.14/6.86 [ 16.14/6.86 "(reach X Y Edges)", 16.14/6.86 "(member (. X (. Y ([]))) Edges)" 16.14/6.86 ], 16.14/6.86 [ 16.14/6.86 "(reach X Z Edges)", 16.14/6.86 "(',' (member1 (. X (. Y ([]))) Edges) (reach Y Z Edges))" 16.14/6.86 ], 16.14/6.86 [ 16.14/6.86 "(member H (. H L))", 16.14/6.86 null 16.14/6.86 ], 16.14/6.86 [ 16.14/6.86 "(member X (. H L))", 16.14/6.86 "(member X L)" 16.14/6.86 ], 16.14/6.86 [ 16.14/6.86 "(member1 H (. H L))", 16.14/6.86 null 16.14/6.86 ], 16.14/6.86 [ 16.14/6.86 "(member1 X (. H L))", 16.14/6.86 "(member1 X L)" 16.14/6.86 ] 16.14/6.86 ] 16.14/6.86 }, 16.14/6.86 "graph": { 16.14/6.86 "nodes": { 16.14/6.86 "type": "Nodes", 16.14/6.86 "275": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(member1 (. T119 (. X106 ([]))) T121)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T119", 16.14/6.86 "T121" 16.14/6.86 ], 16.14/6.86 "free": ["X106"], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "111": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(member1 (. T82 (. X67 ([]))) T84)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T82", 16.14/6.86 "T84" 16.14/6.86 ], 16.14/6.86 "free": ["X67"], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "276": { 16.14/6.86 "goal": [], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "113": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(reach T91 T83 T84)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T83", 16.14/6.86 "T84", 16.14/6.86 "T91" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "212": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": 4, 16.14/6.86 "scope": 3, 16.14/6.86 "term": "(member1 (. T82 (. X67 ([]))) T84)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T82", 16.14/6.86 "T84" 16.14/6.86 ], 16.14/6.86 "free": ["X67"], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "214": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": 5, 16.14/6.86 "scope": 3, 16.14/6.86 "term": "(member1 (. T82 (. X67 ([]))) T84)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T82", 16.14/6.86 "T84" 16.14/6.86 ], 16.14/6.86 "free": ["X67"], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "216": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(true)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "217": { 16.14/6.86 "goal": [], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "218": { 16.14/6.86 "goal": [], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "51": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(',' (member1 (. T82 (. X67 ([]))) T84) (reach X67 T83 T84))" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T82", 16.14/6.86 "T83", 16.14/6.86 "T84" 16.14/6.86 ], 16.14/6.86 "free": ["X67"], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "34": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(member (. T28 (. T29 ([]))) T30)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T28", 16.14/6.86 "T29", 16.14/6.86 "T30" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "35": { 16.14/6.86 "goal": [ 16.14/6.86 { 16.14/6.86 "clause": 2, 16.14/6.86 "scope": 2, 16.14/6.86 "term": "(member (. T28 (. T29 ([]))) T30)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "clause": 3, 16.14/6.86 "scope": 2, 16.14/6.86 "term": "(member (. T28 (. T29 ([]))) T30)" 16.14/6.86 } 16.14/6.86 ], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T28", 16.14/6.86 "T29", 16.14/6.86 "T30" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "36": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": 2, 16.14/6.86 "scope": 2, 16.14/6.86 "term": "(member (. T28 (. T29 ([]))) T30)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T28", 16.14/6.86 "T29", 16.14/6.86 "T30" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "37": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": 3, 16.14/6.86 "scope": 2, 16.14/6.86 "term": "(member (. T28 (. T29 ([]))) T30)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T28", 16.14/6.86 "T29", 16.14/6.86 "T30" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "38": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(true)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "17": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": 0, 16.14/6.86 "scope": 1, 16.14/6.86 "term": "(reach T1 T2 T3)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T1", 16.14/6.86 "T2", 16.14/6.86 "T3" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "39": { 16.14/6.86 "goal": [], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "18": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": 1, 16.14/6.86 "scope": 1, 16.14/6.86 "term": "(reach T1 T2 T3)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T1", 16.14/6.86 "T2", 16.14/6.86 "T3" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "2": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(reach T1 T2 T3)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T1", 16.14/6.86 "T2", 16.14/6.86 "T3" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "4": { 16.14/6.86 "goal": [ 16.14/6.86 { 16.14/6.86 "clause": 0, 16.14/6.86 "scope": 1, 16.14/6.86 "term": "(reach T1 T2 T3)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "clause": 1, 16.14/6.86 "scope": 1, 16.14/6.86 "term": "(reach T1 T2 T3)" 16.14/6.86 } 16.14/6.86 ], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T1", 16.14/6.86 "T2", 16.14/6.86 "T3" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "208": { 16.14/6.86 "goal": [ 16.14/6.86 { 16.14/6.86 "clause": 4, 16.14/6.86 "scope": 3, 16.14/6.86 "term": "(member1 (. T82 (. X67 ([]))) T84)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "clause": 5, 16.14/6.86 "scope": 3, 16.14/6.86 "term": "(member1 (. T82 (. X67 ([]))) T84)" 16.14/6.86 } 16.14/6.86 ], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T82", 16.14/6.86 "T84" 16.14/6.86 ], 16.14/6.86 "free": ["X67"], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "40": { 16.14/6.86 "goal": [], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "41": { 16.14/6.86 "goal": [{ 16.14/6.86 "clause": -1, 16.14/6.86 "scope": -1, 16.14/6.86 "term": "(member (. T60 (. T61 ([]))) T63)" 16.14/6.86 }], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [ 16.14/6.86 "T60", 16.14/6.86 "T61", 16.14/6.86 "T63" 16.14/6.86 ], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "42": { 16.14/6.86 "goal": [], 16.14/6.86 "kb": { 16.14/6.86 "nonunifying": [], 16.14/6.86 "intvars": {}, 16.14/6.86 "arithmetic": { 16.14/6.86 "type": "PlainIntegerRelationState", 16.14/6.86 "relations": [] 16.14/6.86 }, 16.14/6.86 "ground": [], 16.14/6.86 "free": [], 16.14/6.86 "exprvars": [] 16.14/6.86 } 16.14/6.86 } 16.14/6.86 }, 16.14/6.86 "edges": [ 16.14/6.86 { 16.14/6.86 "from": 2, 16.14/6.86 "to": 4, 16.14/6.86 "label": "CASE" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 4, 16.14/6.86 "to": 17, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 4, 16.14/6.86 "to": 18, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 17, 16.14/6.86 "to": 34, 16.14/6.86 "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" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 18, 16.14/6.86 "to": 51, 16.14/6.86 "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" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 34, 16.14/6.86 "to": 35, 16.14/6.86 "label": "CASE" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 35, 16.14/6.86 "to": 36, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 35, 16.14/6.86 "to": 37, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 36, 16.14/6.86 "to": 38, 16.14/6.86 "label": "EVAL with clause\nmember(X36, .(X36, X37)).\nand substitutionT28 -> T49,\nT29 -> T50,\nX36 -> .(T49, .(T50, [])),\nX37 -> T51,\nT30 -> .(.(T49, .(T50, [])), T51)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 36, 16.14/6.86 "to": 39, 16.14/6.86 "label": "EVAL-BACKTRACK" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 37, 16.14/6.86 "to": 41, 16.14/6.86 "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)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 37, 16.14/6.86 "to": 42, 16.14/6.86 "label": "EVAL-BACKTRACK" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 38, 16.14/6.86 "to": 40, 16.14/6.86 "label": "SUCCESS" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 41, 16.14/6.86 "to": 34, 16.14/6.86 "label": "INSTANCE with matching:\nT28 -> T60\nT29 -> T61\nT30 -> T63" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 51, 16.14/6.86 "to": 111, 16.14/6.86 "label": "SPLIT 1" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 51, 16.14/6.86 "to": 113, 16.14/6.86 "label": "SPLIT 2\nnew knowledge:\nT82 is ground\nT91 is ground\nT84 is ground\nreplacements:X67 -> T91" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 111, 16.14/6.86 "to": 208, 16.14/6.86 "label": "CASE" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 113, 16.14/6.86 "to": 2, 16.14/6.86 "label": "INSTANCE with matching:\nT1 -> T91\nT2 -> T83\nT3 -> T84" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 208, 16.14/6.86 "to": 212, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 208, 16.14/6.86 "to": 214, 16.14/6.86 "label": "PARALLEL" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 212, 16.14/6.86 "to": 216, 16.14/6.86 "label": "EVAL with clause\nmember1(X92, .(X92, X93)).\nand substitutionT82 -> T110,\nX67 -> T111,\nX92 -> .(T110, .(T111, [])),\nX94 -> T111,\nX93 -> T112,\nT84 -> .(.(T110, .(T111, [])), T112)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 212, 16.14/6.86 "to": 217, 16.14/6.86 "label": "EVAL-BACKTRACK" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 214, 16.14/6.86 "to": 275, 16.14/6.86 "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)" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 214, 16.14/6.86 "to": 276, 16.14/6.86 "label": "EVAL-BACKTRACK" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 216, 16.14/6.86 "to": 218, 16.14/6.86 "label": "SUCCESS" 16.14/6.86 }, 16.14/6.86 { 16.14/6.86 "from": 275, 16.14/6.86 "to": 111, 16.14/6.86 "label": "INSTANCE with matching:\nT82 -> T119\nX67 -> X106\nT84 -> T121" 16.14/6.86 } 16.14/6.86 ], 16.14/6.86 "type": "Graph" 16.14/6.86 } 16.14/6.86 } 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (108) 16.14/6.86 Complex Obligation (AND) 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (109) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f111_in(T82, T84) -> f208_in(T82, T84) :|: TRUE 16.14/6.86 f208_out(x, x1) -> f111_out(x, x1) :|: TRUE 16.14/6.86 f214_in(T119, .(T120, T121)) -> f275_in(T119, T121) :|: TRUE 16.14/6.86 f276_out -> f214_out(x2, x3) :|: TRUE 16.14/6.86 f214_in(x4, x5) -> f276_in :|: TRUE 16.14/6.86 f275_out(x6, x7) -> f214_out(x6, .(x8, x7)) :|: TRUE 16.14/6.86 f208_in(x9, x10) -> f214_in(x9, x10) :|: TRUE 16.14/6.86 f208_in(x11, x12) -> f212_in(x11, x12) :|: TRUE 16.14/6.86 f214_out(x13, x14) -> f208_out(x13, x14) :|: TRUE 16.14/6.86 f212_out(x15, x16) -> f208_out(x15, x16) :|: TRUE 16.14/6.86 f111_out(x17, x18) -> f275_out(x17, x18) :|: TRUE 16.14/6.86 f275_in(x19, x20) -> f111_in(x19, x20) :|: TRUE 16.14/6.86 f2_in(T1, T2, T3) -> f4_in(T1, T2, T3) :|: TRUE 16.14/6.86 f4_out(x21, x22, x23) -> f2_out(x21, x22, x23) :|: TRUE 16.14/6.86 f18_out(x24, x25, x26) -> f4_out(x24, x25, x26) :|: TRUE 16.14/6.86 f4_in(x27, x28, x29) -> f17_in(x27, x28, x29) :|: TRUE 16.14/6.86 f17_out(x30, x31, x32) -> f4_out(x30, x31, x32) :|: TRUE 16.14/6.86 f4_in(x33, x34, x35) -> f18_in(x33, x34, x35) :|: TRUE 16.14/6.86 f18_in(x36, x37, x38) -> f51_in(x36, x38, x37) :|: TRUE 16.14/6.86 f51_out(x39, x40, x41) -> f18_out(x39, x41, x40) :|: TRUE 16.14/6.86 f51_in(x42, x43, x44) -> f111_in(x42, x43) :|: TRUE 16.14/6.86 f111_out(x45, x46) -> f113_in(x47, x48, x46) :|: TRUE 16.14/6.86 f113_out(x49, x50, x51) -> f51_out(x52, x51, x50) :|: TRUE 16.14/6.86 Start term: f2_in(T1, T2, T3) 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (110) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 16.14/6.86 Constructed simple dependency graph. 16.14/6.86 16.14/6.86 Simplified to the following IRSwTs: 16.14/6.86 16.14/6.86 intTRSProblem: 16.14/6.86 f111_in(T82, T84) -> f208_in(T82, T84) :|: TRUE 16.14/6.86 f214_in(T119, .(T120, T121)) -> f275_in(T119, T121) :|: TRUE 16.14/6.86 f208_in(x9, x10) -> f214_in(x9, x10) :|: TRUE 16.14/6.86 f275_in(x19, x20) -> f111_in(x19, x20) :|: TRUE 16.14/6.86 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (111) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f111_in(T82, T84) -> f208_in(T82, T84) :|: TRUE 16.14/6.86 f214_in(T119, .(T120, T121)) -> f275_in(T119, T121) :|: TRUE 16.14/6.86 f208_in(x9, x10) -> f214_in(x9, x10) :|: TRUE 16.14/6.86 f275_in(x19, x20) -> f111_in(x19, x20) :|: TRUE 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (112) IntTRSCompressionProof (EQUIVALENT) 16.14/6.86 Compressed rules. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (113) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f111_in(T82:0, .(T120:0, T121:0)) -> f111_in(T82:0, T121:0) :|: TRUE 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (114) IRSFormatTransformerProof (EQUIVALENT) 16.14/6.86 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (115) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f111_in(T82:0, .(T120:0, T121:0)) -> f111_in(T82:0, T121:0) :|: TRUE 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (116) IRSwTTerminationDigraphProof (EQUIVALENT) 16.14/6.86 Constructed termination digraph! 16.14/6.86 Nodes: 16.14/6.86 (1) f111_in(T82:0, .(T120:0, T121:0)) -> f111_in(T82:0, T121:0) :|: TRUE 16.14/6.86 16.14/6.86 Arcs: 16.14/6.86 (1) -> (1) 16.14/6.86 16.14/6.86 This digraph is fully evaluated! 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (117) 16.14/6.86 Obligation: 16.14/6.86 16.14/6.86 Termination digraph: 16.14/6.86 Nodes: 16.14/6.86 (1) f111_in(T82:0, .(T120:0, T121:0)) -> f111_in(T82:0, T121:0) :|: TRUE 16.14/6.86 16.14/6.86 Arcs: 16.14/6.86 (1) -> (1) 16.14/6.86 16.14/6.86 This digraph is fully evaluated! 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (118) IntTRSUnneededArgumentFilterProof (EQUIVALENT) 16.14/6.86 Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: 16.14/6.86 16.14/6.86 f111_in(x1, x2) -> f111_in(x2) 16.14/6.86 .(x1, x2) -> .(x2) 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (119) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f111_in(.(T121:0)) -> f111_in(T121:0) :|: TRUE 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (120) TempFilterProof (SOUND) 16.14/6.86 Used the following sort dictionary for filtering: 16.14/6.86 f111_in(VARIABLE) 16.14/6.86 .(VARIABLE) 16.14/6.86 Removed predefined arithmetic. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (121) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f111_in(.(T121:0)) -> f111_in(T121:0) 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (122) IRSwTToQDPProof (SOUND) 16.14/6.86 Removed the integers and created a QDP-Problem. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (123) 16.14/6.86 Obligation: 16.14/6.86 Q DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 f111_in(.(T121:0)) -> f111_in(T121:0) 16.14/6.86 16.14/6.86 R is empty. 16.14/6.86 Q is empty. 16.14/6.86 We have to consider all (P,Q,R)-chains. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (124) QDPSizeChangeProof (EQUIVALENT) 16.14/6.86 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. 16.14/6.86 16.14/6.86 From the DPs we obtained the following set of size-change graphs: 16.14/6.86 *f111_in(.(T121:0)) -> f111_in(T121:0) 16.14/6.86 The graph contains the following edges 1 > 1 16.14/6.86 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (125) 16.14/6.86 YES 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (126) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f37_out(T28, T29, T30) -> f35_out(T28, T29, T30) :|: TRUE 16.14/6.86 f36_out(x, x1, x2) -> f35_out(x, x1, x2) :|: TRUE 16.14/6.86 f35_in(x3, x4, x5) -> f37_in(x3, x4, x5) :|: TRUE 16.14/6.86 f35_in(x6, x7, x8) -> f36_in(x6, x7, x8) :|: TRUE 16.14/6.86 f42_out -> f37_out(x9, x10, x11) :|: TRUE 16.14/6.86 f41_out(T60, T61, T63) -> f37_out(T60, T61, .(T62, T63)) :|: TRUE 16.14/6.86 f37_in(x12, x13, x14) -> f42_in :|: TRUE 16.14/6.86 f37_in(x15, x16, .(x17, x18)) -> f41_in(x15, x16, x18) :|: TRUE 16.14/6.86 f41_in(x19, x20, x21) -> f34_in(x19, x20, x21) :|: TRUE 16.14/6.86 f34_out(x22, x23, x24) -> f41_out(x22, x23, x24) :|: TRUE 16.14/6.86 f35_out(x25, x26, x27) -> f34_out(x25, x26, x27) :|: TRUE 16.14/6.86 f34_in(x28, x29, x30) -> f35_in(x28, x29, x30) :|: TRUE 16.14/6.86 f2_in(T1, T2, T3) -> f4_in(T1, T2, T3) :|: TRUE 16.14/6.86 f4_out(x31, x32, x33) -> f2_out(x31, x32, x33) :|: TRUE 16.14/6.86 f18_out(x34, x35, x36) -> f4_out(x34, x35, x36) :|: TRUE 16.14/6.86 f4_in(x37, x38, x39) -> f17_in(x37, x38, x39) :|: TRUE 16.14/6.86 f17_out(x40, x41, x42) -> f4_out(x40, x41, x42) :|: TRUE 16.14/6.86 f4_in(x43, x44, x45) -> f18_in(x43, x44, x45) :|: TRUE 16.14/6.86 f34_out(x46, x47, x48) -> f17_out(x46, x47, x48) :|: TRUE 16.14/6.86 f17_in(x49, x50, x51) -> f34_in(x49, x50, x51) :|: TRUE 16.14/6.86 Start term: f2_in(T1, T2, T3) 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (127) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 16.14/6.86 Constructed simple dependency graph. 16.14/6.86 16.14/6.86 Simplified to the following IRSwTs: 16.14/6.86 16.14/6.86 intTRSProblem: 16.14/6.86 f35_in(x3, x4, x5) -> f37_in(x3, x4, x5) :|: TRUE 16.14/6.86 f37_in(x15, x16, .(x17, x18)) -> f41_in(x15, x16, x18) :|: TRUE 16.14/6.86 f41_in(x19, x20, x21) -> f34_in(x19, x20, x21) :|: TRUE 16.14/6.86 f34_in(x28, x29, x30) -> f35_in(x28, x29, x30) :|: TRUE 16.14/6.86 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (128) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f35_in(x3, x4, x5) -> f37_in(x3, x4, x5) :|: TRUE 16.14/6.86 f37_in(x15, x16, .(x17, x18)) -> f41_in(x15, x16, x18) :|: TRUE 16.14/6.86 f41_in(x19, x20, x21) -> f34_in(x19, x20, x21) :|: TRUE 16.14/6.86 f34_in(x28, x29, x30) -> f35_in(x28, x29, x30) :|: TRUE 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (129) IntTRSCompressionProof (EQUIVALENT) 16.14/6.86 Compressed rules. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (130) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f35_in(x3:0, x4:0, .(x17:0, x18:0)) -> f35_in(x3:0, x4:0, x18:0) :|: TRUE 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (131) IRSFormatTransformerProof (EQUIVALENT) 16.14/6.86 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (132) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f35_in(x3:0, x4:0, .(x17:0, x18:0)) -> f35_in(x3:0, x4:0, x18:0) :|: TRUE 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (133) IRSwTTerminationDigraphProof (EQUIVALENT) 16.14/6.86 Constructed termination digraph! 16.14/6.86 Nodes: 16.14/6.86 (1) f35_in(x3:0, x4:0, .(x17:0, x18:0)) -> f35_in(x3:0, x4:0, x18:0) :|: TRUE 16.14/6.86 16.14/6.86 Arcs: 16.14/6.86 (1) -> (1) 16.14/6.86 16.14/6.86 This digraph is fully evaluated! 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (134) 16.14/6.86 Obligation: 16.14/6.86 16.14/6.86 Termination digraph: 16.14/6.86 Nodes: 16.14/6.86 (1) f35_in(x3:0, x4:0, .(x17:0, x18:0)) -> f35_in(x3:0, x4:0, x18:0) :|: TRUE 16.14/6.86 16.14/6.86 Arcs: 16.14/6.86 (1) -> (1) 16.14/6.86 16.14/6.86 This digraph is fully evaluated! 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (135) IntTRSUnneededArgumentFilterProof (EQUIVALENT) 16.14/6.86 Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: 16.14/6.86 16.14/6.86 f35_in(x1, x2, x3) -> f35_in(x3) 16.14/6.86 .(x1, x2) -> .(x2) 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (136) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f35_in(.(x18:0)) -> f35_in(x18:0) :|: TRUE 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (137) TempFilterProof (SOUND) 16.14/6.86 Used the following sort dictionary for filtering: 16.14/6.86 f35_in(VARIABLE) 16.14/6.86 .(VARIABLE) 16.14/6.86 Removed predefined arithmetic. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (138) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f35_in(.(x18:0)) -> f35_in(x18:0) 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (139) IRSwTToQDPProof (SOUND) 16.14/6.86 Removed the integers and created a QDP-Problem. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (140) 16.14/6.86 Obligation: 16.14/6.86 Q DP problem: 16.14/6.86 The TRS P consists of the following rules: 16.14/6.86 16.14/6.86 f35_in(.(x18:0)) -> f35_in(x18:0) 16.14/6.86 16.14/6.86 R is empty. 16.14/6.86 Q is empty. 16.14/6.86 We have to consider all (P,Q,R)-chains. 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (141) QDPSizeChangeProof (EQUIVALENT) 16.14/6.86 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. 16.14/6.86 16.14/6.86 From the DPs we obtained the following set of size-change graphs: 16.14/6.86 *f35_in(.(x18:0)) -> f35_in(x18:0) 16.14/6.86 The graph contains the following edges 1 > 1 16.14/6.86 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (142) 16.14/6.86 YES 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (143) 16.14/6.86 Obligation: 16.14/6.86 Rules: 16.14/6.86 f217_out -> f212_out(T82, T84) :|: TRUE 16.14/6.86 f216_out -> f212_out(T110, .(.(T110, .(T111, [])), T112)) :|: TRUE 16.14/6.86 f212_in(x, .(.(x, .(x1, [])), x2)) -> f216_in :|: TRUE 16.14/6.86 f212_in(x3, x4) -> f217_in :|: TRUE 16.14/6.86 f51_in(x5, x6, x7) -> f111_in(x5, x6) :|: TRUE 16.14/6.86 f111_out(x8, x9) -> f113_in(x10, x11, x9) :|: TRUE 16.14/6.86 f113_out(x12, x13, x14) -> f51_out(x15, x14, x13) :|: TRUE 16.14/6.86 f111_in(x16, x17) -> f208_in(x16, x17) :|: TRUE 16.14/6.86 f208_out(x18, x19) -> f111_out(x18, x19) :|: TRUE 16.14/6.86 f214_in(T119, .(T120, T121)) -> f275_in(T119, T121) :|: TRUE 16.14/6.86 f276_out -> f214_out(x20, x21) :|: TRUE 16.14/6.86 f214_in(x22, x23) -> f276_in :|: TRUE 16.14/6.86 f275_out(x24, x25) -> f214_out(x24, .(x26, x25)) :|: TRUE 16.14/6.86 f18_in(x27, x28, x29) -> f51_in(x27, x29, x28) :|: TRUE 16.14/6.86 f51_out(x30, x31, x32) -> f18_out(x30, x32, x31) :|: TRUE 16.14/6.86 f111_out(x33, x34) -> f275_out(x33, x34) :|: TRUE 16.14/6.86 f275_in(x35, x36) -> f111_in(x35, x36) :|: TRUE 16.14/6.86 f18_out(T1, T2, T3) -> f4_out(T1, T2, T3) :|: TRUE 16.14/6.86 f4_in(x37, x38, x39) -> f17_in(x37, x38, x39) :|: TRUE 16.14/6.86 f17_out(x40, x41, x42) -> f4_out(x40, x41, x42) :|: TRUE 16.14/6.86 f4_in(x43, x44, x45) -> f18_in(x43, x44, x45) :|: TRUE 16.14/6.86 f2_out(x46, x47, x48) -> f113_out(x46, x47, x48) :|: TRUE 16.14/6.86 f113_in(x49, x50, x51) -> f2_in(x49, x50, x51) :|: TRUE 16.14/6.86 f2_in(x52, x53, x54) -> f4_in(x52, x53, x54) :|: TRUE 16.14/6.86 f4_out(x55, x56, x57) -> f2_out(x55, x56, x57) :|: TRUE 16.14/6.86 f216_in -> f216_out :|: TRUE 16.14/6.86 f208_in(x58, x59) -> f214_in(x58, x59) :|: TRUE 16.14/6.86 f208_in(x60, x61) -> f212_in(x60, x61) :|: TRUE 16.14/6.86 f214_out(x62, x63) -> f208_out(x62, x63) :|: TRUE 16.14/6.86 f212_out(x64, x65) -> f208_out(x64, x65) :|: TRUE 16.14/6.86 Start term: f2_in(T1, T2, T3) 16.14/6.86 16.14/6.86 ---------------------------------------- 16.14/6.86 16.14/6.86 (144) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 16.14/6.86 Constructed simple dependency graph. 16.14/6.86 16.14/6.86 Simplified to the following IRSwTs: 16.14/6.86 16.14/6.86 intTRSProblem: 16.14/6.86 f216_out -> f212_out(T110, .(.(T110, .(T111, [])), T112)) :|: TRUE 16.14/6.86 f212_in(x, .(.(x, .(x1, [])), x2)) -> f216_in :|: TRUE 16.14/6.86 f51_in(x5, x6, x7) -> f111_in(x5, x6) :|: TRUE 16.14/6.86 f111_out(x8, x9) -> f113_in(x10, x11, x9) :|: TRUE 16.14/6.86 f111_in(x16, x17) -> f208_in(x16, x17) :|: TRUE 16.14/6.86 f208_out(x18, x19) -> f111_out(x18, x19) :|: TRUE 16.14/6.86 f214_in(T119, .(T120, T121)) -> f275_in(T119, T121) :|: TRUE 16.14/6.87 f275_out(x24, x25) -> f214_out(x24, .(x26, x25)) :|: TRUE 16.14/6.87 f18_in(x27, x28, x29) -> f51_in(x27, x29, x28) :|: TRUE 16.14/6.87 f111_out(x33, x34) -> f275_out(x33, x34) :|: TRUE 16.14/6.87 f275_in(x35, x36) -> f111_in(x35, x36) :|: TRUE 16.14/6.87 f4_in(x43, x44, x45) -> f18_in(x43, x44, x45) :|: TRUE 16.14/6.87 f113_in(x49, x50, x51) -> f2_in(x49, x50, x51) :|: TRUE 16.14/6.87 f2_in(x52, x53, x54) -> f4_in(x52, x53, x54) :|: TRUE 16.14/6.87 f216_in -> f216_out :|: TRUE 16.14/6.87 f208_in(x58, x59) -> f214_in(x58, x59) :|: TRUE 16.14/6.87 f208_in(x60, x61) -> f212_in(x60, x61) :|: TRUE 16.14/6.87 f214_out(x62, x63) -> f208_out(x62, x63) :|: TRUE 16.14/6.87 f212_out(x64, x65) -> f208_out(x64, x65) :|: TRUE 16.14/6.87 16.14/6.87 16.14/6.87 ---------------------------------------- 16.14/6.87 16.14/6.87 (145) 16.14/6.87 Obligation: 16.14/6.87 Rules: 16.14/6.87 f216_out -> f212_out(T110, .(.(T110, .(T111, [])), T112)) :|: TRUE 16.14/6.87 f212_in(x, .(.(x, .(x1, [])), x2)) -> f216_in :|: TRUE 16.14/6.87 f51_in(x5, x6, x7) -> f111_in(x5, x6) :|: TRUE 16.14/6.87 f111_out(x8, x9) -> f113_in(x10, x11, x9) :|: TRUE 16.14/6.87 f111_in(x16, x17) -> f208_in(x16, x17) :|: TRUE 16.14/6.87 f208_out(x18, x19) -> f111_out(x18, x19) :|: TRUE 16.14/6.87 f214_in(T119, .(T120, T121)) -> f275_in(T119, T121) :|: TRUE 16.14/6.87 f275_out(x24, x25) -> f214_out(x24, .(x26, x25)) :|: TRUE 16.14/6.87 f18_in(x27, x28, x29) -> f51_in(x27, x29, x28) :|: TRUE 16.14/6.87 f111_out(x33, x34) -> f275_out(x33, x34) :|: TRUE 16.14/6.87 f275_in(x35, x36) -> f111_in(x35, x36) :|: TRUE 16.14/6.87 f4_in(x43, x44, x45) -> f18_in(x43, x44, x45) :|: TRUE 16.14/6.87 f113_in(x49, x50, x51) -> f2_in(x49, x50, x51) :|: TRUE 16.14/6.87 f2_in(x52, x53, x54) -> f4_in(x52, x53, x54) :|: TRUE 16.14/6.87 f216_in -> f216_out :|: TRUE 16.14/6.87 f208_in(x58, x59) -> f214_in(x58, x59) :|: TRUE 16.14/6.87 f208_in(x60, x61) -> f212_in(x60, x61) :|: TRUE 16.14/6.87 f214_out(x62, x63) -> f208_out(x62, x63) :|: TRUE 16.14/6.87 f212_out(x64, x65) -> f208_out(x64, x65) :|: TRUE 16.14/6.87 16.14/6.87 ---------------------------------------- 16.14/6.87 16.14/6.87 (146) IntTRSCompressionProof (EQUIVALENT) 16.14/6.87 Compressed rules. 16.14/6.87 ---------------------------------------- 16.14/6.87 16.14/6.87 (147) 16.14/6.87 Obligation: 16.14/6.87 Rules: 16.14/6.87 f208_out(x18:0, x19:0) -> f208_out(x18:0, .(x26:0, x19:0)) :|: TRUE 16.14/6.87 f208_in(x60:0, .(.(x60:0, .(x1:0, [])), x2:0)) -> f208_out(T110:0, .(.(T110:0, .(T111:0, [])), T112:0)) :|: TRUE 16.14/6.87 f208_out(x, x1) -> f208_in(x2, x1) :|: TRUE 16.14/6.87 f208_in(x58:0, .(T120:0, T121:0)) -> f208_in(x58:0, T121:0) :|: TRUE 16.14/6.87 16.14/6.87 ---------------------------------------- 16.14/6.87 16.14/6.87 (148) IRSFormatTransformerProof (EQUIVALENT) 16.14/6.87 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 16.14/6.87 ---------------------------------------- 16.14/6.87 16.14/6.87 (149) 16.14/6.87 Obligation: 16.14/6.87 Rules: 16.14/6.87 f208_out(x18:0, x19:0) -> f208_out(x18:0, .(x26:0, x19:0)) :|: TRUE 16.14/6.87 f208_in(x60:0, .(.(x60:0, .(x1:0, [])), x2:0)) -> f208_out(T110:0, .(.(T110:0, .(T111:0, [])), T112:0)) :|: TRUE 16.14/6.87 f208_out(x, x1) -> f208_in(x2, x1) :|: TRUE 16.14/6.87 f208_in(x58:0, .(T120:0, T121:0)) -> f208_in(x58:0, T121:0) :|: TRUE 16.33/7.04 EOF