/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.pl /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern vlcnd(g) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) CutEliminatorProof [SOUND, 0 ms] (2) Prolog (3) PrologToPiTRSProof [SOUND, 0 ms] (4) PiTRS (5) DependencyPairsProof [EQUIVALENT, 5 ms] (6) PiDP (7) DependencyGraphProof [EQUIVALENT, 0 ms] (8) AND (9) PiDP (10) UsableRulesProof [EQUIVALENT, 0 ms] (11) PiDP (12) PiDPToQDPProof [SOUND, 0 ms] (13) QDP (14) TransformationProof [EQUIVALENT, 0 ms] (15) QDP (16) UsableRulesProof [EQUIVALENT, 0 ms] (17) QDP (18) QReductionProof [EQUIVALENT, 0 ms] (19) QDP (20) NonTerminationLoopProof [COMPLETE, 0 ms] (21) NO (22) PiDP (23) UsableRulesProof [EQUIVALENT, 0 ms] (24) PiDP (25) PiDPToQDPProof [SOUND, 0 ms] (26) QDP (27) QDPSizeChangeProof [EQUIVALENT, 0 ms] (28) YES (29) PiDP (30) UsableRulesProof [EQUIVALENT, 0 ms] (31) PiDP (32) PiDPToQDPProof [SOUND, 0 ms] (33) QDP (34) QDPSizeChangeProof [EQUIVALENT, 0 ms] (35) YES (36) PiDP (37) UsableRulesProof [EQUIVALENT, 0 ms] (38) PiDP (39) PiDPToQDPProof [SOUND, 0 ms] (40) QDP (41) TransformationProof [SOUND, 0 ms] (42) QDP (43) TransformationProof [SOUND, 0 ms] (44) QDP (45) TransformationProof [EQUIVALENT, 0 ms] (46) QDP (47) TransformationProof [SOUND, 0 ms] (48) QDP (49) TransformationProof [EQUIVALENT, 0 ms] (50) QDP (51) TransformationProof [EQUIVALENT, 0 ms] (52) QDP (53) TransformationProof [EQUIVALENT, 0 ms] (54) QDP (55) DependencyGraphProof [EQUIVALENT, 0 ms] (56) QDP (57) TransformationProof [SOUND, 0 ms] (58) QDP (59) TransformationProof [EQUIVALENT, 0 ms] (60) QDP (61) TransformationProof [EQUIVALENT, 0 ms] (62) QDP (63) PiDP (64) UsableRulesProof [EQUIVALENT, 0 ms] (65) PiDP (66) PrologToPiTRSProof [SOUND, 31 ms] (67) PiTRS (68) DependencyPairsProof [EQUIVALENT, 0 ms] (69) PiDP (70) DependencyGraphProof [EQUIVALENT, 0 ms] (71) AND (72) PiDP (73) UsableRulesProof [EQUIVALENT, 0 ms] (74) PiDP (75) PiDPToQDPProof [SOUND, 0 ms] (76) QDP (77) TransformationProof [EQUIVALENT, 0 ms] (78) QDP (79) UsableRulesProof [EQUIVALENT, 0 ms] (80) QDP (81) QReductionProof [EQUIVALENT, 0 ms] (82) QDP (83) NonTerminationLoopProof [COMPLETE, 0 ms] (84) NO (85) PiDP (86) UsableRulesProof [EQUIVALENT, 0 ms] (87) PiDP (88) PiDPToQDPProof [SOUND, 0 ms] (89) QDP (90) QDPSizeChangeProof [EQUIVALENT, 0 ms] (91) YES (92) PiDP (93) UsableRulesProof [EQUIVALENT, 0 ms] (94) PiDP (95) PiDPToQDPProof [SOUND, 0 ms] (96) QDP (97) QDPSizeChangeProof [EQUIVALENT, 0 ms] (98) YES (99) PiDP (100) UsableRulesProof [EQUIVALENT, 0 ms] (101) PiDP (102) PiDPToQDPProof [SOUND, 0 ms] (103) QDP (104) TransformationProof [SOUND, 0 ms] (105) QDP (106) TransformationProof [SOUND, 0 ms] (107) QDP (108) TransformationProof [EQUIVALENT, 0 ms] (109) QDP (110) TransformationProof [SOUND, 0 ms] (111) QDP (112) TransformationProof [EQUIVALENT, 0 ms] (113) QDP (114) TransformationProof [EQUIVALENT, 0 ms] (115) QDP (116) TransformationProof [EQUIVALENT, 0 ms] (117) QDP (118) DependencyGraphProof [EQUIVALENT, 0 ms] (119) QDP (120) TransformationProof [SOUND, 0 ms] (121) QDP (122) TransformationProof [EQUIVALENT, 0 ms] (123) QDP (124) TransformationProof [EQUIVALENT, 0 ms] (125) QDP (126) PiDP (127) UsableRulesProof [EQUIVALENT, 0 ms] (128) PiDP (129) PrologToDTProblemTransformerProof [SOUND, 51 ms] (130) TRIPLES (131) UndefinedPredicateInTriplesTransformerProof [SOUND, 0 ms] (132) TRIPLES (133) TriplesToPiDPProof [SOUND, 0 ms] (134) PiDP (135) DependencyGraphProof [EQUIVALENT, 0 ms] (136) AND (137) PiDP (138) UsableRulesProof [EQUIVALENT, 0 ms] (139) PiDP (140) PiDPToQDPProof [SOUND, 0 ms] (141) QDP (142) QDPSizeChangeProof [EQUIVALENT, 0 ms] (143) YES (144) PiDP (145) UsableRulesProof [EQUIVALENT, 0 ms] (146) PiDP (147) PiDPToQDPProof [SOUND, 0 ms] (148) QDP (149) NonTerminationLoopProof [COMPLETE, 0 ms] (150) NO (151) PiDP (152) UsableRulesProof [EQUIVALENT, 0 ms] (153) PiDP (154) PiDPToQDPProof [SOUND, 0 ms] (155) QDP (156) QDPSizeChangeProof [EQUIVALENT, 0 ms] (157) YES (158) PiDP (159) PiDPToQDPProof [SOUND, 0 ms] (160) QDP (161) TransformationProof [SOUND, 0 ms] (162) QDP (163) UsableRulesProof [EQUIVALENT, 0 ms] (164) QDP (165) QReductionProof [EQUIVALENT, 0 ms] (166) QDP (167) TransformationProof [EQUIVALENT, 0 ms] (168) QDP (169) TransformationProof [EQUIVALENT, 0 ms] (170) QDP (171) UsableRulesProof [EQUIVALENT, 0 ms] (172) QDP (173) QReductionProof [EQUIVALENT, 0 ms] (174) QDP (175) TransformationProof [EQUIVALENT, 0 ms] (176) QDP (177) PrologToIRSwTTransformerProof [SOUND, 41 ms] (178) AND (179) IRSwT (180) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (181) TRUE (182) IRSwT (183) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (184) IRSwT (185) IntTRSCompressionProof [EQUIVALENT, 52 ms] (186) IRSwT (187) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (188) IRSwT (189) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] (190) IRSwT (191) TempFilterProof [SOUND, 2 ms] (192) IRSwT (193) IRSwTToQDPProof [SOUND, 0 ms] (194) QDP (195) QDPSizeChangeProof [EQUIVALENT, 0 ms] (196) YES (197) IRSwT (198) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (199) TRUE (200) IRSwT (201) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 8 ms] (202) IRSwT (203) IntTRSCompressionProof [EQUIVALENT, 30 ms] (204) IRSwT (205) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (206) IRSwT (207) IRSwTTerminationDigraphProof [EQUIVALENT, 58 ms] (208) AND (209) IRSwT (210) TempFilterProof [SOUND, 1 ms] (211) IRSwT (212) IRSwTToQDPProof [SOUND, 1 ms] (213) QDP (214) QDPSizeChangeProof [EQUIVALENT, 0 ms] (215) YES (216) IRSwT (217) IntTRSCompressionProof [EQUIVALENT, 16 ms] (218) IRSwT (219) IRSwTToIntTRSProof [SOUND, 23 ms] (220) IRSwT (221) IntTRSCompressionProof [EQUIVALENT, 15 ms] (222) IRSwT (223) PrologToTRSTransformerProof [SOUND, 27 ms] (224) QTRS (225) DependencyPairsProof [EQUIVALENT, 0 ms] (226) QDP (227) DependencyGraphProof [EQUIVALENT, 0 ms] (228) AND (229) QDP (230) UsableRulesProof [EQUIVALENT, 0 ms] (231) QDP (232) NonTerminationLoopProof [COMPLETE, 0 ms] (233) NO (234) QDP (235) UsableRulesProof [EQUIVALENT, 0 ms] (236) QDP (237) QDPSizeChangeProof [EQUIVALENT, 0 ms] (238) YES (239) QDP (240) UsableRulesProof [EQUIVALENT, 0 ms] (241) QDP (242) NonTerminationLoopProof [COMPLETE, 0 ms] (243) NO (244) QDP (245) NonLoopProof [COMPLETE, 2855 ms] (246) NO ---------------------------------------- (0) Obligation: Clauses: vlcnd(N) :- ','(vl(N, Xs), ','(select(X1, Xs, Ys), ','(vl(M, Ys), vlcnd(M)))). vlcnd(0). vl(0, L) :- ','(!, eq(L, [])). vl(N, .(X2, Xs)) :- ','(p(N, P), vl(P, Xs)). select(X, .(Y, Xs), .(Y, Ys)) :- select(X, Xs, Ys). select(X, .(X, Xs), Xs). p(0, 0). p(s(X), X). eq(X, X). Query: vlcnd(g) ---------------------------------------- (1) CutEliminatorProof (SOUND) Eliminated all cuts by simply ignoring them[PROLOG]. ---------------------------------------- (2) Obligation: Clauses: vlcnd(N) :- ','(vl(N, Xs), ','(select(X1, Xs, Ys), ','(vl(M, Ys), vlcnd(M)))). vlcnd(0). vl(0, L) :- eq(L, []). vl(N, .(X2, Xs)) :- ','(p(N, P), vl(P, Xs)). select(X, .(Y, Xs), .(Y, Ys)) :- select(X, Xs, Ys). select(X, .(X, Xs), Xs). p(0, 0). p(s(X), X). eq(X, X). Query: vlcnd(g) ---------------------------------------- (3) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: vlcnd_in_1: (b) (f) vl_in_2: (b,f) (f,b) (f,f) select_in_3: (f,b,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x1, x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1, x2) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x1, x2) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x1, x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x1, x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x3, x5) select_out_aga(x1, x2, x3) = select_out_aga(x2, x3) U3_g(x1, x2) = U3_g(x1, x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x1, x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg(x1, x2) vl_out_ag(x1, x2) = vl_out_ag(x2) U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x3, x4) U4_g(x1, x2) = U4_g(x1, x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g(x1) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (4) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x1, x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1, x2) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x1, x2) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x1, x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x1, x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x3, x5) select_out_aga(x1, x2, x3) = select_out_aga(x2, x3) U3_g(x1, x2) = U3_g(x1, x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x1, x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg(x1, x2) vl_out_ag(x1, x2) = vl_out_ag(x2) U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x3, x4) U4_g(x1, x2) = U4_g(x1, x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g(x1) ---------------------------------------- (5) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: VLCND_IN_G(N) -> U1_G(N, vl_in_ga(N, Xs)) VLCND_IN_G(N) -> VL_IN_GA(N, Xs) VL_IN_GA(0, L) -> U5_GA(L, eq_in_ag(L, [])) VL_IN_GA(0, L) -> EQ_IN_AG(L, []) VL_IN_GA(N, .(X2, Xs)) -> U6_GA(N, X2, Xs, p_in_ga(N, P)) VL_IN_GA(N, .(X2, Xs)) -> P_IN_GA(N, P) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> U7_GA(N, X2, Xs, vl_in_ga(P, Xs)) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> VL_IN_GA(P, Xs) U1_G(N, vl_out_ga(N, Xs)) -> U2_G(N, select_in_aga(X1, Xs, Ys)) U1_G(N, vl_out_ga(N, Xs)) -> SELECT_IN_AGA(X1, Xs, Ys) SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> U8_AGA(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> SELECT_IN_AGA(X, Xs, Ys) U2_G(N, select_out_aga(X1, Xs, Ys)) -> U3_G(N, vl_in_ag(M, Ys)) U2_G(N, select_out_aga(X1, Xs, Ys)) -> VL_IN_AG(M, Ys) VL_IN_AG(0, L) -> U5_AG(L, eq_in_gg(L, [])) VL_IN_AG(0, L) -> EQ_IN_GG(L, []) VL_IN_AG(N, .(X2, Xs)) -> U6_AG(N, X2, Xs, p_in_aa(N, P)) VL_IN_AG(N, .(X2, Xs)) -> P_IN_AA(N, P) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> U7_AG(N, X2, Xs, vl_in_ag(P, Xs)) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AG(P, Xs) U3_G(N, vl_out_ag(M, Ys)) -> U4_G(N, vlcnd_in_a(M)) U3_G(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) VLCND_IN_A(N) -> U1_A(N, vl_in_aa(N, Xs)) VLCND_IN_A(N) -> VL_IN_AA(N, Xs) VL_IN_AA(0, L) -> U5_AA(L, eq_in_ag(L, [])) VL_IN_AA(0, L) -> EQ_IN_AG(L, []) VL_IN_AA(N, .(X2, Xs)) -> U6_AA(N, X2, Xs, p_in_aa(N, P)) VL_IN_AA(N, .(X2, Xs)) -> P_IN_AA(N, P) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> U7_AA(N, X2, Xs, vl_in_aa(P, Xs)) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AA(P, Xs) U1_A(N, vl_out_aa(N, Xs)) -> U2_A(N, select_in_aga(X1, Xs, Ys)) U1_A(N, vl_out_aa(N, Xs)) -> SELECT_IN_AGA(X1, Xs, Ys) U2_A(N, select_out_aga(X1, Xs, Ys)) -> U3_A(N, vl_in_ag(M, Ys)) U2_A(N, select_out_aga(X1, Xs, Ys)) -> VL_IN_AG(M, Ys) U3_A(N, vl_out_ag(M, Ys)) -> U4_A(N, vlcnd_in_a(M)) U3_A(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x1, x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1, x2) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x1, x2) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x1, x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x1, x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x3, x5) select_out_aga(x1, x2, x3) = select_out_aga(x2, x3) U3_g(x1, x2) = U3_g(x1, x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x1, x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg(x1, x2) vl_out_ag(x1, x2) = vl_out_ag(x2) U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x3, x4) U4_g(x1, x2) = U4_g(x1, x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g(x1) VLCND_IN_G(x1) = VLCND_IN_G(x1) U1_G(x1, x2) = U1_G(x1, x2) VL_IN_GA(x1, x2) = VL_IN_GA(x1) U5_GA(x1, x2) = U5_GA(x2) EQ_IN_AG(x1, x2) = EQ_IN_AG(x2) U6_GA(x1, x2, x3, x4) = U6_GA(x1, x4) P_IN_GA(x1, x2) = P_IN_GA(x1) U7_GA(x1, x2, x3, x4) = U7_GA(x1, x4) U2_G(x1, x2) = U2_G(x1, x2) SELECT_IN_AGA(x1, x2, x3) = SELECT_IN_AGA(x2) U8_AGA(x1, x2, x3, x4, x5) = U8_AGA(x3, x5) U3_G(x1, x2) = U3_G(x1, x2) VL_IN_AG(x1, x2) = VL_IN_AG(x2) U5_AG(x1, x2) = U5_AG(x1, x2) EQ_IN_GG(x1, x2) = EQ_IN_GG(x1, x2) U6_AG(x1, x2, x3, x4) = U6_AG(x3, x4) P_IN_AA(x1, x2) = P_IN_AA U7_AG(x1, x2, x3, x4) = U7_AG(x3, x4) U4_G(x1, x2) = U4_G(x1, x2) VLCND_IN_A(x1) = VLCND_IN_A U1_A(x1, x2) = U1_A(x2) VL_IN_AA(x1, x2) = VL_IN_AA U5_AA(x1, x2) = U5_AA(x2) U6_AA(x1, x2, x3, x4) = U6_AA(x4) U7_AA(x1, x2, x3, x4) = U7_AA(x4) U2_A(x1, x2) = U2_A(x2) U3_A(x1, x2) = U3_A(x2) U4_A(x1, x2) = U4_A(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (6) Obligation: Pi DP problem: The TRS P consists of the following rules: VLCND_IN_G(N) -> U1_G(N, vl_in_ga(N, Xs)) VLCND_IN_G(N) -> VL_IN_GA(N, Xs) VL_IN_GA(0, L) -> U5_GA(L, eq_in_ag(L, [])) VL_IN_GA(0, L) -> EQ_IN_AG(L, []) VL_IN_GA(N, .(X2, Xs)) -> U6_GA(N, X2, Xs, p_in_ga(N, P)) VL_IN_GA(N, .(X2, Xs)) -> P_IN_GA(N, P) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> U7_GA(N, X2, Xs, vl_in_ga(P, Xs)) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> VL_IN_GA(P, Xs) U1_G(N, vl_out_ga(N, Xs)) -> U2_G(N, select_in_aga(X1, Xs, Ys)) U1_G(N, vl_out_ga(N, Xs)) -> SELECT_IN_AGA(X1, Xs, Ys) SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> U8_AGA(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> SELECT_IN_AGA(X, Xs, Ys) U2_G(N, select_out_aga(X1, Xs, Ys)) -> U3_G(N, vl_in_ag(M, Ys)) U2_G(N, select_out_aga(X1, Xs, Ys)) -> VL_IN_AG(M, Ys) VL_IN_AG(0, L) -> U5_AG(L, eq_in_gg(L, [])) VL_IN_AG(0, L) -> EQ_IN_GG(L, []) VL_IN_AG(N, .(X2, Xs)) -> U6_AG(N, X2, Xs, p_in_aa(N, P)) VL_IN_AG(N, .(X2, Xs)) -> P_IN_AA(N, P) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> U7_AG(N, X2, Xs, vl_in_ag(P, Xs)) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AG(P, Xs) U3_G(N, vl_out_ag(M, Ys)) -> U4_G(N, vlcnd_in_a(M)) U3_G(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) VLCND_IN_A(N) -> U1_A(N, vl_in_aa(N, Xs)) VLCND_IN_A(N) -> VL_IN_AA(N, Xs) VL_IN_AA(0, L) -> U5_AA(L, eq_in_ag(L, [])) VL_IN_AA(0, L) -> EQ_IN_AG(L, []) VL_IN_AA(N, .(X2, Xs)) -> U6_AA(N, X2, Xs, p_in_aa(N, P)) VL_IN_AA(N, .(X2, Xs)) -> P_IN_AA(N, P) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> U7_AA(N, X2, Xs, vl_in_aa(P, Xs)) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AA(P, Xs) U1_A(N, vl_out_aa(N, Xs)) -> U2_A(N, select_in_aga(X1, Xs, Ys)) U1_A(N, vl_out_aa(N, Xs)) -> SELECT_IN_AGA(X1, Xs, Ys) U2_A(N, select_out_aga(X1, Xs, Ys)) -> U3_A(N, vl_in_ag(M, Ys)) U2_A(N, select_out_aga(X1, Xs, Ys)) -> VL_IN_AG(M, Ys) U3_A(N, vl_out_ag(M, Ys)) -> U4_A(N, vlcnd_in_a(M)) U3_A(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x1, x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1, x2) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x1, x2) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x1, x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x1, x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x3, x5) select_out_aga(x1, x2, x3) = select_out_aga(x2, x3) U3_g(x1, x2) = U3_g(x1, x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x1, x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg(x1, x2) vl_out_ag(x1, x2) = vl_out_ag(x2) U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x3, x4) U4_g(x1, x2) = U4_g(x1, x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g(x1) VLCND_IN_G(x1) = VLCND_IN_G(x1) U1_G(x1, x2) = U1_G(x1, x2) VL_IN_GA(x1, x2) = VL_IN_GA(x1) U5_GA(x1, x2) = U5_GA(x2) EQ_IN_AG(x1, x2) = EQ_IN_AG(x2) U6_GA(x1, x2, x3, x4) = U6_GA(x1, x4) P_IN_GA(x1, x2) = P_IN_GA(x1) U7_GA(x1, x2, x3, x4) = U7_GA(x1, x4) U2_G(x1, x2) = U2_G(x1, x2) SELECT_IN_AGA(x1, x2, x3) = SELECT_IN_AGA(x2) U8_AGA(x1, x2, x3, x4, x5) = U8_AGA(x3, x5) U3_G(x1, x2) = U3_G(x1, x2) VL_IN_AG(x1, x2) = VL_IN_AG(x2) U5_AG(x1, x2) = U5_AG(x1, x2) EQ_IN_GG(x1, x2) = EQ_IN_GG(x1, x2) U6_AG(x1, x2, x3, x4) = U6_AG(x3, x4) P_IN_AA(x1, x2) = P_IN_AA U7_AG(x1, x2, x3, x4) = U7_AG(x3, x4) U4_G(x1, x2) = U4_G(x1, x2) VLCND_IN_A(x1) = VLCND_IN_A U1_A(x1, x2) = U1_A(x2) VL_IN_AA(x1, x2) = VL_IN_AA U5_AA(x1, x2) = U5_AA(x2) U6_AA(x1, x2, x3, x4) = U6_AA(x4) U7_AA(x1, x2, x3, x4) = U7_AA(x4) U2_A(x1, x2) = U2_A(x2) U3_A(x1, x2) = U3_A(x2) U4_A(x1, x2) = U4_A(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (7) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 5 SCCs with 25 less nodes. ---------------------------------------- (8) Complex Obligation (AND) ---------------------------------------- (9) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_AA(N, .(X2, Xs)) -> U6_AA(N, X2, Xs, p_in_aa(N, P)) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AA(P, Xs) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x1, x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1, x2) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x1, x2) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x1, x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x1, x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x3, x5) select_out_aga(x1, x2, x3) = select_out_aga(x2, x3) U3_g(x1, x2) = U3_g(x1, x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x1, x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg(x1, x2) vl_out_ag(x1, x2) = vl_out_ag(x2) U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x3, x4) U4_g(x1, x2) = U4_g(x1, x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g(x1) VL_IN_AA(x1, x2) = VL_IN_AA U6_AA(x1, x2, x3, x4) = U6_AA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (10) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (11) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_AA(N, .(X2, Xs)) -> U6_AA(N, X2, Xs, p_in_aa(N, P)) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AA(P, Xs) The TRS R consists of the following rules: p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) .(x1, x2) = .(x2) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa VL_IN_AA(x1, x2) = VL_IN_AA U6_AA(x1, x2, x3, x4) = U6_AA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (12) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: VL_IN_AA -> U6_AA(p_in_aa) U6_AA(p_out_aa) -> VL_IN_AA The TRS R consists of the following rules: p_in_aa -> p_out_aa The set Q consists of the following terms: p_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (14) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule VL_IN_AA -> U6_AA(p_in_aa) at position [0] we obtained the following new rules [LPAR04]: (VL_IN_AA -> U6_AA(p_out_aa),VL_IN_AA -> U6_AA(p_out_aa)) ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(p_out_aa) -> VL_IN_AA VL_IN_AA -> U6_AA(p_out_aa) The TRS R consists of the following rules: p_in_aa -> p_out_aa The set Q consists of the following terms: p_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (16) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(p_out_aa) -> VL_IN_AA VL_IN_AA -> U6_AA(p_out_aa) R is empty. The set Q consists of the following terms: p_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (18) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. p_in_aa ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(p_out_aa) -> VL_IN_AA VL_IN_AA -> U6_AA(p_out_aa) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (20) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = VL_IN_AA evaluates to t =VL_IN_AA Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence VL_IN_AA -> U6_AA(p_out_aa) with rule VL_IN_AA -> U6_AA(p_out_aa) at position [] and matcher [ ] U6_AA(p_out_aa) -> VL_IN_AA with rule U6_AA(p_out_aa) -> VL_IN_AA Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (21) NO ---------------------------------------- (22) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_AG(N, .(X2, Xs)) -> U6_AG(N, X2, Xs, p_in_aa(N, P)) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AG(P, Xs) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x1, x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1, x2) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x1, x2) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x1, x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x1, x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x3, x5) select_out_aga(x1, x2, x3) = select_out_aga(x2, x3) U3_g(x1, x2) = U3_g(x1, x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x1, x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg(x1, x2) vl_out_ag(x1, x2) = vl_out_ag(x2) U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x3, x4) U4_g(x1, x2) = U4_g(x1, x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g(x1) VL_IN_AG(x1, x2) = VL_IN_AG(x2) U6_AG(x1, x2, x3, x4) = U6_AG(x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (23) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (24) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_AG(N, .(X2, Xs)) -> U6_AG(N, X2, Xs, p_in_aa(N, P)) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AG(P, Xs) The TRS R consists of the following rules: p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) .(x1, x2) = .(x2) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa VL_IN_AG(x1, x2) = VL_IN_AG(x2) U6_AG(x1, x2, x3, x4) = U6_AG(x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (25) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: VL_IN_AG(.(Xs)) -> U6_AG(Xs, p_in_aa) U6_AG(Xs, p_out_aa) -> VL_IN_AG(Xs) The TRS R consists of the following rules: p_in_aa -> p_out_aa The set Q consists of the following terms: p_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (27) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U6_AG(Xs, p_out_aa) -> VL_IN_AG(Xs) The graph contains the following edges 1 >= 1 *VL_IN_AG(.(Xs)) -> U6_AG(Xs, p_in_aa) The graph contains the following edges 1 > 1 ---------------------------------------- (28) YES ---------------------------------------- (29) Obligation: Pi DP problem: The TRS P consists of the following rules: SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> SELECT_IN_AGA(X, Xs, Ys) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x1, x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1, x2) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x1, x2) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x1, x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x1, x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x3, x5) select_out_aga(x1, x2, x3) = select_out_aga(x2, x3) U3_g(x1, x2) = U3_g(x1, x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x1, x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg(x1, x2) vl_out_ag(x1, x2) = vl_out_ag(x2) U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x3, x4) U4_g(x1, x2) = U4_g(x1, x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g(x1) SELECT_IN_AGA(x1, x2, x3) = SELECT_IN_AGA(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (30) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (31) Obligation: Pi DP problem: The TRS P consists of the following rules: SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> SELECT_IN_AGA(X, Xs, Ys) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) SELECT_IN_AGA(x1, x2, x3) = SELECT_IN_AGA(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (32) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (33) Obligation: Q DP problem: The TRS P consists of the following rules: SELECT_IN_AGA(.(Xs)) -> SELECT_IN_AGA(Xs) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (34) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *SELECT_IN_AGA(.(Xs)) -> SELECT_IN_AGA(Xs) The graph contains the following edges 1 > 1 ---------------------------------------- (35) YES ---------------------------------------- (36) Obligation: Pi DP problem: The TRS P consists of the following rules: U1_A(N, vl_out_aa(N, Xs)) -> U2_A(N, select_in_aga(X1, Xs, Ys)) U2_A(N, select_out_aga(X1, Xs, Ys)) -> U3_A(N, vl_in_ag(M, Ys)) U3_A(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) VLCND_IN_A(N) -> U1_A(N, vl_in_aa(N, Xs)) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x1, x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1, x2) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x1, x2) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x1, x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x1, x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x3, x5) select_out_aga(x1, x2, x3) = select_out_aga(x2, x3) U3_g(x1, x2) = U3_g(x1, x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x1, x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg(x1, x2) vl_out_ag(x1, x2) = vl_out_ag(x2) U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x3, x4) U4_g(x1, x2) = U4_g(x1, x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g(x1) VLCND_IN_A(x1) = VLCND_IN_A U1_A(x1, x2) = U1_A(x2) U2_A(x1, x2) = U2_A(x2) U3_A(x1, x2) = U3_A(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (37) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (38) Obligation: Pi DP problem: The TRS P consists of the following rules: U1_A(N, vl_out_aa(N, Xs)) -> U2_A(N, select_in_aga(X1, Xs, Ys)) U2_A(N, select_out_aga(X1, Xs, Ys)) -> U3_A(N, vl_in_ag(M, Ys)) U3_A(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) VLCND_IN_A(N) -> U1_A(N, vl_in_aa(N, Xs)) The TRS R consists of the following rules: select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) eq_in_ag(X, X) -> eq_out_ag(X, X) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) The argument filtering Pi contains the following mapping: 0 = 0 eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1, x2) [] = [] s(x1) = s(x1) .(x1, x2) = .(x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x3, x5) select_out_aga(x1, x2, x3) = select_out_aga(x2, x3) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x1, x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg(x1, x2) vl_out_ag(x1, x2) = vl_out_ag(x2) U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x3, x4) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) VLCND_IN_A(x1) = VLCND_IN_A U1_A(x1, x2) = U1_A(x2) U2_A(x1, x2) = U2_A(x2) U3_A(x1, x2) = U3_A(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (39) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: U1_A(vl_out_aa(Xs)) -> U2_A(select_in_aga(Xs)) U2_A(select_out_aga(Xs, Ys)) -> U3_A(vl_in_ag(Ys)) U3_A(vl_out_ag(Ys)) -> VLCND_IN_A VLCND_IN_A -> U1_A(vl_in_aa) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (41) TransformationProof (SOUND) By narrowing [LPAR04] the rule U1_A(vl_out_aa(Xs)) -> U2_A(select_in_aga(Xs)) at position [0] we obtained the following new rules [LPAR04]: (U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))),U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0)))) (U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)),U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0))) ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: U2_A(select_out_aga(Xs, Ys)) -> U3_A(vl_in_ag(Ys)) U3_A(vl_out_ag(Ys)) -> VLCND_IN_A VLCND_IN_A -> U1_A(vl_in_aa) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (43) TransformationProof (SOUND) By narrowing [LPAR04] the rule U2_A(select_out_aga(Xs, Ys)) -> U3_A(vl_in_ag(Ys)) at position [0] we obtained the following new rules [LPAR04]: (U2_A(select_out_aga(y0, x0)) -> U3_A(U5_ag(x0, eq_in_gg(x0, []))),U2_A(select_out_aga(y0, x0)) -> U3_A(U5_ag(x0, eq_in_gg(x0, [])))) (U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_in_aa)),U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_in_aa))) ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag(Ys)) -> VLCND_IN_A VLCND_IN_A -> U1_A(vl_in_aa) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)) U2_A(select_out_aga(y0, x0)) -> U3_A(U5_ag(x0, eq_in_gg(x0, []))) U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_in_aa)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (45) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_in_aa)) at position [0,1] we obtained the following new rules [LPAR04]: (U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_out_aa)),U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_out_aa))) ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag(Ys)) -> VLCND_IN_A VLCND_IN_A -> U1_A(vl_in_aa) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)) U2_A(select_out_aga(y0, x0)) -> U3_A(U5_ag(x0, eq_in_gg(x0, []))) U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_out_aa)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (47) TransformationProof (SOUND) By narrowing [LPAR04] the rule VLCND_IN_A -> U1_A(vl_in_aa) at position [0] we obtained the following new rules [LPAR04]: (VLCND_IN_A -> U1_A(U5_aa(eq_in_ag([]))),VLCND_IN_A -> U1_A(U5_aa(eq_in_ag([])))) (VLCND_IN_A -> U1_A(U6_aa(p_in_aa)),VLCND_IN_A -> U1_A(U6_aa(p_in_aa))) ---------------------------------------- (48) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag(Ys)) -> VLCND_IN_A U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)) U2_A(select_out_aga(y0, x0)) -> U3_A(U5_ag(x0, eq_in_gg(x0, []))) U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_out_aa)) VLCND_IN_A -> U1_A(U5_aa(eq_in_ag([]))) VLCND_IN_A -> U1_A(U6_aa(p_in_aa)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (49) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule VLCND_IN_A -> U1_A(U5_aa(eq_in_ag([]))) at position [0,0] we obtained the following new rules [LPAR04]: (VLCND_IN_A -> U1_A(U5_aa(eq_out_ag([], []))),VLCND_IN_A -> U1_A(U5_aa(eq_out_ag([], [])))) ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag(Ys)) -> VLCND_IN_A U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)) U2_A(select_out_aga(y0, x0)) -> U3_A(U5_ag(x0, eq_in_gg(x0, []))) U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_out_aa)) VLCND_IN_A -> U1_A(U6_aa(p_in_aa)) VLCND_IN_A -> U1_A(U5_aa(eq_out_ag([], []))) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (51) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule VLCND_IN_A -> U1_A(U6_aa(p_in_aa)) at position [0,0] we obtained the following new rules [LPAR04]: (VLCND_IN_A -> U1_A(U6_aa(p_out_aa)),VLCND_IN_A -> U1_A(U6_aa(p_out_aa))) ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag(Ys)) -> VLCND_IN_A U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)) U2_A(select_out_aga(y0, x0)) -> U3_A(U5_ag(x0, eq_in_gg(x0, []))) U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_out_aa)) VLCND_IN_A -> U1_A(U5_aa(eq_out_ag([], []))) VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (53) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule VLCND_IN_A -> U1_A(U5_aa(eq_out_ag([], []))) at position [0] we obtained the following new rules [LPAR04]: (VLCND_IN_A -> U1_A(vl_out_aa([])),VLCND_IN_A -> U1_A(vl_out_aa([]))) ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag(Ys)) -> VLCND_IN_A U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)) U2_A(select_out_aga(y0, x0)) -> U3_A(U5_ag(x0, eq_in_gg(x0, []))) U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_out_aa)) VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) VLCND_IN_A -> U1_A(vl_out_aa([])) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (55) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))) U2_A(select_out_aga(y0, x0)) -> U3_A(U5_ag(x0, eq_in_gg(x0, []))) U3_A(vl_out_ag(Ys)) -> VLCND_IN_A U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (57) TransformationProof (SOUND) By narrowing [LPAR04] the rule U2_A(select_out_aga(y0, x0)) -> U3_A(U5_ag(x0, eq_in_gg(x0, []))) at position [0,1] we obtained the following new rules [LPAR04]: (U2_A(select_out_aga(y0, [])) -> U3_A(U5_ag([], eq_out_gg([], []))),U2_A(select_out_aga(y0, [])) -> U3_A(U5_ag([], eq_out_gg([], [])))) ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))) U3_A(vl_out_ag(Ys)) -> VLCND_IN_A U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)) U2_A(select_out_aga(y0, [])) -> U3_A(U5_ag([], eq_out_gg([], []))) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (59) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U2_A(select_out_aga(y0, [])) -> U3_A(U5_ag([], eq_out_gg([], []))) at position [0] we obtained the following new rules [LPAR04]: (U2_A(select_out_aga(y0, [])) -> U3_A(vl_out_ag([])),U2_A(select_out_aga(y0, [])) -> U3_A(vl_out_ag([]))) ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))) U3_A(vl_out_ag(Ys)) -> VLCND_IN_A U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)) U2_A(select_out_aga(y0, [])) -> U3_A(vl_out_ag([])) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (61) TransformationProof (EQUIVALENT) By forward instantiating [JAR06] the rule U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(.(x0), x0)) we obtained the following new rules [LPAR04]: (U1_A(vl_out_aa(.(.(y_1)))) -> U2_A(select_out_aga(.(.(y_1)), .(y_1))),U1_A(vl_out_aa(.(.(y_1)))) -> U2_A(select_out_aga(.(.(y_1)), .(y_1)))) (U1_A(vl_out_aa(.([]))) -> U2_A(select_out_aga(.([]), [])),U1_A(vl_out_aa(.([]))) -> U2_A(select_out_aga(.([]), []))) ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(x0, select_in_aga(x0))) U3_A(vl_out_ag(Ys)) -> VLCND_IN_A U2_A(select_out_aga(y0, .(x0))) -> U3_A(U6_ag(x0, p_out_aa)) U2_A(select_out_aga(y0, [])) -> U3_A(vl_out_ag([])) U1_A(vl_out_aa(.(.(y_1)))) -> U2_A(select_out_aga(.(.(y_1)), .(y_1))) U1_A(vl_out_aa(.([]))) -> U2_A(select_out_aga(.([]), [])) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(Xs, select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(.(Xs), Xs) vl_in_ag(L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(Xs, select_out_aga(Xs, Ys)) -> select_out_aga(.(Xs), .(Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(L) U6_ag(Xs, p_out_aa) -> U7_ag(Xs, vl_in_ag(Xs)) U5_aa(eq_out_ag(L, [])) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa -> p_out_aa U7_ag(Xs, vl_out_ag(Xs)) -> vl_out_ag(.(Xs)) eq_in_ag(X) -> eq_out_ag(X, X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0, x1) U5_ag(x0, x1) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0, x1) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (63) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_GA(N, .(X2, Xs)) -> U6_GA(N, X2, Xs, p_in_ga(N, P)) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> VL_IN_GA(P, Xs) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x1, x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1, x2) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x1, x2) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x1, x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x1, x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x3, x5) select_out_aga(x1, x2, x3) = select_out_aga(x2, x3) U3_g(x1, x2) = U3_g(x1, x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x1, x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg(x1, x2) vl_out_ag(x1, x2) = vl_out_ag(x2) U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x3, x4) U4_g(x1, x2) = U4_g(x1, x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g(x1) VL_IN_GA(x1, x2) = VL_IN_GA(x1) U6_GA(x1, x2, x3, x4) = U6_GA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (64) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (65) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_GA(N, .(X2, Xs)) -> U6_GA(N, X2, Xs, p_in_ga(N, P)) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> VL_IN_GA(P, Xs) The TRS R consists of the following rules: p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) The argument filtering Pi contains the following mapping: 0 = 0 p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x1, x2) s(x1) = s(x1) .(x1, x2) = .(x2) VL_IN_GA(x1, x2) = VL_IN_GA(x1) U6_GA(x1, x2, x3, x4) = U6_GA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (66) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: vlcnd_in_1: (b) (f) vl_in_2: (b,f) (f,b) (f,f) select_in_3: (f,b,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x2) U6_ga(x1, x2, x3, x4) = U6_ga(x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x5) select_out_aga(x1, x2, x3) = select_out_aga(x3) U3_g(x1, x2) = U3_g(x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg vl_out_ag(x1, x2) = vl_out_ag U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x4) U4_g(x1, x2) = U4_g(x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (67) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x2) U6_ga(x1, x2, x3, x4) = U6_ga(x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x5) select_out_aga(x1, x2, x3) = select_out_aga(x3) U3_g(x1, x2) = U3_g(x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg vl_out_ag(x1, x2) = vl_out_ag U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x4) U4_g(x1, x2) = U4_g(x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g ---------------------------------------- (68) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: VLCND_IN_G(N) -> U1_G(N, vl_in_ga(N, Xs)) VLCND_IN_G(N) -> VL_IN_GA(N, Xs) VL_IN_GA(0, L) -> U5_GA(L, eq_in_ag(L, [])) VL_IN_GA(0, L) -> EQ_IN_AG(L, []) VL_IN_GA(N, .(X2, Xs)) -> U6_GA(N, X2, Xs, p_in_ga(N, P)) VL_IN_GA(N, .(X2, Xs)) -> P_IN_GA(N, P) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> U7_GA(N, X2, Xs, vl_in_ga(P, Xs)) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> VL_IN_GA(P, Xs) U1_G(N, vl_out_ga(N, Xs)) -> U2_G(N, select_in_aga(X1, Xs, Ys)) U1_G(N, vl_out_ga(N, Xs)) -> SELECT_IN_AGA(X1, Xs, Ys) SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> U8_AGA(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> SELECT_IN_AGA(X, Xs, Ys) U2_G(N, select_out_aga(X1, Xs, Ys)) -> U3_G(N, vl_in_ag(M, Ys)) U2_G(N, select_out_aga(X1, Xs, Ys)) -> VL_IN_AG(M, Ys) VL_IN_AG(0, L) -> U5_AG(L, eq_in_gg(L, [])) VL_IN_AG(0, L) -> EQ_IN_GG(L, []) VL_IN_AG(N, .(X2, Xs)) -> U6_AG(N, X2, Xs, p_in_aa(N, P)) VL_IN_AG(N, .(X2, Xs)) -> P_IN_AA(N, P) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> U7_AG(N, X2, Xs, vl_in_ag(P, Xs)) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AG(P, Xs) U3_G(N, vl_out_ag(M, Ys)) -> U4_G(N, vlcnd_in_a(M)) U3_G(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) VLCND_IN_A(N) -> U1_A(N, vl_in_aa(N, Xs)) VLCND_IN_A(N) -> VL_IN_AA(N, Xs) VL_IN_AA(0, L) -> U5_AA(L, eq_in_ag(L, [])) VL_IN_AA(0, L) -> EQ_IN_AG(L, []) VL_IN_AA(N, .(X2, Xs)) -> U6_AA(N, X2, Xs, p_in_aa(N, P)) VL_IN_AA(N, .(X2, Xs)) -> P_IN_AA(N, P) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> U7_AA(N, X2, Xs, vl_in_aa(P, Xs)) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AA(P, Xs) U1_A(N, vl_out_aa(N, Xs)) -> U2_A(N, select_in_aga(X1, Xs, Ys)) U1_A(N, vl_out_aa(N, Xs)) -> SELECT_IN_AGA(X1, Xs, Ys) U2_A(N, select_out_aga(X1, Xs, Ys)) -> U3_A(N, vl_in_ag(M, Ys)) U2_A(N, select_out_aga(X1, Xs, Ys)) -> VL_IN_AG(M, Ys) U3_A(N, vl_out_ag(M, Ys)) -> U4_A(N, vlcnd_in_a(M)) U3_A(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x2) U6_ga(x1, x2, x3, x4) = U6_ga(x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x5) select_out_aga(x1, x2, x3) = select_out_aga(x3) U3_g(x1, x2) = U3_g(x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg vl_out_ag(x1, x2) = vl_out_ag U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x4) U4_g(x1, x2) = U4_g(x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g VLCND_IN_G(x1) = VLCND_IN_G(x1) U1_G(x1, x2) = U1_G(x2) VL_IN_GA(x1, x2) = VL_IN_GA(x1) U5_GA(x1, x2) = U5_GA(x2) EQ_IN_AG(x1, x2) = EQ_IN_AG(x2) U6_GA(x1, x2, x3, x4) = U6_GA(x4) P_IN_GA(x1, x2) = P_IN_GA(x1) U7_GA(x1, x2, x3, x4) = U7_GA(x4) U2_G(x1, x2) = U2_G(x2) SELECT_IN_AGA(x1, x2, x3) = SELECT_IN_AGA(x2) U8_AGA(x1, x2, x3, x4, x5) = U8_AGA(x5) U3_G(x1, x2) = U3_G(x2) VL_IN_AG(x1, x2) = VL_IN_AG(x2) U5_AG(x1, x2) = U5_AG(x2) EQ_IN_GG(x1, x2) = EQ_IN_GG(x1, x2) U6_AG(x1, x2, x3, x4) = U6_AG(x3, x4) P_IN_AA(x1, x2) = P_IN_AA U7_AG(x1, x2, x3, x4) = U7_AG(x4) U4_G(x1, x2) = U4_G(x2) VLCND_IN_A(x1) = VLCND_IN_A U1_A(x1, x2) = U1_A(x2) VL_IN_AA(x1, x2) = VL_IN_AA U5_AA(x1, x2) = U5_AA(x2) U6_AA(x1, x2, x3, x4) = U6_AA(x4) U7_AA(x1, x2, x3, x4) = U7_AA(x4) U2_A(x1, x2) = U2_A(x2) U3_A(x1, x2) = U3_A(x2) U4_A(x1, x2) = U4_A(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (69) Obligation: Pi DP problem: The TRS P consists of the following rules: VLCND_IN_G(N) -> U1_G(N, vl_in_ga(N, Xs)) VLCND_IN_G(N) -> VL_IN_GA(N, Xs) VL_IN_GA(0, L) -> U5_GA(L, eq_in_ag(L, [])) VL_IN_GA(0, L) -> EQ_IN_AG(L, []) VL_IN_GA(N, .(X2, Xs)) -> U6_GA(N, X2, Xs, p_in_ga(N, P)) VL_IN_GA(N, .(X2, Xs)) -> P_IN_GA(N, P) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> U7_GA(N, X2, Xs, vl_in_ga(P, Xs)) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> VL_IN_GA(P, Xs) U1_G(N, vl_out_ga(N, Xs)) -> U2_G(N, select_in_aga(X1, Xs, Ys)) U1_G(N, vl_out_ga(N, Xs)) -> SELECT_IN_AGA(X1, Xs, Ys) SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> U8_AGA(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> SELECT_IN_AGA(X, Xs, Ys) U2_G(N, select_out_aga(X1, Xs, Ys)) -> U3_G(N, vl_in_ag(M, Ys)) U2_G(N, select_out_aga(X1, Xs, Ys)) -> VL_IN_AG(M, Ys) VL_IN_AG(0, L) -> U5_AG(L, eq_in_gg(L, [])) VL_IN_AG(0, L) -> EQ_IN_GG(L, []) VL_IN_AG(N, .(X2, Xs)) -> U6_AG(N, X2, Xs, p_in_aa(N, P)) VL_IN_AG(N, .(X2, Xs)) -> P_IN_AA(N, P) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> U7_AG(N, X2, Xs, vl_in_ag(P, Xs)) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AG(P, Xs) U3_G(N, vl_out_ag(M, Ys)) -> U4_G(N, vlcnd_in_a(M)) U3_G(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) VLCND_IN_A(N) -> U1_A(N, vl_in_aa(N, Xs)) VLCND_IN_A(N) -> VL_IN_AA(N, Xs) VL_IN_AA(0, L) -> U5_AA(L, eq_in_ag(L, [])) VL_IN_AA(0, L) -> EQ_IN_AG(L, []) VL_IN_AA(N, .(X2, Xs)) -> U6_AA(N, X2, Xs, p_in_aa(N, P)) VL_IN_AA(N, .(X2, Xs)) -> P_IN_AA(N, P) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> U7_AA(N, X2, Xs, vl_in_aa(P, Xs)) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AA(P, Xs) U1_A(N, vl_out_aa(N, Xs)) -> U2_A(N, select_in_aga(X1, Xs, Ys)) U1_A(N, vl_out_aa(N, Xs)) -> SELECT_IN_AGA(X1, Xs, Ys) U2_A(N, select_out_aga(X1, Xs, Ys)) -> U3_A(N, vl_in_ag(M, Ys)) U2_A(N, select_out_aga(X1, Xs, Ys)) -> VL_IN_AG(M, Ys) U3_A(N, vl_out_ag(M, Ys)) -> U4_A(N, vlcnd_in_a(M)) U3_A(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x2) U6_ga(x1, x2, x3, x4) = U6_ga(x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x5) select_out_aga(x1, x2, x3) = select_out_aga(x3) U3_g(x1, x2) = U3_g(x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg vl_out_ag(x1, x2) = vl_out_ag U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x4) U4_g(x1, x2) = U4_g(x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g VLCND_IN_G(x1) = VLCND_IN_G(x1) U1_G(x1, x2) = U1_G(x2) VL_IN_GA(x1, x2) = VL_IN_GA(x1) U5_GA(x1, x2) = U5_GA(x2) EQ_IN_AG(x1, x2) = EQ_IN_AG(x2) U6_GA(x1, x2, x3, x4) = U6_GA(x4) P_IN_GA(x1, x2) = P_IN_GA(x1) U7_GA(x1, x2, x3, x4) = U7_GA(x4) U2_G(x1, x2) = U2_G(x2) SELECT_IN_AGA(x1, x2, x3) = SELECT_IN_AGA(x2) U8_AGA(x1, x2, x3, x4, x5) = U8_AGA(x5) U3_G(x1, x2) = U3_G(x2) VL_IN_AG(x1, x2) = VL_IN_AG(x2) U5_AG(x1, x2) = U5_AG(x2) EQ_IN_GG(x1, x2) = EQ_IN_GG(x1, x2) U6_AG(x1, x2, x3, x4) = U6_AG(x3, x4) P_IN_AA(x1, x2) = P_IN_AA U7_AG(x1, x2, x3, x4) = U7_AG(x4) U4_G(x1, x2) = U4_G(x2) VLCND_IN_A(x1) = VLCND_IN_A U1_A(x1, x2) = U1_A(x2) VL_IN_AA(x1, x2) = VL_IN_AA U5_AA(x1, x2) = U5_AA(x2) U6_AA(x1, x2, x3, x4) = U6_AA(x4) U7_AA(x1, x2, x3, x4) = U7_AA(x4) U2_A(x1, x2) = U2_A(x2) U3_A(x1, x2) = U3_A(x2) U4_A(x1, x2) = U4_A(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (70) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 5 SCCs with 25 less nodes. ---------------------------------------- (71) Complex Obligation (AND) ---------------------------------------- (72) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_AA(N, .(X2, Xs)) -> U6_AA(N, X2, Xs, p_in_aa(N, P)) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AA(P, Xs) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x2) U6_ga(x1, x2, x3, x4) = U6_ga(x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x5) select_out_aga(x1, x2, x3) = select_out_aga(x3) U3_g(x1, x2) = U3_g(x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg vl_out_ag(x1, x2) = vl_out_ag U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x4) U4_g(x1, x2) = U4_g(x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g VL_IN_AA(x1, x2) = VL_IN_AA U6_AA(x1, x2, x3, x4) = U6_AA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (73) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (74) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_AA(N, .(X2, Xs)) -> U6_AA(N, X2, Xs, p_in_aa(N, P)) U6_AA(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AA(P, Xs) The TRS R consists of the following rules: p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) .(x1, x2) = .(x2) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa VL_IN_AA(x1, x2) = VL_IN_AA U6_AA(x1, x2, x3, x4) = U6_AA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (75) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (76) Obligation: Q DP problem: The TRS P consists of the following rules: VL_IN_AA -> U6_AA(p_in_aa) U6_AA(p_out_aa) -> VL_IN_AA The TRS R consists of the following rules: p_in_aa -> p_out_aa The set Q consists of the following terms: p_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (77) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule VL_IN_AA -> U6_AA(p_in_aa) at position [0] we obtained the following new rules [LPAR04]: (VL_IN_AA -> U6_AA(p_out_aa),VL_IN_AA -> U6_AA(p_out_aa)) ---------------------------------------- (78) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(p_out_aa) -> VL_IN_AA VL_IN_AA -> U6_AA(p_out_aa) The TRS R consists of the following rules: p_in_aa -> p_out_aa The set Q consists of the following terms: p_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (79) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (80) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(p_out_aa) -> VL_IN_AA VL_IN_AA -> U6_AA(p_out_aa) R is empty. The set Q consists of the following terms: p_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (81) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. p_in_aa ---------------------------------------- (82) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(p_out_aa) -> VL_IN_AA VL_IN_AA -> U6_AA(p_out_aa) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (83) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = VL_IN_AA evaluates to t =VL_IN_AA Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence VL_IN_AA -> U6_AA(p_out_aa) with rule VL_IN_AA -> U6_AA(p_out_aa) at position [] and matcher [ ] U6_AA(p_out_aa) -> VL_IN_AA with rule U6_AA(p_out_aa) -> VL_IN_AA Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (84) NO ---------------------------------------- (85) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_AG(N, .(X2, Xs)) -> U6_AG(N, X2, Xs, p_in_aa(N, P)) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AG(P, Xs) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x2) U6_ga(x1, x2, x3, x4) = U6_ga(x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x5) select_out_aga(x1, x2, x3) = select_out_aga(x3) U3_g(x1, x2) = U3_g(x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg vl_out_ag(x1, x2) = vl_out_ag U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x4) U4_g(x1, x2) = U4_g(x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g VL_IN_AG(x1, x2) = VL_IN_AG(x2) U6_AG(x1, x2, x3, x4) = U6_AG(x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (86) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (87) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_AG(N, .(X2, Xs)) -> U6_AG(N, X2, Xs, p_in_aa(N, P)) U6_AG(N, X2, Xs, p_out_aa(N, P)) -> VL_IN_AG(P, Xs) The TRS R consists of the following rules: p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) .(x1, x2) = .(x2) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa VL_IN_AG(x1, x2) = VL_IN_AG(x2) U6_AG(x1, x2, x3, x4) = U6_AG(x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (88) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (89) Obligation: Q DP problem: The TRS P consists of the following rules: VL_IN_AG(.(Xs)) -> U6_AG(Xs, p_in_aa) U6_AG(Xs, p_out_aa) -> VL_IN_AG(Xs) The TRS R consists of the following rules: p_in_aa -> p_out_aa The set Q consists of the following terms: p_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (90) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U6_AG(Xs, p_out_aa) -> VL_IN_AG(Xs) The graph contains the following edges 1 >= 1 *VL_IN_AG(.(Xs)) -> U6_AG(Xs, p_in_aa) The graph contains the following edges 1 > 1 ---------------------------------------- (91) YES ---------------------------------------- (92) Obligation: Pi DP problem: The TRS P consists of the following rules: SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> SELECT_IN_AGA(X, Xs, Ys) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x2) U6_ga(x1, x2, x3, x4) = U6_ga(x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x5) select_out_aga(x1, x2, x3) = select_out_aga(x3) U3_g(x1, x2) = U3_g(x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg vl_out_ag(x1, x2) = vl_out_ag U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x4) U4_g(x1, x2) = U4_g(x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g SELECT_IN_AGA(x1, x2, x3) = SELECT_IN_AGA(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (93) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (94) Obligation: Pi DP problem: The TRS P consists of the following rules: SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) -> SELECT_IN_AGA(X, Xs, Ys) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) SELECT_IN_AGA(x1, x2, x3) = SELECT_IN_AGA(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (95) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (96) Obligation: Q DP problem: The TRS P consists of the following rules: SELECT_IN_AGA(.(Xs)) -> SELECT_IN_AGA(Xs) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (97) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *SELECT_IN_AGA(.(Xs)) -> SELECT_IN_AGA(Xs) The graph contains the following edges 1 > 1 ---------------------------------------- (98) YES ---------------------------------------- (99) Obligation: Pi DP problem: The TRS P consists of the following rules: U1_A(N, vl_out_aa(N, Xs)) -> U2_A(N, select_in_aga(X1, Xs, Ys)) U2_A(N, select_out_aga(X1, Xs, Ys)) -> U3_A(N, vl_in_ag(M, Ys)) U3_A(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) VLCND_IN_A(N) -> U1_A(N, vl_in_aa(N, Xs)) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x2) U6_ga(x1, x2, x3, x4) = U6_ga(x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x5) select_out_aga(x1, x2, x3) = select_out_aga(x3) U3_g(x1, x2) = U3_g(x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg vl_out_ag(x1, x2) = vl_out_ag U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x4) U4_g(x1, x2) = U4_g(x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g VLCND_IN_A(x1) = VLCND_IN_A U1_A(x1, x2) = U1_A(x2) U2_A(x1, x2) = U2_A(x2) U3_A(x1, x2) = U3_A(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (100) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (101) Obligation: Pi DP problem: The TRS P consists of the following rules: U1_A(N, vl_out_aa(N, Xs)) -> U2_A(N, select_in_aga(X1, Xs, Ys)) U2_A(N, select_out_aga(X1, Xs, Ys)) -> U3_A(N, vl_in_ag(M, Ys)) U3_A(N, vl_out_ag(M, Ys)) -> VLCND_IN_A(M) VLCND_IN_A(N) -> U1_A(N, vl_in_aa(N, Xs)) The TRS R consists of the following rules: select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) eq_in_gg(X, X) -> eq_out_gg(X, X) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) eq_in_ag(X, X) -> eq_out_ag(X, X) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) The argument filtering Pi contains the following mapping: 0 = 0 eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1) [] = [] s(x1) = s(x1) .(x1, x2) = .(x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x5) select_out_aga(x1, x2, x3) = select_out_aga(x3) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg vl_out_ag(x1, x2) = vl_out_ag U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x4) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) VLCND_IN_A(x1) = VLCND_IN_A U1_A(x1, x2) = U1_A(x2) U2_A(x1, x2) = U2_A(x2) U3_A(x1, x2) = U3_A(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (102) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (103) Obligation: Q DP problem: The TRS P consists of the following rules: U1_A(vl_out_aa(Xs)) -> U2_A(select_in_aga(Xs)) U2_A(select_out_aga(Ys)) -> U3_A(vl_in_ag(Ys)) U3_A(vl_out_ag) -> VLCND_IN_A VLCND_IN_A -> U1_A(vl_in_aa) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (104) TransformationProof (SOUND) By narrowing [LPAR04] the rule U1_A(vl_out_aa(Xs)) -> U2_A(select_in_aga(Xs)) at position [0] we obtained the following new rules [LPAR04]: (U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))),U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0)))) (U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)),U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0))) ---------------------------------------- (105) Obligation: Q DP problem: The TRS P consists of the following rules: U2_A(select_out_aga(Ys)) -> U3_A(vl_in_ag(Ys)) U3_A(vl_out_ag) -> VLCND_IN_A VLCND_IN_A -> U1_A(vl_in_aa) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (106) TransformationProof (SOUND) By narrowing [LPAR04] the rule U2_A(select_out_aga(Ys)) -> U3_A(vl_in_ag(Ys)) at position [0] we obtained the following new rules [LPAR04]: (U2_A(select_out_aga(x0)) -> U3_A(U5_ag(eq_in_gg(x0, []))),U2_A(select_out_aga(x0)) -> U3_A(U5_ag(eq_in_gg(x0, [])))) (U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_in_aa)),U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_in_aa))) ---------------------------------------- (107) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag) -> VLCND_IN_A VLCND_IN_A -> U1_A(vl_in_aa) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)) U2_A(select_out_aga(x0)) -> U3_A(U5_ag(eq_in_gg(x0, []))) U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_in_aa)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (108) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_in_aa)) at position [0,1] we obtained the following new rules [LPAR04]: (U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_out_aa)),U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_out_aa))) ---------------------------------------- (109) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag) -> VLCND_IN_A VLCND_IN_A -> U1_A(vl_in_aa) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)) U2_A(select_out_aga(x0)) -> U3_A(U5_ag(eq_in_gg(x0, []))) U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_out_aa)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (110) TransformationProof (SOUND) By narrowing [LPAR04] the rule VLCND_IN_A -> U1_A(vl_in_aa) at position [0] we obtained the following new rules [LPAR04]: (VLCND_IN_A -> U1_A(U5_aa(eq_in_ag([]))),VLCND_IN_A -> U1_A(U5_aa(eq_in_ag([])))) (VLCND_IN_A -> U1_A(U6_aa(p_in_aa)),VLCND_IN_A -> U1_A(U6_aa(p_in_aa))) ---------------------------------------- (111) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag) -> VLCND_IN_A U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)) U2_A(select_out_aga(x0)) -> U3_A(U5_ag(eq_in_gg(x0, []))) U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_out_aa)) VLCND_IN_A -> U1_A(U5_aa(eq_in_ag([]))) VLCND_IN_A -> U1_A(U6_aa(p_in_aa)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (112) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule VLCND_IN_A -> U1_A(U5_aa(eq_in_ag([]))) at position [0,0] we obtained the following new rules [LPAR04]: (VLCND_IN_A -> U1_A(U5_aa(eq_out_ag([]))),VLCND_IN_A -> U1_A(U5_aa(eq_out_ag([])))) ---------------------------------------- (113) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag) -> VLCND_IN_A U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)) U2_A(select_out_aga(x0)) -> U3_A(U5_ag(eq_in_gg(x0, []))) U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_out_aa)) VLCND_IN_A -> U1_A(U6_aa(p_in_aa)) VLCND_IN_A -> U1_A(U5_aa(eq_out_ag([]))) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (114) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule VLCND_IN_A -> U1_A(U6_aa(p_in_aa)) at position [0,0] we obtained the following new rules [LPAR04]: (VLCND_IN_A -> U1_A(U6_aa(p_out_aa)),VLCND_IN_A -> U1_A(U6_aa(p_out_aa))) ---------------------------------------- (115) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag) -> VLCND_IN_A U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)) U2_A(select_out_aga(x0)) -> U3_A(U5_ag(eq_in_gg(x0, []))) U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_out_aa)) VLCND_IN_A -> U1_A(U5_aa(eq_out_ag([]))) VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (116) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule VLCND_IN_A -> U1_A(U5_aa(eq_out_ag([]))) at position [0] we obtained the following new rules [LPAR04]: (VLCND_IN_A -> U1_A(vl_out_aa([])),VLCND_IN_A -> U1_A(vl_out_aa([]))) ---------------------------------------- (117) Obligation: Q DP problem: The TRS P consists of the following rules: U3_A(vl_out_ag) -> VLCND_IN_A U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)) U2_A(select_out_aga(x0)) -> U3_A(U5_ag(eq_in_gg(x0, []))) U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_out_aa)) VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) VLCND_IN_A -> U1_A(vl_out_aa([])) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (118) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (119) Obligation: Q DP problem: The TRS P consists of the following rules: VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))) U2_A(select_out_aga(x0)) -> U3_A(U5_ag(eq_in_gg(x0, []))) U3_A(vl_out_ag) -> VLCND_IN_A U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (120) TransformationProof (SOUND) By narrowing [LPAR04] the rule U2_A(select_out_aga(x0)) -> U3_A(U5_ag(eq_in_gg(x0, []))) at position [0,0] we obtained the following new rules [LPAR04]: (U2_A(select_out_aga([])) -> U3_A(U5_ag(eq_out_gg)),U2_A(select_out_aga([])) -> U3_A(U5_ag(eq_out_gg))) ---------------------------------------- (121) Obligation: Q DP problem: The TRS P consists of the following rules: VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))) U3_A(vl_out_ag) -> VLCND_IN_A U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)) U2_A(select_out_aga([])) -> U3_A(U5_ag(eq_out_gg)) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (122) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U2_A(select_out_aga([])) -> U3_A(U5_ag(eq_out_gg)) at position [0] we obtained the following new rules [LPAR04]: (U2_A(select_out_aga([])) -> U3_A(vl_out_ag),U2_A(select_out_aga([])) -> U3_A(vl_out_ag)) ---------------------------------------- (123) Obligation: Q DP problem: The TRS P consists of the following rules: VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))) U3_A(vl_out_ag) -> VLCND_IN_A U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)) U2_A(select_out_aga([])) -> U3_A(vl_out_ag) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (124) TransformationProof (EQUIVALENT) By forward instantiating [JAR06] the rule U1_A(vl_out_aa(.(x0))) -> U2_A(select_out_aga(x0)) we obtained the following new rules [LPAR04]: (U1_A(vl_out_aa(.(.(y_0)))) -> U2_A(select_out_aga(.(y_0))),U1_A(vl_out_aa(.(.(y_0)))) -> U2_A(select_out_aga(.(y_0)))) (U1_A(vl_out_aa(.([]))) -> U2_A(select_out_aga([])),U1_A(vl_out_aa(.([]))) -> U2_A(select_out_aga([]))) ---------------------------------------- (125) Obligation: Q DP problem: The TRS P consists of the following rules: VLCND_IN_A -> U1_A(U6_aa(p_out_aa)) U1_A(vl_out_aa(.(x0))) -> U2_A(U8_aga(select_in_aga(x0))) U3_A(vl_out_ag) -> VLCND_IN_A U2_A(select_out_aga(.(x0))) -> U3_A(U6_ag(x0, p_out_aa)) U2_A(select_out_aga([])) -> U3_A(vl_out_ag) U1_A(vl_out_aa(.(.(y_0)))) -> U2_A(select_out_aga(.(y_0))) U1_A(vl_out_aa(.([]))) -> U2_A(select_out_aga([])) The TRS R consists of the following rules: select_in_aga(.(Xs)) -> U8_aga(select_in_aga(Xs)) select_in_aga(.(Xs)) -> select_out_aga(Xs) vl_in_ag(L) -> U5_ag(eq_in_gg(L, [])) vl_in_ag(.(Xs)) -> U6_ag(Xs, p_in_aa) vl_in_aa -> U5_aa(eq_in_ag([])) vl_in_aa -> U6_aa(p_in_aa) U8_aga(select_out_aga(Ys)) -> select_out_aga(.(Ys)) U5_ag(eq_out_gg) -> vl_out_ag U6_ag(Xs, p_out_aa) -> U7_ag(vl_in_ag(Xs)) U5_aa(eq_out_ag(L)) -> vl_out_aa(L) U6_aa(p_out_aa) -> U7_aa(vl_in_aa) eq_in_gg(X, X) -> eq_out_gg p_in_aa -> p_out_aa U7_ag(vl_out_ag) -> vl_out_ag eq_in_ag(X) -> eq_out_ag(X) U7_aa(vl_out_aa(Xs)) -> vl_out_aa(.(Xs)) The set Q consists of the following terms: select_in_aga(x0) vl_in_ag(x0) vl_in_aa U8_aga(x0) U5_ag(x0) U6_ag(x0, x1) U5_aa(x0) U6_aa(x0) eq_in_gg(x0, x1) p_in_aa U7_ag(x0) eq_in_ag(x0) U7_aa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (126) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_GA(N, .(X2, Xs)) -> U6_GA(N, X2, Xs, p_in_ga(N, P)) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> VL_IN_GA(P, Xs) The TRS R consists of the following rules: vlcnd_in_g(N) -> U1_g(N, vl_in_ga(N, Xs)) vl_in_ga(0, L) -> U5_ga(L, eq_in_ag(L, [])) eq_in_ag(X, X) -> eq_out_ag(X, X) U5_ga(L, eq_out_ag(L, [])) -> vl_out_ga(0, L) vl_in_ga(N, .(X2, Xs)) -> U6_ga(N, X2, Xs, p_in_ga(N, P)) p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) U6_ga(N, X2, Xs, p_out_ga(N, P)) -> U7_ga(N, X2, Xs, vl_in_ga(P, Xs)) U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) -> vl_out_ga(N, .(X2, Xs)) U1_g(N, vl_out_ga(N, Xs)) -> U2_g(N, select_in_aga(X1, Xs, Ys)) select_in_aga(X, .(Y, Xs), .(Y, Ys)) -> U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys)) select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs) U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) -> select_out_aga(X, .(Y, Xs), .(Y, Ys)) U2_g(N, select_out_aga(X1, Xs, Ys)) -> U3_g(N, vl_in_ag(M, Ys)) vl_in_ag(0, L) -> U5_ag(L, eq_in_gg(L, [])) eq_in_gg(X, X) -> eq_out_gg(X, X) U5_ag(L, eq_out_gg(L, [])) -> vl_out_ag(0, L) vl_in_ag(N, .(X2, Xs)) -> U6_ag(N, X2, Xs, p_in_aa(N, P)) p_in_aa(0, 0) -> p_out_aa(0, 0) p_in_aa(s(X), X) -> p_out_aa(s(X), X) U6_ag(N, X2, Xs, p_out_aa(N, P)) -> U7_ag(N, X2, Xs, vl_in_ag(P, Xs)) U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) -> vl_out_ag(N, .(X2, Xs)) U3_g(N, vl_out_ag(M, Ys)) -> U4_g(N, vlcnd_in_a(M)) vlcnd_in_a(N) -> U1_a(N, vl_in_aa(N, Xs)) vl_in_aa(0, L) -> U5_aa(L, eq_in_ag(L, [])) U5_aa(L, eq_out_ag(L, [])) -> vl_out_aa(0, L) vl_in_aa(N, .(X2, Xs)) -> U6_aa(N, X2, Xs, p_in_aa(N, P)) U6_aa(N, X2, Xs, p_out_aa(N, P)) -> U7_aa(N, X2, Xs, vl_in_aa(P, Xs)) U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) -> vl_out_aa(N, .(X2, Xs)) U1_a(N, vl_out_aa(N, Xs)) -> U2_a(N, select_in_aga(X1, Xs, Ys)) U2_a(N, select_out_aga(X1, Xs, Ys)) -> U3_a(N, vl_in_ag(M, Ys)) U3_a(N, vl_out_ag(M, Ys)) -> U4_a(N, vlcnd_in_a(M)) vlcnd_in_a(0) -> vlcnd_out_a(0) U4_a(N, vlcnd_out_a(M)) -> vlcnd_out_a(N) U4_g(N, vlcnd_out_a(M)) -> vlcnd_out_g(N) vlcnd_in_g(0) -> vlcnd_out_g(0) The argument filtering Pi contains the following mapping: vlcnd_in_g(x1) = vlcnd_in_g(x1) U1_g(x1, x2) = U1_g(x2) vl_in_ga(x1, x2) = vl_in_ga(x1) 0 = 0 U5_ga(x1, x2) = U5_ga(x2) eq_in_ag(x1, x2) = eq_in_ag(x2) eq_out_ag(x1, x2) = eq_out_ag(x1) [] = [] vl_out_ga(x1, x2) = vl_out_ga(x2) U6_ga(x1, x2, x3, x4) = U6_ga(x4) p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x2) s(x1) = s(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x4) .(x1, x2) = .(x2) U2_g(x1, x2) = U2_g(x2) select_in_aga(x1, x2, x3) = select_in_aga(x2) U8_aga(x1, x2, x3, x4, x5) = U8_aga(x5) select_out_aga(x1, x2, x3) = select_out_aga(x3) U3_g(x1, x2) = U3_g(x2) vl_in_ag(x1, x2) = vl_in_ag(x2) U5_ag(x1, x2) = U5_ag(x2) eq_in_gg(x1, x2) = eq_in_gg(x1, x2) eq_out_gg(x1, x2) = eq_out_gg vl_out_ag(x1, x2) = vl_out_ag U6_ag(x1, x2, x3, x4) = U6_ag(x3, x4) p_in_aa(x1, x2) = p_in_aa p_out_aa(x1, x2) = p_out_aa U7_ag(x1, x2, x3, x4) = U7_ag(x4) U4_g(x1, x2) = U4_g(x2) vlcnd_in_a(x1) = vlcnd_in_a U1_a(x1, x2) = U1_a(x2) vl_in_aa(x1, x2) = vl_in_aa U5_aa(x1, x2) = U5_aa(x2) vl_out_aa(x1, x2) = vl_out_aa(x2) U6_aa(x1, x2, x3, x4) = U6_aa(x4) U7_aa(x1, x2, x3, x4) = U7_aa(x4) U2_a(x1, x2) = U2_a(x2) U3_a(x1, x2) = U3_a(x2) U4_a(x1, x2) = U4_a(x2) vlcnd_out_a(x1) = vlcnd_out_a vlcnd_out_g(x1) = vlcnd_out_g VL_IN_GA(x1, x2) = VL_IN_GA(x1) U6_GA(x1, x2, x3, x4) = U6_GA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (127) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (128) Obligation: Pi DP problem: The TRS P consists of the following rules: VL_IN_GA(N, .(X2, Xs)) -> U6_GA(N, X2, Xs, p_in_ga(N, P)) U6_GA(N, X2, Xs, p_out_ga(N, P)) -> VL_IN_GA(P, Xs) The TRS R consists of the following rules: p_in_ga(0, 0) -> p_out_ga(0, 0) p_in_ga(s(X), X) -> p_out_ga(s(X), X) The argument filtering Pi contains the following mapping: 0 = 0 p_in_ga(x1, x2) = p_in_ga(x1) p_out_ga(x1, x2) = p_out_ga(x2) s(x1) = s(x1) .(x1, x2) = .(x2) VL_IN_GA(x1, x2) = VL_IN_GA(x1) U6_GA(x1, x2, x3, x4) = U6_GA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (129) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 1, "program": { "directives": [], "clauses": [ [ "(vlcnd N)", "(',' (vl N Xs) (',' (select X1 Xs Ys) (',' (vl M Ys) (vlcnd M))))" ], [ "(vlcnd (0))", null ], [ "(vl (0) L)", "(',' (!) (eq L ([])))" ], [ "(vl N (. X2 Xs))", "(',' (p N P) (vl P Xs))" ], [ "(select X (. Y Xs) (. Y Ys))", "(select X Xs Ys)" ], [ "(select X (. X Xs) Xs)", null ], [ "(p (0) (0))", null ], [ "(p (s X) X)", null ], [ "(eq X X)", null ] ] }, "graph": { "nodes": { "270": { "goal": [{ "clause": -1, "scope": -1, "term": "(select X6 ([]) X7)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X6", "X7" ], "exprvars": [] } }, "type": "Nodes", "271": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (vl X8 T5) (vlcnd X8))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T5"], "free": ["X8"], "exprvars": [] } }, "393": { "goal": [ { "clause": 6, "scope": 10, "term": "(',' (p T29 X126) (vl X126 X128))" }, { "clause": 7, "scope": 10, "term": "(',' (p T29 X126) (vl X126 X128))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X128", "X126" ], "exprvars": [] } }, "350": { "goal": [{ "clause": 3, "scope": 8, "term": "(vl T23 X90)" }], "kb": { "nonunifying": [[ "(vl T23 X90)", "(vl (0) X102)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X90", "X102" ], "exprvars": [] } }, "352": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq X103 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X103"], "exprvars": [] } }, "396": { "goal": [{ "clause": 6, "scope": 10, "term": "(',' (p T29 X126) (vl X126 X128))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X128", "X126" ], "exprvars": [] } }, "398": { "goal": [{ "clause": 7, "scope": 10, "term": "(',' (p T29 X126) (vl X126 X128))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X128", "X126" ], "exprvars": [] } }, "355": { "goal": [{ "clause": 8, "scope": 9, "term": "(eq X103 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X103"], "exprvars": [] } }, "118": { "goal": [ { "clause": 2, "scope": 2, "term": "(',' (vl T3 X5) (',' (select X6 X5 X7) (',' (vl X8 X7) (vlcnd X8))))" }, { "clause": 3, "scope": 2, "term": "(',' (vl T3 X5) (',' (select X6 X5 X7) (',' (vl X8 X7) (vlcnd X8))))" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 1, "scope": 1, "term": "(vlcnd T3)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "319": { "goal": [{ "clause": 0, "scope": 7, "term": "(vlcnd T7)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "717": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl X93 T37)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X93"], "exprvars": [] } }, "719": { "goal": [{ "clause": -1, "scope": -1, "term": "(vlcnd T60)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "281": { "goal": [ { "clause": 4, "scope": 4, "term": "(select X6 ([]) X7)" }, { "clause": 5, "scope": 4, "term": "(select X6 ([]) X7)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X6", "X7" ], "exprvars": [] } }, "286": { "goal": [{ "clause": 5, "scope": 4, "term": "(select X6 ([]) X7)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X6", "X7" ], "exprvars": [] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(vlcnd T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "320": { "goal": [{ "clause": 1, "scope": 7, "term": "(vlcnd T7)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "364": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "289": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "366": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4": { "goal": [ { "clause": 0, "scope": 1, "term": "(vlcnd T1)" }, { "clause": 1, "scope": 1, "term": "(vlcnd T1)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "323": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (vl T23 X90) (',' (select X91 X90 X92) (',' (vl X93 X92) (vlcnd X93))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X90", "X91", "X92", "X93" ], "exprvars": [] } }, "687": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl T33 X128)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X128"], "exprvars": [] } }, "402": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl (0) X128)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X128"], "exprvars": [] } }, "688": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "721": { "goal": [ { "clause": 2, "scope": 12, "term": "(vl X93 T37)" }, { "clause": 3, "scope": 12, "term": "(vl X93 T37)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X93"], "exprvars": [] } }, "689": { "goal": [{ "clause": -1, "scope": -1, "term": "(select X91 T24 X92)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X91", "X92" ], "exprvars": [] } }, "722": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_12) (eq T66 ([])))" }, { "clause": 3, "scope": 12, "term": "(vl X93 T37)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X93"], "exprvars": [] } }, "404": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "723": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq T66 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "724": { "goal": [{ "clause": 8, "scope": 13, "term": "(eq T66 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "725": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "726": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "727": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "728": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "729": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "290": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl X8 T5)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T5"], "free": ["X8"], "exprvars": [] } }, "291": { "goal": [{ "clause": -1, "scope": -1, "term": "(vlcnd T7)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "293": { "goal": [ { "clause": 2, "scope": 5, "term": "(vl X8 T5)" }, { "clause": 3, "scope": 5, "term": "(vl X8 T5)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T5"], "free": ["X8"], "exprvars": [] } }, "690": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (vl X93 T37) (vlcnd X93))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X93"], "exprvars": [] } }, "251": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (!_2) (eq X14 ([]))) (',' (select X6 X14 X7) (',' (vl X8 X7) (vlcnd X8))))" }, { "clause": 3, "scope": 2, "term": "(',' (vl (0) X5) (',' (select X6 X5 X7) (',' (vl X8 X7) (vlcnd X8))))" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 1, "scope": 1, "term": "(vlcnd (0))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X5", "X6", "X7", "X8", "X14" ], "exprvars": [] } }, "691": { "goal": [ { "clause": 4, "scope": 11, "term": "(select X91 T24 X92)" }, { "clause": 5, "scope": 11, "term": "(select X91 T24 X92)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X91", "X92" ], "exprvars": [] } }, "296": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_5) (eq T11 ([])))" }, { "clause": 3, "scope": 5, "term": "(vl X8 T11)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T11"], "free": ["X8"], "exprvars": [] } }, "692": { "goal": [{ "clause": 4, "scope": 11, "term": "(select X91 T24 X92)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X91", "X92" ], "exprvars": [] } }, "253": { "goal": [ { "clause": 3, "scope": 2, "term": "(',' (vl T3 X5) (',' (select X6 X5 X7) (',' (vl X8 X7) (vlcnd X8))))" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 1, "scope": 1, "term": "(vlcnd T3)" } ], "kb": { "nonunifying": [[ "(vl T3 X5)", "(vl (0) X13)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": [ "X5", "X6", "X7", "X8", "X13" ], "exprvars": [] } }, "297": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq T11 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T11"], "free": [], "exprvars": [] } }, "330": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl T23 X90)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X90"], "exprvars": [] } }, "693": { "goal": [{ "clause": 5, "scope": 11, "term": "(select X91 T24 X92)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X91", "X92" ], "exprvars": [] } }, "298": { "goal": [{ "clause": 8, "scope": 6, "term": "(eq T11 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T11"], "free": [], "exprvars": [] } }, "694": { "goal": [{ "clause": -1, "scope": -1, "term": "(select X178 T50 X179)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X178", "X179" ], "exprvars": [] } }, "695": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "256": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (eq X14 ([])) (',' (select X6 X14 X7) (',' (vl X8 X7) (vlcnd X8))))" }, { "clause": 1, "scope": 1, "term": "(vlcnd (0))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X6", "X7", "X8", "X14" ], "exprvars": [] } }, "333": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (select X91 T24 X92) (',' (vl X93 X92) (vlcnd X93)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X91", "X92", "X93" ], "exprvars": [] } }, "696": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "697": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "730": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "698": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "731": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "732": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "733": { "goal": [{ "clause": 3, "scope": 2, "term": "(',' (vl T3 X5) (',' (select X6 X5 X7) (',' (vl X8 X7) (vlcnd X8))))" }], "kb": { "nonunifying": [[ "(vl T3 X5)", "(vl (0) X13)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": [ "X5", "X6", "X7", "X8", "X13" ], "exprvars": [] } }, "734": { "goal": [ { "clause": -1, "scope": 2, "term": null }, { "clause": 1, "scope": 1, "term": "(vlcnd T3)" } ], "kb": { "nonunifying": [[ "(vl T3 X5)", "(vl (0) X13)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": [ "X5", "X13" ], "exprvars": [] } }, "735": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (p T75 X237) (vl X237 X239)) (',' (select X6 (. X238 X239) X7) (',' (vl X8 X7) (vlcnd X8))))" }], "kb": { "nonunifying": [[ "(vl T75 X5)", "(vl (0) X13)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T75"], "free": [ "X5", "X6", "X7", "X8", "X13", "X238", "X239", "X237" ], "exprvars": [] } }, "736": { "goal": [ { "clause": 6, "scope": 14, "term": "(',' (',' (p T75 X237) (vl X237 X239)) (',' (select X6 (. X238 X239) X7) (',' (vl X8 X7) (vlcnd X8))))" }, { "clause": 7, "scope": 14, "term": "(',' (',' (p T75 X237) (vl X237 X239)) (',' (select X6 (. X238 X239) X7) (',' (vl X8 X7) (vlcnd X8))))" } ], "kb": { "nonunifying": [[ "(vl T75 X5)", "(vl (0) X13)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T75"], "free": [ "X5", "X6", "X7", "X8", "X13", "X238", "X239", "X237" ], "exprvars": [] } }, "737": { "goal": [{ "clause": 7, "scope": 14, "term": "(',' (',' (p T75 X237) (vl X237 X239)) (',' (select X6 (. X238 X239) X7) (',' (vl X8 X7) (vlcnd X8))))" }], "kb": { "nonunifying": [[ "(vl T75 X5)", "(vl (0) X13)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T75"], "free": [ "X5", "X6", "X7", "X8", "X13", "X238", "X239", "X237" ], "exprvars": [] } }, "738": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (vl T78 X239) (',' (select X6 (. X238 X239) X7) (',' (vl X8 X7) (vlcnd X8))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T78"], "free": [ "X6", "X7", "X8", "X238", "X239" ], "exprvars": [] } }, "739": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "78": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (vl T3 X5) (',' (select X6 X5 X7) (',' (vl X8 X7) (vlcnd X8))))" }, { "clause": 1, "scope": 1, "term": "(vlcnd T3)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "262": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (eq X14 ([])) (',' (select X6 X14 X7) (',' (vl X8 X7) (vlcnd X8))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X6", "X7", "X8", "X14" ], "exprvars": [] } }, "263": { "goal": [{ "clause": 1, "scope": 1, "term": "(vlcnd (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "340": { "goal": [ { "clause": 2, "scope": 8, "term": "(vl T23 X90)" }, { "clause": 3, "scope": 8, "term": "(vl T23 X90)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X90"], "exprvars": [] } }, "265": { "goal": [{ "clause": 8, "scope": 3, "term": "(',' (eq X14 ([])) (',' (select X6 X14 X7) (',' (vl X8 X7) (vlcnd X8))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X6", "X7", "X8", "X14" ], "exprvars": [] } }, "388": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T29 X126) (vl X126 X128))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X128", "X126" ], "exprvars": [] } }, "740": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl T78 X239)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T78"], "free": ["X239"], "exprvars": [] } }, "268": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (select X6 ([]) X7) (',' (vl X8 X7) (vlcnd X8)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X6", "X7", "X8" ], "exprvars": [] } }, "301": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "741": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (select X6 (. X238 T79) X7) (',' (vl X8 X7) (vlcnd X8)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X6", "X7", "X8", "X238" ], "exprvars": [] } }, "302": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "742": { "goal": [{ "clause": 1, "scope": 1, "term": "(vlcnd T3)" }], "kb": { "nonunifying": [[ "(vl T3 X5)", "(vl (0) X13)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": [ "X5", "X13" ], "exprvars": [] } }, "303": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "743": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "304": { "goal": [ { "clause": 0, "scope": 7, "term": "(vlcnd T7)" }, { "clause": 1, "scope": 7, "term": "(vlcnd T7)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "348": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_8) (eq X103 ([])))" }, { "clause": 3, "scope": 8, "term": "(vl T23 X90)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X90", "X103" ], "exprvars": [] } } }, "edges": [ { "from": 1, "to": 4, "label": "CASE" }, { "from": 4, "to": 78, "label": "ONLY EVAL with clause\nvlcnd(X4) :- ','(vl(X4, X5), ','(select(X6, X5, X7), ','(vl(X8, X7), vlcnd(X8)))).\nand substitutionT1 -> T3,\nX4 -> T3" }, { "from": 78, "to": 118, "label": "CASE" }, { "from": 118, "to": 251, "label": "EVAL with clause\nvl(0, X13) :- ','(!_2, eq(X13, [])).\nand substitutionT3 -> 0,\nX5 -> X14,\nX13 -> X14" }, { "from": 118, "to": 253, "label": "EVAL-BACKTRACK" }, { "from": 251, "to": 256, "label": "CUT" }, { "from": 253, "to": 733, "label": "PARALLEL" }, { "from": 253, "to": 734, "label": "PARALLEL" }, { "from": 256, "to": 262, "label": "PARALLEL" }, { "from": 256, "to": 263, "label": "PARALLEL" }, { "from": 262, "to": 265, "label": "CASE" }, { "from": 263, "to": 731, "label": "ONLY EVAL with clause\nvlcnd(0).\nand substitution" }, { "from": 265, "to": 268, "label": "ONLY EVAL with clause\neq(X40, X40).\nand substitutionX14 -> [],\nX40 -> [],\nX41 -> []" }, { "from": 268, "to": 270, "label": "SPLIT 1" }, { "from": 268, "to": 271, "label": "SPLIT 2\nnew knowledge:\nT4 is ground\nT5 is ground\nreplacements:X6 -> T4,\nX7 -> T5" }, { "from": 270, "to": 281, "label": "CASE" }, { "from": 271, "to": 290, "label": "SPLIT 1" }, { "from": 271, "to": 291, "label": "SPLIT 2\nnew knowledge:\nT5 is ground\nreplacements:X8 -> T7" }, { "from": 281, "to": 286, "label": "BACKTRACK\nfor clause: select(X, .(Y, Xs), .(Y, Ys)) :- select(X, Xs, Ys)because of non-unification" }, { "from": 286, "to": 289, "label": "BACKTRACK\nfor clause: select(X, .(X, Xs), Xs)because of non-unification" }, { "from": 290, "to": 293, "label": "CASE" }, { "from": 291, "to": 304, "label": "CASE" }, { "from": 293, "to": 296, "label": "ONLY EVAL with clause\nvl(0, X64) :- ','(!_5, eq(X64, [])).\nand substitutionX8 -> 0,\nT5 -> T11,\nX64 -> T11" }, { "from": 296, "to": 297, "label": "CUT" }, { "from": 297, "to": 298, "label": "CASE" }, { "from": 298, "to": 301, "label": "EVAL with clause\neq(X67, X67).\nand substitutionT11 -> [],\nX67 -> [],\nT14 -> []" }, { "from": 298, "to": 302, "label": "EVAL-BACKTRACK" }, { "from": 301, "to": 303, "label": "SUCCESS" }, { "from": 304, "to": 319, "label": "PARALLEL" }, { "from": 304, "to": 320, "label": "PARALLEL" }, { "from": 319, "to": 323, "label": "ONLY EVAL with clause\nvlcnd(X89) :- ','(vl(X89, X90), ','(select(X91, X90, X92), ','(vl(X93, X92), vlcnd(X93)))).\nand substitutionT7 -> T23,\nX89 -> T23,\nT22 -> T23" }, { "from": 320, "to": 728, "label": "EVAL with clause\nvlcnd(0).\nand substitutionT7 -> 0" }, { "from": 320, "to": 729, "label": "EVAL-BACKTRACK" }, { "from": 323, "to": 330, "label": "SPLIT 1" }, { "from": 323, "to": 333, "label": "SPLIT 2\nreplacements:X90 -> T24" }, { "from": 330, "to": 340, "label": "CASE" }, { "from": 333, "to": 689, "label": "SPLIT 1" }, { "from": 333, "to": 690, "label": "SPLIT 2\nreplacements:X91 -> T36,\nX92 -> T37" }, { "from": 340, "to": 348, "label": "EVAL with clause\nvl(0, X102) :- ','(!_8, eq(X102, [])).\nand substitutionT23 -> 0,\nX90 -> X103,\nX102 -> X103" }, { "from": 340, "to": 350, "label": "EVAL-BACKTRACK" }, { "from": 348, "to": 352, "label": "CUT" }, { "from": 350, "to": 388, "label": "ONLY EVAL with clause\nvl(X123, .(X124, X125)) :- ','(p(X123, X126), vl(X126, X125)).\nand substitutionT23 -> T29,\nX123 -> T29,\nX124 -> X127,\nX125 -> X128,\nX90 -> .(X127, X128),\nT28 -> T29" }, { "from": 352, "to": 355, "label": "CASE" }, { "from": 355, "to": 364, "label": "ONLY EVAL with clause\neq(X108, X108).\nand substitutionX103 -> [],\nX108 -> [],\nX109 -> []" }, { "from": 364, "to": 366, "label": "SUCCESS" }, { "from": 388, "to": 393, "label": "CASE" }, { "from": 393, "to": 396, "label": "PARALLEL" }, { "from": 393, "to": 398, "label": "PARALLEL" }, { "from": 396, "to": 402, "label": "EVAL with clause\np(0, 0).\nand substitutionT29 -> 0,\nX126 -> 0" }, { "from": 396, "to": 404, "label": "EVAL-BACKTRACK" }, { "from": 398, "to": 687, "label": "EVAL with clause\np(s(X135), X135).\nand substitutionX135 -> T33,\nT29 -> s(T33),\nX126 -> T33,\nT32 -> T33" }, { "from": 398, "to": 688, "label": "EVAL-BACKTRACK" }, { "from": 402, "to": 330, "label": "INSTANCE with matching:\nT23 -> 0\nX90 -> X128" }, { "from": 687, "to": 330, "label": "INSTANCE with matching:\nT23 -> T33\nX90 -> X128" }, { "from": 689, "to": 691, "label": "CASE" }, { "from": 690, "to": 717, "label": "SPLIT 1" }, { "from": 690, "to": 719, "label": "SPLIT 2\nreplacements:X93 -> T60" }, { "from": 691, "to": 692, "label": "PARALLEL" }, { "from": 691, "to": 693, "label": "PARALLEL" }, { "from": 692, "to": 694, "label": "EVAL with clause\nselect(X174, .(X175, X176), .(X175, X177)) :- select(X174, X176, X177).\nand substitutionX91 -> X178,\nX174 -> X178,\nX175 -> T48,\nX176 -> T50,\nT24 -> .(T48, T50),\nX177 -> X179,\nX92 -> .(T48, X179),\nT49 -> T50" }, { "from": 692, "to": 695, "label": "EVAL-BACKTRACK" }, { "from": 693, "to": 696, "label": "EVAL with clause\nselect(X192, .(X192, X193), X193).\nand substitutionX91 -> T57,\nX192 -> T57,\nX194 -> T57,\nX193 -> T58,\nT24 -> .(T57, T58),\nX92 -> T58" }, { "from": 693, "to": 697, "label": "EVAL-BACKTRACK" }, { "from": 694, "to": 689, "label": "INSTANCE with matching:\nX91 -> X178\nT24 -> T50\nX92 -> X179" }, { "from": 696, "to": 698, "label": "SUCCESS" }, { "from": 717, "to": 721, "label": "CASE" }, { "from": 719, "to": 291, "label": "INSTANCE with matching:\nT7 -> T60" }, { "from": 721, "to": 722, "label": "ONLY EVAL with clause\nvl(0, X199) :- ','(!_12, eq(X199, [])).\nand substitutionX93 -> 0,\nT37 -> T66,\nX199 -> T66,\nT65 -> T66" }, { "from": 722, "to": 723, "label": "CUT" }, { "from": 723, "to": 724, "label": "CASE" }, { "from": 724, "to": 725, "label": "EVAL with clause\neq(X202, X202).\nand substitutionT66 -> [],\nX202 -> [],\nT69 -> []" }, { "from": 724, "to": 726, "label": "EVAL-BACKTRACK" }, { "from": 725, "to": 727, "label": "SUCCESS" }, { "from": 728, "to": 730, "label": "SUCCESS" }, { "from": 731, "to": 732, "label": "SUCCESS" }, { "from": 733, "to": 735, "label": "ONLY EVAL with clause\nvl(X234, .(X235, X236)) :- ','(p(X234, X237), vl(X237, X236)).\nand substitutionT3 -> T75,\nX234 -> T75,\nX235 -> X238,\nX236 -> X239,\nX5 -> .(X238, X239)" }, { "from": 734, "to": 742, "label": "FAILURE" }, { "from": 735, "to": 736, "label": "CASE" }, { "from": 736, "to": 737, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (vl(T75, X5), vl(0, X13))" }, { "from": 737, "to": 738, "label": "EVAL with clause\np(s(X244), X244).\nand substitutionX244 -> T78,\nT75 -> s(T78),\nX237 -> T78" }, { "from": 737, "to": 739, "label": "EVAL-BACKTRACK" }, { "from": 738, "to": 740, "label": "SPLIT 1" }, { "from": 738, "to": 741, "label": "SPLIT 2\nnew knowledge:\nT78 is ground\nreplacements:X239 -> T79" }, { "from": 740, "to": 330, "label": "INSTANCE with matching:\nT23 -> T78\nX90 -> X239" }, { "from": 741, "to": 333, "label": "INSTANCE with matching:\nX91 -> X6\nT24 -> .(X238, T79)\nX92 -> X7\nX93 -> X8" }, { "from": 742, "to": 743, "label": "BACKTRACK\nfor clause: vlcnd(0)\nwith clash: (vl(T3, X5), vl(0, X13))" } ], "type": "Graph" } } ---------------------------------------- (130) Obligation: Triples: vlA(0, .(X1, X2)) :- vlA(0, X2). vlA(s(X1), .(X2, X3)) :- vlA(X1, X3). selectB(X1, .(X2, X3), .(X2, X4)) :- selectB(X1, X3, X4). vlcndC(X1) :- vlA(X1, X2). vlcndC(X1) :- ','(vlcA(X1, X2), pD(X3, X2, X4, X5)). pD(X1, X2, X3, X4) :- selectB(X1, X2, X3). pD(X1, X2, X3, X4) :- ','(selectcB(X1, X2, X3), ','(vlcE(X4, X3), vlcndC(X4))). vlcndG(0) :- ','(selectcH(X1, X2), ','(vlcF(X3, X2), vlcndC(X3))). vlcndG(s(X1)) :- vlA(X1, X2). vlcndG(s(X1)) :- ','(vlcA(X1, X2), pD(X3, .(X4, X2), X5, X6)). Clauses: vlcA(0, []). vlcA(0, .(X1, X2)) :- vlcA(0, X2). vlcA(s(X1), .(X2, X3)) :- vlcA(X1, X3). selectcB(X1, .(X2, X3), .(X2, X4)) :- selectcB(X1, X3, X4). selectcB(X1, .(X1, X2), X2). vlcndcC(X1) :- ','(vlcA(X1, X2), qcD(X3, X2, X4, X5)). vlcndcC(0). qcD(X1, X2, X3, X4) :- ','(selectcB(X1, X2, X3), ','(vlcE(X4, X3), vlcndcC(X4))). vlcF(0, []). vlcE(0, []). Afs: vlcndG(x1) = vlcndG(x1) ---------------------------------------- (131) UndefinedPredicateInTriplesTransformerProof (SOUND) Deleted triples and predicates having undefined goals [DT09]. ---------------------------------------- (132) Obligation: Triples: vlA(0, .(X1, X2)) :- vlA(0, X2). vlA(s(X1), .(X2, X3)) :- vlA(X1, X3). selectB(X1, .(X2, X3), .(X2, X4)) :- selectB(X1, X3, X4). vlcndC(X1) :- vlA(X1, X2). vlcndC(X1) :- ','(vlcA(X1, X2), pD(X3, X2, X4, X5)). pD(X1, X2, X3, X4) :- selectB(X1, X2, X3). pD(X1, X2, X3, X4) :- ','(selectcB(X1, X2, X3), ','(vlcE(X4, X3), vlcndC(X4))). vlcndG(s(X1)) :- vlA(X1, X2). vlcndG(s(X1)) :- ','(vlcA(X1, X2), pD(X3, .(X4, X2), X5, X6)). Clauses: vlcA(0, []). vlcA(0, .(X1, X2)) :- vlcA(0, X2). vlcA(s(X1), .(X2, X3)) :- vlcA(X1, X3). selectcB(X1, .(X2, X3), .(X2, X4)) :- selectcB(X1, X3, X4). selectcB(X1, .(X1, X2), X2). vlcndcC(X1) :- ','(vlcA(X1, X2), qcD(X3, X2, X4, X5)). vlcndcC(0). qcD(X1, X2, X3, X4) :- ','(selectcB(X1, X2, X3), ','(vlcE(X4, X3), vlcndcC(X4))). vlcF(0, []). vlcE(0, []). Afs: vlcndG(x1) = vlcndG(x1) ---------------------------------------- (133) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: vlcndG_in_1: (b) vlA_in_2: (b,f) vlcA_in_2: (b,f) pD_in_4: (f,b,f,f) selectB_in_3: (f,b,f) selectcB_in_3: (f,b,f) vlcndC_in_1: (b) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: VLCNDG_IN_G(s(X1)) -> U11_G(X1, vlA_in_ga(X1, X2)) VLCNDG_IN_G(s(X1)) -> VLA_IN_GA(X1, X2) VLA_IN_GA(0, .(X1, X2)) -> U1_GA(X1, X2, vlA_in_ga(0, X2)) VLA_IN_GA(0, .(X1, X2)) -> VLA_IN_GA(0, X2) VLA_IN_GA(s(X1), .(X2, X3)) -> U2_GA(X1, X2, X3, vlA_in_ga(X1, X3)) VLA_IN_GA(s(X1), .(X2, X3)) -> VLA_IN_GA(X1, X3) VLCNDG_IN_G(s(X1)) -> U12_G(X1, vlcA_in_ga(X1, X2)) U12_G(X1, vlcA_out_ga(X1, X2)) -> U13_G(X1, pD_in_agaa(X3, .(X4, X2), X5, X6)) U12_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X3, .(X4, X2), X5, X6) PD_IN_AGAA(X1, X2, X3, X4) -> U7_AGAA(X1, X2, X3, X4, selectB_in_aga(X1, X2, X3)) PD_IN_AGAA(X1, X2, X3, X4) -> SELECTB_IN_AGA(X1, X2, X3) SELECTB_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> U3_AGA(X1, X2, X3, X4, selectB_in_aga(X1, X3, X4)) SELECTB_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> SELECTB_IN_AGA(X1, X3, X4) PD_IN_AGAA(X1, X2, X3, X4) -> U8_AGAA(X1, X2, X3, X4, selectcB_in_aga(X1, X2, X3)) U8_AGAA(X1, X2, X3, X4, selectcB_out_aga(X1, X2, X3)) -> U9_AGAA(X1, X2, X3, X4, vlcE_in_ag(X4, X3)) U9_AGAA(X1, X2, X3, X4, vlcE_out_ag(X4, X3)) -> U10_AGAA(X1, X2, X3, X4, vlcndC_in_g(X4)) U9_AGAA(X1, X2, X3, X4, vlcE_out_ag(X4, X3)) -> VLCNDC_IN_G(X4) VLCNDC_IN_G(X1) -> U4_G(X1, vlA_in_ga(X1, X2)) VLCNDC_IN_G(X1) -> VLA_IN_GA(X1, X2) VLCNDC_IN_G(X1) -> U5_G(X1, vlcA_in_ga(X1, X2)) U5_G(X1, vlcA_out_ga(X1, X2)) -> U6_G(X1, pD_in_agaa(X3, X2, X4, X5)) U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X3, X2, X4, X5) The TRS R consists of the following rules: vlcA_in_ga(0, []) -> vlcA_out_ga(0, []) vlcA_in_ga(0, .(X1, X2)) -> U15_ga(X1, X2, vlcA_in_ga(0, X2)) vlcA_in_ga(s(X1), .(X2, X3)) -> U16_ga(X1, X2, X3, vlcA_in_ga(X1, X3)) U16_ga(X1, X2, X3, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X2, X3)) U15_ga(X1, X2, vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X1, X2)) selectcB_in_aga(X1, .(X2, X3), .(X2, X4)) -> U17_aga(X1, X2, X3, X4, selectcB_in_aga(X1, X3, X4)) selectcB_in_aga(X1, .(X1, X2), X2) -> selectcB_out_aga(X1, .(X1, X2), X2) U17_aga(X1, X2, X3, X4, selectcB_out_aga(X1, X3, X4)) -> selectcB_out_aga(X1, .(X2, X3), .(X2, X4)) vlcE_in_ag(0, []) -> vlcE_out_ag(0, []) The argument filtering Pi contains the following mapping: s(x1) = s(x1) vlA_in_ga(x1, x2) = vlA_in_ga(x1) 0 = 0 .(x1, x2) = .(x2) vlcA_in_ga(x1, x2) = vlcA_in_ga(x1) vlcA_out_ga(x1, x2) = vlcA_out_ga(x1, x2) U15_ga(x1, x2, x3) = U15_ga(x3) U16_ga(x1, x2, x3, x4) = U16_ga(x1, x4) pD_in_agaa(x1, x2, x3, x4) = pD_in_agaa(x2) selectB_in_aga(x1, x2, x3) = selectB_in_aga(x2) selectcB_in_aga(x1, x2, x3) = selectcB_in_aga(x2) U17_aga(x1, x2, x3, x4, x5) = U17_aga(x3, x5) selectcB_out_aga(x1, x2, x3) = selectcB_out_aga(x2, x3) vlcE_in_ag(x1, x2) = vlcE_in_ag(x2) [] = [] vlcE_out_ag(x1, x2) = vlcE_out_ag(x1, x2) vlcndC_in_g(x1) = vlcndC_in_g(x1) VLCNDG_IN_G(x1) = VLCNDG_IN_G(x1) U11_G(x1, x2) = U11_G(x1, x2) VLA_IN_GA(x1, x2) = VLA_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x3) U2_GA(x1, x2, x3, x4) = U2_GA(x1, x4) U12_G(x1, x2) = U12_G(x1, x2) U13_G(x1, x2) = U13_G(x1, x2) PD_IN_AGAA(x1, x2, x3, x4) = PD_IN_AGAA(x2) U7_AGAA(x1, x2, x3, x4, x5) = U7_AGAA(x2, x5) SELECTB_IN_AGA(x1, x2, x3) = SELECTB_IN_AGA(x2) U3_AGA(x1, x2, x3, x4, x5) = U3_AGA(x3, x5) U8_AGAA(x1, x2, x3, x4, x5) = U8_AGAA(x2, x5) U9_AGAA(x1, x2, x3, x4, x5) = U9_AGAA(x2, x3, x5) U10_AGAA(x1, x2, x3, x4, x5) = U10_AGAA(x2, x3, x5) VLCNDC_IN_G(x1) = VLCNDC_IN_G(x1) U4_G(x1, x2) = U4_G(x1, x2) U5_G(x1, x2) = U5_G(x1, x2) U6_G(x1, x2) = U6_G(x1, x2) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (134) Obligation: Pi DP problem: The TRS P consists of the following rules: VLCNDG_IN_G(s(X1)) -> U11_G(X1, vlA_in_ga(X1, X2)) VLCNDG_IN_G(s(X1)) -> VLA_IN_GA(X1, X2) VLA_IN_GA(0, .(X1, X2)) -> U1_GA(X1, X2, vlA_in_ga(0, X2)) VLA_IN_GA(0, .(X1, X2)) -> VLA_IN_GA(0, X2) VLA_IN_GA(s(X1), .(X2, X3)) -> U2_GA(X1, X2, X3, vlA_in_ga(X1, X3)) VLA_IN_GA(s(X1), .(X2, X3)) -> VLA_IN_GA(X1, X3) VLCNDG_IN_G(s(X1)) -> U12_G(X1, vlcA_in_ga(X1, X2)) U12_G(X1, vlcA_out_ga(X1, X2)) -> U13_G(X1, pD_in_agaa(X3, .(X4, X2), X5, X6)) U12_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X3, .(X4, X2), X5, X6) PD_IN_AGAA(X1, X2, X3, X4) -> U7_AGAA(X1, X2, X3, X4, selectB_in_aga(X1, X2, X3)) PD_IN_AGAA(X1, X2, X3, X4) -> SELECTB_IN_AGA(X1, X2, X3) SELECTB_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> U3_AGA(X1, X2, X3, X4, selectB_in_aga(X1, X3, X4)) SELECTB_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> SELECTB_IN_AGA(X1, X3, X4) PD_IN_AGAA(X1, X2, X3, X4) -> U8_AGAA(X1, X2, X3, X4, selectcB_in_aga(X1, X2, X3)) U8_AGAA(X1, X2, X3, X4, selectcB_out_aga(X1, X2, X3)) -> U9_AGAA(X1, X2, X3, X4, vlcE_in_ag(X4, X3)) U9_AGAA(X1, X2, X3, X4, vlcE_out_ag(X4, X3)) -> U10_AGAA(X1, X2, X3, X4, vlcndC_in_g(X4)) U9_AGAA(X1, X2, X3, X4, vlcE_out_ag(X4, X3)) -> VLCNDC_IN_G(X4) VLCNDC_IN_G(X1) -> U4_G(X1, vlA_in_ga(X1, X2)) VLCNDC_IN_G(X1) -> VLA_IN_GA(X1, X2) VLCNDC_IN_G(X1) -> U5_G(X1, vlcA_in_ga(X1, X2)) U5_G(X1, vlcA_out_ga(X1, X2)) -> U6_G(X1, pD_in_agaa(X3, X2, X4, X5)) U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X3, X2, X4, X5) The TRS R consists of the following rules: vlcA_in_ga(0, []) -> vlcA_out_ga(0, []) vlcA_in_ga(0, .(X1, X2)) -> U15_ga(X1, X2, vlcA_in_ga(0, X2)) vlcA_in_ga(s(X1), .(X2, X3)) -> U16_ga(X1, X2, X3, vlcA_in_ga(X1, X3)) U16_ga(X1, X2, X3, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X2, X3)) U15_ga(X1, X2, vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X1, X2)) selectcB_in_aga(X1, .(X2, X3), .(X2, X4)) -> U17_aga(X1, X2, X3, X4, selectcB_in_aga(X1, X3, X4)) selectcB_in_aga(X1, .(X1, X2), X2) -> selectcB_out_aga(X1, .(X1, X2), X2) U17_aga(X1, X2, X3, X4, selectcB_out_aga(X1, X3, X4)) -> selectcB_out_aga(X1, .(X2, X3), .(X2, X4)) vlcE_in_ag(0, []) -> vlcE_out_ag(0, []) The argument filtering Pi contains the following mapping: s(x1) = s(x1) vlA_in_ga(x1, x2) = vlA_in_ga(x1) 0 = 0 .(x1, x2) = .(x2) vlcA_in_ga(x1, x2) = vlcA_in_ga(x1) vlcA_out_ga(x1, x2) = vlcA_out_ga(x1, x2) U15_ga(x1, x2, x3) = U15_ga(x3) U16_ga(x1, x2, x3, x4) = U16_ga(x1, x4) pD_in_agaa(x1, x2, x3, x4) = pD_in_agaa(x2) selectB_in_aga(x1, x2, x3) = selectB_in_aga(x2) selectcB_in_aga(x1, x2, x3) = selectcB_in_aga(x2) U17_aga(x1, x2, x3, x4, x5) = U17_aga(x3, x5) selectcB_out_aga(x1, x2, x3) = selectcB_out_aga(x2, x3) vlcE_in_ag(x1, x2) = vlcE_in_ag(x2) [] = [] vlcE_out_ag(x1, x2) = vlcE_out_ag(x1, x2) vlcndC_in_g(x1) = vlcndC_in_g(x1) VLCNDG_IN_G(x1) = VLCNDG_IN_G(x1) U11_G(x1, x2) = U11_G(x1, x2) VLA_IN_GA(x1, x2) = VLA_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x3) U2_GA(x1, x2, x3, x4) = U2_GA(x1, x4) U12_G(x1, x2) = U12_G(x1, x2) U13_G(x1, x2) = U13_G(x1, x2) PD_IN_AGAA(x1, x2, x3, x4) = PD_IN_AGAA(x2) U7_AGAA(x1, x2, x3, x4, x5) = U7_AGAA(x2, x5) SELECTB_IN_AGA(x1, x2, x3) = SELECTB_IN_AGA(x2) U3_AGA(x1, x2, x3, x4, x5) = U3_AGA(x3, x5) U8_AGAA(x1, x2, x3, x4, x5) = U8_AGAA(x2, x5) U9_AGAA(x1, x2, x3, x4, x5) = U9_AGAA(x2, x3, x5) U10_AGAA(x1, x2, x3, x4, x5) = U10_AGAA(x2, x3, x5) VLCNDC_IN_G(x1) = VLCNDC_IN_G(x1) U4_G(x1, x2) = U4_G(x1, x2) U5_G(x1, x2) = U5_G(x1, x2) U6_G(x1, x2) = U6_G(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (135) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 14 less nodes. ---------------------------------------- (136) Complex Obligation (AND) ---------------------------------------- (137) Obligation: Pi DP problem: The TRS P consists of the following rules: SELECTB_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> SELECTB_IN_AGA(X1, X3, X4) The TRS R consists of the following rules: vlcA_in_ga(0, []) -> vlcA_out_ga(0, []) vlcA_in_ga(0, .(X1, X2)) -> U15_ga(X1, X2, vlcA_in_ga(0, X2)) vlcA_in_ga(s(X1), .(X2, X3)) -> U16_ga(X1, X2, X3, vlcA_in_ga(X1, X3)) U16_ga(X1, X2, X3, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X2, X3)) U15_ga(X1, X2, vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X1, X2)) selectcB_in_aga(X1, .(X2, X3), .(X2, X4)) -> U17_aga(X1, X2, X3, X4, selectcB_in_aga(X1, X3, X4)) selectcB_in_aga(X1, .(X1, X2), X2) -> selectcB_out_aga(X1, .(X1, X2), X2) U17_aga(X1, X2, X3, X4, selectcB_out_aga(X1, X3, X4)) -> selectcB_out_aga(X1, .(X2, X3), .(X2, X4)) vlcE_in_ag(0, []) -> vlcE_out_ag(0, []) The argument filtering Pi contains the following mapping: s(x1) = s(x1) 0 = 0 .(x1, x2) = .(x2) vlcA_in_ga(x1, x2) = vlcA_in_ga(x1) vlcA_out_ga(x1, x2) = vlcA_out_ga(x1, x2) U15_ga(x1, x2, x3) = U15_ga(x3) U16_ga(x1, x2, x3, x4) = U16_ga(x1, x4) selectcB_in_aga(x1, x2, x3) = selectcB_in_aga(x2) U17_aga(x1, x2, x3, x4, x5) = U17_aga(x3, x5) selectcB_out_aga(x1, x2, x3) = selectcB_out_aga(x2, x3) vlcE_in_ag(x1, x2) = vlcE_in_ag(x2) [] = [] vlcE_out_ag(x1, x2) = vlcE_out_ag(x1, x2) SELECTB_IN_AGA(x1, x2, x3) = SELECTB_IN_AGA(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (138) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (139) Obligation: Pi DP problem: The TRS P consists of the following rules: SELECTB_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> SELECTB_IN_AGA(X1, X3, X4) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) SELECTB_IN_AGA(x1, x2, x3) = SELECTB_IN_AGA(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (140) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (141) Obligation: Q DP problem: The TRS P consists of the following rules: SELECTB_IN_AGA(.(X3)) -> SELECTB_IN_AGA(X3) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (142) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *SELECTB_IN_AGA(.(X3)) -> SELECTB_IN_AGA(X3) The graph contains the following edges 1 > 1 ---------------------------------------- (143) YES ---------------------------------------- (144) Obligation: Pi DP problem: The TRS P consists of the following rules: VLA_IN_GA(0, .(X1, X2)) -> VLA_IN_GA(0, X2) The TRS R consists of the following rules: vlcA_in_ga(0, []) -> vlcA_out_ga(0, []) vlcA_in_ga(0, .(X1, X2)) -> U15_ga(X1, X2, vlcA_in_ga(0, X2)) vlcA_in_ga(s(X1), .(X2, X3)) -> U16_ga(X1, X2, X3, vlcA_in_ga(X1, X3)) U16_ga(X1, X2, X3, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X2, X3)) U15_ga(X1, X2, vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X1, X2)) selectcB_in_aga(X1, .(X2, X3), .(X2, X4)) -> U17_aga(X1, X2, X3, X4, selectcB_in_aga(X1, X3, X4)) selectcB_in_aga(X1, .(X1, X2), X2) -> selectcB_out_aga(X1, .(X1, X2), X2) U17_aga(X1, X2, X3, X4, selectcB_out_aga(X1, X3, X4)) -> selectcB_out_aga(X1, .(X2, X3), .(X2, X4)) vlcE_in_ag(0, []) -> vlcE_out_ag(0, []) The argument filtering Pi contains the following mapping: s(x1) = s(x1) 0 = 0 .(x1, x2) = .(x2) vlcA_in_ga(x1, x2) = vlcA_in_ga(x1) vlcA_out_ga(x1, x2) = vlcA_out_ga(x1, x2) U15_ga(x1, x2, x3) = U15_ga(x3) U16_ga(x1, x2, x3, x4) = U16_ga(x1, x4) selectcB_in_aga(x1, x2, x3) = selectcB_in_aga(x2) U17_aga(x1, x2, x3, x4, x5) = U17_aga(x3, x5) selectcB_out_aga(x1, x2, x3) = selectcB_out_aga(x2, x3) vlcE_in_ag(x1, x2) = vlcE_in_ag(x2) [] = [] vlcE_out_ag(x1, x2) = vlcE_out_ag(x1, x2) VLA_IN_GA(x1, x2) = VLA_IN_GA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (145) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (146) Obligation: Pi DP problem: The TRS P consists of the following rules: VLA_IN_GA(0, .(X1, X2)) -> VLA_IN_GA(0, X2) R is empty. The argument filtering Pi contains the following mapping: 0 = 0 .(x1, x2) = .(x2) VLA_IN_GA(x1, x2) = VLA_IN_GA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (147) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (148) Obligation: Q DP problem: The TRS P consists of the following rules: VLA_IN_GA(0) -> VLA_IN_GA(0) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (149) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = VLA_IN_GA(0) evaluates to t =VLA_IN_GA(0) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from VLA_IN_GA(0) to VLA_IN_GA(0). ---------------------------------------- (150) NO ---------------------------------------- (151) Obligation: Pi DP problem: The TRS P consists of the following rules: VLA_IN_GA(s(X1), .(X2, X3)) -> VLA_IN_GA(X1, X3) The TRS R consists of the following rules: vlcA_in_ga(0, []) -> vlcA_out_ga(0, []) vlcA_in_ga(0, .(X1, X2)) -> U15_ga(X1, X2, vlcA_in_ga(0, X2)) vlcA_in_ga(s(X1), .(X2, X3)) -> U16_ga(X1, X2, X3, vlcA_in_ga(X1, X3)) U16_ga(X1, X2, X3, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X2, X3)) U15_ga(X1, X2, vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X1, X2)) selectcB_in_aga(X1, .(X2, X3), .(X2, X4)) -> U17_aga(X1, X2, X3, X4, selectcB_in_aga(X1, X3, X4)) selectcB_in_aga(X1, .(X1, X2), X2) -> selectcB_out_aga(X1, .(X1, X2), X2) U17_aga(X1, X2, X3, X4, selectcB_out_aga(X1, X3, X4)) -> selectcB_out_aga(X1, .(X2, X3), .(X2, X4)) vlcE_in_ag(0, []) -> vlcE_out_ag(0, []) The argument filtering Pi contains the following mapping: s(x1) = s(x1) 0 = 0 .(x1, x2) = .(x2) vlcA_in_ga(x1, x2) = vlcA_in_ga(x1) vlcA_out_ga(x1, x2) = vlcA_out_ga(x1, x2) U15_ga(x1, x2, x3) = U15_ga(x3) U16_ga(x1, x2, x3, x4) = U16_ga(x1, x4) selectcB_in_aga(x1, x2, x3) = selectcB_in_aga(x2) U17_aga(x1, x2, x3, x4, x5) = U17_aga(x3, x5) selectcB_out_aga(x1, x2, x3) = selectcB_out_aga(x2, x3) vlcE_in_ag(x1, x2) = vlcE_in_ag(x2) [] = [] vlcE_out_ag(x1, x2) = vlcE_out_ag(x1, x2) VLA_IN_GA(x1, x2) = VLA_IN_GA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (152) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (153) Obligation: Pi DP problem: The TRS P consists of the following rules: VLA_IN_GA(s(X1), .(X2, X3)) -> VLA_IN_GA(X1, X3) R is empty. The argument filtering Pi contains the following mapping: s(x1) = s(x1) .(x1, x2) = .(x2) VLA_IN_GA(x1, x2) = VLA_IN_GA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (154) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (155) Obligation: Q DP problem: The TRS P consists of the following rules: VLA_IN_GA(s(X1)) -> VLA_IN_GA(X1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (156) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *VLA_IN_GA(s(X1)) -> VLA_IN_GA(X1) The graph contains the following edges 1 > 1 ---------------------------------------- (157) YES ---------------------------------------- (158) Obligation: Pi DP problem: The TRS P consists of the following rules: VLCNDC_IN_G(X1) -> U5_G(X1, vlcA_in_ga(X1, X2)) U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X3, X2, X4, X5) PD_IN_AGAA(X1, X2, X3, X4) -> U8_AGAA(X1, X2, X3, X4, selectcB_in_aga(X1, X2, X3)) U8_AGAA(X1, X2, X3, X4, selectcB_out_aga(X1, X2, X3)) -> U9_AGAA(X1, X2, X3, X4, vlcE_in_ag(X4, X3)) U9_AGAA(X1, X2, X3, X4, vlcE_out_ag(X4, X3)) -> VLCNDC_IN_G(X4) The TRS R consists of the following rules: vlcA_in_ga(0, []) -> vlcA_out_ga(0, []) vlcA_in_ga(0, .(X1, X2)) -> U15_ga(X1, X2, vlcA_in_ga(0, X2)) vlcA_in_ga(s(X1), .(X2, X3)) -> U16_ga(X1, X2, X3, vlcA_in_ga(X1, X3)) U16_ga(X1, X2, X3, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X2, X3)) U15_ga(X1, X2, vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X1, X2)) selectcB_in_aga(X1, .(X2, X3), .(X2, X4)) -> U17_aga(X1, X2, X3, X4, selectcB_in_aga(X1, X3, X4)) selectcB_in_aga(X1, .(X1, X2), X2) -> selectcB_out_aga(X1, .(X1, X2), X2) U17_aga(X1, X2, X3, X4, selectcB_out_aga(X1, X3, X4)) -> selectcB_out_aga(X1, .(X2, X3), .(X2, X4)) vlcE_in_ag(0, []) -> vlcE_out_ag(0, []) The argument filtering Pi contains the following mapping: s(x1) = s(x1) 0 = 0 .(x1, x2) = .(x2) vlcA_in_ga(x1, x2) = vlcA_in_ga(x1) vlcA_out_ga(x1, x2) = vlcA_out_ga(x1, x2) U15_ga(x1, x2, x3) = U15_ga(x3) U16_ga(x1, x2, x3, x4) = U16_ga(x1, x4) selectcB_in_aga(x1, x2, x3) = selectcB_in_aga(x2) U17_aga(x1, x2, x3, x4, x5) = U17_aga(x3, x5) selectcB_out_aga(x1, x2, x3) = selectcB_out_aga(x2, x3) vlcE_in_ag(x1, x2) = vlcE_in_ag(x2) [] = [] vlcE_out_ag(x1, x2) = vlcE_out_ag(x1, x2) PD_IN_AGAA(x1, x2, x3, x4) = PD_IN_AGAA(x2) U8_AGAA(x1, x2, x3, x4, x5) = U8_AGAA(x2, x5) U9_AGAA(x1, x2, x3, x4, x5) = U9_AGAA(x2, x3, x5) VLCNDC_IN_G(x1) = VLCNDC_IN_G(x1) U5_G(x1, x2) = U5_G(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (159) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (160) Obligation: Q DP problem: The TRS P consists of the following rules: VLCNDC_IN_G(X1) -> U5_G(X1, vlcA_in_ga(X1)) U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X2) PD_IN_AGAA(X2) -> U8_AGAA(X2, selectcB_in_aga(X2)) U8_AGAA(X2, selectcB_out_aga(X2, X3)) -> U9_AGAA(X2, X3, vlcE_in_ag(X3)) U9_AGAA(X2, X3, vlcE_out_ag(X4, X3)) -> VLCNDC_IN_G(X4) The TRS R consists of the following rules: vlcA_in_ga(0) -> vlcA_out_ga(0, []) vlcA_in_ga(0) -> U15_ga(vlcA_in_ga(0)) vlcA_in_ga(s(X1)) -> U16_ga(X1, vlcA_in_ga(X1)) U16_ga(X1, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X3)) U15_ga(vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X2)) selectcB_in_aga(.(X3)) -> U17_aga(X3, selectcB_in_aga(X3)) selectcB_in_aga(.(X2)) -> selectcB_out_aga(.(X2), X2) U17_aga(X3, selectcB_out_aga(X3, X4)) -> selectcB_out_aga(.(X3), .(X4)) vlcE_in_ag([]) -> vlcE_out_ag(0, []) The set Q consists of the following terms: vlcA_in_ga(x0) U16_ga(x0, x1) U15_ga(x0) selectcB_in_aga(x0) U17_aga(x0, x1) vlcE_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (161) TransformationProof (SOUND) By narrowing [LPAR04] the rule U8_AGAA(X2, selectcB_out_aga(X2, X3)) -> U9_AGAA(X2, X3, vlcE_in_ag(X3)) at position [2] we obtained the following new rules [LPAR04]: (U8_AGAA(y0, selectcB_out_aga(y0, [])) -> U9_AGAA(y0, [], vlcE_out_ag(0, [])),U8_AGAA(y0, selectcB_out_aga(y0, [])) -> U9_AGAA(y0, [], vlcE_out_ag(0, []))) ---------------------------------------- (162) Obligation: Q DP problem: The TRS P consists of the following rules: VLCNDC_IN_G(X1) -> U5_G(X1, vlcA_in_ga(X1)) U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X2) PD_IN_AGAA(X2) -> U8_AGAA(X2, selectcB_in_aga(X2)) U9_AGAA(X2, X3, vlcE_out_ag(X4, X3)) -> VLCNDC_IN_G(X4) U8_AGAA(y0, selectcB_out_aga(y0, [])) -> U9_AGAA(y0, [], vlcE_out_ag(0, [])) The TRS R consists of the following rules: vlcA_in_ga(0) -> vlcA_out_ga(0, []) vlcA_in_ga(0) -> U15_ga(vlcA_in_ga(0)) vlcA_in_ga(s(X1)) -> U16_ga(X1, vlcA_in_ga(X1)) U16_ga(X1, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X3)) U15_ga(vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X2)) selectcB_in_aga(.(X3)) -> U17_aga(X3, selectcB_in_aga(X3)) selectcB_in_aga(.(X2)) -> selectcB_out_aga(.(X2), X2) U17_aga(X3, selectcB_out_aga(X3, X4)) -> selectcB_out_aga(.(X3), .(X4)) vlcE_in_ag([]) -> vlcE_out_ag(0, []) The set Q consists of the following terms: vlcA_in_ga(x0) U16_ga(x0, x1) U15_ga(x0) selectcB_in_aga(x0) U17_aga(x0, x1) vlcE_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (163) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (164) Obligation: Q DP problem: The TRS P consists of the following rules: VLCNDC_IN_G(X1) -> U5_G(X1, vlcA_in_ga(X1)) U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X2) PD_IN_AGAA(X2) -> U8_AGAA(X2, selectcB_in_aga(X2)) U9_AGAA(X2, X3, vlcE_out_ag(X4, X3)) -> VLCNDC_IN_G(X4) U8_AGAA(y0, selectcB_out_aga(y0, [])) -> U9_AGAA(y0, [], vlcE_out_ag(0, [])) The TRS R consists of the following rules: selectcB_in_aga(.(X3)) -> U17_aga(X3, selectcB_in_aga(X3)) selectcB_in_aga(.(X2)) -> selectcB_out_aga(.(X2), X2) U17_aga(X3, selectcB_out_aga(X3, X4)) -> selectcB_out_aga(.(X3), .(X4)) vlcA_in_ga(0) -> vlcA_out_ga(0, []) vlcA_in_ga(0) -> U15_ga(vlcA_in_ga(0)) vlcA_in_ga(s(X1)) -> U16_ga(X1, vlcA_in_ga(X1)) U16_ga(X1, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X3)) U15_ga(vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X2)) The set Q consists of the following terms: vlcA_in_ga(x0) U16_ga(x0, x1) U15_ga(x0) selectcB_in_aga(x0) U17_aga(x0, x1) vlcE_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (165) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. vlcE_in_ag(x0) ---------------------------------------- (166) Obligation: Q DP problem: The TRS P consists of the following rules: VLCNDC_IN_G(X1) -> U5_G(X1, vlcA_in_ga(X1)) U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X2) PD_IN_AGAA(X2) -> U8_AGAA(X2, selectcB_in_aga(X2)) U9_AGAA(X2, X3, vlcE_out_ag(X4, X3)) -> VLCNDC_IN_G(X4) U8_AGAA(y0, selectcB_out_aga(y0, [])) -> U9_AGAA(y0, [], vlcE_out_ag(0, [])) The TRS R consists of the following rules: selectcB_in_aga(.(X3)) -> U17_aga(X3, selectcB_in_aga(X3)) selectcB_in_aga(.(X2)) -> selectcB_out_aga(.(X2), X2) U17_aga(X3, selectcB_out_aga(X3, X4)) -> selectcB_out_aga(.(X3), .(X4)) vlcA_in_ga(0) -> vlcA_out_ga(0, []) vlcA_in_ga(0) -> U15_ga(vlcA_in_ga(0)) vlcA_in_ga(s(X1)) -> U16_ga(X1, vlcA_in_ga(X1)) U16_ga(X1, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X3)) U15_ga(vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X2)) The set Q consists of the following terms: vlcA_in_ga(x0) U16_ga(x0, x1) U15_ga(x0) selectcB_in_aga(x0) U17_aga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (167) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U9_AGAA(X2, X3, vlcE_out_ag(X4, X3)) -> VLCNDC_IN_G(X4) we obtained the following new rules [LPAR04]: (U9_AGAA(z0, [], vlcE_out_ag(0, [])) -> VLCNDC_IN_G(0),U9_AGAA(z0, [], vlcE_out_ag(0, [])) -> VLCNDC_IN_G(0)) ---------------------------------------- (168) Obligation: Q DP problem: The TRS P consists of the following rules: VLCNDC_IN_G(X1) -> U5_G(X1, vlcA_in_ga(X1)) U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X2) PD_IN_AGAA(X2) -> U8_AGAA(X2, selectcB_in_aga(X2)) U8_AGAA(y0, selectcB_out_aga(y0, [])) -> U9_AGAA(y0, [], vlcE_out_ag(0, [])) U9_AGAA(z0, [], vlcE_out_ag(0, [])) -> VLCNDC_IN_G(0) The TRS R consists of the following rules: selectcB_in_aga(.(X3)) -> U17_aga(X3, selectcB_in_aga(X3)) selectcB_in_aga(.(X2)) -> selectcB_out_aga(.(X2), X2) U17_aga(X3, selectcB_out_aga(X3, X4)) -> selectcB_out_aga(.(X3), .(X4)) vlcA_in_ga(0) -> vlcA_out_ga(0, []) vlcA_in_ga(0) -> U15_ga(vlcA_in_ga(0)) vlcA_in_ga(s(X1)) -> U16_ga(X1, vlcA_in_ga(X1)) U16_ga(X1, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X3)) U15_ga(vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X2)) The set Q consists of the following terms: vlcA_in_ga(x0) U16_ga(x0, x1) U15_ga(x0) selectcB_in_aga(x0) U17_aga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (169) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule VLCNDC_IN_G(X1) -> U5_G(X1, vlcA_in_ga(X1)) we obtained the following new rules [LPAR04]: (VLCNDC_IN_G(0) -> U5_G(0, vlcA_in_ga(0)),VLCNDC_IN_G(0) -> U5_G(0, vlcA_in_ga(0))) ---------------------------------------- (170) Obligation: Q DP problem: The TRS P consists of the following rules: U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X2) PD_IN_AGAA(X2) -> U8_AGAA(X2, selectcB_in_aga(X2)) U8_AGAA(y0, selectcB_out_aga(y0, [])) -> U9_AGAA(y0, [], vlcE_out_ag(0, [])) U9_AGAA(z0, [], vlcE_out_ag(0, [])) -> VLCNDC_IN_G(0) VLCNDC_IN_G(0) -> U5_G(0, vlcA_in_ga(0)) The TRS R consists of the following rules: selectcB_in_aga(.(X3)) -> U17_aga(X3, selectcB_in_aga(X3)) selectcB_in_aga(.(X2)) -> selectcB_out_aga(.(X2), X2) U17_aga(X3, selectcB_out_aga(X3, X4)) -> selectcB_out_aga(.(X3), .(X4)) vlcA_in_ga(0) -> vlcA_out_ga(0, []) vlcA_in_ga(0) -> U15_ga(vlcA_in_ga(0)) vlcA_in_ga(s(X1)) -> U16_ga(X1, vlcA_in_ga(X1)) U16_ga(X1, vlcA_out_ga(X1, X3)) -> vlcA_out_ga(s(X1), .(X3)) U15_ga(vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X2)) The set Q consists of the following terms: vlcA_in_ga(x0) U16_ga(x0, x1) U15_ga(x0) selectcB_in_aga(x0) U17_aga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (171) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (172) Obligation: Q DP problem: The TRS P consists of the following rules: U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X2) PD_IN_AGAA(X2) -> U8_AGAA(X2, selectcB_in_aga(X2)) U8_AGAA(y0, selectcB_out_aga(y0, [])) -> U9_AGAA(y0, [], vlcE_out_ag(0, [])) U9_AGAA(z0, [], vlcE_out_ag(0, [])) -> VLCNDC_IN_G(0) VLCNDC_IN_G(0) -> U5_G(0, vlcA_in_ga(0)) The TRS R consists of the following rules: vlcA_in_ga(0) -> vlcA_out_ga(0, []) vlcA_in_ga(0) -> U15_ga(vlcA_in_ga(0)) U15_ga(vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X2)) selectcB_in_aga(.(X3)) -> U17_aga(X3, selectcB_in_aga(X3)) selectcB_in_aga(.(X2)) -> selectcB_out_aga(.(X2), X2) U17_aga(X3, selectcB_out_aga(X3, X4)) -> selectcB_out_aga(.(X3), .(X4)) The set Q consists of the following terms: vlcA_in_ga(x0) U16_ga(x0, x1) U15_ga(x0) selectcB_in_aga(x0) U17_aga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (173) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. U16_ga(x0, x1) ---------------------------------------- (174) Obligation: Q DP problem: The TRS P consists of the following rules: U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X2) PD_IN_AGAA(X2) -> U8_AGAA(X2, selectcB_in_aga(X2)) U8_AGAA(y0, selectcB_out_aga(y0, [])) -> U9_AGAA(y0, [], vlcE_out_ag(0, [])) U9_AGAA(z0, [], vlcE_out_ag(0, [])) -> VLCNDC_IN_G(0) VLCNDC_IN_G(0) -> U5_G(0, vlcA_in_ga(0)) The TRS R consists of the following rules: vlcA_in_ga(0) -> vlcA_out_ga(0, []) vlcA_in_ga(0) -> U15_ga(vlcA_in_ga(0)) U15_ga(vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X2)) selectcB_in_aga(.(X3)) -> U17_aga(X3, selectcB_in_aga(X3)) selectcB_in_aga(.(X2)) -> selectcB_out_aga(.(X2), X2) U17_aga(X3, selectcB_out_aga(X3, X4)) -> selectcB_out_aga(.(X3), .(X4)) The set Q consists of the following terms: vlcA_in_ga(x0) U15_ga(x0) selectcB_in_aga(x0) U17_aga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (175) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U5_G(X1, vlcA_out_ga(X1, X2)) -> PD_IN_AGAA(X2) we obtained the following new rules [LPAR04]: (U5_G(0, vlcA_out_ga(0, x1)) -> PD_IN_AGAA(x1),U5_G(0, vlcA_out_ga(0, x1)) -> PD_IN_AGAA(x1)) ---------------------------------------- (176) Obligation: Q DP problem: The TRS P consists of the following rules: PD_IN_AGAA(X2) -> U8_AGAA(X2, selectcB_in_aga(X2)) U8_AGAA(y0, selectcB_out_aga(y0, [])) -> U9_AGAA(y0, [], vlcE_out_ag(0, [])) U9_AGAA(z0, [], vlcE_out_ag(0, [])) -> VLCNDC_IN_G(0) VLCNDC_IN_G(0) -> U5_G(0, vlcA_in_ga(0)) U5_G(0, vlcA_out_ga(0, x1)) -> PD_IN_AGAA(x1) The TRS R consists of the following rules: vlcA_in_ga(0) -> vlcA_out_ga(0, []) vlcA_in_ga(0) -> U15_ga(vlcA_in_ga(0)) U15_ga(vlcA_out_ga(0, X2)) -> vlcA_out_ga(0, .(X2)) selectcB_in_aga(.(X3)) -> U17_aga(X3, selectcB_in_aga(X3)) selectcB_in_aga(.(X2)) -> selectcB_out_aga(.(X2), X2) U17_aga(X3, selectcB_out_aga(X3, X4)) -> selectcB_out_aga(.(X3), .(X4)) The set Q consists of the following terms: vlcA_in_ga(x0) U15_ga(x0) selectcB_in_aga(x0) U17_aga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (177) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 3, "program": { "directives": [], "clauses": [ [ "(vlcnd N)", "(',' (vl N Xs) (',' (select X1 Xs Ys) (',' (vl M Ys) (vlcnd M))))" ], [ "(vlcnd (0))", null ], [ "(vl (0) L)", "(',' (!) (eq L ([])))" ], [ "(vl N (. X2 Xs))", "(',' (p N P) (vl P Xs))" ], [ "(select X (. Y Xs) (. Y Ys))", "(select X Xs Ys)" ], [ "(select X (. X Xs) Xs)", null ], [ "(p (0) (0))", null ], [ "(p (s X) X)", null ], [ "(eq X X)", null ] ] }, "graph": { "nodes": { "type": "Nodes", "591": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (vl T58 X153) (',' (select X154 X153 X155) (',' (vl X156 X155) (vlcnd X156))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X153", "X154", "X155", "X156" ], "exprvars": [] } }, "472": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "473": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "474": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "233": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl T6 X20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": ["X20"], "exprvars": [] } }, "673": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T64 X189) (vl X189 X191))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X191", "X189" ], "exprvars": [] } }, "234": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (select X21 T7 X22) (',' (vl X23 X22) (vlcnd X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X21", "X22", "X23" ], "exprvars": [] } }, "476": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl X23 T17)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "674": { "goal": [ { "clause": 6, "scope": 11, "term": "(',' (p T64 X189) (vl X189 X191))" }, { "clause": 7, "scope": 11, "term": "(',' (p T64 X189) (vl X189 X191))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X191", "X189" ], "exprvars": [] } }, "235": { "goal": [ { "clause": 2, "scope": 2, "term": "(vl T6 X20)" }, { "clause": 3, "scope": 2, "term": "(vl T6 X20)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": ["X20"], "exprvars": [] } }, "477": { "goal": [{ "clause": -1, "scope": -1, "term": "(vlcnd T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "675": { "goal": [{ "clause": 6, "scope": 11, "term": "(',' (p T64 X189) (vl X189 X191))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X191", "X189" ], "exprvars": [] } }, "632": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_9) (eq X166 ([])))" }, { "clause": 3, "scope": 9, "term": "(vl T58 X153)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X153", "X166" ], "exprvars": [] } }, "676": { "goal": [{ "clause": 7, "scope": 11, "term": "(',' (p T64 X189) (vl X189 X191))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X191", "X189" ], "exprvars": [] } }, "677": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl (0) X191)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X191"], "exprvars": [] } }, "678": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "635": { "goal": [{ "clause": 3, "scope": 9, "term": "(vl T58 X153)" }], "kb": { "nonunifying": [[ "(vl T58 X153)", "(vl (0) X165)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X153", "X165" ], "exprvars": [] } }, "679": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl T68 X191)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X191"], "exprvars": [] } }, "638": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq X166 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X166"], "exprvars": [] } }, "480": { "goal": [ { "clause": 2, "scope": 6, "term": "(vl X23 T17)" }, { "clause": 3, "scope": 6, "term": "(vl X23 T17)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "680": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "681": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "682": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "287": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "683": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "288": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "684": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3": { "goal": [{ "clause": -1, "scope": -1, "term": "(vlcnd T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "641": { "goal": [{ "clause": 8, "scope": 10, "term": "(eq X166 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X166"], "exprvars": [] } }, "685": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "686": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "5": { "goal": [ { "clause": 0, "scope": 1, "term": "(vlcnd T1)" }, { "clause": 1, "scope": 1, "term": "(vlcnd T1)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "128": { "goal": [{ "clause": 0, "scope": 1, "term": "(vlcnd T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "129": { "goal": [{ "clause": 1, "scope": 1, "term": "(vlcnd T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "449": { "goal": [{ "clause": -1, "scope": -1, "term": "(select X21 T7 X22)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X21", "X22" ], "exprvars": [] } }, "608": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl T58 X153)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X153"], "exprvars": [] } }, "292": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T10 X56) (vl X56 X58))" }], "kb": { "nonunifying": [[ "(vl T10 X20)", "(vl (0) X32)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": [ "X20", "X32", "X58", "X56" ], "exprvars": [] } }, "294": { "goal": [ { "clause": 6, "scope": 4, "term": "(',' (p T10 X56) (vl X56 X58))" }, { "clause": 7, "scope": 4, "term": "(',' (p T10 X56) (vl X56 X58))" } ], "kb": { "nonunifying": [[ "(vl T10 X20)", "(vl (0) X32)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": [ "X20", "X32", "X58", "X56" ], "exprvars": [] } }, "130": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (vl T6 X20) (',' (select X21 X20 X22) (',' (vl X23 X22) (vlcnd X23))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [ "X20", "X21", "X22", "X23" ], "exprvars": [] } }, "295": { "goal": [{ "clause": 7, "scope": 4, "term": "(',' (p T10 X56) (vl X56 X58))" }], "kb": { "nonunifying": [[ "(vl T10 X20)", "(vl (0) X32)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": [ "X20", "X32", "X58", "X56" ], "exprvars": [] } }, "450": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (vl X23 T17) (vlcnd X23))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "572": { "goal": [{ "clause": 0, "scope": 8, "term": "(vlcnd T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "573": { "goal": [{ "clause": 1, "scope": 8, "term": "(vlcnd T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "299": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl T13 X58)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T13"], "free": ["X58"], "exprvars": [] } }, "499": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_6) (eq T46 ([])))" }, { "clause": 3, "scope": 6, "term": "(vl X23 T17)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "258": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_2) (eq X33 ([])))" }, { "clause": 3, "scope": 2, "term": "(vl (0) X20)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X20", "X33" ], "exprvars": [] } }, "259": { "goal": [{ "clause": 3, "scope": 2, "term": "(vl T6 X20)" }], "kb": { "nonunifying": [[ "(vl T6 X20)", "(vl (0) X32)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [ "X20", "X32" ], "exprvars": [] } }, "611": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (select X154 T59 X155) (',' (vl X156 X155) (vlcnd X156)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X154", "X155", "X156" ], "exprvars": [] } }, "260": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq X33 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X33"], "exprvars": [] } }, "261": { "goal": [{ "clause": 8, "scope": 3, "term": "(eq X33 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X33"], "exprvars": [] } }, "460": { "goal": [ { "clause": 4, "scope": 5, "term": "(select X21 T7 X22)" }, { "clause": 5, "scope": 5, "term": "(select X21 T7 X22)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X21", "X22" ], "exprvars": [] } }, "461": { "goal": [{ "clause": 4, "scope": 5, "term": "(select X21 T7 X22)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X21", "X22" ], "exprvars": [] } }, "462": { "goal": [{ "clause": 5, "scope": 5, "term": "(select X21 T7 X22)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X21", "X22" ], "exprvars": [] } }, "661": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "300": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "663": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "468": { "goal": [{ "clause": -1, "scope": -1, "term": "(select X106 T30 X107)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X106", "X107" ], "exprvars": [] } }, "501": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq T46 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "469": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "502": { "goal": [{ "clause": 8, "scope": 7, "term": "(eq T46 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "623": { "goal": [ { "clause": 2, "scope": 9, "term": "(vl T58 X153)" }, { "clause": 3, "scope": 9, "term": "(vl T58 X153)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X153"], "exprvars": [] } }, "503": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "504": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "505": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "509": { "goal": [ { "clause": 0, "scope": 8, "term": "(vlcnd T40)" }, { "clause": 1, "scope": 8, "term": "(vlcnd T40)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 3, "to": 5, "label": "CASE" }, { "from": 5, "to": 128, "label": "PARALLEL" }, { "from": 5, "to": 129, "label": "PARALLEL" }, { "from": 128, "to": 130, "label": "ONLY EVAL with clause\nvlcnd(X19) :- ','(vl(X19, X20), ','(select(X21, X20, X22), ','(vl(X23, X22), vlcnd(X23)))).\nand substitutionT1 -> T6,\nX19 -> T6" }, { "from": 129, "to": 684, "label": "EVAL with clause\nvlcnd(0).\nand substitutionT1 -> 0" }, { "from": 129, "to": 685, "label": "EVAL-BACKTRACK" }, { "from": 130, "to": 233, "label": "SPLIT 1" }, { "from": 130, "to": 234, "label": "SPLIT 2\nnew knowledge:\nT6 is ground\nreplacements:X20 -> T7" }, { "from": 233, "to": 235, "label": "CASE" }, { "from": 234, "to": 449, "label": "SPLIT 1" }, { "from": 234, "to": 450, "label": "SPLIT 2\nreplacements:X21 -> T16,\nX22 -> T17" }, { "from": 235, "to": 258, "label": "EVAL with clause\nvl(0, X32) :- ','(!_2, eq(X32, [])).\nand substitutionT6 -> 0,\nX20 -> X33,\nX32 -> X33" }, { "from": 235, "to": 259, "label": "EVAL-BACKTRACK" }, { "from": 258, "to": 260, "label": "CUT" }, { "from": 259, "to": 292, "label": "ONLY EVAL with clause\nvl(X53, .(X54, X55)) :- ','(p(X53, X56), vl(X56, X55)).\nand substitutionT6 -> T10,\nX53 -> T10,\nX54 -> X57,\nX55 -> X58,\nX20 -> .(X57, X58)" }, { "from": 260, "to": 261, "label": "CASE" }, { "from": 261, "to": 287, "label": "ONLY EVAL with clause\neq(X38, X38).\nand substitutionX33 -> [],\nX38 -> [],\nX39 -> []" }, { "from": 287, "to": 288, "label": "SUCCESS" }, { "from": 292, "to": 294, "label": "CASE" }, { "from": 294, "to": 295, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (vl(T10, X20), vl(0, X32))" }, { "from": 295, "to": 299, "label": "EVAL with clause\np(s(X63), X63).\nand substitutionX63 -> T13,\nT10 -> s(T13),\nX56 -> T13" }, { "from": 295, "to": 300, "label": "EVAL-BACKTRACK" }, { "from": 299, "to": 233, "label": "INSTANCE with matching:\nT6 -> T13\nX20 -> X58" }, { "from": 449, "to": 460, "label": "CASE" }, { "from": 450, "to": 476, "label": "SPLIT 1" }, { "from": 450, "to": 477, "label": "SPLIT 2\nreplacements:X23 -> T40" }, { "from": 460, "to": 461, "label": "PARALLEL" }, { "from": 460, "to": 462, "label": "PARALLEL" }, { "from": 461, "to": 468, "label": "EVAL with clause\nselect(X102, .(X103, X104), .(X103, X105)) :- select(X102, X104, X105).\nand substitutionX21 -> X106,\nX102 -> X106,\nX103 -> T28,\nX104 -> T30,\nT7 -> .(T28, T30),\nX105 -> X107,\nX22 -> .(T28, X107),\nT29 -> T30" }, { "from": 461, "to": 469, "label": "EVAL-BACKTRACK" }, { "from": 462, "to": 472, "label": "EVAL with clause\nselect(X120, .(X120, X121), X121).\nand substitutionX21 -> T37,\nX120 -> T37,\nX122 -> T37,\nX121 -> T38,\nT7 -> .(T37, T38),\nX22 -> T38" }, { "from": 462, "to": 473, "label": "EVAL-BACKTRACK" }, { "from": 468, "to": 449, "label": "INSTANCE with matching:\nX21 -> X106\nT7 -> T30\nX22 -> X107" }, { "from": 472, "to": 474, "label": "SUCCESS" }, { "from": 476, "to": 480, "label": "CASE" }, { "from": 477, "to": 509, "label": "CASE" }, { "from": 480, "to": 499, "label": "ONLY EVAL with clause\nvl(0, X127) :- ','(!_6, eq(X127, [])).\nand substitutionX23 -> 0,\nT17 -> T46,\nX127 -> T46,\nT45 -> T46" }, { "from": 499, "to": 501, "label": "CUT" }, { "from": 501, "to": 502, "label": "CASE" }, { "from": 502, "to": 503, "label": "EVAL with clause\neq(X130, X130).\nand substitutionT46 -> [],\nX130 -> [],\nT49 -> []" }, { "from": 502, "to": 504, "label": "EVAL-BACKTRACK" }, { "from": 503, "to": 505, "label": "SUCCESS" }, { "from": 509, "to": 572, "label": "PARALLEL" }, { "from": 509, "to": 573, "label": "PARALLEL" }, { "from": 572, "to": 591, "label": "ONLY EVAL with clause\nvlcnd(X152) :- ','(vl(X152, X153), ','(select(X154, X153, X155), ','(vl(X156, X155), vlcnd(X156)))).\nand substitutionT40 -> T58,\nX152 -> T58,\nT57 -> T58" }, { "from": 573, "to": 681, "label": "EVAL with clause\nvlcnd(0).\nand substitutionT40 -> 0" }, { "from": 573, "to": 682, "label": "EVAL-BACKTRACK" }, { "from": 591, "to": 608, "label": "SPLIT 1" }, { "from": 591, "to": 611, "label": "SPLIT 2\nreplacements:X153 -> T59" }, { "from": 608, "to": 623, "label": "CASE" }, { "from": 611, "to": 234, "label": "INSTANCE with matching:\nX21 -> X154\nT7 -> T59\nX22 -> X155\nX23 -> X156" }, { "from": 623, "to": 632, "label": "EVAL with clause\nvl(0, X165) :- ','(!_9, eq(X165, [])).\nand substitutionT58 -> 0,\nX153 -> X166,\nX165 -> X166" }, { "from": 623, "to": 635, "label": "EVAL-BACKTRACK" }, { "from": 632, "to": 638, "label": "CUT" }, { "from": 635, "to": 673, "label": "ONLY EVAL with clause\nvl(X186, .(X187, X188)) :- ','(p(X186, X189), vl(X189, X188)).\nand substitutionT58 -> T64,\nX186 -> T64,\nX187 -> X190,\nX188 -> X191,\nX153 -> .(X190, X191),\nT63 -> T64" }, { "from": 638, "to": 641, "label": "CASE" }, { "from": 641, "to": 661, "label": "ONLY EVAL with clause\neq(X171, X171).\nand substitutionX166 -> [],\nX171 -> [],\nX172 -> []" }, { "from": 661, "to": 663, "label": "SUCCESS" }, { "from": 673, "to": 674, "label": "CASE" }, { "from": 674, "to": 675, "label": "PARALLEL" }, { "from": 674, "to": 676, "label": "PARALLEL" }, { "from": 675, "to": 677, "label": "EVAL with clause\np(0, 0).\nand substitutionT64 -> 0,\nX189 -> 0" }, { "from": 675, "to": 678, "label": "EVAL-BACKTRACK" }, { "from": 676, "to": 679, "label": "EVAL with clause\np(s(X198), X198).\nand substitutionX198 -> T68,\nT64 -> s(T68),\nX189 -> T68,\nT67 -> T68" }, { "from": 676, "to": 680, "label": "EVAL-BACKTRACK" }, { "from": 677, "to": 233, "label": "INSTANCE with matching:\nT6 -> 0\nX20 -> X191" }, { "from": 679, "to": 608, "label": "INSTANCE with matching:\nT58 -> T68\nX153 -> X191" }, { "from": 681, "to": 683, "label": "SUCCESS" }, { "from": 684, "to": 686, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (178) Complex Obligation (AND) ---------------------------------------- (179) Obligation: Rules: f468_in -> f449_in :|: TRUE f449_out -> f468_out :|: TRUE f461_in -> f468_in :|: TRUE f468_out -> f461_out :|: TRUE f461_in -> f469_in :|: TRUE f469_out -> f461_out :|: TRUE f462_out -> f460_out :|: TRUE f461_out -> f460_out :|: TRUE f460_in -> f462_in :|: TRUE f460_in -> f461_in :|: TRUE f449_in -> f460_in :|: TRUE f460_out -> f449_out :|: TRUE f5_out(T1) -> f3_out(T1) :|: TRUE f3_in(x) -> f5_in(x) :|: TRUE f5_in(x1) -> f129_in(x1) :|: TRUE f129_out(x2) -> f5_out(x2) :|: TRUE f5_in(x3) -> f128_in(x3) :|: TRUE f128_out(x4) -> f5_out(x4) :|: TRUE f128_in(T6) -> f130_in(T6) :|: TRUE f130_out(x5) -> f128_out(x5) :|: TRUE f234_out -> f130_out(x6) :|: TRUE f233_out(x7) -> f234_in :|: TRUE f130_in(x8) -> f233_in(x8) :|: TRUE f450_out -> f234_out :|: TRUE f449_out -> f450_in :|: TRUE f234_in -> f449_in :|: TRUE Start term: f3_in(T1) ---------------------------------------- (180) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (181) TRUE ---------------------------------------- (182) Obligation: Rules: f292_in(T10) -> f294_in(T10) :|: TRUE f294_out(x) -> f292_out(x) :|: TRUE f233_out(T13) -> f299_out(T13) :|: TRUE f299_in(x1) -> f233_in(x1) :|: TRUE f294_in(x2) -> f295_in(x2) :|: TRUE f295_out(x3) -> f294_out(x3) :|: TRUE f299_out(x4) -> f295_out(s(x4)) :|: TRUE f300_out -> f295_out(x5) :|: TRUE f295_in(s(x6)) -> f299_in(x6) :|: TRUE f295_in(x7) -> f300_in :|: TRUE f233_in(T6) -> f235_in(T6) :|: TRUE f235_out(x8) -> f233_out(x8) :|: TRUE f235_in(x9) -> f259_in(x9) :|: TRUE f258_out -> f235_out(0) :|: TRUE f259_out(x10) -> f235_out(x10) :|: TRUE f235_in(0) -> f258_in :|: TRUE f259_in(x11) -> f292_in(x11) :|: TRUE f292_out(x12) -> f259_out(x12) :|: TRUE f5_out(T1) -> f3_out(T1) :|: TRUE f3_in(x13) -> f5_in(x13) :|: TRUE f5_in(x14) -> f129_in(x14) :|: TRUE f129_out(x15) -> f5_out(x15) :|: TRUE f5_in(x16) -> f128_in(x16) :|: TRUE f128_out(x17) -> f5_out(x17) :|: TRUE f128_in(x18) -> f130_in(x18) :|: TRUE f130_out(x19) -> f128_out(x19) :|: TRUE f234_out -> f130_out(x20) :|: TRUE f233_out(x21) -> f234_in :|: TRUE f130_in(x22) -> f233_in(x22) :|: TRUE f450_out -> f234_out :|: TRUE f449_out -> f450_in :|: TRUE f234_in -> f449_in :|: TRUE f450_in -> f476_in :|: TRUE f476_out -> f477_in :|: TRUE f477_out -> f450_out :|: TRUE f477_in -> f509_in :|: TRUE f509_out -> f477_out :|: TRUE f509_in -> f572_in :|: TRUE f572_out -> f509_out :|: TRUE f573_out -> f509_out :|: TRUE f509_in -> f573_in :|: TRUE f591_out -> f572_out :|: TRUE f572_in -> f591_in :|: TRUE f611_out -> f591_out :|: TRUE f608_out -> f611_in :|: TRUE f591_in -> f608_in :|: TRUE f608_in -> f623_in :|: TRUE f623_out -> f608_out :|: TRUE f623_in -> f632_in :|: TRUE f632_out -> f623_out :|: TRUE f635_out -> f623_out :|: TRUE f623_in -> f635_in :|: TRUE f673_out -> f635_out :|: TRUE f635_in -> f673_in :|: TRUE f674_out -> f673_out :|: TRUE f673_in -> f674_in :|: TRUE f674_in -> f676_in :|: TRUE f676_out -> f674_out :|: TRUE f675_out -> f674_out :|: TRUE f674_in -> f675_in :|: TRUE f675_in -> f677_in :|: TRUE f677_out -> f675_out :|: TRUE f675_in -> f678_in :|: TRUE f678_out -> f675_out :|: TRUE f677_in -> f233_in(0) :|: TRUE f233_out(0) -> f677_out :|: TRUE Start term: f3_in(T1) ---------------------------------------- (183) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f292_in(T10) -> f294_in(T10) :|: TRUE f299_in(x1) -> f233_in(x1) :|: TRUE f294_in(x2) -> f295_in(x2) :|: TRUE f295_in(s(x6)) -> f299_in(x6) :|: TRUE f233_in(T6) -> f235_in(T6) :|: TRUE f235_in(x9) -> f259_in(x9) :|: TRUE f259_in(x11) -> f292_in(x11) :|: TRUE ---------------------------------------- (184) Obligation: Rules: f292_in(T10) -> f294_in(T10) :|: TRUE f299_in(x1) -> f233_in(x1) :|: TRUE f294_in(x2) -> f295_in(x2) :|: TRUE f295_in(s(x6)) -> f299_in(x6) :|: TRUE f233_in(T6) -> f235_in(T6) :|: TRUE f235_in(x9) -> f259_in(x9) :|: TRUE f259_in(x11) -> f292_in(x11) :|: TRUE ---------------------------------------- (185) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (186) Obligation: Rules: f292_in(s(x6:0)) -> f292_in(x6:0) :|: TRUE ---------------------------------------- (187) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (188) Obligation: Rules: f292_in(s(x6:0)) -> f292_in(x6:0) :|: TRUE ---------------------------------------- (189) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f292_in(s(x6:0)) -> f292_in(x6:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (190) Obligation: Termination digraph: Nodes: (1) f292_in(s(x6:0)) -> f292_in(x6:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (191) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f292_in(VARIABLE) s(VARIABLE) Removed predefined arithmetic. ---------------------------------------- (192) Obligation: Rules: f292_in(s(x6:0)) -> f292_in(x6:0) ---------------------------------------- (193) IRSwTToQDPProof (SOUND) Removed the integers and created a QDP-Problem. ---------------------------------------- (194) Obligation: Q DP problem: The TRS P consists of the following rules: f292_in(s(x6:0)) -> f292_in(x6:0) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (195) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *f292_in(s(x6:0)) -> f292_in(x6:0) The graph contains the following edges 1 > 1 ---------------------------------------- (196) YES ---------------------------------------- (197) Obligation: Rules: f679_out -> f676_out :|: TRUE f676_in -> f680_in :|: TRUE f676_in -> f679_in :|: TRUE f680_out -> f676_out :|: TRUE f608_out -> f679_out :|: TRUE f679_in -> f608_in :|: TRUE f623_in -> f632_in :|: TRUE f632_out -> f623_out :|: TRUE f635_out -> f623_out :|: TRUE f623_in -> f635_in :|: TRUE f674_out -> f673_out :|: TRUE f673_in -> f674_in :|: TRUE f608_in -> f623_in :|: TRUE f623_out -> f608_out :|: TRUE f673_out -> f635_out :|: TRUE f635_in -> f673_in :|: TRUE f674_in -> f676_in :|: TRUE f676_out -> f674_out :|: TRUE f675_out -> f674_out :|: TRUE f674_in -> f675_in :|: TRUE f5_out(T1) -> f3_out(T1) :|: TRUE f3_in(x) -> f5_in(x) :|: TRUE f5_in(x1) -> f129_in(x1) :|: TRUE f129_out(x2) -> f5_out(x2) :|: TRUE f5_in(x3) -> f128_in(x3) :|: TRUE f128_out(x4) -> f5_out(x4) :|: TRUE f128_in(T6) -> f130_in(T6) :|: TRUE f130_out(x5) -> f128_out(x5) :|: TRUE f234_out -> f130_out(x6) :|: TRUE f233_out(x7) -> f234_in :|: TRUE f130_in(x8) -> f233_in(x8) :|: TRUE f450_out -> f234_out :|: TRUE f449_out -> f450_in :|: TRUE f234_in -> f449_in :|: TRUE f450_in -> f476_in :|: TRUE f476_out -> f477_in :|: TRUE f477_out -> f450_out :|: TRUE f477_in -> f509_in :|: TRUE f509_out -> f477_out :|: TRUE f509_in -> f572_in :|: TRUE f572_out -> f509_out :|: TRUE f573_out -> f509_out :|: TRUE f509_in -> f573_in :|: TRUE f591_out -> f572_out :|: TRUE f572_in -> f591_in :|: TRUE f611_out -> f591_out :|: TRUE f608_out -> f611_in :|: TRUE f591_in -> f608_in :|: TRUE Start term: f3_in(T1) ---------------------------------------- (198) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (199) TRUE ---------------------------------------- (200) Obligation: Rules: f679_out -> f676_out :|: TRUE f676_in -> f680_in :|: TRUE f676_in -> f679_in :|: TRUE f680_out -> f676_out :|: TRUE f462_out -> f460_out :|: TRUE f461_out -> f460_out :|: TRUE f460_in -> f462_in :|: TRUE f460_in -> f461_in :|: TRUE f502_out -> f501_out :|: TRUE f501_in -> f502_in :|: TRUE f462_in -> f472_in :|: TRUE f472_out -> f462_out :|: TRUE f473_out -> f462_out :|: TRUE f462_in -> f473_in :|: TRUE f477_in -> f509_in :|: TRUE f509_out -> f477_out :|: TRUE f674_out -> f673_out :|: TRUE f673_in -> f674_in :|: TRUE f480_out -> f476_out :|: TRUE f476_in -> f480_in :|: TRUE f461_in -> f468_in :|: TRUE f468_out -> f461_out :|: TRUE f461_in -> f469_in :|: TRUE f469_out -> f461_out :|: TRUE f501_out -> f499_out :|: TRUE f499_in -> f501_in :|: TRUE f294_in(T10) -> f295_in(T10) :|: TRUE f295_out(x) -> f294_out(x) :|: TRUE f611_out -> f591_out :|: TRUE f608_out -> f611_in :|: TRUE f591_in -> f608_in :|: TRUE f638_in -> f641_in :|: TRUE f641_out -> f638_out :|: TRUE f260_out -> f258_out :|: TRUE f258_in -> f260_in :|: TRUE f591_out -> f572_out :|: TRUE f572_in -> f591_in :|: TRUE f673_out -> f635_out :|: TRUE f635_in -> f673_in :|: TRUE f674_in -> f676_in :|: TRUE f676_out -> f674_out :|: TRUE f675_out -> f674_out :|: TRUE f674_in -> f675_in :|: TRUE f608_out -> f679_out :|: TRUE f679_in -> f608_in :|: TRUE f468_in -> f449_in :|: TRUE f449_out -> f468_out :|: TRUE f623_in -> f632_in :|: TRUE f632_out -> f623_out :|: TRUE f635_out -> f623_out :|: TRUE f623_in -> f635_in :|: TRUE f632_in -> f638_in :|: TRUE f638_out -> f632_out :|: TRUE f608_in -> f623_in :|: TRUE f623_out -> f608_out :|: TRUE f503_in -> f503_out :|: TRUE f509_in -> f572_in :|: TRUE f572_out -> f509_out :|: TRUE f573_out -> f509_out :|: TRUE f509_in -> f573_in :|: TRUE f259_in(x1) -> f292_in(x1) :|: TRUE f292_out(x2) -> f259_out(x2) :|: TRUE f472_in -> f472_out :|: TRUE f675_in -> f677_in :|: TRUE f677_out -> f675_out :|: TRUE f675_in -> f678_in :|: TRUE f678_out -> f675_out :|: TRUE f677_in -> f233_in(0) :|: TRUE f233_out(0) -> f677_out :|: TRUE f503_out -> f502_out :|: TRUE f502_in -> f504_in :|: TRUE f502_in -> f503_in :|: TRUE f504_out -> f502_out :|: TRUE f287_in -> f287_out :|: TRUE f233_in(T6) -> f235_in(T6) :|: TRUE f235_out(x3) -> f233_out(x3) :|: TRUE f260_in -> f261_in :|: TRUE f261_out -> f260_out :|: TRUE f450_out -> f234_out :|: TRUE f449_out -> f450_in :|: TRUE f234_in -> f449_in :|: TRUE f287_out -> f261_out :|: TRUE f261_in -> f287_in :|: TRUE f661_in -> f661_out :|: TRUE f235_in(x4) -> f259_in(x4) :|: TRUE f258_out -> f235_out(0) :|: TRUE f259_out(x5) -> f235_out(x5) :|: TRUE f235_in(0) -> f258_in :|: TRUE f292_in(x6) -> f294_in(x6) :|: TRUE f294_out(x7) -> f292_out(x7) :|: TRUE f450_in -> f476_in :|: TRUE f476_out -> f477_in :|: TRUE f477_out -> f450_out :|: TRUE f234_out -> f611_out :|: TRUE f611_in -> f234_in :|: TRUE f641_in -> f661_in :|: TRUE f661_out -> f641_out :|: TRUE f480_in -> f499_in :|: TRUE f499_out -> f480_out :|: TRUE f233_out(T13) -> f299_out(T13) :|: TRUE f299_in(x8) -> f233_in(x8) :|: TRUE f299_out(x9) -> f295_out(s(x9)) :|: TRUE f300_out -> f295_out(x10) :|: TRUE f295_in(s(x11)) -> f299_in(x11) :|: TRUE f295_in(x12) -> f300_in :|: TRUE f449_in -> f460_in :|: TRUE f460_out -> f449_out :|: TRUE f5_out(T1) -> f3_out(T1) :|: TRUE f3_in(x13) -> f5_in(x13) :|: TRUE f5_in(x14) -> f129_in(x14) :|: TRUE f129_out(x15) -> f5_out(x15) :|: TRUE f5_in(x16) -> f128_in(x16) :|: TRUE f128_out(x17) -> f5_out(x17) :|: TRUE f128_in(x18) -> f130_in(x18) :|: TRUE f130_out(x19) -> f128_out(x19) :|: TRUE f234_out -> f130_out(x20) :|: TRUE f233_out(x21) -> f234_in :|: TRUE f130_in(x22) -> f233_in(x22) :|: TRUE Start term: f3_in(T1) ---------------------------------------- (201) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f679_out -> f676_out :|: TRUE f676_in -> f679_in :|: TRUE f462_out -> f460_out :|: TRUE f461_out -> f460_out :|: TRUE f460_in -> f462_in :|: TRUE f460_in -> f461_in :|: TRUE f502_out -> f501_out :|: TRUE f501_in -> f502_in :|: TRUE f462_in -> f472_in :|: TRUE f472_out -> f462_out :|: TRUE f477_in -> f509_in :|: TRUE f674_out -> f673_out :|: TRUE f673_in -> f674_in :|: TRUE f480_out -> f476_out :|: TRUE f476_in -> f480_in :|: TRUE f461_in -> f468_in :|: TRUE f468_out -> f461_out :|: TRUE f501_out -> f499_out :|: TRUE f499_in -> f501_in :|: TRUE f294_in(T10) -> f295_in(T10) :|: TRUE f295_out(x) -> f294_out(x) :|: TRUE f608_out -> f611_in :|: TRUE f591_in -> f608_in :|: TRUE f638_in -> f641_in :|: TRUE f641_out -> f638_out :|: TRUE f260_out -> f258_out :|: TRUE f258_in -> f260_in :|: TRUE f572_in -> f591_in :|: TRUE f673_out -> f635_out :|: TRUE f635_in -> f673_in :|: TRUE f674_in -> f676_in :|: TRUE f676_out -> f674_out :|: TRUE f675_out -> f674_out :|: TRUE f674_in -> f675_in :|: TRUE f608_out -> f679_out :|: TRUE f679_in -> f608_in :|: TRUE f468_in -> f449_in :|: TRUE f449_out -> f468_out :|: TRUE f623_in -> f632_in :|: TRUE f632_out -> f623_out :|: TRUE f635_out -> f623_out :|: TRUE f623_in -> f635_in :|: TRUE f632_in -> f638_in :|: TRUE f638_out -> f632_out :|: TRUE f608_in -> f623_in :|: TRUE f623_out -> f608_out :|: TRUE f503_in -> f503_out :|: TRUE f509_in -> f572_in :|: TRUE f259_in(x1) -> f292_in(x1) :|: TRUE f292_out(x2) -> f259_out(x2) :|: TRUE f472_in -> f472_out :|: TRUE f675_in -> f677_in :|: TRUE f677_out -> f675_out :|: TRUE f677_in -> f233_in(0) :|: TRUE f233_out(0) -> f677_out :|: TRUE f503_out -> f502_out :|: TRUE f502_in -> f503_in :|: TRUE f287_in -> f287_out :|: TRUE f233_in(T6) -> f235_in(T6) :|: TRUE f235_out(x3) -> f233_out(x3) :|: TRUE f260_in -> f261_in :|: TRUE f261_out -> f260_out :|: TRUE f449_out -> f450_in :|: TRUE f234_in -> f449_in :|: TRUE f287_out -> f261_out :|: TRUE f261_in -> f287_in :|: TRUE f661_in -> f661_out :|: TRUE f235_in(x4) -> f259_in(x4) :|: TRUE f258_out -> f235_out(0) :|: TRUE f259_out(x5) -> f235_out(x5) :|: TRUE f235_in(0) -> f258_in :|: TRUE f292_in(x6) -> f294_in(x6) :|: TRUE f294_out(x7) -> f292_out(x7) :|: TRUE f450_in -> f476_in :|: TRUE f476_out -> f477_in :|: TRUE f611_in -> f234_in :|: TRUE f641_in -> f661_in :|: TRUE f661_out -> f641_out :|: TRUE f480_in -> f499_in :|: TRUE f499_out -> f480_out :|: TRUE f233_out(T13) -> f299_out(T13) :|: TRUE f299_in(x8) -> f233_in(x8) :|: TRUE f299_out(x9) -> f295_out(s(x9)) :|: TRUE f295_in(s(x11)) -> f299_in(x11) :|: TRUE f449_in -> f460_in :|: TRUE f460_out -> f449_out :|: TRUE f233_out(x21) -> f234_in :|: TRUE ---------------------------------------- (202) Obligation: Rules: f679_out -> f676_out :|: TRUE f676_in -> f679_in :|: TRUE f462_out -> f460_out :|: TRUE f461_out -> f460_out :|: TRUE f460_in -> f462_in :|: TRUE f460_in -> f461_in :|: TRUE f502_out -> f501_out :|: TRUE f501_in -> f502_in :|: TRUE f462_in -> f472_in :|: TRUE f472_out -> f462_out :|: TRUE f477_in -> f509_in :|: TRUE f674_out -> f673_out :|: TRUE f673_in -> f674_in :|: TRUE f480_out -> f476_out :|: TRUE f476_in -> f480_in :|: TRUE f461_in -> f468_in :|: TRUE f468_out -> f461_out :|: TRUE f501_out -> f499_out :|: TRUE f499_in -> f501_in :|: TRUE f294_in(T10) -> f295_in(T10) :|: TRUE f295_out(x) -> f294_out(x) :|: TRUE f608_out -> f611_in :|: TRUE f591_in -> f608_in :|: TRUE f638_in -> f641_in :|: TRUE f641_out -> f638_out :|: TRUE f260_out -> f258_out :|: TRUE f258_in -> f260_in :|: TRUE f572_in -> f591_in :|: TRUE f673_out -> f635_out :|: TRUE f635_in -> f673_in :|: TRUE f674_in -> f676_in :|: TRUE f676_out -> f674_out :|: TRUE f675_out -> f674_out :|: TRUE f674_in -> f675_in :|: TRUE f608_out -> f679_out :|: TRUE f679_in -> f608_in :|: TRUE f468_in -> f449_in :|: TRUE f449_out -> f468_out :|: TRUE f623_in -> f632_in :|: TRUE f632_out -> f623_out :|: TRUE f635_out -> f623_out :|: TRUE f623_in -> f635_in :|: TRUE f632_in -> f638_in :|: TRUE f638_out -> f632_out :|: TRUE f608_in -> f623_in :|: TRUE f623_out -> f608_out :|: TRUE f503_in -> f503_out :|: TRUE f509_in -> f572_in :|: TRUE f259_in(x1) -> f292_in(x1) :|: TRUE f292_out(x2) -> f259_out(x2) :|: TRUE f472_in -> f472_out :|: TRUE f675_in -> f677_in :|: TRUE f677_out -> f675_out :|: TRUE f677_in -> f233_in(0) :|: TRUE f233_out(0) -> f677_out :|: TRUE f503_out -> f502_out :|: TRUE f502_in -> f503_in :|: TRUE f287_in -> f287_out :|: TRUE f233_in(T6) -> f235_in(T6) :|: TRUE f235_out(x3) -> f233_out(x3) :|: TRUE f260_in -> f261_in :|: TRUE f261_out -> f260_out :|: TRUE f449_out -> f450_in :|: TRUE f234_in -> f449_in :|: TRUE f287_out -> f261_out :|: TRUE f261_in -> f287_in :|: TRUE f661_in -> f661_out :|: TRUE f235_in(x4) -> f259_in(x4) :|: TRUE f258_out -> f235_out(0) :|: TRUE f259_out(x5) -> f235_out(x5) :|: TRUE f235_in(0) -> f258_in :|: TRUE f292_in(x6) -> f294_in(x6) :|: TRUE f294_out(x7) -> f292_out(x7) :|: TRUE f450_in -> f476_in :|: TRUE f476_out -> f477_in :|: TRUE f611_in -> f234_in :|: TRUE f641_in -> f661_in :|: TRUE f661_out -> f641_out :|: TRUE f480_in -> f499_in :|: TRUE f499_out -> f480_out :|: TRUE f233_out(T13) -> f299_out(T13) :|: TRUE f299_in(x8) -> f233_in(x8) :|: TRUE f299_out(x9) -> f295_out(s(x9)) :|: TRUE f295_in(s(x11)) -> f299_in(x11) :|: TRUE f449_in -> f460_in :|: TRUE f460_out -> f449_out :|: TRUE f233_out(x21) -> f234_in :|: TRUE ---------------------------------------- (203) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (204) Obligation: Rules: f460_in -> f449_out :|: TRUE f235_out(x3:0) -> f235_out(s(x3:0)) :|: TRUE f235_in(s(x11:0)) -> f235_in(x11:0) :|: TRUE f623_in -> f623_in :|: TRUE f623_in -> f608_out :|: TRUE f449_out -> f449_out :|: TRUE f235_in(cons_0) -> f235_out(0) :|: TRUE && cons_0 = 0 f235_out(x) -> f608_out :|: TRUE && x = 0 f235_out(x1) -> f460_in :|: TRUE f460_in -> f460_in :|: TRUE f608_out -> f460_in :|: TRUE f449_out -> f623_in :|: TRUE f608_out -> f608_out :|: TRUE f623_in -> f235_in(0) :|: TRUE ---------------------------------------- (205) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (206) Obligation: Rules: f460_in -> f449_out :|: TRUE f235_out(x3:0) -> f235_out(s(x3:0)) :|: TRUE f235_in(s(x11:0)) -> f235_in(x11:0) :|: TRUE f623_in -> f623_in :|: TRUE f623_in -> f608_out :|: TRUE f449_out -> f449_out :|: TRUE f235_in(cons_0) -> f235_out(0) :|: TRUE && cons_0 = 0 f235_out(x) -> f608_out :|: TRUE && x = 0 f235_out(x1) -> f460_in :|: TRUE f460_in -> f460_in :|: TRUE f608_out -> f460_in :|: TRUE f449_out -> f623_in :|: TRUE f608_out -> f608_out :|: TRUE f623_in -> f235_in(0) :|: TRUE ---------------------------------------- (207) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f460_in -> f449_out :|: TRUE (2) f235_out(x3:0) -> f235_out(s(x3:0)) :|: TRUE (3) f235_in(s(x11:0)) -> f235_in(x11:0) :|: TRUE (4) f623_in -> f623_in :|: TRUE (5) f623_in -> f608_out :|: TRUE (6) f449_out -> f449_out :|: TRUE (7) f235_in(cons_0) -> f235_out(0) :|: TRUE && cons_0 = 0 (8) f235_out(x) -> f608_out :|: TRUE && x = 0 (9) f235_out(x1) -> f460_in :|: TRUE (10) f460_in -> f460_in :|: TRUE (11) f608_out -> f460_in :|: TRUE (12) f449_out -> f623_in :|: TRUE (13) f608_out -> f608_out :|: TRUE (14) f623_in -> f235_in(0) :|: TRUE Arcs: (1) -> (6), (12) (2) -> (2), (9) (3) -> (3), (7) (4) -> (4), (5), (14) (5) -> (11), (13) (6) -> (6), (12) (7) -> (2), (8), (9) (8) -> (11), (13) (9) -> (1), (10) (10) -> (1), (10) (11) -> (1), (10) (12) -> (4), (5), (14) (13) -> (11), (13) (14) -> (7) This digraph is fully evaluated! ---------------------------------------- (208) Complex Obligation (AND) ---------------------------------------- (209) Obligation: Termination digraph: Nodes: (1) f235_in(s(x11:0)) -> f235_in(x11:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (210) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f235_in(VARIABLE) s(VARIABLE) Removed predefined arithmetic. ---------------------------------------- (211) Obligation: Rules: f235_in(s(x11:0)) -> f235_in(x11:0) ---------------------------------------- (212) IRSwTToQDPProof (SOUND) Removed the integers and created a QDP-Problem. ---------------------------------------- (213) Obligation: Q DP problem: The TRS P consists of the following rules: f235_in(s(x11:0)) -> f235_in(x11:0) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (214) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *f235_in(s(x11:0)) -> f235_in(x11:0) The graph contains the following edges 1 > 1 ---------------------------------------- (215) YES ---------------------------------------- (216) Obligation: Termination digraph: Nodes: (1) f460_in -> f449_out :|: TRUE (2) f460_in -> f460_in :|: TRUE (3) f608_out -> f460_in :|: TRUE (4) f608_out -> f608_out :|: TRUE (5) f235_out(x) -> f608_out :|: TRUE && x = 0 (6) f623_in -> f608_out :|: TRUE (7) f235_out(x1) -> f460_in :|: TRUE (8) f235_out(x3:0) -> f235_out(s(x3:0)) :|: TRUE (9) f235_in(cons_0) -> f235_out(0) :|: TRUE && cons_0 = 0 (10) f623_in -> f235_in(0) :|: TRUE (11) f623_in -> f623_in :|: TRUE (12) f449_out -> f623_in :|: TRUE (13) f449_out -> f449_out :|: TRUE Arcs: (1) -> (12), (13) (2) -> (1), (2) (3) -> (1), (2) (4) -> (3), (4) (5) -> (3), (4) (6) -> (3), (4) (7) -> (1), (2) (8) -> (7), (8) (9) -> (5), (7), (8) (10) -> (9) (11) -> (6), (10), (11) (12) -> (6), (10), (11) (13) -> (12), (13) This digraph is fully evaluated! ---------------------------------------- (217) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (218) Obligation: Rules: f460_in -> f460_in :|: TRUE f235_out(cons_0) -> f608_out :|: TRUE && cons_0 = 0 f235_out(x3:0:0) -> f235_out(s(x3:0:0)) :|: TRUE f235_out(x1:0) -> f460_in :|: TRUE f623_in -> f608_out :|: TRUE f449_out -> f623_in :|: TRUE f608_out -> f608_out :|: TRUE f623_in -> f623_in :|: TRUE f623_in -> f235_out(0) :|: TRUE f460_in -> f449_out :|: TRUE f608_out -> f460_in :|: TRUE f449_out -> f449_out :|: TRUE ---------------------------------------- (219) IRSwTToIntTRSProof (SOUND) Applied path-length measure to transform intTRS with terms to intTRS. ---------------------------------------- (220) Obligation: Rules: f460_in -> f460_in :|: TRUE f235_out(cons_0) -> f608_out :|: TRUE && cons_0 = 0 f235_out(x1) -> f235_out(s(x1)) :|: TRUE f235_out(x2) -> f460_in :|: TRUE f623_in -> f608_out :|: TRUE f449_out -> f623_in :|: TRUE f608_out -> f608_out :|: TRUE f623_in -> f623_in :|: TRUE f623_in -> f235_out(0) :|: TRUE f460_in -> f449_out :|: TRUE f608_out -> f460_in :|: TRUE f449_out -> f449_out :|: TRUE ---------------------------------------- (221) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (222) Obligation: Rules: f460_in -> f460_in :|: TRUE f235_out(cons_0) -> f608_out :|: TRUE && cons_0 = 0 f235_out(x1:0) -> f235_out(s(x1:0)) :|: TRUE f235_out(x2:0) -> f460_in :|: TRUE f623_in -> f608_out :|: TRUE f449_out -> f623_in :|: TRUE f623_in -> f235_out(0) :|: TRUE f608_out -> f608_out :|: TRUE f623_in -> f623_in :|: TRUE f460_in -> f449_out :|: TRUE f608_out -> f460_in :|: TRUE f449_out -> f449_out :|: TRUE ---------------------------------------- (223) PrologToTRSTransformerProof (SOUND) Transformed Prolog program to TRS. { "root": 2, "program": { "directives": [], "clauses": [ [ "(vlcnd N)", "(',' (vl N Xs) (',' (select X1 Xs Ys) (',' (vl M Ys) (vlcnd M))))" ], [ "(vlcnd (0))", null ], [ "(vl (0) L)", "(',' (!) (eq L ([])))" ], [ "(vl N (. X2 Xs))", "(',' (p N P) (vl P Xs))" ], [ "(select X (. Y Xs) (. Y Ys))", "(select X Xs Ys)" ], [ "(select X (. X Xs) Xs)", null ], [ "(p (0) (0))", null ], [ "(p (s X) X)", null ], [ "(eq X X)", null ] ] }, "graph": { "nodes": { "type": "Nodes", "272": { "goal": [ { "clause": 6, "scope": 4, "term": "(',' (p T10 X56) (vl X56 X58))" }, { "clause": 7, "scope": 4, "term": "(',' (p T10 X56) (vl X56 X58))" } ], "kb": { "nonunifying": [[ "(vl T10 X20)", "(vl (0) X32)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": [ "X20", "X32", "X58", "X56" ], "exprvars": [] } }, "470": { "goal": [{ "clause": -1, "scope": -1, "term": "(select X106 T30 X107)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X106", "X107" ], "exprvars": [] } }, "471": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "792": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T64 X189) (vl X189 X191))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X191", "X189" ], "exprvars": [] } }, "793": { "goal": [ { "clause": 6, "scope": 11, "term": "(',' (p T64 X189) (vl X189 X191))" }, { "clause": 7, "scope": 11, "term": "(',' (p T64 X189) (vl X189 X191))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X191", "X189" ], "exprvars": [] } }, "475": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "750": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_9) (eq X166 ([])))" }, { "clause": 3, "scope": 9, "term": "(vl T58 X153)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X153", "X166" ], "exprvars": [] } }, "794": { "goal": [{ "clause": 6, "scope": 11, "term": "(',' (p T64 X189) (vl X189 X191))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X191", "X189" ], "exprvars": [] } }, "751": { "goal": [{ "clause": 3, "scope": 9, "term": "(vl T58 X153)" }], "kb": { "nonunifying": [[ "(vl T58 X153)", "(vl (0) X165)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X153", "X165" ], "exprvars": [] } }, "795": { "goal": [{ "clause": 7, "scope": 11, "term": "(',' (p T64 X189) (vl X189 X191))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X191", "X189" ], "exprvars": [] } }, "510": { "goal": [ { "clause": 0, "scope": 8, "term": "(vlcnd T40)" }, { "clause": 1, "scope": 8, "term": "(vlcnd T40)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "752": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq X166 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X166"], "exprvars": [] } }, "796": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl (0) X191)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X191"], "exprvars": [] } }, "478": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "753": { "goal": [{ "clause": 8, "scope": 10, "term": "(eq X166 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X166"], "exprvars": [] } }, "797": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "237": { "goal": [ { "clause": 0, "scope": 1, "term": "(vlcnd T1)" }, { "clause": 1, "scope": 1, "term": "(vlcnd T1)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "479": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "754": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "798": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl T68 X191)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X191"], "exprvars": [] } }, "755": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "799": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "481": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl X23 T17)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "482": { "goal": [{ "clause": -1, "scope": -1, "term": "(vlcnd T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "242": { "goal": [{ "clause": 0, "scope": 1, "term": "(vlcnd T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "243": { "goal": [{ "clause": 1, "scope": 1, "term": "(vlcnd T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "485": { "goal": [ { "clause": 2, "scope": 6, "term": "(vl X23 T17)" }, { "clause": 3, "scope": 6, "term": "(vl X23 T17)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(vlcnd T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "248": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (vl T6 X20) (',' (select X21 X20 X22) (',' (vl X23 X22) (vlcnd X23))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [ "X20", "X21", "X22", "X23" ], "exprvars": [] } }, "249": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl T6 X20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": ["X20"], "exprvars": [] } }, "800": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "801": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "802": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "803": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "804": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "805": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "250": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (select X21 T7 X22) (',' (vl X23 X22) (vlcnd X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X21", "X22", "X23" ], "exprvars": [] } }, "252": { "goal": [ { "clause": 2, "scope": 2, "term": "(vl T6 X20)" }, { "clause": 3, "scope": 2, "term": "(vl T6 X20)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": ["X20"], "exprvars": [] } }, "254": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_2) (eq X33 ([])))" }, { "clause": 3, "scope": 2, "term": "(vl (0) X20)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X20", "X33" ], "exprvars": [] } }, "496": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_6) (eq T46 ([])))" }, { "clause": 3, "scope": 6, "term": "(vl X23 T17)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "255": { "goal": [{ "clause": 3, "scope": 2, "term": "(vl T6 X20)" }], "kb": { "nonunifying": [[ "(vl T6 X20)", "(vl (0) X32)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [ "X20", "X32" ], "exprvars": [] } }, "498": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq T46 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "257": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq X33 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X33"], "exprvars": [] } }, "264": { "goal": [{ "clause": 8, "scope": 3, "term": "(eq X33 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X33"], "exprvars": [] } }, "463": { "goal": [{ "clause": -1, "scope": -1, "term": "(select X21 T7 X22)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X21", "X22" ], "exprvars": [] } }, "266": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "464": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (vl X23 T17) (vlcnd X23))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "267": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "465": { "goal": [ { "clause": 4, "scope": 5, "term": "(select X21 T7 X22)" }, { "clause": 5, "scope": 5, "term": "(select X21 T7 X22)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X21", "X22" ], "exprvars": [] } }, "422": { "goal": [{ "clause": 7, "scope": 4, "term": "(',' (p T10 X56) (vl X56 X58))" }], "kb": { "nonunifying": [[ "(vl T10 X20)", "(vl (0) X32)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": [ "X20", "X32", "X58", "X56" ], "exprvars": [] } }, "466": { "goal": [{ "clause": 4, "scope": 5, "term": "(select X21 T7 X22)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X21", "X22" ], "exprvars": [] } }, "269": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T10 X56) (vl X56 X58))" }], "kb": { "nonunifying": [[ "(vl T10 X20)", "(vl (0) X32)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": [ "X20", "X32", "X58", "X56" ], "exprvars": [] } }, "423": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl T13 X58)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T13"], "free": ["X58"], "exprvars": [] } }, "467": { "goal": [{ "clause": 5, "scope": 5, "term": "(select X21 T7 X22)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X21", "X22" ], "exprvars": [] } }, "500": { "goal": [{ "clause": 8, "scope": 7, "term": "(eq T46 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "424": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "744": { "goal": [{ "clause": 0, "scope": 8, "term": "(vlcnd T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "745": { "goal": [{ "clause": 1, "scope": 8, "term": "(vlcnd T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "746": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (vl T58 X153) (',' (select X154 X153 X155) (',' (vl X156 X155) (vlcnd X156))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X153", "X154", "X155", "X156" ], "exprvars": [] } }, "747": { "goal": [{ "clause": -1, "scope": -1, "term": "(vl T58 X153)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X153"], "exprvars": [] } }, "506": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "748": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (select X154 T59 X155) (',' (vl X156 X155) (vlcnd X156)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X154", "X155", "X156" ], "exprvars": [] } }, "507": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "749": { "goal": [ { "clause": 2, "scope": 9, "term": "(vl T58 X153)" }, { "clause": 3, "scope": 9, "term": "(vl T58 X153)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X153"], "exprvars": [] } }, "508": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 2, "to": 237, "label": "CASE" }, { "from": 237, "to": 242, "label": "PARALLEL" }, { "from": 237, "to": 243, "label": "PARALLEL" }, { "from": 242, "to": 248, "label": "ONLY EVAL with clause\nvlcnd(X19) :- ','(vl(X19, X20), ','(select(X21, X20, X22), ','(vl(X23, X22), vlcnd(X23)))).\nand substitutionT1 -> T6,\nX19 -> T6" }, { "from": 243, "to": 803, "label": "EVAL with clause\nvlcnd(0).\nand substitutionT1 -> 0" }, { "from": 243, "to": 804, "label": "EVAL-BACKTRACK" }, { "from": 248, "to": 249, "label": "SPLIT 1" }, { "from": 248, "to": 250, "label": "SPLIT 2\nnew knowledge:\nT6 is ground\nreplacements:X20 -> T7" }, { "from": 249, "to": 252, "label": "CASE" }, { "from": 250, "to": 463, "label": "SPLIT 1" }, { "from": 250, "to": 464, "label": "SPLIT 2\nreplacements:X21 -> T16,\nX22 -> T17" }, { "from": 252, "to": 254, "label": "EVAL with clause\nvl(0, X32) :- ','(!_2, eq(X32, [])).\nand substitutionT6 -> 0,\nX20 -> X33,\nX32 -> X33" }, { "from": 252, "to": 255, "label": "EVAL-BACKTRACK" }, { "from": 254, "to": 257, "label": "CUT" }, { "from": 255, "to": 269, "label": "ONLY EVAL with clause\nvl(X53, .(X54, X55)) :- ','(p(X53, X56), vl(X56, X55)).\nand substitutionT6 -> T10,\nX53 -> T10,\nX54 -> X57,\nX55 -> X58,\nX20 -> .(X57, X58)" }, { "from": 257, "to": 264, "label": "CASE" }, { "from": 264, "to": 266, "label": "ONLY EVAL with clause\neq(X38, X38).\nand substitutionX33 -> [],\nX38 -> [],\nX39 -> []" }, { "from": 266, "to": 267, "label": "SUCCESS" }, { "from": 269, "to": 272, "label": "CASE" }, { "from": 272, "to": 422, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (vl(T10, X20), vl(0, X32))" }, { "from": 422, "to": 423, "label": "EVAL with clause\np(s(X63), X63).\nand substitutionX63 -> T13,\nT10 -> s(T13),\nX56 -> T13" }, { "from": 422, "to": 424, "label": "EVAL-BACKTRACK" }, { "from": 423, "to": 249, "label": "INSTANCE with matching:\nT6 -> T13\nX20 -> X58" }, { "from": 463, "to": 465, "label": "CASE" }, { "from": 464, "to": 481, "label": "SPLIT 1" }, { "from": 464, "to": 482, "label": "SPLIT 2\nreplacements:X23 -> T40" }, { "from": 465, "to": 466, "label": "PARALLEL" }, { "from": 465, "to": 467, "label": "PARALLEL" }, { "from": 466, "to": 470, "label": "EVAL with clause\nselect(X102, .(X103, X104), .(X103, X105)) :- select(X102, X104, X105).\nand substitutionX21 -> X106,\nX102 -> X106,\nX103 -> T28,\nX104 -> T30,\nT7 -> .(T28, T30),\nX105 -> X107,\nX22 -> .(T28, X107),\nT29 -> T30" }, { "from": 466, "to": 471, "label": "EVAL-BACKTRACK" }, { "from": 467, "to": 475, "label": "EVAL with clause\nselect(X120, .(X120, X121), X121).\nand substitutionX21 -> T37,\nX120 -> T37,\nX122 -> T37,\nX121 -> T38,\nT7 -> .(T37, T38),\nX22 -> T38" }, { "from": 467, "to": 478, "label": "EVAL-BACKTRACK" }, { "from": 470, "to": 463, "label": "INSTANCE with matching:\nX21 -> X106\nT7 -> T30\nX22 -> X107" }, { "from": 475, "to": 479, "label": "SUCCESS" }, { "from": 481, "to": 485, "label": "CASE" }, { "from": 482, "to": 510, "label": "CASE" }, { "from": 485, "to": 496, "label": "ONLY EVAL with clause\nvl(0, X127) :- ','(!_6, eq(X127, [])).\nand substitutionX23 -> 0,\nT17 -> T46,\nX127 -> T46,\nT45 -> T46" }, { "from": 496, "to": 498, "label": "CUT" }, { "from": 498, "to": 500, "label": "CASE" }, { "from": 500, "to": 506, "label": "EVAL with clause\neq(X130, X130).\nand substitutionT46 -> [],\nX130 -> [],\nT49 -> []" }, { "from": 500, "to": 507, "label": "EVAL-BACKTRACK" }, { "from": 506, "to": 508, "label": "SUCCESS" }, { "from": 510, "to": 744, "label": "PARALLEL" }, { "from": 510, "to": 745, "label": "PARALLEL" }, { "from": 744, "to": 746, "label": "ONLY EVAL with clause\nvlcnd(X152) :- ','(vl(X152, X153), ','(select(X154, X153, X155), ','(vl(X156, X155), vlcnd(X156)))).\nand substitutionT40 -> T58,\nX152 -> T58,\nT57 -> T58" }, { "from": 745, "to": 800, "label": "EVAL with clause\nvlcnd(0).\nand substitutionT40 -> 0" }, { "from": 745, "to": 801, "label": "EVAL-BACKTRACK" }, { "from": 746, "to": 747, "label": "SPLIT 1" }, { "from": 746, "to": 748, "label": "SPLIT 2\nreplacements:X153 -> T59" }, { "from": 747, "to": 749, "label": "CASE" }, { "from": 748, "to": 250, "label": "INSTANCE with matching:\nX21 -> X154\nT7 -> T59\nX22 -> X155\nX23 -> X156" }, { "from": 749, "to": 750, "label": "EVAL with clause\nvl(0, X165) :- ','(!_9, eq(X165, [])).\nand substitutionT58 -> 0,\nX153 -> X166,\nX165 -> X166" }, { "from": 749, "to": 751, "label": "EVAL-BACKTRACK" }, { "from": 750, "to": 752, "label": "CUT" }, { "from": 751, "to": 792, "label": "ONLY EVAL with clause\nvl(X186, .(X187, X188)) :- ','(p(X186, X189), vl(X189, X188)).\nand substitutionT58 -> T64,\nX186 -> T64,\nX187 -> X190,\nX188 -> X191,\nX153 -> .(X190, X191),\nT63 -> T64" }, { "from": 752, "to": 753, "label": "CASE" }, { "from": 753, "to": 754, "label": "ONLY EVAL with clause\neq(X171, X171).\nand substitutionX166 -> [],\nX171 -> [],\nX172 -> []" }, { "from": 754, "to": 755, "label": "SUCCESS" }, { "from": 792, "to": 793, "label": "CASE" }, { "from": 793, "to": 794, "label": "PARALLEL" }, { "from": 793, "to": 795, "label": "PARALLEL" }, { "from": 794, "to": 796, "label": "EVAL with clause\np(0, 0).\nand substitutionT64 -> 0,\nX189 -> 0" }, { "from": 794, "to": 797, "label": "EVAL-BACKTRACK" }, { "from": 795, "to": 798, "label": "EVAL with clause\np(s(X198), X198).\nand substitutionX198 -> T68,\nT64 -> s(T68),\nX189 -> T68,\nT67 -> T68" }, { "from": 795, "to": 799, "label": "EVAL-BACKTRACK" }, { "from": 796, "to": 249, "label": "INSTANCE with matching:\nT6 -> 0\nX20 -> X191" }, { "from": 798, "to": 747, "label": "INSTANCE with matching:\nT58 -> T68\nX153 -> X191" }, { "from": 800, "to": 802, "label": "SUCCESS" }, { "from": 803, "to": 805, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (224) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f2_in(T6) -> U1(f248_in(T6), T6) U1(f248_out1, T6) -> f2_out1 f2_in(0) -> f2_out1 f249_in(0) -> f249_out1 f249_in(s(T13)) -> U2(f249_in(T13), s(T13)) U2(f249_out1, s(T13)) -> f249_out1 f463_in -> U3(f463_in) U3(f463_out1) -> f463_out1 f463_in -> f463_out1 f747_in -> f747_out1 f747_in -> U4(f249_in(0)) U4(f249_out1) -> f747_out1 f747_in -> U5(f747_in) U5(f747_out1) -> f747_out1 f481_in -> f481_out1 f482_in -> U6(f746_in) U6(f746_out1) -> f482_out1 f482_in -> f482_out1 f248_in(T6) -> U7(f249_in(T6), T6) U7(f249_out1, T6) -> U8(f250_in, T6) U8(f250_out1, T6) -> f248_out1 f250_in -> U9(f463_in) U9(f463_out1) -> U10(f464_in) U10(f464_out1) -> f250_out1 f464_in -> U11(f481_in) U11(f481_out1) -> U12(f482_in) U12(f482_out1) -> f464_out1 f746_in -> U13(f747_in) U13(f747_out1) -> U14(f250_in) U14(f250_out1) -> f746_out1 Q is empty. ---------------------------------------- (225) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (226) Obligation: Q DP problem: The TRS P consists of the following rules: F2_IN(T6) -> U1^1(f248_in(T6), T6) F2_IN(T6) -> F248_IN(T6) F249_IN(s(T13)) -> U2^1(f249_in(T13), s(T13)) F249_IN(s(T13)) -> F249_IN(T13) F463_IN -> U3^1(f463_in) F463_IN -> F463_IN F747_IN -> U4^1(f249_in(0)) F747_IN -> F249_IN(0) F747_IN -> U5^1(f747_in) F747_IN -> F747_IN F482_IN -> U6^1(f746_in) F482_IN -> F746_IN F248_IN(T6) -> U7^1(f249_in(T6), T6) F248_IN(T6) -> F249_IN(T6) U7^1(f249_out1, T6) -> U8^1(f250_in, T6) U7^1(f249_out1, T6) -> F250_IN F250_IN -> U9^1(f463_in) F250_IN -> F463_IN U9^1(f463_out1) -> U10^1(f464_in) U9^1(f463_out1) -> F464_IN F464_IN -> U11^1(f481_in) F464_IN -> F481_IN U11^1(f481_out1) -> U12^1(f482_in) U11^1(f481_out1) -> F482_IN F746_IN -> U13^1(f747_in) F746_IN -> F747_IN U13^1(f747_out1) -> U14^1(f250_in) U13^1(f747_out1) -> F250_IN The TRS R consists of the following rules: f2_in(T6) -> U1(f248_in(T6), T6) U1(f248_out1, T6) -> f2_out1 f2_in(0) -> f2_out1 f249_in(0) -> f249_out1 f249_in(s(T13)) -> U2(f249_in(T13), s(T13)) U2(f249_out1, s(T13)) -> f249_out1 f463_in -> U3(f463_in) U3(f463_out1) -> f463_out1 f463_in -> f463_out1 f747_in -> f747_out1 f747_in -> U4(f249_in(0)) U4(f249_out1) -> f747_out1 f747_in -> U5(f747_in) U5(f747_out1) -> f747_out1 f481_in -> f481_out1 f482_in -> U6(f746_in) U6(f746_out1) -> f482_out1 f482_in -> f482_out1 f248_in(T6) -> U7(f249_in(T6), T6) U7(f249_out1, T6) -> U8(f250_in, T6) U8(f250_out1, T6) -> f248_out1 f250_in -> U9(f463_in) U9(f463_out1) -> U10(f464_in) U10(f464_out1) -> f250_out1 f464_in -> U11(f481_in) U11(f481_out1) -> U12(f482_in) U12(f482_out1) -> f464_out1 f746_in -> U13(f747_in) U13(f747_out1) -> U14(f250_in) U14(f250_out1) -> f746_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (227) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs with 18 less nodes. ---------------------------------------- (228) Complex Obligation (AND) ---------------------------------------- (229) Obligation: Q DP problem: The TRS P consists of the following rules: F463_IN -> F463_IN The TRS R consists of the following rules: f2_in(T6) -> U1(f248_in(T6), T6) U1(f248_out1, T6) -> f2_out1 f2_in(0) -> f2_out1 f249_in(0) -> f249_out1 f249_in(s(T13)) -> U2(f249_in(T13), s(T13)) U2(f249_out1, s(T13)) -> f249_out1 f463_in -> U3(f463_in) U3(f463_out1) -> f463_out1 f463_in -> f463_out1 f747_in -> f747_out1 f747_in -> U4(f249_in(0)) U4(f249_out1) -> f747_out1 f747_in -> U5(f747_in) U5(f747_out1) -> f747_out1 f481_in -> f481_out1 f482_in -> U6(f746_in) U6(f746_out1) -> f482_out1 f482_in -> f482_out1 f248_in(T6) -> U7(f249_in(T6), T6) U7(f249_out1, T6) -> U8(f250_in, T6) U8(f250_out1, T6) -> f248_out1 f250_in -> U9(f463_in) U9(f463_out1) -> U10(f464_in) U10(f464_out1) -> f250_out1 f464_in -> U11(f481_in) U11(f481_out1) -> U12(f482_in) U12(f482_out1) -> f464_out1 f746_in -> U13(f747_in) U13(f747_out1) -> U14(f250_in) U14(f250_out1) -> f746_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (230) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (231) Obligation: Q DP problem: The TRS P consists of the following rules: F463_IN -> F463_IN R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (232) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = F463_IN evaluates to t =F463_IN Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from F463_IN to F463_IN. ---------------------------------------- (233) NO ---------------------------------------- (234) Obligation: Q DP problem: The TRS P consists of the following rules: F249_IN(s(T13)) -> F249_IN(T13) The TRS R consists of the following rules: f2_in(T6) -> U1(f248_in(T6), T6) U1(f248_out1, T6) -> f2_out1 f2_in(0) -> f2_out1 f249_in(0) -> f249_out1 f249_in(s(T13)) -> U2(f249_in(T13), s(T13)) U2(f249_out1, s(T13)) -> f249_out1 f463_in -> U3(f463_in) U3(f463_out1) -> f463_out1 f463_in -> f463_out1 f747_in -> f747_out1 f747_in -> U4(f249_in(0)) U4(f249_out1) -> f747_out1 f747_in -> U5(f747_in) U5(f747_out1) -> f747_out1 f481_in -> f481_out1 f482_in -> U6(f746_in) U6(f746_out1) -> f482_out1 f482_in -> f482_out1 f248_in(T6) -> U7(f249_in(T6), T6) U7(f249_out1, T6) -> U8(f250_in, T6) U8(f250_out1, T6) -> f248_out1 f250_in -> U9(f463_in) U9(f463_out1) -> U10(f464_in) U10(f464_out1) -> f250_out1 f464_in -> U11(f481_in) U11(f481_out1) -> U12(f482_in) U12(f482_out1) -> f464_out1 f746_in -> U13(f747_in) U13(f747_out1) -> U14(f250_in) U14(f250_out1) -> f746_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (235) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (236) Obligation: Q DP problem: The TRS P consists of the following rules: F249_IN(s(T13)) -> F249_IN(T13) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (237) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *F249_IN(s(T13)) -> F249_IN(T13) The graph contains the following edges 1 > 1 ---------------------------------------- (238) YES ---------------------------------------- (239) Obligation: Q DP problem: The TRS P consists of the following rules: F747_IN -> F747_IN The TRS R consists of the following rules: f2_in(T6) -> U1(f248_in(T6), T6) U1(f248_out1, T6) -> f2_out1 f2_in(0) -> f2_out1 f249_in(0) -> f249_out1 f249_in(s(T13)) -> U2(f249_in(T13), s(T13)) U2(f249_out1, s(T13)) -> f249_out1 f463_in -> U3(f463_in) U3(f463_out1) -> f463_out1 f463_in -> f463_out1 f747_in -> f747_out1 f747_in -> U4(f249_in(0)) U4(f249_out1) -> f747_out1 f747_in -> U5(f747_in) U5(f747_out1) -> f747_out1 f481_in -> f481_out1 f482_in -> U6(f746_in) U6(f746_out1) -> f482_out1 f482_in -> f482_out1 f248_in(T6) -> U7(f249_in(T6), T6) U7(f249_out1, T6) -> U8(f250_in, T6) U8(f250_out1, T6) -> f248_out1 f250_in -> U9(f463_in) U9(f463_out1) -> U10(f464_in) U10(f464_out1) -> f250_out1 f464_in -> U11(f481_in) U11(f481_out1) -> U12(f482_in) U12(f482_out1) -> f464_out1 f746_in -> U13(f747_in) U13(f747_out1) -> U14(f250_in) U14(f250_out1) -> f746_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (240) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (241) Obligation: Q DP problem: The TRS P consists of the following rules: F747_IN -> F747_IN R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (242) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = F747_IN evaluates to t =F747_IN Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from F747_IN to F747_IN. ---------------------------------------- (243) NO ---------------------------------------- (244) Obligation: Q DP problem: The TRS P consists of the following rules: F746_IN -> U13^1(f747_in) U13^1(f747_out1) -> F250_IN F250_IN -> U9^1(f463_in) U9^1(f463_out1) -> F464_IN F464_IN -> U11^1(f481_in) U11^1(f481_out1) -> F482_IN F482_IN -> F746_IN The TRS R consists of the following rules: f2_in(T6) -> U1(f248_in(T6), T6) U1(f248_out1, T6) -> f2_out1 f2_in(0) -> f2_out1 f249_in(0) -> f249_out1 f249_in(s(T13)) -> U2(f249_in(T13), s(T13)) U2(f249_out1, s(T13)) -> f249_out1 f463_in -> U3(f463_in) U3(f463_out1) -> f463_out1 f463_in -> f463_out1 f747_in -> f747_out1 f747_in -> U4(f249_in(0)) U4(f249_out1) -> f747_out1 f747_in -> U5(f747_in) U5(f747_out1) -> f747_out1 f481_in -> f481_out1 f482_in -> U6(f746_in) U6(f746_out1) -> f482_out1 f482_in -> f482_out1 f248_in(T6) -> U7(f249_in(T6), T6) U7(f249_out1, T6) -> U8(f250_in, T6) U8(f250_out1, T6) -> f248_out1 f250_in -> U9(f463_in) U9(f463_out1) -> U10(f464_in) U10(f464_out1) -> f250_out1 f464_in -> U11(f481_in) U11(f481_out1) -> U12(f482_in) U12(f482_out1) -> f464_out1 f746_in -> U13(f747_in) U13(f747_out1) -> U14(f250_in) U14(f250_out1) -> f746_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (245) NonLoopProof (COMPLETE) By Theorem 8 [NONLOOP] we deduce infiniteness of the QDP. We apply the theorem with m = 1, b = 0, σ' = [ ], and μ' = [ ] on the rule F482_IN[ ]^n[ ] -> F482_IN[ ]^n[ ] This rule is correct for the QDP as the following derivation shows: F482_IN[ ]^n[ ] -> F482_IN[ ]^n[ ] by Narrowing at position: [] F482_IN[ ]^n[ ] -> F746_IN[ ]^n[ ] by Rule from TRS P F746_IN[ ]^n[ ] -> F482_IN[ ]^n[ ] by Narrowing at position: [] F746_IN[ ]^n[ ] -> U11^1(f481_out1)[ ]^n[ ] by Narrowing at position: [0] F746_IN[ ]^n[ ] -> U11^1(f481_in)[ ]^n[ ] by Narrowing at position: [] F746_IN[ ]^n[ ] -> F464_IN[ ]^n[ ] by Narrowing at position: [] F746_IN[ ]^n[ ] -> U9^1(f463_out1)[ ]^n[ ] by Narrowing at position: [0] F746_IN[ ]^n[ ] -> U9^1(f463_in)[ ]^n[ ] by Narrowing at position: [] F746_IN[ ]^n[ ] -> F250_IN[ ]^n[ ] by Narrowing at position: [] F746_IN[ ]^n[ ] -> U13^1(f747_out1)[ ]^n[ ] by Narrowing at position: [0] F746_IN[ ]^n[ ] -> U13^1(f747_in)[ ]^n[ ] by Rule from TRS P f747_in[ ]^n[ ] -> f747_out1[ ]^n[ ] by Rule from TRS R U13^1(f747_out1)[ ]^n[ ] -> F250_IN[ ]^n[ ] by Rule from TRS P F250_IN[ ]^n[ ] -> U9^1(f463_in)[ ]^n[ ] by Rule from TRS P f463_in[ ]^n[ ] -> f463_out1[ ]^n[ ] by Rule from TRS R U9^1(f463_out1)[ ]^n[ ] -> F464_IN[ ]^n[ ] by Rule from TRS P F464_IN[ ]^n[ ] -> U11^1(f481_in)[ ]^n[ ] by Rule from TRS P f481_in[ ]^n[ ] -> f481_out1[ ]^n[ ] by Rule from TRS R U11^1(f481_out1)[ ]^n[ ] -> F482_IN[ ]^n[ ] by Rule from TRS P ---------------------------------------- (246) NO