/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 ss(a,g) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) PrologToPiTRSProof [SOUND, 0 ms] (2) PiTRS (3) DependencyPairsProof [EQUIVALENT, 7 ms] (4) PiDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) AND (7) PiDP (8) UsableRulesProof [EQUIVALENT, 0 ms] (9) PiDP (10) PiDPToQDPProof [EQUIVALENT, 0 ms] (11) QDP (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] (13) YES (14) PiDP (15) UsableRulesProof [EQUIVALENT, 0 ms] (16) PiDP (17) PiDPToQDPProof [EQUIVALENT, 0 ms] (18) QDP (19) MRRProof [EQUIVALENT, 13 ms] (20) QDP (21) PisEmptyProof [EQUIVALENT, 0 ms] (22) YES (23) PiDP (24) UsableRulesProof [EQUIVALENT, 0 ms] (25) PiDP (26) PiDPToQDPProof [SOUND, 0 ms] (27) QDP (28) NonTerminationLoopProof [COMPLETE, 0 ms] (29) NO (30) PiDP (31) UsableRulesProof [EQUIVALENT, 0 ms] (32) PiDP (33) PiDPToQDPProof [SOUND, 0 ms] (34) QDP (35) QDPSizeChangeProof [EQUIVALENT, 0 ms] (36) YES (37) PrologToPiTRSProof [SOUND, 0 ms] (38) PiTRS (39) DependencyPairsProof [EQUIVALENT, 13 ms] (40) PiDP (41) DependencyGraphProof [EQUIVALENT, 0 ms] (42) AND (43) PiDP (44) UsableRulesProof [EQUIVALENT, 0 ms] (45) PiDP (46) PiDPToQDPProof [EQUIVALENT, 1 ms] (47) QDP (48) QDPSizeChangeProof [EQUIVALENT, 0 ms] (49) YES (50) PiDP (51) UsableRulesProof [EQUIVALENT, 0 ms] (52) PiDP (53) PiDPToQDPProof [SOUND, 0 ms] (54) QDP (55) UsableRulesReductionPairsProof [EQUIVALENT, 9 ms] (56) QDP (57) MRRProof [EQUIVALENT, 13 ms] (58) QDP (59) PisEmptyProof [EQUIVALENT, 0 ms] (60) YES (61) PiDP (62) UsableRulesProof [EQUIVALENT, 0 ms] (63) PiDP (64) PiDPToQDPProof [SOUND, 0 ms] (65) QDP (66) NonTerminationLoopProof [COMPLETE, 0 ms] (67) NO (68) PiDP (69) UsableRulesProof [EQUIVALENT, 0 ms] (70) PiDP (71) PiDPToQDPProof [SOUND, 0 ms] (72) QDP (73) QDPSizeChangeProof [EQUIVALENT, 0 ms] (74) YES (75) PrologToTRSTransformerProof [SOUND, 37 ms] (76) QTRS (77) DependencyPairsProof [EQUIVALENT, 5 ms] (78) QDP (79) DependencyGraphProof [EQUIVALENT, 0 ms] (80) AND (81) QDP (82) MNOCProof [EQUIVALENT, 6 ms] (83) QDP (84) UsableRulesProof [EQUIVALENT, 0 ms] (85) QDP (86) QReductionProof [EQUIVALENT, 0 ms] (87) QDP (88) QDPSizeChangeProof [EQUIVALENT, 0 ms] (89) YES (90) QDP (91) MNOCProof [EQUIVALENT, 0 ms] (92) QDP (93) UsableRulesProof [EQUIVALENT, 0 ms] (94) QDP (95) QReductionProof [EQUIVALENT, 0 ms] (96) QDP (97) QDPOrderProof [EQUIVALENT, 19 ms] (98) QDP (99) DependencyGraphProof [EQUIVALENT, 0 ms] (100) TRUE (101) QDP (102) MNOCProof [EQUIVALENT, 0 ms] (103) QDP (104) UsableRulesProof [EQUIVALENT, 0 ms] (105) QDP (106) QReductionProof [EQUIVALENT, 0 ms] (107) QDP (108) NonTerminationLoopProof [COMPLETE, 0 ms] (109) NO (110) QDP (111) MNOCProof [EQUIVALENT, 1 ms] (112) QDP (113) UsableRulesProof [EQUIVALENT, 0 ms] (114) QDP (115) QReductionProof [EQUIVALENT, 0 ms] (116) QDP (117) NonTerminationLoopProof [COMPLETE, 0 ms] (118) NO (119) QDP (120) MNOCProof [EQUIVALENT, 1 ms] (121) QDP (122) UsableRulesProof [EQUIVALENT, 0 ms] (123) QDP (124) QReductionProof [EQUIVALENT, 0 ms] (125) QDP (126) QDPSizeChangeProof [EQUIVALENT, 0 ms] (127) YES (128) PrologToDTProblemTransformerProof [SOUND, 46 ms] (129) TRIPLES (130) TriplesToPiDPProof [SOUND, 19 ms] (131) PiDP (132) DependencyGraphProof [EQUIVALENT, 0 ms] (133) AND (134) PiDP (135) UsableRulesProof [EQUIVALENT, 0 ms] (136) PiDP (137) PiDPToQDPProof [EQUIVALENT, 0 ms] (138) QDP (139) QDPSizeChangeProof [EQUIVALENT, 0 ms] (140) YES (141) PiDP (142) UsableRulesProof [EQUIVALENT, 0 ms] (143) PiDP (144) PiDPToQDPProof [EQUIVALENT, 0 ms] (145) QDP (146) QDPSizeChangeProof [EQUIVALENT, 0 ms] (147) YES (148) PiDP (149) UsableRulesProof [EQUIVALENT, 0 ms] (150) PiDP (151) PiDPToQDPProof [SOUND, 0 ms] (152) QDP (153) NonTerminationLoopProof [COMPLETE, 0 ms] (154) NO (155) PiDP (156) UsableRulesProof [EQUIVALENT, 0 ms] (157) PiDP (158) PiDPToQDPProof [SOUND, 0 ms] (159) QDP (160) PiDP (161) UsableRulesProof [EQUIVALENT, 0 ms] (162) PiDP (163) PrologToIRSwTTransformerProof [SOUND, 40 ms] (164) AND (165) IRSwT (166) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (167) TRUE (168) IRSwT (169) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (170) TRUE (171) IRSwT (172) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (173) IRSwT (174) IntTRSCompressionProof [EQUIVALENT, 20 ms] (175) IRSwT (176) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (177) IRSwT (178) IRSwTTerminationDigraphProof [EQUIVALENT, 1 ms] (179) IRSwT (180) FilterProof [EQUIVALENT, 0 ms] (181) IntTRS (182) IntTRSNonPeriodicNontermProof [COMPLETE, 6 ms] (183) NO (184) IRSwT (185) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (186) TRUE (187) IRSwT (188) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (189) IRSwT (190) IntTRSCompressionProof [EQUIVALENT, 13 ms] (191) IRSwT (192) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (193) IRSwT (194) IRSwTTerminationDigraphProof [EQUIVALENT, 28 ms] (195) IRSwT (196) FilterProof [EQUIVALENT, 0 ms] (197) IntTRS ---------------------------------------- (0) Obligation: Clauses: ss(Xs, Ys) :- ','(perm(Xs, Ys), ordered(Ys)). perm([], []). perm(Xs, .(X, Ys)) :- ','(app(X1s, .(X, X2s), Xs), ','(app(X1s, X2s, Zs), perm(Zs, Ys))). app([], X, X). app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs). ordered([]). ordered(.(X1, [])). ordered(.(X, .(Y, Xs))) :- ','(less(X, s(Y)), ordered(.(Y, Xs))). less(0, s(X2)). less(s(X), s(Y)) :- less(X, Y). Query: ss(a,g) ---------------------------------------- (1) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: ss_in_2: (f,b) perm_in_2: (f,b) app_in_3: (f,f,f) ordered_in_1: (b) less_in_2: (b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag(x2) .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x2, x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) U2_ag(x1, x2, x3) = U2_ag(x2, x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g(x1) U7_g(x1, x2, x3, x4) = U7_g(x1, x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg(x1, x2) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U8_g(x1, x2, x3, x4) = U8_g(x1, x2, x3, x4) ss_out_ag(x1, x2) = ss_out_ag(x2) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (2) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag(x2) .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x2, x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) U2_ag(x1, x2, x3) = U2_ag(x2, x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g(x1) U7_g(x1, x2, x3, x4) = U7_g(x1, x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg(x1, x2) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U8_g(x1, x2, x3, x4) = U8_g(x1, x2, x3, x4) ss_out_ag(x1, x2) = ss_out_ag(x2) ---------------------------------------- (3) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: SS_IN_AG(Xs, Ys) -> U1_AG(Xs, Ys, perm_in_ag(Xs, Ys)) SS_IN_AG(Xs, Ys) -> PERM_IN_AG(Xs, Ys) PERM_IN_AG(Xs, .(X, Ys)) -> U3_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) PERM_IN_AG(Xs, .(X, Ys)) -> APP_IN_AAA(X1s, .(X, X2s), Xs) APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> U6_AAA(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AAA(Xs, Ys, Zs) U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_AG(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> APP_IN_AAA(X1s, X2s, Zs) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_AG(Xs, X, Ys, perm_in_ag(Zs, Ys)) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> PERM_IN_AG(Zs, Ys) U1_AG(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_AG(Xs, Ys, ordered_in_g(Ys)) U1_AG(Xs, Ys, perm_out_ag(Xs, Ys)) -> ORDERED_IN_G(Ys) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(X, Y, Xs, less_in_gg(X, s(Y))) ORDERED_IN_G(.(X, .(Y, Xs))) -> LESS_IN_GG(X, s(Y)) LESS_IN_GG(s(X), s(Y)) -> U9_GG(X, Y, less_in_gg(X, Y)) LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_G(X, Y, Xs, ordered_in_g(.(Y, Xs))) U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> ORDERED_IN_G(.(Y, Xs)) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag(x2) .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x2, x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) U2_ag(x1, x2, x3) = U2_ag(x2, x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g(x1) U7_g(x1, x2, x3, x4) = U7_g(x1, x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg(x1, x2) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U8_g(x1, x2, x3, x4) = U8_g(x1, x2, x3, x4) ss_out_ag(x1, x2) = ss_out_ag(x2) SS_IN_AG(x1, x2) = SS_IN_AG(x2) U1_AG(x1, x2, x3) = U1_AG(x2, x3) PERM_IN_AG(x1, x2) = PERM_IN_AG(x2) U3_AG(x1, x2, x3, x4) = U3_AG(x2, x3, x4) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) U4_AG(x1, x2, x3, x4) = U4_AG(x2, x3, x4) U5_AG(x1, x2, x3, x4) = U5_AG(x2, x3, x4) U2_AG(x1, x2, x3) = U2_AG(x2, x3) ORDERED_IN_G(x1) = ORDERED_IN_G(x1) U7_G(x1, x2, x3, x4) = U7_G(x1, x2, x3, x4) LESS_IN_GG(x1, x2) = LESS_IN_GG(x1, x2) U9_GG(x1, x2, x3) = U9_GG(x1, x2, x3) U8_G(x1, x2, x3, x4) = U8_G(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (4) Obligation: Pi DP problem: The TRS P consists of the following rules: SS_IN_AG(Xs, Ys) -> U1_AG(Xs, Ys, perm_in_ag(Xs, Ys)) SS_IN_AG(Xs, Ys) -> PERM_IN_AG(Xs, Ys) PERM_IN_AG(Xs, .(X, Ys)) -> U3_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) PERM_IN_AG(Xs, .(X, Ys)) -> APP_IN_AAA(X1s, .(X, X2s), Xs) APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> U6_AAA(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AAA(Xs, Ys, Zs) U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_AG(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> APP_IN_AAA(X1s, X2s, Zs) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_AG(Xs, X, Ys, perm_in_ag(Zs, Ys)) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> PERM_IN_AG(Zs, Ys) U1_AG(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_AG(Xs, Ys, ordered_in_g(Ys)) U1_AG(Xs, Ys, perm_out_ag(Xs, Ys)) -> ORDERED_IN_G(Ys) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(X, Y, Xs, less_in_gg(X, s(Y))) ORDERED_IN_G(.(X, .(Y, Xs))) -> LESS_IN_GG(X, s(Y)) LESS_IN_GG(s(X), s(Y)) -> U9_GG(X, Y, less_in_gg(X, Y)) LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_G(X, Y, Xs, ordered_in_g(.(Y, Xs))) U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> ORDERED_IN_G(.(Y, Xs)) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag(x2) .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x2, x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) U2_ag(x1, x2, x3) = U2_ag(x2, x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g(x1) U7_g(x1, x2, x3, x4) = U7_g(x1, x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg(x1, x2) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U8_g(x1, x2, x3, x4) = U8_g(x1, x2, x3, x4) ss_out_ag(x1, x2) = ss_out_ag(x2) SS_IN_AG(x1, x2) = SS_IN_AG(x2) U1_AG(x1, x2, x3) = U1_AG(x2, x3) PERM_IN_AG(x1, x2) = PERM_IN_AG(x2) U3_AG(x1, x2, x3, x4) = U3_AG(x2, x3, x4) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) U4_AG(x1, x2, x3, x4) = U4_AG(x2, x3, x4) U5_AG(x1, x2, x3, x4) = U5_AG(x2, x3, x4) U2_AG(x1, x2, x3) = U2_AG(x2, x3) ORDERED_IN_G(x1) = ORDERED_IN_G(x1) U7_G(x1, x2, x3, x4) = U7_G(x1, x2, x3, x4) LESS_IN_GG(x1, x2) = LESS_IN_GG(x1, x2) U9_GG(x1, x2, x3) = U9_GG(x1, x2, x3) U8_G(x1, x2, x3, x4) = U8_G(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (5) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 11 less nodes. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Pi DP problem: The TRS P consists of the following rules: LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag(x2) .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x2, x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) U2_ag(x1, x2, x3) = U2_ag(x2, x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g(x1) U7_g(x1, x2, x3, x4) = U7_g(x1, x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg(x1, x2) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U8_g(x1, x2, x3, x4) = U8_g(x1, x2, x3, x4) ss_out_ag(x1, x2) = ss_out_ag(x2) LESS_IN_GG(x1, x2) = LESS_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (8) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (9) Obligation: Pi DP problem: The TRS P consists of the following rules: LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (10) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (12) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Pi DP problem: The TRS P consists of the following rules: U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> ORDERED_IN_G(.(Y, Xs)) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(X, Y, Xs, less_in_gg(X, s(Y))) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag(x2) .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x2, x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) U2_ag(x1, x2, x3) = U2_ag(x2, x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g(x1) U7_g(x1, x2, x3, x4) = U7_g(x1, x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg(x1, x2) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U8_g(x1, x2, x3, x4) = U8_g(x1, x2, x3, x4) ss_out_ag(x1, x2) = ss_out_ag(x2) ORDERED_IN_G(x1) = ORDERED_IN_G(x1) U7_G(x1, x2, x3, x4) = U7_G(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (15) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (16) Obligation: Pi DP problem: The TRS P consists of the following rules: U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> ORDERED_IN_G(.(Y, Xs)) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(X, Y, Xs, less_in_gg(X, s(Y))) The TRS R consists of the following rules: less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (17) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> ORDERED_IN_G(.(Y, Xs)) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(X, Y, Xs, less_in_gg(X, s(Y))) The TRS R consists of the following rules: less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) The set Q consists of the following terms: less_in_gg(x0, x1) U9_gg(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (19) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> ORDERED_IN_G(.(Y, Xs)) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(X, Y, Xs, less_in_gg(X, s(Y))) Used ordering: Polynomial interpretation [POLO]: POL(.(x_1, x_2)) = 2*x_1 + x_2 POL(0) = 2 POL(ORDERED_IN_G(x_1)) = 1 + 2*x_1 POL(U7_G(x_1, x_2, x_3, x_4)) = 2*x_1 + 2*x_2 + 2*x_3 + x_4 POL(U9_gg(x_1, x_2, x_3)) = 2*x_1 + x_2 + x_3 POL(less_in_gg(x_1, x_2)) = 2*x_1 + x_2 POL(less_out_gg(x_1, x_2)) = 2 + x_1 + x_2 POL(s(x_1)) = 2*x_1 ---------------------------------------- (20) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) The set Q consists of the following terms: less_in_gg(x0, x1) U9_gg(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (21) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (22) YES ---------------------------------------- (23) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AAA(Xs, Ys, Zs) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag(x2) .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x2, x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) U2_ag(x1, x2, x3) = U2_ag(x2, x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g(x1) U7_g(x1, x2, x3, x4) = U7_g(x1, x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg(x1, x2) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U8_g(x1, x2, x3, x4) = U8_g(x1, x2, x3, x4) ss_out_ag(x1, x2) = ss_out_ag(x2) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (24) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (25) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AAA(Xs, Ys, Zs) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (26) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (27) Obligation: Q DP problem: The TRS P consists of the following rules: APP_IN_AAA -> APP_IN_AAA R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (28) 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 = APP_IN_AAA evaluates to t =APP_IN_AAA Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from APP_IN_AAA to APP_IN_AAA. ---------------------------------------- (29) NO ---------------------------------------- (30) Obligation: Pi DP problem: The TRS P consists of the following rules: U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_AG(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> PERM_IN_AG(Zs, Ys) PERM_IN_AG(Xs, .(X, Ys)) -> U3_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag(x2) .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x2, x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x2, x3, x4) U2_ag(x1, x2, x3) = U2_ag(x2, x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g(x1) U7_g(x1, x2, x3, x4) = U7_g(x1, x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg(x1, x2) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U8_g(x1, x2, x3, x4) = U8_g(x1, x2, x3, x4) ss_out_ag(x1, x2) = ss_out_ag(x2) PERM_IN_AG(x1, x2) = PERM_IN_AG(x2) U3_AG(x1, x2, x3, x4) = U3_AG(x2, x3, x4) U4_AG(x1, x2, x3, x4) = U4_AG(x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (31) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (32) Obligation: Pi DP problem: The TRS P consists of the following rules: U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_AG(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> PERM_IN_AG(Zs, Ys) PERM_IN_AG(Xs, .(X, Ys)) -> U3_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) The TRS R consists of the following rules: app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) The argument filtering Pi contains the following mapping: [] = [] .(x1, x2) = .(x1, x2) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) PERM_IN_AG(x1, x2) = PERM_IN_AG(x2) U3_AG(x1, x2, x3, x4) = U3_AG(x2, x3, x4) U4_AG(x1, x2, x3, x4) = U4_AG(x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (33) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AG(X, Ys, app_out_aaa) -> U4_AG(X, Ys, app_in_aaa) U4_AG(X, Ys, app_out_aaa) -> PERM_IN_AG(Ys) PERM_IN_AG(.(X, Ys)) -> U3_AG(X, Ys, app_in_aaa) The TRS R consists of the following rules: app_in_aaa -> app_out_aaa app_in_aaa -> U6_aaa(app_in_aaa) U6_aaa(app_out_aaa) -> app_out_aaa The set Q consists of the following terms: app_in_aaa U6_aaa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (35) 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: *U4_AG(X, Ys, app_out_aaa) -> PERM_IN_AG(Ys) The graph contains the following edges 2 >= 1 *PERM_IN_AG(.(X, Ys)) -> U3_AG(X, Ys, app_in_aaa) The graph contains the following edges 1 > 1, 1 > 2 *U3_AG(X, Ys, app_out_aaa) -> U4_AG(X, Ys, app_in_aaa) The graph contains the following edges 1 >= 1, 2 >= 2 ---------------------------------------- (36) YES ---------------------------------------- (37) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: ss_in_2: (f,b) perm_in_2: (f,b) app_in_3: (f,f,f) ordered_in_1: (b) less_in_2: (b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x4) U2_ag(x1, x2, x3) = U2_ag(x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g U7_g(x1, x2, x3, x4) = U7_g(x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg U9_gg(x1, x2, x3) = U9_gg(x3) U8_g(x1, x2, x3, x4) = U8_g(x4) ss_out_ag(x1, x2) = ss_out_ag Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (38) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x4) U2_ag(x1, x2, x3) = U2_ag(x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g U7_g(x1, x2, x3, x4) = U7_g(x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg U9_gg(x1, x2, x3) = U9_gg(x3) U8_g(x1, x2, x3, x4) = U8_g(x4) ss_out_ag(x1, x2) = ss_out_ag ---------------------------------------- (39) 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: SS_IN_AG(Xs, Ys) -> U1_AG(Xs, Ys, perm_in_ag(Xs, Ys)) SS_IN_AG(Xs, Ys) -> PERM_IN_AG(Xs, Ys) PERM_IN_AG(Xs, .(X, Ys)) -> U3_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) PERM_IN_AG(Xs, .(X, Ys)) -> APP_IN_AAA(X1s, .(X, X2s), Xs) APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> U6_AAA(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AAA(Xs, Ys, Zs) U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_AG(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> APP_IN_AAA(X1s, X2s, Zs) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_AG(Xs, X, Ys, perm_in_ag(Zs, Ys)) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> PERM_IN_AG(Zs, Ys) U1_AG(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_AG(Xs, Ys, ordered_in_g(Ys)) U1_AG(Xs, Ys, perm_out_ag(Xs, Ys)) -> ORDERED_IN_G(Ys) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(X, Y, Xs, less_in_gg(X, s(Y))) ORDERED_IN_G(.(X, .(Y, Xs))) -> LESS_IN_GG(X, s(Y)) LESS_IN_GG(s(X), s(Y)) -> U9_GG(X, Y, less_in_gg(X, Y)) LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_G(X, Y, Xs, ordered_in_g(.(Y, Xs))) U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> ORDERED_IN_G(.(Y, Xs)) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x4) U2_ag(x1, x2, x3) = U2_ag(x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g U7_g(x1, x2, x3, x4) = U7_g(x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg U9_gg(x1, x2, x3) = U9_gg(x3) U8_g(x1, x2, x3, x4) = U8_g(x4) ss_out_ag(x1, x2) = ss_out_ag SS_IN_AG(x1, x2) = SS_IN_AG(x2) U1_AG(x1, x2, x3) = U1_AG(x2, x3) PERM_IN_AG(x1, x2) = PERM_IN_AG(x2) U3_AG(x1, x2, x3, x4) = U3_AG(x3, x4) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) U4_AG(x1, x2, x3, x4) = U4_AG(x3, x4) U5_AG(x1, x2, x3, x4) = U5_AG(x4) U2_AG(x1, x2, x3) = U2_AG(x3) ORDERED_IN_G(x1) = ORDERED_IN_G(x1) U7_G(x1, x2, x3, x4) = U7_G(x2, x3, x4) LESS_IN_GG(x1, x2) = LESS_IN_GG(x1, x2) U9_GG(x1, x2, x3) = U9_GG(x3) U8_G(x1, x2, x3, x4) = U8_G(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (40) Obligation: Pi DP problem: The TRS P consists of the following rules: SS_IN_AG(Xs, Ys) -> U1_AG(Xs, Ys, perm_in_ag(Xs, Ys)) SS_IN_AG(Xs, Ys) -> PERM_IN_AG(Xs, Ys) PERM_IN_AG(Xs, .(X, Ys)) -> U3_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) PERM_IN_AG(Xs, .(X, Ys)) -> APP_IN_AAA(X1s, .(X, X2s), Xs) APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> U6_AAA(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AAA(Xs, Ys, Zs) U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_AG(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> APP_IN_AAA(X1s, X2s, Zs) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_AG(Xs, X, Ys, perm_in_ag(Zs, Ys)) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> PERM_IN_AG(Zs, Ys) U1_AG(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_AG(Xs, Ys, ordered_in_g(Ys)) U1_AG(Xs, Ys, perm_out_ag(Xs, Ys)) -> ORDERED_IN_G(Ys) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(X, Y, Xs, less_in_gg(X, s(Y))) ORDERED_IN_G(.(X, .(Y, Xs))) -> LESS_IN_GG(X, s(Y)) LESS_IN_GG(s(X), s(Y)) -> U9_GG(X, Y, less_in_gg(X, Y)) LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_G(X, Y, Xs, ordered_in_g(.(Y, Xs))) U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> ORDERED_IN_G(.(Y, Xs)) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x4) U2_ag(x1, x2, x3) = U2_ag(x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g U7_g(x1, x2, x3, x4) = U7_g(x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg U9_gg(x1, x2, x3) = U9_gg(x3) U8_g(x1, x2, x3, x4) = U8_g(x4) ss_out_ag(x1, x2) = ss_out_ag SS_IN_AG(x1, x2) = SS_IN_AG(x2) U1_AG(x1, x2, x3) = U1_AG(x2, x3) PERM_IN_AG(x1, x2) = PERM_IN_AG(x2) U3_AG(x1, x2, x3, x4) = U3_AG(x3, x4) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) U4_AG(x1, x2, x3, x4) = U4_AG(x3, x4) U5_AG(x1, x2, x3, x4) = U5_AG(x4) U2_AG(x1, x2, x3) = U2_AG(x3) ORDERED_IN_G(x1) = ORDERED_IN_G(x1) U7_G(x1, x2, x3, x4) = U7_G(x2, x3, x4) LESS_IN_GG(x1, x2) = LESS_IN_GG(x1, x2) U9_GG(x1, x2, x3) = U9_GG(x3) U8_G(x1, x2, x3, x4) = U8_G(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (41) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 11 less nodes. ---------------------------------------- (42) Complex Obligation (AND) ---------------------------------------- (43) Obligation: Pi DP problem: The TRS P consists of the following rules: LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x4) U2_ag(x1, x2, x3) = U2_ag(x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g U7_g(x1, x2, x3, x4) = U7_g(x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg U9_gg(x1, x2, x3) = U9_gg(x3) U8_g(x1, x2, x3, x4) = U8_g(x4) ss_out_ag(x1, x2) = ss_out_ag LESS_IN_GG(x1, x2) = LESS_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (44) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (45) Obligation: Pi DP problem: The TRS P consists of the following rules: LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (46) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (47) Obligation: Q DP problem: The TRS P consists of the following rules: LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (48) 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: *LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (49) YES ---------------------------------------- (50) Obligation: Pi DP problem: The TRS P consists of the following rules: U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> ORDERED_IN_G(.(Y, Xs)) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(X, Y, Xs, less_in_gg(X, s(Y))) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x4) U2_ag(x1, x2, x3) = U2_ag(x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g U7_g(x1, x2, x3, x4) = U7_g(x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg U9_gg(x1, x2, x3) = U9_gg(x3) U8_g(x1, x2, x3, x4) = U8_g(x4) ss_out_ag(x1, x2) = ss_out_ag ORDERED_IN_G(x1) = ORDERED_IN_G(x1) U7_G(x1, x2, x3, x4) = U7_G(x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (51) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (52) Obligation: Pi DP problem: The TRS P consists of the following rules: U7_G(X, Y, Xs, less_out_gg(X, s(Y))) -> ORDERED_IN_G(.(Y, Xs)) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(X, Y, Xs, less_in_gg(X, s(Y))) The TRS R consists of the following rules: less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg U9_gg(x1, x2, x3) = U9_gg(x3) ORDERED_IN_G(x1) = ORDERED_IN_G(x1) U7_G(x1, x2, x3, x4) = U7_G(x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (53) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: U7_G(Y, Xs, less_out_gg) -> ORDERED_IN_G(.(Y, Xs)) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(Y, Xs, less_in_gg(X, s(Y))) The TRS R consists of the following rules: less_in_gg(0, s(X2)) -> less_out_gg less_in_gg(s(X), s(Y)) -> U9_gg(less_in_gg(X, Y)) U9_gg(less_out_gg) -> less_out_gg The set Q consists of the following terms: less_in_gg(x0, x1) U9_gg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (55) UsableRulesReductionPairsProof (EQUIVALENT) By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. No dependency pairs are removed. The following rules are removed from R: less_in_gg(0, s(X2)) -> less_out_gg Used ordering: POLO with Polynomial interpretation [POLO]: POL(.(x_1, x_2)) = 2*x_1 + 2*x_2 POL(0) = 0 POL(ORDERED_IN_G(x_1)) = x_1 POL(U7_G(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 POL(U9_gg(x_1)) = x_1 POL(less_in_gg(x_1, x_2)) = x_1 + x_2 POL(less_out_gg) = 0 POL(s(x_1)) = x_1 ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: U7_G(Y, Xs, less_out_gg) -> ORDERED_IN_G(.(Y, Xs)) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(Y, Xs, less_in_gg(X, s(Y))) The TRS R consists of the following rules: less_in_gg(s(X), s(Y)) -> U9_gg(less_in_gg(X, Y)) U9_gg(less_out_gg) -> less_out_gg The set Q consists of the following terms: less_in_gg(x0, x1) U9_gg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (57) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: U7_G(Y, Xs, less_out_gg) -> ORDERED_IN_G(.(Y, Xs)) ORDERED_IN_G(.(X, .(Y, Xs))) -> U7_G(Y, Xs, less_in_gg(X, s(Y))) Used ordering: Polynomial interpretation [POLO]: POL(.(x_1, x_2)) = 2*x_1 + 2*x_2 POL(ORDERED_IN_G(x_1)) = 2 + x_1 POL(U7_G(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 POL(U9_gg(x_1)) = x_1 POL(less_in_gg(x_1, x_2)) = x_1 + x_2 POL(less_out_gg) = 2 POL(s(x_1)) = x_1 ---------------------------------------- (58) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: less_in_gg(s(X), s(Y)) -> U9_gg(less_in_gg(X, Y)) U9_gg(less_out_gg) -> less_out_gg The set Q consists of the following terms: less_in_gg(x0, x1) U9_gg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (59) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (60) YES ---------------------------------------- (61) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AAA(Xs, Ys, Zs) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x4) U2_ag(x1, x2, x3) = U2_ag(x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g U7_g(x1, x2, x3, x4) = U7_g(x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg U9_gg(x1, x2, x3) = U9_gg(x3) U8_g(x1, x2, x3, x4) = U8_g(x4) ss_out_ag(x1, x2) = ss_out_ag APP_IN_AAA(x1, x2, x3) = APP_IN_AAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (62) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (63) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_AAA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AAA(Xs, Ys, Zs) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (64) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (65) Obligation: Q DP problem: The TRS P consists of the following rules: APP_IN_AAA -> APP_IN_AAA R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (66) 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 = APP_IN_AAA evaluates to t =APP_IN_AAA Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from APP_IN_AAA to APP_IN_AAA. ---------------------------------------- (67) NO ---------------------------------------- (68) Obligation: Pi DP problem: The TRS P consists of the following rules: U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_AG(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> PERM_IN_AG(Zs, Ys) PERM_IN_AG(Xs, .(X, Ys)) -> U3_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) The TRS R consists of the following rules: ss_in_ag(Xs, Ys) -> U1_ag(Xs, Ys, perm_in_ag(Xs, Ys)) perm_in_ag([], []) -> perm_out_ag([], []) perm_in_ag(Xs, .(X, Ys)) -> U3_ag(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) U3_ag(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_ag(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_ag(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> U5_ag(Xs, X, Ys, perm_in_ag(Zs, Ys)) U5_ag(Xs, X, Ys, perm_out_ag(Zs, Ys)) -> perm_out_ag(Xs, .(X, Ys)) U1_ag(Xs, Ys, perm_out_ag(Xs, Ys)) -> U2_ag(Xs, Ys, ordered_in_g(Ys)) ordered_in_g([]) -> ordered_out_g([]) ordered_in_g(.(X1, [])) -> ordered_out_g(.(X1, [])) ordered_in_g(.(X, .(Y, Xs))) -> U7_g(X, Y, Xs, less_in_gg(X, s(Y))) less_in_gg(0, s(X2)) -> less_out_gg(0, s(X2)) less_in_gg(s(X), s(Y)) -> U9_gg(X, Y, less_in_gg(X, Y)) U9_gg(X, Y, less_out_gg(X, Y)) -> less_out_gg(s(X), s(Y)) U7_g(X, Y, Xs, less_out_gg(X, s(Y))) -> U8_g(X, Y, Xs, ordered_in_g(.(Y, Xs))) U8_g(X, Y, Xs, ordered_out_g(.(Y, Xs))) -> ordered_out_g(.(X, .(Y, Xs))) U2_ag(Xs, Ys, ordered_out_g(Ys)) -> ss_out_ag(Xs, Ys) The argument filtering Pi contains the following mapping: ss_in_ag(x1, x2) = ss_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) perm_in_ag(x1, x2) = perm_in_ag(x2) [] = [] perm_out_ag(x1, x2) = perm_out_ag .(x1, x2) = .(x1, x2) U3_ag(x1, x2, x3, x4) = U3_ag(x3, x4) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) U4_ag(x1, x2, x3, x4) = U4_ag(x3, x4) U5_ag(x1, x2, x3, x4) = U5_ag(x4) U2_ag(x1, x2, x3) = U2_ag(x3) ordered_in_g(x1) = ordered_in_g(x1) ordered_out_g(x1) = ordered_out_g U7_g(x1, x2, x3, x4) = U7_g(x2, x3, x4) less_in_gg(x1, x2) = less_in_gg(x1, x2) 0 = 0 s(x1) = s(x1) less_out_gg(x1, x2) = less_out_gg U9_gg(x1, x2, x3) = U9_gg(x3) U8_g(x1, x2, x3, x4) = U8_g(x4) ss_out_ag(x1, x2) = ss_out_ag PERM_IN_AG(x1, x2) = PERM_IN_AG(x2) U3_AG(x1, x2, x3, x4) = U3_AG(x3, x4) U4_AG(x1, x2, x3, x4) = U4_AG(x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (69) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (70) Obligation: Pi DP problem: The TRS P consists of the following rules: U3_AG(Xs, X, Ys, app_out_aaa(X1s, .(X, X2s), Xs)) -> U4_AG(Xs, X, Ys, app_in_aaa(X1s, X2s, Zs)) U4_AG(Xs, X, Ys, app_out_aaa(X1s, X2s, Zs)) -> PERM_IN_AG(Zs, Ys) PERM_IN_AG(Xs, .(X, Ys)) -> U3_AG(Xs, X, Ys, app_in_aaa(X1s, .(X, X2s), Xs)) The TRS R consists of the following rules: app_in_aaa([], X, X) -> app_out_aaa([], X, X) app_in_aaa(.(X, Xs), Ys, .(X, Zs)) -> U6_aaa(X, Xs, Ys, Zs, app_in_aaa(Xs, Ys, Zs)) U6_aaa(X, Xs, Ys, Zs, app_out_aaa(Xs, Ys, Zs)) -> app_out_aaa(.(X, Xs), Ys, .(X, Zs)) The argument filtering Pi contains the following mapping: [] = [] .(x1, x2) = .(x1, x2) app_in_aaa(x1, x2, x3) = app_in_aaa app_out_aaa(x1, x2, x3) = app_out_aaa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) PERM_IN_AG(x1, x2) = PERM_IN_AG(x2) U3_AG(x1, x2, x3, x4) = U3_AG(x3, x4) U4_AG(x1, x2, x3, x4) = U4_AG(x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (71) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AG(Ys, app_out_aaa) -> U4_AG(Ys, app_in_aaa) U4_AG(Ys, app_out_aaa) -> PERM_IN_AG(Ys) PERM_IN_AG(.(X, Ys)) -> U3_AG(Ys, app_in_aaa) The TRS R consists of the following rules: app_in_aaa -> app_out_aaa app_in_aaa -> U6_aaa(app_in_aaa) U6_aaa(app_out_aaa) -> app_out_aaa The set Q consists of the following terms: app_in_aaa U6_aaa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (73) 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: *U4_AG(Ys, app_out_aaa) -> PERM_IN_AG(Ys) The graph contains the following edges 1 >= 1 *PERM_IN_AG(.(X, Ys)) -> U3_AG(Ys, app_in_aaa) The graph contains the following edges 1 > 1 *U3_AG(Ys, app_out_aaa) -> U4_AG(Ys, app_in_aaa) The graph contains the following edges 1 >= 1 ---------------------------------------- (74) YES ---------------------------------------- (75) PrologToTRSTransformerProof (SOUND) Transformed Prolog program to TRS. { "root": 3, "program": { "directives": [], "clauses": [ [ "(ss Xs Ys)", "(',' (perm Xs Ys) (ordered Ys))" ], [ "(perm ([]) ([]))", null ], [ "(perm Xs (. X Ys))", "(',' (app X1s (. X X2s) Xs) (',' (app X1s X2s Zs) (perm Zs Ys)))" ], [ "(app ([]) X X)", null ], [ "(app (. X Xs) Ys (. X Zs))", "(app Xs Ys Zs)" ], [ "(ordered ([]))", null ], [ "(ordered (. X1 ([])))", null ], [ "(ordered (. X (. Y Xs)))", "(',' (less X (s Y)) (ordered (. Y Xs)))" ], [ "(less (0) (s X2))", null ], [ "(less (s X) (s Y))", "(less X Y)" ] ] }, "graph": { "nodes": { "48": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "49": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "191": { "goal": [ { "clause": 3, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }, { "clause": 4, "scope": 3, "term": "(app X21 (. T18 X22) T20)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "type": "Nodes", "350": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "592": { "goal": [ { "clause": 8, "scope": 7, "term": "(less T105 T106)" }, { "clause": 9, "scope": 7, "term": "(less T105 T106)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "351": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "593": { "goal": [{ "clause": 8, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "352": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "594": { "goal": [{ "clause": 9, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "112": { "goal": [{ "clause": 1, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "597": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "598": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "115": { "goal": [{ "clause": 2, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "478": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T74 T75 X90)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X90"], "exprvars": [] } }, "599": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "436": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "438": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T57 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "481": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "164": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "364": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X61 (. T47 X62) T50)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T47"], "free": [ "X61", "X62" ], "exprvars": [] } }, "441": { "goal": [ { "clause": 3, "scope": 4, "term": "(app T25 T26 X23)" }, { "clause": 4, "scope": 4, "term": "(app T25 T26 X23)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "563": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (less T89 (s T90)) (ordered (. T90 T91)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90", "T91" ], "free": [], "exprvars": [] } }, "3": { "goal": [{ "clause": -1, "scope": -1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "366": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "564": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4": { "goal": [{ "clause": 0, "scope": 1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "565": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "566": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T90 T91))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T90", "T91" ], "free": [], "exprvars": [] } }, "603": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T118 T119)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T118", "T119" ], "free": [], "exprvars": [] } }, "604": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "494": { "goal": [ { "clause": 5, "scope": 5, "term": "(ordered T9)" }, { "clause": 6, "scope": 5, "term": "(ordered T9)" }, { "clause": 7, "scope": 5, "term": "(ordered T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "495": { "goal": [{ "clause": 5, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "496": { "goal": [ { "clause": 6, "scope": 5, "term": "(ordered T9)" }, { "clause": 7, "scope": 5, "term": "(ordered T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "178": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app X21 (. T18 X22) T20) (',' (app X21 X22 X23) (perm X23 T19)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T18", "T19" ], "free": [ "X21", "X22", "X23" ], "exprvars": [] } }, "497": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "179": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "498": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "499": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "576": { "goal": [ { "clause": 8, "scope": 6, "term": "(less T89 (s T90))" }, { "clause": 9, "scope": 6, "term": "(less T89 (s T90))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "577": { "goal": [{ "clause": 8, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "578": { "goal": [{ "clause": 9, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "139": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "219": { "goal": [{ "clause": 3, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "30": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (perm T10 T9) (ordered T9))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "141": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "185": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "581": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "186": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T25 T26 X23) (perm X23 T19))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": ["X23"], "exprvars": [] } }, "582": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "462": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "583": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "463": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "464": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "223": { "goal": [{ "clause": 4, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "465": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "466": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "587": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "588": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "501": { "goal": [{ "clause": 6, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "502": { "goal": [{ "clause": 7, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "505": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "83": { "goal": [ { "clause": 1, "scope": 2, "term": "(perm T10 T9)" }, { "clause": 2, "scope": 2, "term": "(perm T10 T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "506": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "507": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 3, "to": 4, "label": "CASE" }, { "from": 4, "to": 30, "label": "ONLY EVAL with clause\nss(X7, X8) :- ','(perm(X7, X8), ordered(X8)).\nand substitutionT1 -> T10,\nX7 -> T10,\nT2 -> T9,\nX8 -> T9,\nT8 -> T10" }, { "from": 30, "to": 48, "label": "SPLIT 1" }, { "from": 30, "to": 49, "label": "SPLIT 2\nnew knowledge:\nT9 is ground" }, { "from": 48, "to": 83, "label": "CASE" }, { "from": 49, "to": 494, "label": "CASE" }, { "from": 83, "to": 112, "label": "PARALLEL" }, { "from": 83, "to": 115, "label": "PARALLEL" }, { "from": 112, "to": 139, "label": "EVAL with clause\nperm([], []).\nand substitutionT10 -> [],\nT9 -> []" }, { "from": 112, "to": 141, "label": "EVAL-BACKTRACK" }, { "from": 115, "to": 178, "label": "EVAL with clause\nperm(X18, .(X19, X20)) :- ','(app(X21, .(X19, X22), X18), ','(app(X21, X22, X23), perm(X23, X20))).\nand substitutionT10 -> T20,\nX18 -> T20,\nX19 -> T18,\nX20 -> T19,\nT9 -> .(T18, T19),\nT17 -> T20" }, { "from": 115, "to": 179, "label": "EVAL-BACKTRACK" }, { "from": 139, "to": 164, "label": "SUCCESS" }, { "from": 178, "to": 185, "label": "SPLIT 1" }, { "from": 178, "to": 186, "label": "SPLIT 2\nreplacements:X21 -> T25,\nX22 -> T26" }, { "from": 185, "to": 191, "label": "CASE" }, { "from": 186, "to": 436, "label": "SPLIT 1" }, { "from": 186, "to": 438, "label": "SPLIT 2\nreplacements:X23 -> T57" }, { "from": 191, "to": 219, "label": "PARALLEL" }, { "from": 191, "to": 223, "label": "PARALLEL" }, { "from": 219, "to": 350, "label": "EVAL with clause\napp([], X40, X40).\nand substitutionX21 -> [],\nT18 -> T39,\nX22 -> T40,\nX40 -> .(T39, T40),\nX41 -> T40,\nT20 -> .(T39, T40)" }, { "from": 219, "to": 351, "label": "EVAL-BACKTRACK" }, { "from": 223, "to": 364, "label": "EVAL with clause\napp(.(X56, X57), X58, .(X56, X59)) :- app(X57, X58, X59).\nand substitutionX56 -> T48,\nX57 -> X61,\nX21 -> .(T48, X61),\nT18 -> T47,\nX22 -> X62,\nX58 -> .(T47, X62),\nX60 -> T48,\nX59 -> T50,\nT20 -> .(T48, T50),\nT49 -> T50" }, { "from": 223, "to": 366, "label": "EVAL-BACKTRACK" }, { "from": 350, "to": 352, "label": "SUCCESS" }, { "from": 364, "to": 185, "label": "INSTANCE with matching:\nX21 -> X61\nT18 -> T47\nX22 -> X62\nT20 -> T50" }, { "from": 436, "to": 441, "label": "CASE" }, { "from": 438, "to": 48, "label": "INSTANCE with matching:\nT10 -> T57\nT9 -> T19" }, { "from": 441, "to": 462, "label": "PARALLEL" }, { "from": 441, "to": 463, "label": "PARALLEL" }, { "from": 462, "to": 464, "label": "EVAL with clause\napp([], X75, X75).\nand substitutionT25 -> [],\nT26 -> T64,\nX75 -> T64,\nX23 -> T64" }, { "from": 462, "to": 465, "label": "EVAL-BACKTRACK" }, { "from": 463, "to": 478, "label": "EVAL with clause\napp(.(X86, X87), X88, .(X86, X89)) :- app(X87, X88, X89).\nand substitutionX86 -> T71,\nX87 -> T74,\nT25 -> .(T71, T74),\nT26 -> T75,\nX88 -> T75,\nX89 -> X90,\nX23 -> .(T71, X90),\nT72 -> T74,\nT73 -> T75" }, { "from": 463, "to": 481, "label": "EVAL-BACKTRACK" }, { "from": 464, "to": 466, "label": "SUCCESS" }, { "from": 478, "to": 436, "label": "INSTANCE with matching:\nT25 -> T74\nT26 -> T75\nX23 -> X90" }, { "from": 494, "to": 495, "label": "PARALLEL" }, { "from": 494, "to": 496, "label": "PARALLEL" }, { "from": 495, "to": 497, "label": "EVAL with clause\nordered([]).\nand substitutionT9 -> []" }, { "from": 495, "to": 498, "label": "EVAL-BACKTRACK" }, { "from": 496, "to": 501, "label": "PARALLEL" }, { "from": 496, "to": 502, "label": "PARALLEL" }, { "from": 497, "to": 499, "label": "SUCCESS" }, { "from": 501, "to": 505, "label": "EVAL with clause\nordered(.(X97, [])).\nand substitutionX97 -> T82,\nT9 -> .(T82, [])" }, { "from": 501, "to": 506, "label": "EVAL-BACKTRACK" }, { "from": 502, "to": 563, "label": "EVAL with clause\nordered(.(X104, .(X105, X106))) :- ','(less(X104, s(X105)), ordered(.(X105, X106))).\nand substitutionX104 -> T89,\nX105 -> T90,\nX106 -> T91,\nT9 -> .(T89, .(T90, T91))" }, { "from": 502, "to": 564, "label": "EVAL-BACKTRACK" }, { "from": 505, "to": 507, "label": "SUCCESS" }, { "from": 563, "to": 565, "label": "SPLIT 1" }, { "from": 563, "to": 566, "label": "SPLIT 2\nnew knowledge:\nT89 is ground\nT90 is ground" }, { "from": 565, "to": 576, "label": "CASE" }, { "from": 566, "to": 49, "label": "INSTANCE with matching:\nT9 -> .(T90, T91)" }, { "from": 576, "to": 577, "label": "PARALLEL" }, { "from": 576, "to": 578, "label": "PARALLEL" }, { "from": 577, "to": 581, "label": "EVAL with clause\nless(0, s(X115)).\nand substitutionT89 -> 0,\nT90 -> T100,\nX115 -> T100" }, { "from": 577, "to": 582, "label": "EVAL-BACKTRACK" }, { "from": 578, "to": 587, "label": "EVAL with clause\nless(s(X120), s(X121)) :- less(X120, X121).\nand substitutionX120 -> T105,\nT89 -> s(T105),\nT90 -> T106,\nX121 -> T106" }, { "from": 578, "to": 588, "label": "EVAL-BACKTRACK" }, { "from": 581, "to": 583, "label": "SUCCESS" }, { "from": 587, "to": 592, "label": "CASE" }, { "from": 592, "to": 593, "label": "PARALLEL" }, { "from": 592, "to": 594, "label": "PARALLEL" }, { "from": 593, "to": 597, "label": "EVAL with clause\nless(0, s(X128)).\nand substitutionT105 -> 0,\nX128 -> T113,\nT106 -> s(T113)" }, { "from": 593, "to": 598, "label": "EVAL-BACKTRACK" }, { "from": 594, "to": 603, "label": "EVAL with clause\nless(s(X133), s(X134)) :- less(X133, X134).\nand substitutionX133 -> T118,\nT105 -> s(T118),\nX134 -> T119,\nT106 -> s(T119)" }, { "from": 594, "to": 604, "label": "EVAL-BACKTRACK" }, { "from": 597, "to": 599, "label": "SUCCESS" }, { "from": 603, "to": 587, "label": "INSTANCE with matching:\nT105 -> T118\nT106 -> T119" } ], "type": "Graph" } } ---------------------------------------- (76) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 Q is empty. ---------------------------------------- (77) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (78) Obligation: Q DP problem: The TRS P consists of the following rules: F3_IN(T9) -> U1^1(f30_in(T9), T9) F3_IN(T9) -> F30_IN(T9) F185_IN(T47) -> U2^1(f185_in(T47), T47) F185_IN(T47) -> F185_IN(T47) F48_IN(.(T18, T19)) -> U3^1(f178_in(T18, T19), .(T18, T19)) F48_IN(.(T18, T19)) -> F178_IN(T18, T19) F436_IN -> U4^1(f436_in) F436_IN -> F436_IN F49_IN(.(T89, .(T90, T91))) -> U5^1(f563_in(T89, T90, T91), .(T89, .(T90, T91))) F49_IN(.(T89, .(T90, T91))) -> F563_IN(T89, T90, T91) F587_IN(s(T118), s(T119)) -> U6^1(f587_in(T118, T119), s(T118), s(T119)) F587_IN(s(T118), s(T119)) -> F587_IN(T118, T119) F565_IN(s(T105), T106) -> U7^1(f587_in(T105, T106), s(T105), T106) F565_IN(s(T105), T106) -> F587_IN(T105, T106) F30_IN(T9) -> U8^1(f48_in(T9), T9) F30_IN(T9) -> F48_IN(T9) U8^1(f48_out1, T9) -> U9^1(f49_in(T9), T9) U8^1(f48_out1, T9) -> F49_IN(T9) F178_IN(T18, T19) -> U10^1(f185_in(T18), T18, T19) F178_IN(T18, T19) -> F185_IN(T18) U10^1(f185_out1, T18, T19) -> U11^1(f186_in(T19), T18, T19) U10^1(f185_out1, T18, T19) -> F186_IN(T19) F186_IN(T19) -> U12^1(f436_in, T19) F186_IN(T19) -> F436_IN U12^1(f436_out1, T19) -> U13^1(f48_in(T19), T19) U12^1(f436_out1, T19) -> F48_IN(T19) F563_IN(T89, T90, T91) -> U14^1(f565_in(T89, T90), T89, T90, T91) F563_IN(T89, T90, T91) -> F565_IN(T89, T90) U14^1(f565_out1, T89, T90, T91) -> U15^1(f49_in(.(T90, T91)), T89, T90, T91) U14^1(f565_out1, T89, T90, T91) -> F49_IN(.(T90, T91)) The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (79) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 5 SCCs with 19 less nodes. ---------------------------------------- (80) Complex Obligation (AND) ---------------------------------------- (81) Obligation: Q DP problem: The TRS P consists of the following rules: F587_IN(s(T118), s(T119)) -> F587_IN(T118, T119) The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (82) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (83) Obligation: Q DP problem: The TRS P consists of the following rules: F587_IN(s(T118), s(T119)) -> F587_IN(T118, T119) The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 The set Q consists of the following terms: f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (84) 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. ---------------------------------------- (85) Obligation: Q DP problem: The TRS P consists of the following rules: F587_IN(s(T118), s(T119)) -> F587_IN(T118, T119) R is empty. The set Q consists of the following terms: f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (86) 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]. f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) ---------------------------------------- (87) Obligation: Q DP problem: The TRS P consists of the following rules: F587_IN(s(T118), s(T119)) -> F587_IN(T118, T119) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (88) 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: *F587_IN(s(T118), s(T119)) -> F587_IN(T118, T119) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (89) YES ---------------------------------------- (90) Obligation: Q DP problem: The TRS P consists of the following rules: F49_IN(.(T89, .(T90, T91))) -> F563_IN(T89, T90, T91) F563_IN(T89, T90, T91) -> U14^1(f565_in(T89, T90), T89, T90, T91) U14^1(f565_out1, T89, T90, T91) -> F49_IN(.(T90, T91)) The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (91) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (92) Obligation: Q DP problem: The TRS P consists of the following rules: F49_IN(.(T89, .(T90, T91))) -> F563_IN(T89, T90, T91) F563_IN(T89, T90, T91) -> U14^1(f565_in(T89, T90), T89, T90, T91) U14^1(f565_out1, T89, T90, T91) -> F49_IN(.(T90, T91)) The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 The set Q consists of the following terms: f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (93) 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. ---------------------------------------- (94) Obligation: Q DP problem: The TRS P consists of the following rules: F49_IN(.(T89, .(T90, T91))) -> F563_IN(T89, T90, T91) F563_IN(T89, T90, T91) -> U14^1(f565_in(T89, T90), T89, T90, T91) U14^1(f565_out1, T89, T90, T91) -> F49_IN(.(T90, T91)) The TRS R consists of the following rules: f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U7(f587_out1, s(T105), T106) -> f565_out1 U6(f587_out1, s(T118), s(T119)) -> f587_out1 The set Q consists of the following terms: f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (95) 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]. f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) ---------------------------------------- (96) Obligation: Q DP problem: The TRS P consists of the following rules: F49_IN(.(T89, .(T90, T91))) -> F563_IN(T89, T90, T91) F563_IN(T89, T90, T91) -> U14^1(f565_in(T89, T90), T89, T90, T91) U14^1(f565_out1, T89, T90, T91) -> F49_IN(.(T90, T91)) The TRS R consists of the following rules: f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U7(f587_out1, s(T105), T106) -> f565_out1 U6(f587_out1, s(T118), s(T119)) -> f587_out1 The set Q consists of the following terms: f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (97) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. F49_IN(.(T89, .(T90, T91))) -> F563_IN(T89, T90, T91) U14^1(f565_out1, T89, T90, T91) -> F49_IN(.(T90, T91)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( U14^1_4(x_1, ..., x_4) ) = 2x_1 + 2x_3 + 2x_4 + 2 POL( f565_in_2(x_1, x_2) ) = x_1 POL( 0 ) = 2 POL( f565_out1 ) = 2 POL( s_1(x_1) ) = x_1 + 2 POL( U7_3(x_1, ..., x_3) ) = x_1 + 1 POL( f587_in_2(x_1, x_2) ) = x_1 POL( f587_out1 ) = 1 POL( U6_3(x_1, ..., x_3) ) = 2 POL( F49_IN_1(x_1) ) = 2x_1 + 1 POL( ._2(x_1, x_2) ) = x_1 + x_2 + 2 POL( F563_IN_3(x_1, ..., x_3) ) = 2x_1 + 2x_2 + 2x_3 + 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U7(f587_out1, s(T105), T106) -> f565_out1 U6(f587_out1, s(T118), s(T119)) -> f587_out1 ---------------------------------------- (98) Obligation: Q DP problem: The TRS P consists of the following rules: F563_IN(T89, T90, T91) -> U14^1(f565_in(T89, T90), T89, T90, T91) The TRS R consists of the following rules: f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U7(f587_out1, s(T105), T106) -> f565_out1 U6(f587_out1, s(T118), s(T119)) -> f587_out1 The set Q consists of the following terms: f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (99) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node. ---------------------------------------- (100) TRUE ---------------------------------------- (101) Obligation: Q DP problem: The TRS P consists of the following rules: F436_IN -> F436_IN The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (102) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (103) Obligation: Q DP problem: The TRS P consists of the following rules: F436_IN -> F436_IN The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 The set Q consists of the following terms: f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (104) 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. ---------------------------------------- (105) Obligation: Q DP problem: The TRS P consists of the following rules: F436_IN -> F436_IN R is empty. The set Q consists of the following terms: f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (106) 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]. f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) ---------------------------------------- (107) Obligation: Q DP problem: The TRS P consists of the following rules: F436_IN -> F436_IN R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (108) 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 = F436_IN evaluates to t =F436_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 F436_IN to F436_IN. ---------------------------------------- (109) NO ---------------------------------------- (110) Obligation: Q DP problem: The TRS P consists of the following rules: F185_IN(T47) -> F185_IN(T47) The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (111) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (112) Obligation: Q DP problem: The TRS P consists of the following rules: F185_IN(T47) -> F185_IN(T47) The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 The set Q consists of the following terms: f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (113) 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. ---------------------------------------- (114) Obligation: Q DP problem: The TRS P consists of the following rules: F185_IN(T47) -> F185_IN(T47) R is empty. The set Q consists of the following terms: f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (115) 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]. f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) ---------------------------------------- (116) Obligation: Q DP problem: The TRS P consists of the following rules: F185_IN(T47) -> F185_IN(T47) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (117) 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 = F185_IN(T47) evaluates to t =F185_IN(T47) 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 F185_IN(T47) to F185_IN(T47). ---------------------------------------- (118) NO ---------------------------------------- (119) Obligation: Q DP problem: The TRS P consists of the following rules: F178_IN(T18, T19) -> U10^1(f185_in(T18), T18, T19) U10^1(f185_out1, T18, T19) -> F186_IN(T19) F186_IN(T19) -> U12^1(f436_in, T19) U12^1(f436_out1, T19) -> F48_IN(T19) F48_IN(.(T18, T19)) -> F178_IN(T18, T19) The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (120) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (121) Obligation: Q DP problem: The TRS P consists of the following rules: F178_IN(T18, T19) -> U10^1(f185_in(T18), T18, T19) U10^1(f185_out1, T18, T19) -> F186_IN(T19) F186_IN(T19) -> U12^1(f436_in, T19) U12^1(f436_out1, T19) -> F48_IN(T19) F48_IN(.(T18, T19)) -> F178_IN(T18, T19) The TRS R consists of the following rules: f3_in(T9) -> U1(f30_in(T9), T9) U1(f30_out1, T9) -> f3_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 f48_in([]) -> f48_out1 f48_in(.(T18, T19)) -> U3(f178_in(T18, T19), .(T18, T19)) U3(f178_out1, .(T18, T19)) -> f48_out1 f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f49_in([]) -> f49_out1 f49_in(.(T82, [])) -> f49_out1 f49_in(.(T89, .(T90, T91))) -> U5(f563_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f563_out1, .(T89, .(T90, T91))) -> f49_out1 f587_in(0, s(T113)) -> f587_out1 f587_in(s(T118), s(T119)) -> U6(f587_in(T118, T119), s(T118), s(T119)) U6(f587_out1, s(T118), s(T119)) -> f587_out1 f565_in(0, T100) -> f565_out1 f565_in(s(T105), T106) -> U7(f587_in(T105, T106), s(T105), T106) U7(f587_out1, s(T105), T106) -> f565_out1 f30_in(T9) -> U8(f48_in(T9), T9) U8(f48_out1, T9) -> U9(f49_in(T9), T9) U9(f49_out1, T9) -> f30_out1 f178_in(T18, T19) -> U10(f185_in(T18), T18, T19) U10(f185_out1, T18, T19) -> U11(f186_in(T19), T18, T19) U11(f186_out1, T18, T19) -> f178_out1 f186_in(T19) -> U12(f436_in, T19) U12(f436_out1, T19) -> U13(f48_in(T19), T19) U13(f48_out1, T19) -> f186_out1 f563_in(T89, T90, T91) -> U14(f565_in(T89, T90), T89, T90, T91) U14(f565_out1, T89, T90, T91) -> U15(f49_in(.(T90, T91)), T89, T90, T91) U15(f49_out1, T89, T90, T91) -> f563_out1 The set Q consists of the following terms: f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (122) 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. ---------------------------------------- (123) Obligation: Q DP problem: The TRS P consists of the following rules: F178_IN(T18, T19) -> U10^1(f185_in(T18), T18, T19) U10^1(f185_out1, T18, T19) -> F186_IN(T19) F186_IN(T19) -> U12^1(f436_in, T19) U12^1(f436_out1, T19) -> F48_IN(T19) F48_IN(.(T18, T19)) -> F178_IN(T18, T19) The TRS R consists of the following rules: f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 The set Q consists of the following terms: f3_in(x0) U1(f30_out1, x0) f185_in(x0) U2(f185_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f436_in U4(f436_out1) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (124) 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]. f3_in(x0) U1(f30_out1, x0) f48_in([]) f48_in(.(x0, x1)) U3(f178_out1, .(x0, x1)) f49_in([]) f49_in(.(x0, [])) f49_in(.(x0, .(x1, x2))) U5(f563_out1, .(x0, .(x1, x2))) f587_in(0, s(x0)) f587_in(s(x0), s(x1)) U6(f587_out1, s(x0), s(x1)) f565_in(0, x0) f565_in(s(x0), x1) U7(f587_out1, s(x0), x1) f30_in(x0) U8(f48_out1, x0) U9(f49_out1, x0) f178_in(x0, x1) U10(f185_out1, x0, x1) U11(f186_out1, x0, x1) f186_in(x0) U12(f436_out1, x0) U13(f48_out1, x0) f563_in(x0, x1, x2) U14(f565_out1, x0, x1, x2) U15(f49_out1, x0, x1, x2) ---------------------------------------- (125) Obligation: Q DP problem: The TRS P consists of the following rules: F178_IN(T18, T19) -> U10^1(f185_in(T18), T18, T19) U10^1(f185_out1, T18, T19) -> F186_IN(T19) F186_IN(T19) -> U12^1(f436_in, T19) U12^1(f436_out1, T19) -> F48_IN(T19) F48_IN(.(T18, T19)) -> F178_IN(T18, T19) The TRS R consists of the following rules: f436_in -> f436_out1 f436_in -> U4(f436_in) U4(f436_out1) -> f436_out1 f185_in(T39) -> f185_out1 f185_in(T47) -> U2(f185_in(T47), T47) U2(f185_out1, T47) -> f185_out1 The set Q consists of the following terms: f185_in(x0) U2(f185_out1, x0) f436_in U4(f436_out1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (126) 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: *U10^1(f185_out1, T18, T19) -> F186_IN(T19) The graph contains the following edges 3 >= 1 *F48_IN(.(T18, T19)) -> F178_IN(T18, T19) The graph contains the following edges 1 > 1, 1 > 2 *F186_IN(T19) -> U12^1(f436_in, T19) The graph contains the following edges 1 >= 2 *F178_IN(T18, T19) -> U10^1(f185_in(T18), T18, T19) The graph contains the following edges 1 >= 2, 2 >= 3 *U12^1(f436_out1, T19) -> F48_IN(T19) The graph contains the following edges 2 >= 1 ---------------------------------------- (127) YES ---------------------------------------- (128) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 1, "program": { "directives": [], "clauses": [ [ "(ss Xs Ys)", "(',' (perm Xs Ys) (ordered Ys))" ], [ "(perm ([]) ([]))", null ], [ "(perm Xs (. X Ys))", "(',' (app X1s (. X X2s) Xs) (',' (app X1s X2s Zs) (perm Zs Ys)))" ], [ "(app ([]) X X)", null ], [ "(app (. X Xs) Ys (. X Zs))", "(app Xs Ys Zs)" ], [ "(ordered ([]))", null ], [ "(ordered (. X1 ([])))", null ], [ "(ordered (. X (. Y Xs)))", "(',' (less X (s Y)) (ordered (. Y Xs)))" ], [ "(less (0) (s X2))", null ], [ "(less (s X) (s Y))", "(less X Y)" ] ] }, "graph": { "nodes": { "190": { "goal": [{ "clause": 5, "scope": 3, "term": "(ordered ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "192": { "goal": [ { "clause": 6, "scope": 3, "term": "(ordered ([]))" }, { "clause": 7, "scope": 3, "term": "(ordered ([]))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "193": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes", "194": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "590": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "591": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "199": { "goal": [{ "clause": 7, "scope": 3, "term": "(ordered ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "595": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T127 T128)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T127", "T128" ], "free": [], "exprvars": [] } }, "475": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T54 T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "596": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "476": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T15 T16))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "477": { "goal": [ { "clause": 1, "scope": 6, "term": "(perm T54 T16)" }, { "clause": 2, "scope": 6, "term": "(perm T54 T16)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "479": { "goal": [{ "clause": 1, "scope": 6, "term": "(perm T54 T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "557": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app X107 (. T82 X108) T84) (',' (app X107 X108 X109) (perm X109 T83)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T82", "T83" ], "free": [ "X107", "X108", "X109" ], "exprvars": [] } }, "558": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "559": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X107 (. T82 X108) T84)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T82"], "free": [ "X107", "X108" ], "exprvars": [] } }, "281": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (app X23 (. T15 X24) T17) (',' (app X23 X24 X25) (perm X25 T16))) (ordered (. T15 T16)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [ "X23", "X24", "X25" ], "exprvars": [] } }, "480": { "goal": [{ "clause": 2, "scope": 6, "term": "(perm T54 T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "482": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "483": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "560": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T89 T90 X109) (perm X109 T83))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T83"], "free": ["X109"], "exprvars": [] } }, "484": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "561": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T89 T90 X109)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X109"], "exprvars": [] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "562": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T97 T83)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T83"], "free": [], "exprvars": [] } }, "288": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "444": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X63 (. T44 X64) T47)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T44"], "free": [ "X63", "X64" ], "exprvars": [] } }, "445": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "567": { "goal": [ { "clause": 5, "scope": 7, "term": "(ordered (. T15 T16))" }, { "clause": 6, "scope": 7, "term": "(ordered (. T15 T16))" }, { "clause": 7, "scope": 7, "term": "(ordered (. T15 T16))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "600": { "goal": [ { "clause": 8, "scope": 9, "term": "(less T127 T128)" }, { "clause": 9, "scope": 9, "term": "(less T127 T128)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T127", "T128" ], "free": [], "exprvars": [] } }, "568": { "goal": [ { "clause": 6, "scope": 7, "term": "(ordered (. T15 T16))" }, { "clause": 7, "scope": 7, "term": "(ordered (. T15 T16))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "601": { "goal": [{ "clause": 8, "scope": 9, "term": "(less T127 T128)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T127", "T128" ], "free": [], "exprvars": [] } }, "327": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X23 (. T15 X24) T17)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X23", "X24" ], "exprvars": [] } }, "569": { "goal": [{ "clause": 6, "scope": 7, "term": "(ordered (. T15 T16))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "602": { "goal": [{ "clause": 9, "scope": 9, "term": "(less T127 T128)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T127", "T128" ], "free": [], "exprvars": [] } }, "328": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (app T22 T23 X25) (perm X25 T16)) (ordered (. T15 T16)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": ["X25"], "exprvars": [] } }, "605": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "606": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "607": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "608": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T140 T141)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T140", "T141" ], "free": [], "exprvars": [] } }, "609": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "570": { "goal": [{ "clause": 7, "scope": 7, "term": "(ordered (. T15 T16))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "571": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "572": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "331": { "goal": [ { "clause": 3, "scope": 4, "term": "(app X23 (. T15 X24) T17)" }, { "clause": 4, "scope": 4, "term": "(app X23 (. T15 X24) T17)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X23", "X24" ], "exprvars": [] } }, "452": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T22 T23 X25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X25"], "exprvars": [] } }, "573": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "453": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (perm T54 T16) (ordered (. T15 T16)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "574": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (less T111 (s T112)) (ordered (. T112 T113)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T111", "T112", "T113" ], "free": [], "exprvars": [] } }, "333": { "goal": [{ "clause": 3, "scope": 4, "term": "(app X23 (. T15 X24) T17)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X23", "X24" ], "exprvars": [] } }, "454": { "goal": [ { "clause": 3, "scope": 5, "term": "(app T22 T23 X25)" }, { "clause": 4, "scope": 5, "term": "(app T22 T23 X25)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X25"], "exprvars": [] } }, "575": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "455": { "goal": [{ "clause": 3, "scope": 5, "term": "(app T22 T23 X25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X25"], "exprvars": [] } }, "335": { "goal": [{ "clause": 4, "scope": 4, "term": "(app X23 (. T15 X24) T17)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X23", "X24" ], "exprvars": [] } }, "456": { "goal": [{ "clause": 4, "scope": 5, "term": "(app T22 T23 X25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X25"], "exprvars": [] } }, "337": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "579": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T111 (s T112))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T111", "T112" ], "free": [], "exprvars": [] } }, "338": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "459": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "339": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "180": { "goal": [{ "clause": 0, "scope": 1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "181": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (perm T7 T6) (ordered T6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "182": { "goal": [ { "clause": 1, "scope": 2, "term": "(',' (perm T7 T6) (ordered T6))" }, { "clause": 2, "scope": 2, "term": "(',' (perm T7 T6) (ordered T6))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "183": { "goal": [{ "clause": 1, "scope": 2, "term": "(',' (perm T7 T6) (ordered T6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "184": { "goal": [{ "clause": 2, "scope": 2, "term": "(',' (perm T7 T6) (ordered T6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "580": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T112 T113))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T112", "T113" ], "free": [], "exprvars": [] } }, "460": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "461": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "187": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "188": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "584": { "goal": [ { "clause": 8, "scope": 8, "term": "(less T111 (s T112))" }, { "clause": 9, "scope": 8, "term": "(less T111 (s T112))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T111", "T112" ], "free": [], "exprvars": [] } }, "189": { "goal": [ { "clause": 5, "scope": 3, "term": "(ordered ([]))" }, { "clause": 6, "scope": 3, "term": "(ordered ([]))" }, { "clause": 7, "scope": 3, "term": "(ordered ([]))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "585": { "goal": [{ "clause": 8, "scope": 8, "term": "(less T111 (s T112))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T111", "T112" ], "free": [], "exprvars": [] } }, "586": { "goal": [{ "clause": 9, "scope": 8, "term": "(less T111 (s T112))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T111", "T112" ], "free": [], "exprvars": [] } }, "467": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T71 T72 X92)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X92"], "exprvars": [] } }, "226": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "468": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "589": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 1, "to": 180, "label": "CASE" }, { "from": 180, "to": 181, "label": "ONLY EVAL with clause\nss(X5, X6) :- ','(perm(X5, X6), ordered(X6)).\nand substitutionT1 -> T7,\nX5 -> T7,\nT2 -> T6,\nX6 -> T6,\nT5 -> T7" }, { "from": 181, "to": 182, "label": "CASE" }, { "from": 182, "to": 183, "label": "PARALLEL" }, { "from": 182, "to": 184, "label": "PARALLEL" }, { "from": 183, "to": 187, "label": "EVAL with clause\nperm([], []).\nand substitutionT7 -> [],\nT6 -> []" }, { "from": 183, "to": 188, "label": "EVAL-BACKTRACK" }, { "from": 184, "to": 281, "label": "EVAL with clause\nperm(X20, .(X21, X22)) :- ','(app(X23, .(X21, X24), X20), ','(app(X23, X24, X25), perm(X25, X22))).\nand substitutionT7 -> T17,\nX20 -> T17,\nX21 -> T15,\nX22 -> T16,\nT6 -> .(T15, T16),\nT14 -> T17" }, { "from": 184, "to": 288, "label": "EVAL-BACKTRACK" }, { "from": 187, "to": 189, "label": "CASE" }, { "from": 189, "to": 190, "label": "PARALLEL" }, { "from": 189, "to": 192, "label": "PARALLEL" }, { "from": 190, "to": 193, "label": "ONLY EVAL with clause\nordered([]).\nand substitution" }, { "from": 192, "to": 199, "label": "BACKTRACK\nfor clause: ordered(.(X1, []))because of non-unification" }, { "from": 193, "to": 194, "label": "SUCCESS" }, { "from": 199, "to": 226, "label": "BACKTRACK\nfor clause: ordered(.(X, .(Y, Xs))) :- ','(less(X, s(Y)), ordered(.(Y, Xs)))because of non-unification" }, { "from": 281, "to": 327, "label": "SPLIT 1" }, { "from": 281, "to": 328, "label": "SPLIT 2\nreplacements:X23 -> T22,\nX24 -> T23" }, { "from": 327, "to": 331, "label": "CASE" }, { "from": 328, "to": 452, "label": "SPLIT 1" }, { "from": 328, "to": 453, "label": "SPLIT 2\nreplacements:X25 -> T54" }, { "from": 331, "to": 333, "label": "PARALLEL" }, { "from": 331, "to": 335, "label": "PARALLEL" }, { "from": 333, "to": 337, "label": "EVAL with clause\napp([], X42, X42).\nand substitutionX23 -> [],\nT15 -> T36,\nX24 -> T37,\nX42 -> .(T36, T37),\nX43 -> T37,\nT17 -> .(T36, T37)" }, { "from": 333, "to": 338, "label": "EVAL-BACKTRACK" }, { "from": 335, "to": 444, "label": "EVAL with clause\napp(.(X58, X59), X60, .(X58, X61)) :- app(X59, X60, X61).\nand substitutionX58 -> T45,\nX59 -> X63,\nX23 -> .(T45, X63),\nT15 -> T44,\nX24 -> X64,\nX60 -> .(T44, X64),\nX62 -> T45,\nX61 -> T47,\nT17 -> .(T45, T47),\nT46 -> T47" }, { "from": 335, "to": 445, "label": "EVAL-BACKTRACK" }, { "from": 337, "to": 339, "label": "SUCCESS" }, { "from": 444, "to": 327, "label": "INSTANCE with matching:\nX23 -> X63\nT15 -> T44\nX24 -> X64\nT17 -> T47" }, { "from": 452, "to": 454, "label": "CASE" }, { "from": 453, "to": 475, "label": "SPLIT 1" }, { "from": 453, "to": 476, "label": "SPLIT 2\nnew knowledge:\nT16 is ground" }, { "from": 454, "to": 455, "label": "PARALLEL" }, { "from": 454, "to": 456, "label": "PARALLEL" }, { "from": 455, "to": 459, "label": "EVAL with clause\napp([], X77, X77).\nand substitutionT22 -> [],\nT23 -> T61,\nX77 -> T61,\nX25 -> T61" }, { "from": 455, "to": 460, "label": "EVAL-BACKTRACK" }, { "from": 456, "to": 467, "label": "EVAL with clause\napp(.(X88, X89), X90, .(X88, X91)) :- app(X89, X90, X91).\nand substitutionX88 -> T68,\nX89 -> T71,\nT22 -> .(T68, T71),\nT23 -> T72,\nX90 -> T72,\nX91 -> X92,\nX25 -> .(T68, X92),\nT69 -> T71,\nT70 -> T72" }, { "from": 456, "to": 468, "label": "EVAL-BACKTRACK" }, { "from": 459, "to": 461, "label": "SUCCESS" }, { "from": 467, "to": 452, "label": "INSTANCE with matching:\nT22 -> T71\nT23 -> T72\nX25 -> X92" }, { "from": 475, "to": 477, "label": "CASE" }, { "from": 476, "to": 567, "label": "CASE" }, { "from": 477, "to": 479, "label": "PARALLEL" }, { "from": 477, "to": 480, "label": "PARALLEL" }, { "from": 479, "to": 482, "label": "EVAL with clause\nperm([], []).\nand substitutionT54 -> [],\nT16 -> []" }, { "from": 479, "to": 483, "label": "EVAL-BACKTRACK" }, { "from": 480, "to": 557, "label": "EVAL with clause\nperm(X104, .(X105, X106)) :- ','(app(X107, .(X105, X108), X104), ','(app(X107, X108, X109), perm(X109, X106))).\nand substitutionT54 -> T84,\nX104 -> T84,\nX105 -> T82,\nX106 -> T83,\nT16 -> .(T82, T83),\nT81 -> T84" }, { "from": 480, "to": 558, "label": "EVAL-BACKTRACK" }, { "from": 482, "to": 484, "label": "SUCCESS" }, { "from": 557, "to": 559, "label": "SPLIT 1" }, { "from": 557, "to": 560, "label": "SPLIT 2\nreplacements:X107 -> T89,\nX108 -> T90" }, { "from": 559, "to": 327, "label": "INSTANCE with matching:\nX23 -> X107\nT15 -> T82\nX24 -> X108\nT17 -> T84" }, { "from": 560, "to": 561, "label": "SPLIT 1" }, { "from": 560, "to": 562, "label": "SPLIT 2\nreplacements:X109 -> T97" }, { "from": 561, "to": 452, "label": "INSTANCE with matching:\nT22 -> T89\nT23 -> T90\nX25 -> X109" }, { "from": 562, "to": 475, "label": "INSTANCE with matching:\nT54 -> T97\nT16 -> T83" }, { "from": 567, "to": 568, "label": "BACKTRACK\nfor clause: ordered([])because of non-unification" }, { "from": 568, "to": 569, "label": "PARALLEL" }, { "from": 568, "to": 570, "label": "PARALLEL" }, { "from": 569, "to": 571, "label": "EVAL with clause\nordered(.(X126, [])).\nand substitutionT15 -> T104,\nX126 -> T104,\nT16 -> []" }, { "from": 569, "to": 572, "label": "EVAL-BACKTRACK" }, { "from": 570, "to": 574, "label": "EVAL with clause\nordered(.(X133, .(X134, X135))) :- ','(less(X133, s(X134)), ordered(.(X134, X135))).\nand substitutionT15 -> T111,\nX133 -> T111,\nX134 -> T112,\nX135 -> T113,\nT16 -> .(T112, T113)" }, { "from": 570, "to": 575, "label": "EVAL-BACKTRACK" }, { "from": 571, "to": 573, "label": "SUCCESS" }, { "from": 574, "to": 579, "label": "SPLIT 1" }, { "from": 574, "to": 580, "label": "SPLIT 2\nnew knowledge:\nT111 is ground\nT112 is ground" }, { "from": 579, "to": 584, "label": "CASE" }, { "from": 580, "to": 476, "label": "INSTANCE with matching:\nT15 -> T112\nT16 -> T113" }, { "from": 584, "to": 585, "label": "PARALLEL" }, { "from": 584, "to": 586, "label": "PARALLEL" }, { "from": 585, "to": 589, "label": "EVAL with clause\nless(0, s(X144)).\nand substitutionT111 -> 0,\nT112 -> T122,\nX144 -> T122" }, { "from": 585, "to": 590, "label": "EVAL-BACKTRACK" }, { "from": 586, "to": 595, "label": "EVAL with clause\nless(s(X149), s(X150)) :- less(X149, X150).\nand substitutionX149 -> T127,\nT111 -> s(T127),\nT112 -> T128,\nX150 -> T128" }, { "from": 586, "to": 596, "label": "EVAL-BACKTRACK" }, { "from": 589, "to": 591, "label": "SUCCESS" }, { "from": 595, "to": 600, "label": "CASE" }, { "from": 600, "to": 601, "label": "PARALLEL" }, { "from": 600, "to": 602, "label": "PARALLEL" }, { "from": 601, "to": 605, "label": "EVAL with clause\nless(0, s(X157)).\nand substitutionT127 -> 0,\nX157 -> T135,\nT128 -> s(T135)" }, { "from": 601, "to": 606, "label": "EVAL-BACKTRACK" }, { "from": 602, "to": 608, "label": "EVAL with clause\nless(s(X162), s(X163)) :- less(X162, X163).\nand substitutionX162 -> T140,\nT127 -> s(T140),\nX163 -> T141,\nT128 -> s(T141)" }, { "from": 602, "to": 609, "label": "EVAL-BACKTRACK" }, { "from": 605, "to": 607, "label": "SUCCESS" }, { "from": 608, "to": 595, "label": "INSTANCE with matching:\nT127 -> T140\nT128 -> T141" } ], "type": "Graph" } } ---------------------------------------- (129) Obligation: Triples: appA(.(X1, X2), X3, X4, .(X1, X5)) :- appA(X2, X3, X4, X5). appB(.(X1, X2), X3, .(X1, X4)) :- appB(X2, X3, X4). permC(X1, .(X2, X3)) :- appA(X4, X2, X5, X1). permC(X1, .(X2, X3)) :- ','(appcA(X4, X2, X5, X1), appB(X4, X5, X6)). permC(X1, .(X2, X3)) :- ','(appcA(X4, X2, X5, X1), ','(appcB(X4, X5, X6), permC(X6, X3))). orderedD(s(X1), .(X2, X3)) :- lessF(X1, X2). orderedD(X1, .(X2, X3)) :- ','(lesscE(X1, X2), orderedD(X2, X3)). lessF(s(X1), s(X2)) :- lessF(X1, X2). ssG(X1, .(X2, X3)) :- appA(X4, X2, X5, X1). ssG(X1, .(X2, X3)) :- ','(appcA(X4, X2, X5, X1), appB(X4, X5, X6)). ssG(X1, .(X2, X3)) :- ','(appcA(X4, X2, X5, X1), ','(appcB(X4, X5, X6), permC(X6, X3))). ssG(X1, .(X2, X3)) :- ','(appcA(X4, X2, X5, X1), ','(appcB(X4, X5, X6), ','(permcC(X6, X3), orderedD(X2, X3)))). Clauses: appcA([], X1, X2, .(X1, X2)). appcA(.(X1, X2), X3, X4, .(X1, X5)) :- appcA(X2, X3, X4, X5). appcB([], X1, X1). appcB(.(X1, X2), X3, .(X1, X4)) :- appcB(X2, X3, X4). permcC([], []). permcC(X1, .(X2, X3)) :- ','(appcA(X4, X2, X5, X1), ','(appcB(X4, X5, X6), permcC(X6, X3))). orderedcD(X1, []). orderedcD(X1, .(X2, X3)) :- ','(lesscE(X1, X2), orderedcD(X2, X3)). lesscF(0, s(X1)). lesscF(s(X1), s(X2)) :- lesscF(X1, X2). lesscE(0, X1). lesscE(s(X1), X2) :- lesscF(X1, X2). Afs: ssG(x1, x2) = ssG(x2) ---------------------------------------- (130) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: ssG_in_2: (f,b) appA_in_4: (f,b,f,f) appcA_in_4: (f,b,f,f) appB_in_3: (f,f,f) appcB_in_3: (f,f,f) permC_in_2: (f,b) permcC_in_2: (f,b) orderedD_in_2: (b,b) lessF_in_2: (b,b) lesscE_in_2: (b,b) lesscF_in_2: (b,b) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: SSG_IN_AG(X1, .(X2, X3)) -> U12_AG(X1, X2, X3, appA_in_agaa(X4, X2, X5, X1)) SSG_IN_AG(X1, .(X2, X3)) -> APPA_IN_AGAA(X4, X2, X5, X1) APPA_IN_AGAA(.(X1, X2), X3, X4, .(X1, X5)) -> U1_AGAA(X1, X2, X3, X4, X5, appA_in_agaa(X2, X3, X4, X5)) APPA_IN_AGAA(.(X1, X2), X3, X4, .(X1, X5)) -> APPA_IN_AGAA(X2, X3, X4, X5) SSG_IN_AG(X1, .(X2, X3)) -> U13_AG(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U13_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U14_AG(X1, X2, X3, appB_in_aaa(X4, X5, X6)) U13_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> APPB_IN_AAA(X4, X5, X6) APPB_IN_AAA(.(X1, X2), X3, .(X1, X4)) -> U2_AAA(X1, X2, X3, X4, appB_in_aaa(X2, X3, X4)) APPB_IN_AAA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_AAA(X2, X3, X4) U13_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U15_AG(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U15_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U16_AG(X1, X2, X3, permC_in_ag(X6, X3)) U15_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> PERMC_IN_AG(X6, X3) PERMC_IN_AG(X1, .(X2, X3)) -> U3_AG(X1, X2, X3, appA_in_agaa(X4, X2, X5, X1)) PERMC_IN_AG(X1, .(X2, X3)) -> APPA_IN_AGAA(X4, X2, X5, X1) PERMC_IN_AG(X1, .(X2, X3)) -> U4_AG(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U4_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U5_AG(X1, X2, X3, appB_in_aaa(X4, X5, X6)) U4_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> APPB_IN_AAA(X4, X5, X6) U4_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U6_AG(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U6_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U7_AG(X1, X2, X3, permC_in_ag(X6, X3)) U6_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> PERMC_IN_AG(X6, X3) U15_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U17_AG(X1, X2, X3, permcC_in_ag(X6, X3)) U17_AG(X1, X2, X3, permcC_out_ag(X6, X3)) -> U18_AG(X1, X2, X3, orderedD_in_gg(X2, X3)) U17_AG(X1, X2, X3, permcC_out_ag(X6, X3)) -> ORDEREDD_IN_GG(X2, X3) ORDEREDD_IN_GG(s(X1), .(X2, X3)) -> U8_GG(X1, X2, X3, lessF_in_gg(X1, X2)) ORDEREDD_IN_GG(s(X1), .(X2, X3)) -> LESSF_IN_GG(X1, X2) LESSF_IN_GG(s(X1), s(X2)) -> U11_GG(X1, X2, lessF_in_gg(X1, X2)) LESSF_IN_GG(s(X1), s(X2)) -> LESSF_IN_GG(X1, X2) ORDEREDD_IN_GG(X1, .(X2, X3)) -> U9_GG(X1, X2, X3, lesscE_in_gg(X1, X2)) U9_GG(X1, X2, X3, lesscE_out_gg(X1, X2)) -> U10_GG(X1, X2, X3, orderedD_in_gg(X2, X3)) U9_GG(X1, X2, X3, lesscE_out_gg(X1, X2)) -> ORDEREDD_IN_GG(X2, X3) The TRS R consists of the following rules: appcA_in_agaa([], X1, X2, .(X1, X2)) -> appcA_out_agaa([], X1, X2, .(X1, X2)) appcA_in_agaa(.(X1, X2), X3, X4, .(X1, X5)) -> U20_agaa(X1, X2, X3, X4, X5, appcA_in_agaa(X2, X3, X4, X5)) U20_agaa(X1, X2, X3, X4, X5, appcA_out_agaa(X2, X3, X4, X5)) -> appcA_out_agaa(.(X1, X2), X3, X4, .(X1, X5)) appcB_in_aaa([], X1, X1) -> appcB_out_aaa([], X1, X1) appcB_in_aaa(.(X1, X2), X3, .(X1, X4)) -> U21_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U21_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, .(X1, X4)) permcC_in_ag([], []) -> permcC_out_ag([], []) permcC_in_ag(X1, .(X2, X3)) -> U22_ag(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U22_ag(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U23_ag(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U23_ag(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U24_ag(X1, X2, X3, permcC_in_ag(X6, X3)) U24_ag(X1, X2, X3, permcC_out_ag(X6, X3)) -> permcC_out_ag(X1, .(X2, X3)) lesscE_in_gg(0, X1) -> lesscE_out_gg(0, X1) lesscE_in_gg(s(X1), X2) -> U28_gg(X1, X2, lesscF_in_gg(X1, X2)) lesscF_in_gg(0, s(X1)) -> lesscF_out_gg(0, s(X1)) lesscF_in_gg(s(X1), s(X2)) -> U27_gg(X1, X2, lesscF_in_gg(X1, X2)) U27_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscF_out_gg(s(X1), s(X2)) U28_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscE_out_gg(s(X1), X2) The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) appA_in_agaa(x1, x2, x3, x4) = appA_in_agaa(x2) appcA_in_agaa(x1, x2, x3, x4) = appcA_in_agaa(x2) appcA_out_agaa(x1, x2, x3, x4) = appcA_out_agaa(x2) U20_agaa(x1, x2, x3, x4, x5, x6) = U20_agaa(x3, x6) appB_in_aaa(x1, x2, x3) = appB_in_aaa appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U21_aaa(x1, x2, x3, x4, x5) = U21_aaa(x5) permC_in_ag(x1, x2) = permC_in_ag(x2) permcC_in_ag(x1, x2) = permcC_in_ag(x2) [] = [] permcC_out_ag(x1, x2) = permcC_out_ag(x2) U22_ag(x1, x2, x3, x4) = U22_ag(x2, x3, x4) U23_ag(x1, x2, x3, x4) = U23_ag(x2, x3, x4) U24_ag(x1, x2, x3, x4) = U24_ag(x2, x3, x4) orderedD_in_gg(x1, x2) = orderedD_in_gg(x1, x2) s(x1) = s(x1) lessF_in_gg(x1, x2) = lessF_in_gg(x1, x2) lesscE_in_gg(x1, x2) = lesscE_in_gg(x1, x2) 0 = 0 lesscE_out_gg(x1, x2) = lesscE_out_gg(x1, x2) U28_gg(x1, x2, x3) = U28_gg(x1, x2, x3) lesscF_in_gg(x1, x2) = lesscF_in_gg(x1, x2) lesscF_out_gg(x1, x2) = lesscF_out_gg(x1, x2) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) SSG_IN_AG(x1, x2) = SSG_IN_AG(x2) U12_AG(x1, x2, x3, x4) = U12_AG(x2, x3, x4) APPA_IN_AGAA(x1, x2, x3, x4) = APPA_IN_AGAA(x2) U1_AGAA(x1, x2, x3, x4, x5, x6) = U1_AGAA(x3, x6) U13_AG(x1, x2, x3, x4) = U13_AG(x2, x3, x4) U14_AG(x1, x2, x3, x4) = U14_AG(x2, x3, x4) APPB_IN_AAA(x1, x2, x3) = APPB_IN_AAA U2_AAA(x1, x2, x3, x4, x5) = U2_AAA(x5) U15_AG(x1, x2, x3, x4) = U15_AG(x2, x3, x4) U16_AG(x1, x2, x3, x4) = U16_AG(x2, x3, x4) PERMC_IN_AG(x1, x2) = PERMC_IN_AG(x2) U3_AG(x1, x2, x3, x4) = U3_AG(x2, x3, x4) U4_AG(x1, x2, x3, x4) = U4_AG(x2, x3, x4) U5_AG(x1, x2, x3, x4) = U5_AG(x2, x3, x4) U6_AG(x1, x2, x3, x4) = U6_AG(x2, x3, x4) U7_AG(x1, x2, x3, x4) = U7_AG(x2, x3, x4) U17_AG(x1, x2, x3, x4) = U17_AG(x2, x3, x4) U18_AG(x1, x2, x3, x4) = U18_AG(x2, x3, x4) ORDEREDD_IN_GG(x1, x2) = ORDEREDD_IN_GG(x1, x2) U8_GG(x1, x2, x3, x4) = U8_GG(x1, x2, x3, x4) LESSF_IN_GG(x1, x2) = LESSF_IN_GG(x1, x2) U11_GG(x1, x2, x3) = U11_GG(x1, x2, x3) U9_GG(x1, x2, x3, x4) = U9_GG(x1, x2, x3, x4) U10_GG(x1, x2, x3, x4) = U10_GG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (131) Obligation: Pi DP problem: The TRS P consists of the following rules: SSG_IN_AG(X1, .(X2, X3)) -> U12_AG(X1, X2, X3, appA_in_agaa(X4, X2, X5, X1)) SSG_IN_AG(X1, .(X2, X3)) -> APPA_IN_AGAA(X4, X2, X5, X1) APPA_IN_AGAA(.(X1, X2), X3, X4, .(X1, X5)) -> U1_AGAA(X1, X2, X3, X4, X5, appA_in_agaa(X2, X3, X4, X5)) APPA_IN_AGAA(.(X1, X2), X3, X4, .(X1, X5)) -> APPA_IN_AGAA(X2, X3, X4, X5) SSG_IN_AG(X1, .(X2, X3)) -> U13_AG(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U13_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U14_AG(X1, X2, X3, appB_in_aaa(X4, X5, X6)) U13_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> APPB_IN_AAA(X4, X5, X6) APPB_IN_AAA(.(X1, X2), X3, .(X1, X4)) -> U2_AAA(X1, X2, X3, X4, appB_in_aaa(X2, X3, X4)) APPB_IN_AAA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_AAA(X2, X3, X4) U13_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U15_AG(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U15_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U16_AG(X1, X2, X3, permC_in_ag(X6, X3)) U15_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> PERMC_IN_AG(X6, X3) PERMC_IN_AG(X1, .(X2, X3)) -> U3_AG(X1, X2, X3, appA_in_agaa(X4, X2, X5, X1)) PERMC_IN_AG(X1, .(X2, X3)) -> APPA_IN_AGAA(X4, X2, X5, X1) PERMC_IN_AG(X1, .(X2, X3)) -> U4_AG(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U4_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U5_AG(X1, X2, X3, appB_in_aaa(X4, X5, X6)) U4_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> APPB_IN_AAA(X4, X5, X6) U4_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U6_AG(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U6_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U7_AG(X1, X2, X3, permC_in_ag(X6, X3)) U6_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> PERMC_IN_AG(X6, X3) U15_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U17_AG(X1, X2, X3, permcC_in_ag(X6, X3)) U17_AG(X1, X2, X3, permcC_out_ag(X6, X3)) -> U18_AG(X1, X2, X3, orderedD_in_gg(X2, X3)) U17_AG(X1, X2, X3, permcC_out_ag(X6, X3)) -> ORDEREDD_IN_GG(X2, X3) ORDEREDD_IN_GG(s(X1), .(X2, X3)) -> U8_GG(X1, X2, X3, lessF_in_gg(X1, X2)) ORDEREDD_IN_GG(s(X1), .(X2, X3)) -> LESSF_IN_GG(X1, X2) LESSF_IN_GG(s(X1), s(X2)) -> U11_GG(X1, X2, lessF_in_gg(X1, X2)) LESSF_IN_GG(s(X1), s(X2)) -> LESSF_IN_GG(X1, X2) ORDEREDD_IN_GG(X1, .(X2, X3)) -> U9_GG(X1, X2, X3, lesscE_in_gg(X1, X2)) U9_GG(X1, X2, X3, lesscE_out_gg(X1, X2)) -> U10_GG(X1, X2, X3, orderedD_in_gg(X2, X3)) U9_GG(X1, X2, X3, lesscE_out_gg(X1, X2)) -> ORDEREDD_IN_GG(X2, X3) The TRS R consists of the following rules: appcA_in_agaa([], X1, X2, .(X1, X2)) -> appcA_out_agaa([], X1, X2, .(X1, X2)) appcA_in_agaa(.(X1, X2), X3, X4, .(X1, X5)) -> U20_agaa(X1, X2, X3, X4, X5, appcA_in_agaa(X2, X3, X4, X5)) U20_agaa(X1, X2, X3, X4, X5, appcA_out_agaa(X2, X3, X4, X5)) -> appcA_out_agaa(.(X1, X2), X3, X4, .(X1, X5)) appcB_in_aaa([], X1, X1) -> appcB_out_aaa([], X1, X1) appcB_in_aaa(.(X1, X2), X3, .(X1, X4)) -> U21_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U21_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, .(X1, X4)) permcC_in_ag([], []) -> permcC_out_ag([], []) permcC_in_ag(X1, .(X2, X3)) -> U22_ag(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U22_ag(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U23_ag(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U23_ag(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U24_ag(X1, X2, X3, permcC_in_ag(X6, X3)) U24_ag(X1, X2, X3, permcC_out_ag(X6, X3)) -> permcC_out_ag(X1, .(X2, X3)) lesscE_in_gg(0, X1) -> lesscE_out_gg(0, X1) lesscE_in_gg(s(X1), X2) -> U28_gg(X1, X2, lesscF_in_gg(X1, X2)) lesscF_in_gg(0, s(X1)) -> lesscF_out_gg(0, s(X1)) lesscF_in_gg(s(X1), s(X2)) -> U27_gg(X1, X2, lesscF_in_gg(X1, X2)) U27_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscF_out_gg(s(X1), s(X2)) U28_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscE_out_gg(s(X1), X2) The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) appA_in_agaa(x1, x2, x3, x4) = appA_in_agaa(x2) appcA_in_agaa(x1, x2, x3, x4) = appcA_in_agaa(x2) appcA_out_agaa(x1, x2, x3, x4) = appcA_out_agaa(x2) U20_agaa(x1, x2, x3, x4, x5, x6) = U20_agaa(x3, x6) appB_in_aaa(x1, x2, x3) = appB_in_aaa appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U21_aaa(x1, x2, x3, x4, x5) = U21_aaa(x5) permC_in_ag(x1, x2) = permC_in_ag(x2) permcC_in_ag(x1, x2) = permcC_in_ag(x2) [] = [] permcC_out_ag(x1, x2) = permcC_out_ag(x2) U22_ag(x1, x2, x3, x4) = U22_ag(x2, x3, x4) U23_ag(x1, x2, x3, x4) = U23_ag(x2, x3, x4) U24_ag(x1, x2, x3, x4) = U24_ag(x2, x3, x4) orderedD_in_gg(x1, x2) = orderedD_in_gg(x1, x2) s(x1) = s(x1) lessF_in_gg(x1, x2) = lessF_in_gg(x1, x2) lesscE_in_gg(x1, x2) = lesscE_in_gg(x1, x2) 0 = 0 lesscE_out_gg(x1, x2) = lesscE_out_gg(x1, x2) U28_gg(x1, x2, x3) = U28_gg(x1, x2, x3) lesscF_in_gg(x1, x2) = lesscF_in_gg(x1, x2) lesscF_out_gg(x1, x2) = lesscF_out_gg(x1, x2) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) SSG_IN_AG(x1, x2) = SSG_IN_AG(x2) U12_AG(x1, x2, x3, x4) = U12_AG(x2, x3, x4) APPA_IN_AGAA(x1, x2, x3, x4) = APPA_IN_AGAA(x2) U1_AGAA(x1, x2, x3, x4, x5, x6) = U1_AGAA(x3, x6) U13_AG(x1, x2, x3, x4) = U13_AG(x2, x3, x4) U14_AG(x1, x2, x3, x4) = U14_AG(x2, x3, x4) APPB_IN_AAA(x1, x2, x3) = APPB_IN_AAA U2_AAA(x1, x2, x3, x4, x5) = U2_AAA(x5) U15_AG(x1, x2, x3, x4) = U15_AG(x2, x3, x4) U16_AG(x1, x2, x3, x4) = U16_AG(x2, x3, x4) PERMC_IN_AG(x1, x2) = PERMC_IN_AG(x2) U3_AG(x1, x2, x3, x4) = U3_AG(x2, x3, x4) U4_AG(x1, x2, x3, x4) = U4_AG(x2, x3, x4) U5_AG(x1, x2, x3, x4) = U5_AG(x2, x3, x4) U6_AG(x1, x2, x3, x4) = U6_AG(x2, x3, x4) U7_AG(x1, x2, x3, x4) = U7_AG(x2, x3, x4) U17_AG(x1, x2, x3, x4) = U17_AG(x2, x3, x4) U18_AG(x1, x2, x3, x4) = U18_AG(x2, x3, x4) ORDEREDD_IN_GG(x1, x2) = ORDEREDD_IN_GG(x1, x2) U8_GG(x1, x2, x3, x4) = U8_GG(x1, x2, x3, x4) LESSF_IN_GG(x1, x2) = LESSF_IN_GG(x1, x2) U11_GG(x1, x2, x3) = U11_GG(x1, x2, x3) U9_GG(x1, x2, x3, x4) = U9_GG(x1, x2, x3, x4) U10_GG(x1, x2, x3, x4) = U10_GG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (132) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 5 SCCs with 22 less nodes. ---------------------------------------- (133) Complex Obligation (AND) ---------------------------------------- (134) Obligation: Pi DP problem: The TRS P consists of the following rules: LESSF_IN_GG(s(X1), s(X2)) -> LESSF_IN_GG(X1, X2) The TRS R consists of the following rules: appcA_in_agaa([], X1, X2, .(X1, X2)) -> appcA_out_agaa([], X1, X2, .(X1, X2)) appcA_in_agaa(.(X1, X2), X3, X4, .(X1, X5)) -> U20_agaa(X1, X2, X3, X4, X5, appcA_in_agaa(X2, X3, X4, X5)) U20_agaa(X1, X2, X3, X4, X5, appcA_out_agaa(X2, X3, X4, X5)) -> appcA_out_agaa(.(X1, X2), X3, X4, .(X1, X5)) appcB_in_aaa([], X1, X1) -> appcB_out_aaa([], X1, X1) appcB_in_aaa(.(X1, X2), X3, .(X1, X4)) -> U21_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U21_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, .(X1, X4)) permcC_in_ag([], []) -> permcC_out_ag([], []) permcC_in_ag(X1, .(X2, X3)) -> U22_ag(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U22_ag(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U23_ag(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U23_ag(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U24_ag(X1, X2, X3, permcC_in_ag(X6, X3)) U24_ag(X1, X2, X3, permcC_out_ag(X6, X3)) -> permcC_out_ag(X1, .(X2, X3)) lesscE_in_gg(0, X1) -> lesscE_out_gg(0, X1) lesscE_in_gg(s(X1), X2) -> U28_gg(X1, X2, lesscF_in_gg(X1, X2)) lesscF_in_gg(0, s(X1)) -> lesscF_out_gg(0, s(X1)) lesscF_in_gg(s(X1), s(X2)) -> U27_gg(X1, X2, lesscF_in_gg(X1, X2)) U27_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscF_out_gg(s(X1), s(X2)) U28_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscE_out_gg(s(X1), X2) The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) appcA_in_agaa(x1, x2, x3, x4) = appcA_in_agaa(x2) appcA_out_agaa(x1, x2, x3, x4) = appcA_out_agaa(x2) U20_agaa(x1, x2, x3, x4, x5, x6) = U20_agaa(x3, x6) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U21_aaa(x1, x2, x3, x4, x5) = U21_aaa(x5) permcC_in_ag(x1, x2) = permcC_in_ag(x2) [] = [] permcC_out_ag(x1, x2) = permcC_out_ag(x2) U22_ag(x1, x2, x3, x4) = U22_ag(x2, x3, x4) U23_ag(x1, x2, x3, x4) = U23_ag(x2, x3, x4) U24_ag(x1, x2, x3, x4) = U24_ag(x2, x3, x4) s(x1) = s(x1) lesscE_in_gg(x1, x2) = lesscE_in_gg(x1, x2) 0 = 0 lesscE_out_gg(x1, x2) = lesscE_out_gg(x1, x2) U28_gg(x1, x2, x3) = U28_gg(x1, x2, x3) lesscF_in_gg(x1, x2) = lesscF_in_gg(x1, x2) lesscF_out_gg(x1, x2) = lesscF_out_gg(x1, x2) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) LESSF_IN_GG(x1, x2) = LESSF_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (135) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (136) Obligation: Pi DP problem: The TRS P consists of the following rules: LESSF_IN_GG(s(X1), s(X2)) -> LESSF_IN_GG(X1, X2) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (137) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (138) Obligation: Q DP problem: The TRS P consists of the following rules: LESSF_IN_GG(s(X1), s(X2)) -> LESSF_IN_GG(X1, X2) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (139) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *LESSF_IN_GG(s(X1), s(X2)) -> LESSF_IN_GG(X1, X2) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (140) YES ---------------------------------------- (141) Obligation: Pi DP problem: The TRS P consists of the following rules: ORDEREDD_IN_GG(X1, .(X2, X3)) -> U9_GG(X1, X2, X3, lesscE_in_gg(X1, X2)) U9_GG(X1, X2, X3, lesscE_out_gg(X1, X2)) -> ORDEREDD_IN_GG(X2, X3) The TRS R consists of the following rules: appcA_in_agaa([], X1, X2, .(X1, X2)) -> appcA_out_agaa([], X1, X2, .(X1, X2)) appcA_in_agaa(.(X1, X2), X3, X4, .(X1, X5)) -> U20_agaa(X1, X2, X3, X4, X5, appcA_in_agaa(X2, X3, X4, X5)) U20_agaa(X1, X2, X3, X4, X5, appcA_out_agaa(X2, X3, X4, X5)) -> appcA_out_agaa(.(X1, X2), X3, X4, .(X1, X5)) appcB_in_aaa([], X1, X1) -> appcB_out_aaa([], X1, X1) appcB_in_aaa(.(X1, X2), X3, .(X1, X4)) -> U21_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U21_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, .(X1, X4)) permcC_in_ag([], []) -> permcC_out_ag([], []) permcC_in_ag(X1, .(X2, X3)) -> U22_ag(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U22_ag(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U23_ag(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U23_ag(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U24_ag(X1, X2, X3, permcC_in_ag(X6, X3)) U24_ag(X1, X2, X3, permcC_out_ag(X6, X3)) -> permcC_out_ag(X1, .(X2, X3)) lesscE_in_gg(0, X1) -> lesscE_out_gg(0, X1) lesscE_in_gg(s(X1), X2) -> U28_gg(X1, X2, lesscF_in_gg(X1, X2)) lesscF_in_gg(0, s(X1)) -> lesscF_out_gg(0, s(X1)) lesscF_in_gg(s(X1), s(X2)) -> U27_gg(X1, X2, lesscF_in_gg(X1, X2)) U27_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscF_out_gg(s(X1), s(X2)) U28_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscE_out_gg(s(X1), X2) The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) appcA_in_agaa(x1, x2, x3, x4) = appcA_in_agaa(x2) appcA_out_agaa(x1, x2, x3, x4) = appcA_out_agaa(x2) U20_agaa(x1, x2, x3, x4, x5, x6) = U20_agaa(x3, x6) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U21_aaa(x1, x2, x3, x4, x5) = U21_aaa(x5) permcC_in_ag(x1, x2) = permcC_in_ag(x2) [] = [] permcC_out_ag(x1, x2) = permcC_out_ag(x2) U22_ag(x1, x2, x3, x4) = U22_ag(x2, x3, x4) U23_ag(x1, x2, x3, x4) = U23_ag(x2, x3, x4) U24_ag(x1, x2, x3, x4) = U24_ag(x2, x3, x4) s(x1) = s(x1) lesscE_in_gg(x1, x2) = lesscE_in_gg(x1, x2) 0 = 0 lesscE_out_gg(x1, x2) = lesscE_out_gg(x1, x2) U28_gg(x1, x2, x3) = U28_gg(x1, x2, x3) lesscF_in_gg(x1, x2) = lesscF_in_gg(x1, x2) lesscF_out_gg(x1, x2) = lesscF_out_gg(x1, x2) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) ORDEREDD_IN_GG(x1, x2) = ORDEREDD_IN_GG(x1, x2) U9_GG(x1, x2, x3, x4) = U9_GG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (142) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (143) Obligation: Pi DP problem: The TRS P consists of the following rules: ORDEREDD_IN_GG(X1, .(X2, X3)) -> U9_GG(X1, X2, X3, lesscE_in_gg(X1, X2)) U9_GG(X1, X2, X3, lesscE_out_gg(X1, X2)) -> ORDEREDD_IN_GG(X2, X3) The TRS R consists of the following rules: lesscE_in_gg(0, X1) -> lesscE_out_gg(0, X1) lesscE_in_gg(s(X1), X2) -> U28_gg(X1, X2, lesscF_in_gg(X1, X2)) U28_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscE_out_gg(s(X1), X2) lesscF_in_gg(0, s(X1)) -> lesscF_out_gg(0, s(X1)) lesscF_in_gg(s(X1), s(X2)) -> U27_gg(X1, X2, lesscF_in_gg(X1, X2)) U27_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscF_out_gg(s(X1), s(X2)) Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (144) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (145) Obligation: Q DP problem: The TRS P consists of the following rules: ORDEREDD_IN_GG(X1, .(X2, X3)) -> U9_GG(X1, X2, X3, lesscE_in_gg(X1, X2)) U9_GG(X1, X2, X3, lesscE_out_gg(X1, X2)) -> ORDEREDD_IN_GG(X2, X3) The TRS R consists of the following rules: lesscE_in_gg(0, X1) -> lesscE_out_gg(0, X1) lesscE_in_gg(s(X1), X2) -> U28_gg(X1, X2, lesscF_in_gg(X1, X2)) U28_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscE_out_gg(s(X1), X2) lesscF_in_gg(0, s(X1)) -> lesscF_out_gg(0, s(X1)) lesscF_in_gg(s(X1), s(X2)) -> U27_gg(X1, X2, lesscF_in_gg(X1, X2)) U27_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscF_out_gg(s(X1), s(X2)) The set Q consists of the following terms: lesscE_in_gg(x0, x1) U28_gg(x0, x1, x2) lesscF_in_gg(x0, x1) U27_gg(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (146) 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: *U9_GG(X1, X2, X3, lesscE_out_gg(X1, X2)) -> ORDEREDD_IN_GG(X2, X3) The graph contains the following edges 2 >= 1, 4 > 1, 3 >= 2 *ORDEREDD_IN_GG(X1, .(X2, X3)) -> U9_GG(X1, X2, X3, lesscE_in_gg(X1, X2)) The graph contains the following edges 1 >= 1, 2 > 2, 2 > 3 ---------------------------------------- (147) YES ---------------------------------------- (148) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_AAA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_AAA(X2, X3, X4) The TRS R consists of the following rules: appcA_in_agaa([], X1, X2, .(X1, X2)) -> appcA_out_agaa([], X1, X2, .(X1, X2)) appcA_in_agaa(.(X1, X2), X3, X4, .(X1, X5)) -> U20_agaa(X1, X2, X3, X4, X5, appcA_in_agaa(X2, X3, X4, X5)) U20_agaa(X1, X2, X3, X4, X5, appcA_out_agaa(X2, X3, X4, X5)) -> appcA_out_agaa(.(X1, X2), X3, X4, .(X1, X5)) appcB_in_aaa([], X1, X1) -> appcB_out_aaa([], X1, X1) appcB_in_aaa(.(X1, X2), X3, .(X1, X4)) -> U21_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U21_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, .(X1, X4)) permcC_in_ag([], []) -> permcC_out_ag([], []) permcC_in_ag(X1, .(X2, X3)) -> U22_ag(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U22_ag(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U23_ag(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U23_ag(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U24_ag(X1, X2, X3, permcC_in_ag(X6, X3)) U24_ag(X1, X2, X3, permcC_out_ag(X6, X3)) -> permcC_out_ag(X1, .(X2, X3)) lesscE_in_gg(0, X1) -> lesscE_out_gg(0, X1) lesscE_in_gg(s(X1), X2) -> U28_gg(X1, X2, lesscF_in_gg(X1, X2)) lesscF_in_gg(0, s(X1)) -> lesscF_out_gg(0, s(X1)) lesscF_in_gg(s(X1), s(X2)) -> U27_gg(X1, X2, lesscF_in_gg(X1, X2)) U27_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscF_out_gg(s(X1), s(X2)) U28_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscE_out_gg(s(X1), X2) The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) appcA_in_agaa(x1, x2, x3, x4) = appcA_in_agaa(x2) appcA_out_agaa(x1, x2, x3, x4) = appcA_out_agaa(x2) U20_agaa(x1, x2, x3, x4, x5, x6) = U20_agaa(x3, x6) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U21_aaa(x1, x2, x3, x4, x5) = U21_aaa(x5) permcC_in_ag(x1, x2) = permcC_in_ag(x2) [] = [] permcC_out_ag(x1, x2) = permcC_out_ag(x2) U22_ag(x1, x2, x3, x4) = U22_ag(x2, x3, x4) U23_ag(x1, x2, x3, x4) = U23_ag(x2, x3, x4) U24_ag(x1, x2, x3, x4) = U24_ag(x2, x3, x4) s(x1) = s(x1) lesscE_in_gg(x1, x2) = lesscE_in_gg(x1, x2) 0 = 0 lesscE_out_gg(x1, x2) = lesscE_out_gg(x1, x2) U28_gg(x1, x2, x3) = U28_gg(x1, x2, x3) lesscF_in_gg(x1, x2) = lesscF_in_gg(x1, x2) lesscF_out_gg(x1, x2) = lesscF_out_gg(x1, x2) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) APPB_IN_AAA(x1, x2, x3) = APPB_IN_AAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (149) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (150) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_AAA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_AAA(X2, X3, X4) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) APPB_IN_AAA(x1, x2, x3) = APPB_IN_AAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (151) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (152) Obligation: Q DP problem: The TRS P consists of the following rules: APPB_IN_AAA -> APPB_IN_AAA R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (153) 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 = APPB_IN_AAA evaluates to t =APPB_IN_AAA Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from APPB_IN_AAA to APPB_IN_AAA. ---------------------------------------- (154) NO ---------------------------------------- (155) Obligation: Pi DP problem: The TRS P consists of the following rules: APPA_IN_AGAA(.(X1, X2), X3, X4, .(X1, X5)) -> APPA_IN_AGAA(X2, X3, X4, X5) The TRS R consists of the following rules: appcA_in_agaa([], X1, X2, .(X1, X2)) -> appcA_out_agaa([], X1, X2, .(X1, X2)) appcA_in_agaa(.(X1, X2), X3, X4, .(X1, X5)) -> U20_agaa(X1, X2, X3, X4, X5, appcA_in_agaa(X2, X3, X4, X5)) U20_agaa(X1, X2, X3, X4, X5, appcA_out_agaa(X2, X3, X4, X5)) -> appcA_out_agaa(.(X1, X2), X3, X4, .(X1, X5)) appcB_in_aaa([], X1, X1) -> appcB_out_aaa([], X1, X1) appcB_in_aaa(.(X1, X2), X3, .(X1, X4)) -> U21_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U21_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, .(X1, X4)) permcC_in_ag([], []) -> permcC_out_ag([], []) permcC_in_ag(X1, .(X2, X3)) -> U22_ag(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U22_ag(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U23_ag(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U23_ag(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U24_ag(X1, X2, X3, permcC_in_ag(X6, X3)) U24_ag(X1, X2, X3, permcC_out_ag(X6, X3)) -> permcC_out_ag(X1, .(X2, X3)) lesscE_in_gg(0, X1) -> lesscE_out_gg(0, X1) lesscE_in_gg(s(X1), X2) -> U28_gg(X1, X2, lesscF_in_gg(X1, X2)) lesscF_in_gg(0, s(X1)) -> lesscF_out_gg(0, s(X1)) lesscF_in_gg(s(X1), s(X2)) -> U27_gg(X1, X2, lesscF_in_gg(X1, X2)) U27_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscF_out_gg(s(X1), s(X2)) U28_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscE_out_gg(s(X1), X2) The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) appcA_in_agaa(x1, x2, x3, x4) = appcA_in_agaa(x2) appcA_out_agaa(x1, x2, x3, x4) = appcA_out_agaa(x2) U20_agaa(x1, x2, x3, x4, x5, x6) = U20_agaa(x3, x6) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U21_aaa(x1, x2, x3, x4, x5) = U21_aaa(x5) permcC_in_ag(x1, x2) = permcC_in_ag(x2) [] = [] permcC_out_ag(x1, x2) = permcC_out_ag(x2) U22_ag(x1, x2, x3, x4) = U22_ag(x2, x3, x4) U23_ag(x1, x2, x3, x4) = U23_ag(x2, x3, x4) U24_ag(x1, x2, x3, x4) = U24_ag(x2, x3, x4) s(x1) = s(x1) lesscE_in_gg(x1, x2) = lesscE_in_gg(x1, x2) 0 = 0 lesscE_out_gg(x1, x2) = lesscE_out_gg(x1, x2) U28_gg(x1, x2, x3) = U28_gg(x1, x2, x3) lesscF_in_gg(x1, x2) = lesscF_in_gg(x1, x2) lesscF_out_gg(x1, x2) = lesscF_out_gg(x1, x2) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) APPA_IN_AGAA(x1, x2, x3, x4) = APPA_IN_AGAA(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (156) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (157) Obligation: Pi DP problem: The TRS P consists of the following rules: APPA_IN_AGAA(.(X1, X2), X3, X4, .(X1, X5)) -> APPA_IN_AGAA(X2, X3, X4, X5) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) APPA_IN_AGAA(x1, x2, x3, x4) = APPA_IN_AGAA(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (158) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (159) Obligation: Q DP problem: The TRS P consists of the following rules: APPA_IN_AGAA(X3) -> APPA_IN_AGAA(X3) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (160) Obligation: Pi DP problem: The TRS P consists of the following rules: PERMC_IN_AG(X1, .(X2, X3)) -> U4_AG(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U4_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U6_AG(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U6_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> PERMC_IN_AG(X6, X3) The TRS R consists of the following rules: appcA_in_agaa([], X1, X2, .(X1, X2)) -> appcA_out_agaa([], X1, X2, .(X1, X2)) appcA_in_agaa(.(X1, X2), X3, X4, .(X1, X5)) -> U20_agaa(X1, X2, X3, X4, X5, appcA_in_agaa(X2, X3, X4, X5)) U20_agaa(X1, X2, X3, X4, X5, appcA_out_agaa(X2, X3, X4, X5)) -> appcA_out_agaa(.(X1, X2), X3, X4, .(X1, X5)) appcB_in_aaa([], X1, X1) -> appcB_out_aaa([], X1, X1) appcB_in_aaa(.(X1, X2), X3, .(X1, X4)) -> U21_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U21_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, .(X1, X4)) permcC_in_ag([], []) -> permcC_out_ag([], []) permcC_in_ag(X1, .(X2, X3)) -> U22_ag(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U22_ag(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U23_ag(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U23_ag(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> U24_ag(X1, X2, X3, permcC_in_ag(X6, X3)) U24_ag(X1, X2, X3, permcC_out_ag(X6, X3)) -> permcC_out_ag(X1, .(X2, X3)) lesscE_in_gg(0, X1) -> lesscE_out_gg(0, X1) lesscE_in_gg(s(X1), X2) -> U28_gg(X1, X2, lesscF_in_gg(X1, X2)) lesscF_in_gg(0, s(X1)) -> lesscF_out_gg(0, s(X1)) lesscF_in_gg(s(X1), s(X2)) -> U27_gg(X1, X2, lesscF_in_gg(X1, X2)) U27_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscF_out_gg(s(X1), s(X2)) U28_gg(X1, X2, lesscF_out_gg(X1, X2)) -> lesscE_out_gg(s(X1), X2) The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) appcA_in_agaa(x1, x2, x3, x4) = appcA_in_agaa(x2) appcA_out_agaa(x1, x2, x3, x4) = appcA_out_agaa(x2) U20_agaa(x1, x2, x3, x4, x5, x6) = U20_agaa(x3, x6) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U21_aaa(x1, x2, x3, x4, x5) = U21_aaa(x5) permcC_in_ag(x1, x2) = permcC_in_ag(x2) [] = [] permcC_out_ag(x1, x2) = permcC_out_ag(x2) U22_ag(x1, x2, x3, x4) = U22_ag(x2, x3, x4) U23_ag(x1, x2, x3, x4) = U23_ag(x2, x3, x4) U24_ag(x1, x2, x3, x4) = U24_ag(x2, x3, x4) s(x1) = s(x1) lesscE_in_gg(x1, x2) = lesscE_in_gg(x1, x2) 0 = 0 lesscE_out_gg(x1, x2) = lesscE_out_gg(x1, x2) U28_gg(x1, x2, x3) = U28_gg(x1, x2, x3) lesscF_in_gg(x1, x2) = lesscF_in_gg(x1, x2) lesscF_out_gg(x1, x2) = lesscF_out_gg(x1, x2) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) PERMC_IN_AG(x1, x2) = PERMC_IN_AG(x2) U4_AG(x1, x2, x3, x4) = U4_AG(x2, x3, x4) U6_AG(x1, x2, x3, x4) = U6_AG(x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (161) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (162) Obligation: Pi DP problem: The TRS P consists of the following rules: PERMC_IN_AG(X1, .(X2, X3)) -> U4_AG(X1, X2, X3, appcA_in_agaa(X4, X2, X5, X1)) U4_AG(X1, X2, X3, appcA_out_agaa(X4, X2, X5, X1)) -> U6_AG(X1, X2, X3, appcB_in_aaa(X4, X5, X6)) U6_AG(X1, X2, X3, appcB_out_aaa(X4, X5, X6)) -> PERMC_IN_AG(X6, X3) The TRS R consists of the following rules: appcA_in_agaa([], X1, X2, .(X1, X2)) -> appcA_out_agaa([], X1, X2, .(X1, X2)) appcA_in_agaa(.(X1, X2), X3, X4, .(X1, X5)) -> U20_agaa(X1, X2, X3, X4, X5, appcA_in_agaa(X2, X3, X4, X5)) appcB_in_aaa([], X1, X1) -> appcB_out_aaa([], X1, X1) appcB_in_aaa(.(X1, X2), X3, .(X1, X4)) -> U21_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U20_agaa(X1, X2, X3, X4, X5, appcA_out_agaa(X2, X3, X4, X5)) -> appcA_out_agaa(.(X1, X2), X3, X4, .(X1, X5)) U21_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, .(X1, X4)) The argument filtering Pi contains the following mapping: .(x1, x2) = .(x1, x2) appcA_in_agaa(x1, x2, x3, x4) = appcA_in_agaa(x2) appcA_out_agaa(x1, x2, x3, x4) = appcA_out_agaa(x2) U20_agaa(x1, x2, x3, x4, x5, x6) = U20_agaa(x3, x6) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U21_aaa(x1, x2, x3, x4, x5) = U21_aaa(x5) [] = [] PERMC_IN_AG(x1, x2) = PERMC_IN_AG(x2) U4_AG(x1, x2, x3, x4) = U4_AG(x2, x3, x4) U6_AG(x1, x2, x3, x4) = U6_AG(x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (163) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 2, "program": { "directives": [], "clauses": [ [ "(ss Xs Ys)", "(',' (perm Xs Ys) (ordered Ys))" ], [ "(perm ([]) ([]))", null ], [ "(perm Xs (. X Ys))", "(',' (app X1s (. X X2s) Xs) (',' (app X1s X2s Zs) (perm Zs Ys)))" ], [ "(app ([]) X X)", null ], [ "(app (. X Xs) Ys (. X Zs))", "(app Xs Ys Zs)" ], [ "(ordered ([]))", null ], [ "(ordered (. X1 ([])))", null ], [ "(ordered (. X (. Y Xs)))", "(',' (less X (s Y)) (ordered (. Y Xs)))" ], [ "(less (0) (s X2))", null ], [ "(less (s X) (s Y))", "(less X Y)" ] ] }, "graph": { "nodes": { "46": { "goal": [{ "clause": 0, "scope": 1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "47": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (perm T10 T9) (ordered T9))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "type": "Nodes", "470": { "goal": [{ "clause": 5, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "471": { "goal": [ { "clause": 6, "scope": 5, "term": "(ordered T9)" }, { "clause": 7, "scope": 5, "term": "(ordered T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "274": { "goal": [ { "clause": 1, "scope": 2, "term": "(perm T10 T9)" }, { "clause": 2, "scope": 2, "term": "(perm T10 T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "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": [] } }, "550": { "goal": [{ "clause": 8, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "474": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "551": { "goal": [{ "clause": 9, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "552": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "553": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "510": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "554": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "555": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T118 T119)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T118", "T119" ], "free": [], "exprvars": [] } }, "556": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "50": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "51": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "285": { "goal": [{ "clause": 1, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "287": { "goal": [{ "clause": 2, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "485": { "goal": [{ "clause": 6, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "442": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "486": { "goal": [{ "clause": 7, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "443": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T57 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "487": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "488": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "489": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "446": { "goal": [ { "clause": 3, "scope": 4, "term": "(app T25 T26 X23)" }, { "clause": 4, "scope": 4, "term": "(app T25 T26 X23)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "447": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "448": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "449": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "329": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app X21 (. T18 X22) T20) (',' (app X21 X22 X23) (perm X23 T19)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T18", "T19" ], "free": [ "X21", "X22", "X23" ], "exprvars": [] } }, "529": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "490": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (less T89 (s T90)) (ordered (. T90 T91)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90", "T91" ], "free": [], "exprvars": [] } }, "491": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "294": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "492": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "493": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T90 T91))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T90", "T91" ], "free": [], "exprvars": [] } }, "450": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "330": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "451": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "332": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "530": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "531": { "goal": [ { "clause": 8, "scope": 7, "term": "(less T105 T106)" }, { "clause": 9, "scope": 7, "term": "(less T105 T106)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "334": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T25 T26 X23) (perm X23 T19))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": ["X23"], "exprvars": [] } }, "336": { "goal": [ { "clause": 3, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }, { "clause": 4, "scope": 3, "term": "(app X21 (. T18 X22) T20)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "457": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T74 T75 X90)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X90"], "exprvars": [] } }, "458": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "340": { "goal": [{ "clause": 3, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "341": { "goal": [{ "clause": 4, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "342": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "343": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "344": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "302": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "500": { "goal": [ { "clause": 8, "scope": 6, "term": "(less T89 (s T90))" }, { "clause": 9, "scope": 6, "term": "(less T89 (s T90))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "348": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X61 (. T47 X62) T50)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T47"], "free": [ "X61", "X62" ], "exprvars": [] } }, "469": { "goal": [ { "clause": 5, "scope": 5, "term": "(ordered T9)" }, { "clause": 6, "scope": 5, "term": "(ordered T9)" }, { "clause": 7, "scope": 5, "term": "(ordered T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "305": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "349": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "503": { "goal": [{ "clause": 8, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "504": { "goal": [{ "clause": 9, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "508": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "509": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 2, "to": 46, "label": "CASE" }, { "from": 46, "to": 47, "label": "ONLY EVAL with clause\nss(X7, X8) :- ','(perm(X7, X8), ordered(X8)).\nand substitutionT1 -> T10,\nX7 -> T10,\nT2 -> T9,\nX8 -> T9,\nT8 -> T10" }, { "from": 47, "to": 50, "label": "SPLIT 1" }, { "from": 47, "to": 51, "label": "SPLIT 2\nnew knowledge:\nT9 is ground" }, { "from": 50, "to": 274, "label": "CASE" }, { "from": 51, "to": 469, "label": "CASE" }, { "from": 274, "to": 285, "label": "PARALLEL" }, { "from": 274, "to": 287, "label": "PARALLEL" }, { "from": 285, "to": 294, "label": "EVAL with clause\nperm([], []).\nand substitutionT10 -> [],\nT9 -> []" }, { "from": 285, "to": 302, "label": "EVAL-BACKTRACK" }, { "from": 287, "to": 329, "label": "EVAL with clause\nperm(X18, .(X19, X20)) :- ','(app(X21, .(X19, X22), X18), ','(app(X21, X22, X23), perm(X23, X20))).\nand substitutionT10 -> T20,\nX18 -> T20,\nX19 -> T18,\nX20 -> T19,\nT9 -> .(T18, T19),\nT17 -> T20" }, { "from": 287, "to": 330, "label": "EVAL-BACKTRACK" }, { "from": 294, "to": 305, "label": "SUCCESS" }, { "from": 329, "to": 332, "label": "SPLIT 1" }, { "from": 329, "to": 334, "label": "SPLIT 2\nreplacements:X21 -> T25,\nX22 -> T26" }, { "from": 332, "to": 336, "label": "CASE" }, { "from": 334, "to": 442, "label": "SPLIT 1" }, { "from": 334, "to": 443, "label": "SPLIT 2\nreplacements:X23 -> T57" }, { "from": 336, "to": 340, "label": "PARALLEL" }, { "from": 336, "to": 341, "label": "PARALLEL" }, { "from": 340, "to": 342, "label": "EVAL with clause\napp([], X40, X40).\nand substitutionX21 -> [],\nT18 -> T39,\nX22 -> T40,\nX40 -> .(T39, T40),\nX41 -> T40,\nT20 -> .(T39, T40)" }, { "from": 340, "to": 343, "label": "EVAL-BACKTRACK" }, { "from": 341, "to": 348, "label": "EVAL with clause\napp(.(X56, X57), X58, .(X56, X59)) :- app(X57, X58, X59).\nand substitutionX56 -> T48,\nX57 -> X61,\nX21 -> .(T48, X61),\nT18 -> T47,\nX22 -> X62,\nX58 -> .(T47, X62),\nX60 -> T48,\nX59 -> T50,\nT20 -> .(T48, T50),\nT49 -> T50" }, { "from": 341, "to": 349, "label": "EVAL-BACKTRACK" }, { "from": 342, "to": 344, "label": "SUCCESS" }, { "from": 348, "to": 332, "label": "INSTANCE with matching:\nX21 -> X61\nT18 -> T47\nX22 -> X62\nT20 -> T50" }, { "from": 442, "to": 446, "label": "CASE" }, { "from": 443, "to": 50, "label": "INSTANCE with matching:\nT10 -> T57\nT9 -> T19" }, { "from": 446, "to": 447, "label": "PARALLEL" }, { "from": 446, "to": 448, "label": "PARALLEL" }, { "from": 447, "to": 449, "label": "EVAL with clause\napp([], X75, X75).\nand substitutionT25 -> [],\nT26 -> T64,\nX75 -> T64,\nX23 -> T64" }, { "from": 447, "to": 450, "label": "EVAL-BACKTRACK" }, { "from": 448, "to": 457, "label": "EVAL with clause\napp(.(X86, X87), X88, .(X86, X89)) :- app(X87, X88, X89).\nand substitutionX86 -> T71,\nX87 -> T74,\nT25 -> .(T71, T74),\nT26 -> T75,\nX88 -> T75,\nX89 -> X90,\nX23 -> .(T71, X90),\nT72 -> T74,\nT73 -> T75" }, { "from": 448, "to": 458, "label": "EVAL-BACKTRACK" }, { "from": 449, "to": 451, "label": "SUCCESS" }, { "from": 457, "to": 442, "label": "INSTANCE with matching:\nT25 -> T74\nT26 -> T75\nX23 -> X90" }, { "from": 469, "to": 470, "label": "PARALLEL" }, { "from": 469, "to": 471, "label": "PARALLEL" }, { "from": 470, "to": 472, "label": "EVAL with clause\nordered([]).\nand substitutionT9 -> []" }, { "from": 470, "to": 473, "label": "EVAL-BACKTRACK" }, { "from": 471, "to": 485, "label": "PARALLEL" }, { "from": 471, "to": 486, "label": "PARALLEL" }, { "from": 472, "to": 474, "label": "SUCCESS" }, { "from": 485, "to": 487, "label": "EVAL with clause\nordered(.(X97, [])).\nand substitutionX97 -> T82,\nT9 -> .(T82, [])" }, { "from": 485, "to": 488, "label": "EVAL-BACKTRACK" }, { "from": 486, "to": 490, "label": "EVAL with clause\nordered(.(X104, .(X105, X106))) :- ','(less(X104, s(X105)), ordered(.(X105, X106))).\nand substitutionX104 -> T89,\nX105 -> T90,\nX106 -> T91,\nT9 -> .(T89, .(T90, T91))" }, { "from": 486, "to": 491, "label": "EVAL-BACKTRACK" }, { "from": 487, "to": 489, "label": "SUCCESS" }, { "from": 490, "to": 492, "label": "SPLIT 1" }, { "from": 490, "to": 493, "label": "SPLIT 2\nnew knowledge:\nT89 is ground\nT90 is ground" }, { "from": 492, "to": 500, "label": "CASE" }, { "from": 493, "to": 51, "label": "INSTANCE with matching:\nT9 -> .(T90, T91)" }, { "from": 500, "to": 503, "label": "PARALLEL" }, { "from": 500, "to": 504, "label": "PARALLEL" }, { "from": 503, "to": 508, "label": "EVAL with clause\nless(0, s(X115)).\nand substitutionT89 -> 0,\nT90 -> T100,\nX115 -> T100" }, { "from": 503, "to": 509, "label": "EVAL-BACKTRACK" }, { "from": 504, "to": 529, "label": "EVAL with clause\nless(s(X120), s(X121)) :- less(X120, X121).\nand substitutionX120 -> T105,\nT89 -> s(T105),\nT90 -> T106,\nX121 -> T106" }, { "from": 504, "to": 530, "label": "EVAL-BACKTRACK" }, { "from": 508, "to": 510, "label": "SUCCESS" }, { "from": 529, "to": 531, "label": "CASE" }, { "from": 531, "to": 550, "label": "PARALLEL" }, { "from": 531, "to": 551, "label": "PARALLEL" }, { "from": 550, "to": 552, "label": "EVAL with clause\nless(0, s(X128)).\nand substitutionT105 -> 0,\nX128 -> T113,\nT106 -> s(T113)" }, { "from": 550, "to": 553, "label": "EVAL-BACKTRACK" }, { "from": 551, "to": 555, "label": "EVAL with clause\nless(s(X133), s(X134)) :- less(X133, X134).\nand substitutionX133 -> T118,\nT105 -> s(T118),\nX134 -> T119,\nT106 -> s(T119)" }, { "from": 551, "to": 556, "label": "EVAL-BACKTRACK" }, { "from": 552, "to": 554, "label": "SUCCESS" }, { "from": 555, "to": 529, "label": "INSTANCE with matching:\nT105 -> T118\nT106 -> T119" } ], "type": "Graph" } } ---------------------------------------- (164) Complex Obligation (AND) ---------------------------------------- (165) Obligation: Rules: f551_out(T105, T106) -> f531_out(T105, T106) :|: TRUE f531_in(x, x1) -> f550_in(x, x1) :|: TRUE f531_in(x2, x3) -> f551_in(x2, x3) :|: TRUE f550_out(x4, x5) -> f531_out(x4, x5) :|: TRUE f555_in(T118, T119) -> f529_in(T118, T119) :|: TRUE f529_out(x6, x7) -> f555_out(x6, x7) :|: TRUE f531_out(x8, x9) -> f529_out(x8, x9) :|: TRUE f529_in(x10, x11) -> f531_in(x10, x11) :|: TRUE f551_in(s(x12), s(x13)) -> f555_in(x12, x13) :|: TRUE f555_out(x14, x15) -> f551_out(s(x14), s(x15)) :|: TRUE f556_out -> f551_out(x16, x17) :|: TRUE f551_in(x18, x19) -> f556_in :|: TRUE f46_out(T2) -> f2_out(T2) :|: TRUE f2_in(x20) -> f46_in(x20) :|: TRUE f46_in(T9) -> f47_in(T9) :|: TRUE f47_out(x21) -> f46_out(x21) :|: TRUE f51_out(x22) -> f47_out(x22) :|: TRUE f47_in(x23) -> f50_in(x23) :|: TRUE f50_out(x24) -> f51_in(x24) :|: TRUE f51_in(x25) -> f469_in(x25) :|: TRUE f469_out(x26) -> f51_out(x26) :|: TRUE f471_out(x27) -> f469_out(x27) :|: TRUE f469_in(x28) -> f471_in(x28) :|: TRUE f469_in(x29) -> f470_in(x29) :|: TRUE f470_out(x30) -> f469_out(x30) :|: TRUE f471_in(x31) -> f486_in(x31) :|: TRUE f486_out(x32) -> f471_out(x32) :|: TRUE f471_in(x33) -> f485_in(x33) :|: TRUE f485_out(x34) -> f471_out(x34) :|: TRUE f486_in(x35) -> f491_in :|: TRUE f491_out -> f486_out(x36) :|: TRUE f486_in(.(T89, .(T90, T91))) -> f490_in(T89, T90, T91) :|: TRUE f490_out(x37, x38, x39) -> f486_out(.(x37, .(x38, x39))) :|: TRUE f492_out(x40, x41) -> f493_in(x41, x42) :|: TRUE f490_in(x43, x44, x45) -> f492_in(x43, x44) :|: TRUE f493_out(x46, x47) -> f490_out(x48, x46, x47) :|: TRUE f500_out(x49, x50) -> f492_out(x49, x50) :|: TRUE f492_in(x51, x52) -> f500_in(x51, x52) :|: TRUE f503_out(x53, x54) -> f500_out(x53, x54) :|: TRUE f500_in(x55, x56) -> f504_in(x55, x56) :|: TRUE f500_in(x57, x58) -> f503_in(x57, x58) :|: TRUE f504_out(x59, x60) -> f500_out(x59, x60) :|: TRUE f504_in(s(x61), x62) -> f529_in(x61, x62) :|: TRUE f504_in(x63, x64) -> f530_in :|: TRUE f530_out -> f504_out(x65, x66) :|: TRUE f529_out(x67, x68) -> f504_out(s(x67), x68) :|: TRUE Start term: f2_in(T2) ---------------------------------------- (166) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (167) TRUE ---------------------------------------- (168) Obligation: Rules: f457_in -> f442_in :|: TRUE f442_out -> f457_out :|: TRUE f442_in -> f446_in :|: TRUE f446_out -> f442_out :|: TRUE f446_in -> f447_in :|: TRUE f447_out -> f446_out :|: TRUE f446_in -> f448_in :|: TRUE f448_out -> f446_out :|: TRUE f458_out -> f448_out :|: TRUE f448_in -> f458_in :|: TRUE f457_out -> f448_out :|: TRUE f448_in -> f457_in :|: TRUE f46_out(T2) -> f2_out(T2) :|: TRUE f2_in(x) -> f46_in(x) :|: TRUE f46_in(T9) -> f47_in(T9) :|: TRUE f47_out(x1) -> f46_out(x1) :|: TRUE f51_out(x2) -> f47_out(x2) :|: TRUE f47_in(x3) -> f50_in(x3) :|: TRUE f50_out(x4) -> f51_in(x4) :|: TRUE f50_in(x5) -> f274_in(x5) :|: TRUE f274_out(x6) -> f50_out(x6) :|: TRUE f274_in(x7) -> f285_in(x7) :|: TRUE f287_out(x8) -> f274_out(x8) :|: TRUE f285_out(x9) -> f274_out(x9) :|: TRUE f274_in(x10) -> f287_in(x10) :|: TRUE f287_in(.(T18, T19)) -> f329_in(T18, T19) :|: TRUE f329_out(x11, x12) -> f287_out(.(x11, x12)) :|: TRUE f330_out -> f287_out(x13) :|: TRUE f287_in(x14) -> f330_in :|: TRUE f334_out(x15) -> f329_out(x16, x15) :|: TRUE f332_out(x17) -> f334_in(x18) :|: TRUE f329_in(x19, x20) -> f332_in(x19) :|: TRUE f443_out(x21) -> f334_out(x21) :|: TRUE f334_in(x22) -> f442_in :|: TRUE f442_out -> f443_in(x23) :|: TRUE Start term: f2_in(T2) ---------------------------------------- (169) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (170) TRUE ---------------------------------------- (171) Obligation: Rules: f336_in(T18) -> f340_in(T18) :|: TRUE f340_out(x) -> f336_out(x) :|: TRUE f336_in(x1) -> f341_in(x1) :|: TRUE f341_out(x2) -> f336_out(x2) :|: TRUE f332_out(T47) -> f348_out(T47) :|: TRUE f348_in(x3) -> f332_in(x3) :|: TRUE f336_out(x4) -> f332_out(x4) :|: TRUE f332_in(x5) -> f336_in(x5) :|: TRUE f341_in(x6) -> f349_in :|: TRUE f341_in(x7) -> f348_in(x7) :|: TRUE f349_out -> f341_out(x8) :|: TRUE f348_out(x9) -> f341_out(x9) :|: TRUE f46_out(T2) -> f2_out(T2) :|: TRUE f2_in(x10) -> f46_in(x10) :|: TRUE f46_in(T9) -> f47_in(T9) :|: TRUE f47_out(x11) -> f46_out(x11) :|: TRUE f51_out(x12) -> f47_out(x12) :|: TRUE f47_in(x13) -> f50_in(x13) :|: TRUE f50_out(x14) -> f51_in(x14) :|: TRUE f50_in(x15) -> f274_in(x15) :|: TRUE f274_out(x16) -> f50_out(x16) :|: TRUE f274_in(x17) -> f285_in(x17) :|: TRUE f287_out(x18) -> f274_out(x18) :|: TRUE f285_out(x19) -> f274_out(x19) :|: TRUE f274_in(x20) -> f287_in(x20) :|: TRUE f287_in(.(x21, x22)) -> f329_in(x21, x22) :|: TRUE f329_out(x23, x24) -> f287_out(.(x23, x24)) :|: TRUE f330_out -> f287_out(x25) :|: TRUE f287_in(x26) -> f330_in :|: TRUE f334_out(x27) -> f329_out(x28, x27) :|: TRUE f332_out(x29) -> f334_in(x30) :|: TRUE f329_in(x31, x32) -> f332_in(x31) :|: TRUE Start term: f2_in(T2) ---------------------------------------- (172) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f336_in(x1) -> f341_in(x1) :|: TRUE f348_in(x3) -> f332_in(x3) :|: TRUE f332_in(x5) -> f336_in(x5) :|: TRUE f341_in(x7) -> f348_in(x7) :|: TRUE ---------------------------------------- (173) Obligation: Rules: f336_in(x1) -> f341_in(x1) :|: TRUE f348_in(x3) -> f332_in(x3) :|: TRUE f332_in(x5) -> f336_in(x5) :|: TRUE f341_in(x7) -> f348_in(x7) :|: TRUE ---------------------------------------- (174) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (175) Obligation: Rules: f348_in(x3:0) -> f348_in(x3:0) :|: TRUE ---------------------------------------- (176) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (177) Obligation: Rules: f348_in(x3:0) -> f348_in(x3:0) :|: TRUE ---------------------------------------- (178) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f348_in(x3:0) -> f348_in(x3:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (179) Obligation: Termination digraph: Nodes: (1) f348_in(x3:0) -> f348_in(x3:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (180) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f348_in(VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (181) Obligation: Rules: f348_in(x3:0) -> f348_in(x3:0) :|: TRUE ---------------------------------------- (182) IntTRSNonPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x3:0) -> f(1, x3:0) :|: pc = 1 && TRUE Proved unsatisfiability of the following formula, indicating that the system is never left after entering: (((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and T)) and !(((run2_0 * 1)) = ((1 * 1)) and T)) Proved satisfiability of the following formula, indicating that the system is entered at least once: ((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and T)) ---------------------------------------- (183) NO ---------------------------------------- (184) Obligation: Rules: f504_in(s(T105), T106) -> f529_in(T105, T106) :|: TRUE f504_in(T89, T90) -> f530_in :|: TRUE f530_out -> f504_out(x, x1) :|: TRUE f529_out(x2, x3) -> f504_out(s(x2), x3) :|: TRUE f51_in(T9) -> f469_in(T9) :|: TRUE f469_out(x4) -> f51_out(x4) :|: TRUE f492_out(x5, x6) -> f493_in(x6, x7) :|: TRUE f490_in(x8, x9, x10) -> f492_in(x8, x9) :|: TRUE f493_out(x11, x12) -> f490_out(x13, x11, x12) :|: TRUE f555_in(T118, T119) -> f529_in(T118, T119) :|: TRUE f529_out(x14, x15) -> f555_out(x14, x15) :|: TRUE f552_in -> f552_out :|: TRUE f503_in(x16, x17) -> f509_in :|: TRUE f508_out -> f503_out(0, T100) :|: TRUE f509_out -> f503_out(x18, x19) :|: TRUE f503_in(0, x20) -> f508_in :|: TRUE f551_in(s(x21), s(x22)) -> f555_in(x21, x22) :|: TRUE f555_out(x23, x24) -> f551_out(s(x23), s(x24)) :|: TRUE f556_out -> f551_out(x25, x26) :|: TRUE f551_in(x27, x28) -> f556_in :|: TRUE f471_out(x29) -> f469_out(x29) :|: TRUE f469_in(x30) -> f471_in(x30) :|: TRUE f469_in(x31) -> f470_in(x31) :|: TRUE f470_out(x32) -> f469_out(x32) :|: TRUE f471_in(x33) -> f486_in(x33) :|: TRUE f486_out(x34) -> f471_out(x34) :|: TRUE f471_in(x35) -> f485_in(x35) :|: TRUE f485_out(x36) -> f471_out(x36) :|: TRUE f486_in(x37) -> f491_in :|: TRUE f491_out -> f486_out(x38) :|: TRUE f486_in(.(x39, .(x40, x41))) -> f490_in(x39, x40, x41) :|: TRUE f490_out(x42, x43, x44) -> f486_out(.(x42, .(x43, x44))) :|: TRUE f493_in(x45, x46) -> f51_in(.(x45, x46)) :|: TRUE f51_out(.(x47, x48)) -> f493_out(x47, x48) :|: TRUE f500_out(x49, x50) -> f492_out(x49, x50) :|: TRUE f492_in(x51, x52) -> f500_in(x51, x52) :|: TRUE f508_in -> f508_out :|: TRUE f551_out(x53, x54) -> f531_out(x53, x54) :|: TRUE f531_in(x55, x56) -> f550_in(x55, x56) :|: TRUE f531_in(x57, x58) -> f551_in(x57, x58) :|: TRUE f550_out(x59, x60) -> f531_out(x59, x60) :|: TRUE f503_out(x61, x62) -> f500_out(x61, x62) :|: TRUE f500_in(x63, x64) -> f504_in(x63, x64) :|: TRUE f500_in(x65, x66) -> f503_in(x65, x66) :|: TRUE f504_out(x67, x68) -> f500_out(x67, x68) :|: TRUE f531_out(x69, x70) -> f529_out(x69, x70) :|: TRUE f529_in(x71, x72) -> f531_in(x71, x72) :|: TRUE f553_out -> f550_out(x73, x74) :|: TRUE f550_in(0, s(T113)) -> f552_in :|: TRUE f552_out -> f550_out(0, s(x75)) :|: TRUE f550_in(x76, x77) -> f553_in :|: TRUE f46_out(T2) -> f2_out(T2) :|: TRUE f2_in(x78) -> f46_in(x78) :|: TRUE f46_in(x79) -> f47_in(x79) :|: TRUE f47_out(x80) -> f46_out(x80) :|: TRUE f51_out(x81) -> f47_out(x81) :|: TRUE f47_in(x82) -> f50_in(x82) :|: TRUE f50_out(x83) -> f51_in(x83) :|: TRUE Start term: f2_in(T2) ---------------------------------------- (185) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (186) TRUE ---------------------------------------- (187) Obligation: Rules: f332_out(T47) -> f348_out(T47) :|: TRUE f348_in(x) -> f332_in(x) :|: TRUE f442_in -> f446_in :|: TRUE f446_out -> f442_out :|: TRUE f334_out(T19) -> f329_out(T18, T19) :|: TRUE f332_out(x1) -> f334_in(x2) :|: TRUE f329_in(x3, x4) -> f332_in(x3) :|: TRUE f274_in(T9) -> f285_in(T9) :|: TRUE f287_out(x5) -> f274_out(x5) :|: TRUE f285_out(x6) -> f274_out(x6) :|: TRUE f274_in(x7) -> f287_in(x7) :|: TRUE f342_in -> f342_out :|: TRUE f50_out(x8) -> f443_out(x8) :|: TRUE f443_in(x9) -> f50_in(x9) :|: TRUE f336_in(x10) -> f340_in(x10) :|: TRUE f340_out(x11) -> f336_out(x11) :|: TRUE f336_in(x12) -> f341_in(x12) :|: TRUE f341_out(x13) -> f336_out(x13) :|: TRUE f457_in -> f442_in :|: TRUE f442_out -> f457_out :|: TRUE f287_in(.(x14, x15)) -> f329_in(x14, x15) :|: TRUE f329_out(x16, x17) -> f287_out(.(x16, x17)) :|: TRUE f330_out -> f287_out(x18) :|: TRUE f287_in(x19) -> f330_in :|: TRUE f50_in(x20) -> f274_in(x20) :|: TRUE f274_out(x21) -> f50_out(x21) :|: TRUE f342_out -> f340_out(T39) :|: TRUE f340_in(x22) -> f343_in :|: TRUE f340_in(x23) -> f342_in :|: TRUE f343_out -> f340_out(x24) :|: TRUE f336_out(x25) -> f332_out(x25) :|: TRUE f332_in(x26) -> f336_in(x26) :|: TRUE f449_out -> f447_out :|: TRUE f450_out -> f447_out :|: TRUE f447_in -> f449_in :|: TRUE f447_in -> f450_in :|: TRUE f446_in -> f447_in :|: TRUE f447_out -> f446_out :|: TRUE f446_in -> f448_in :|: TRUE f448_out -> f446_out :|: TRUE f443_out(x27) -> f334_out(x27) :|: TRUE f334_in(x28) -> f442_in :|: TRUE f442_out -> f443_in(x29) :|: TRUE f341_in(x30) -> f349_in :|: TRUE f341_in(x31) -> f348_in(x31) :|: TRUE f349_out -> f341_out(x32) :|: TRUE f348_out(x33) -> f341_out(x33) :|: TRUE f458_out -> f448_out :|: TRUE f448_in -> f458_in :|: TRUE f457_out -> f448_out :|: TRUE f448_in -> f457_in :|: TRUE f449_in -> f449_out :|: TRUE f46_out(T2) -> f2_out(T2) :|: TRUE f2_in(x34) -> f46_in(x34) :|: TRUE f46_in(x35) -> f47_in(x35) :|: TRUE f47_out(x36) -> f46_out(x36) :|: TRUE f51_out(x37) -> f47_out(x37) :|: TRUE f47_in(x38) -> f50_in(x38) :|: TRUE f50_out(x39) -> f51_in(x39) :|: TRUE Start term: f2_in(T2) ---------------------------------------- (188) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f332_out(T47) -> f348_out(T47) :|: TRUE f348_in(x) -> f332_in(x) :|: TRUE f442_in -> f446_in :|: TRUE f446_out -> f442_out :|: TRUE f332_out(x1) -> f334_in(x2) :|: TRUE f329_in(x3, x4) -> f332_in(x3) :|: TRUE f274_in(x7) -> f287_in(x7) :|: TRUE f342_in -> f342_out :|: TRUE f443_in(x9) -> f50_in(x9) :|: TRUE f336_in(x10) -> f340_in(x10) :|: TRUE f340_out(x11) -> f336_out(x11) :|: TRUE f336_in(x12) -> f341_in(x12) :|: TRUE f341_out(x13) -> f336_out(x13) :|: TRUE f457_in -> f442_in :|: TRUE f442_out -> f457_out :|: TRUE f287_in(.(x14, x15)) -> f329_in(x14, x15) :|: TRUE f50_in(x20) -> f274_in(x20) :|: TRUE f342_out -> f340_out(T39) :|: TRUE f340_in(x23) -> f342_in :|: TRUE f336_out(x25) -> f332_out(x25) :|: TRUE f332_in(x26) -> f336_in(x26) :|: TRUE f449_out -> f447_out :|: TRUE f447_in -> f449_in :|: TRUE f446_in -> f447_in :|: TRUE f447_out -> f446_out :|: TRUE f446_in -> f448_in :|: TRUE f448_out -> f446_out :|: TRUE f334_in(x28) -> f442_in :|: TRUE f442_out -> f443_in(x29) :|: TRUE f341_in(x31) -> f348_in(x31) :|: TRUE f348_out(x33) -> f341_out(x33) :|: TRUE f457_out -> f448_out :|: TRUE f448_in -> f457_in :|: TRUE f449_in -> f449_out :|: TRUE ---------------------------------------- (189) Obligation: Rules: f332_out(T47) -> f348_out(T47) :|: TRUE f348_in(x) -> f332_in(x) :|: TRUE f442_in -> f446_in :|: TRUE f446_out -> f442_out :|: TRUE f332_out(x1) -> f334_in(x2) :|: TRUE f329_in(x3, x4) -> f332_in(x3) :|: TRUE f274_in(x7) -> f287_in(x7) :|: TRUE f342_in -> f342_out :|: TRUE f443_in(x9) -> f50_in(x9) :|: TRUE f336_in(x10) -> f340_in(x10) :|: TRUE f340_out(x11) -> f336_out(x11) :|: TRUE f336_in(x12) -> f341_in(x12) :|: TRUE f341_out(x13) -> f336_out(x13) :|: TRUE f457_in -> f442_in :|: TRUE f442_out -> f457_out :|: TRUE f287_in(.(x14, x15)) -> f329_in(x14, x15) :|: TRUE f50_in(x20) -> f274_in(x20) :|: TRUE f342_out -> f340_out(T39) :|: TRUE f340_in(x23) -> f342_in :|: TRUE f336_out(x25) -> f332_out(x25) :|: TRUE f332_in(x26) -> f336_in(x26) :|: TRUE f449_out -> f447_out :|: TRUE f447_in -> f449_in :|: TRUE f446_in -> f447_in :|: TRUE f447_out -> f446_out :|: TRUE f446_in -> f448_in :|: TRUE f448_out -> f446_out :|: TRUE f334_in(x28) -> f442_in :|: TRUE f442_out -> f443_in(x29) :|: TRUE f341_in(x31) -> f348_in(x31) :|: TRUE f348_out(x33) -> f341_out(x33) :|: TRUE f457_out -> f448_out :|: TRUE f448_in -> f457_in :|: TRUE f449_in -> f449_out :|: TRUE ---------------------------------------- (190) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (191) Obligation: Rules: f446_out -> f446_out :|: TRUE f332_out(x1:0) -> f442_in :|: TRUE f336_in(x10:0) -> f332_out(T39:0) :|: TRUE f336_in(x12:0) -> f336_in(x12:0) :|: TRUE f332_out(T47:0) -> f332_out(T47:0) :|: TRUE f442_in -> f442_in :|: TRUE f446_out -> f336_in(x14:0) :|: TRUE f442_in -> f446_out :|: TRUE ---------------------------------------- (192) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (193) Obligation: Rules: f446_out -> f446_out :|: TRUE f332_out(x1:0) -> f442_in :|: TRUE f336_in(x10:0) -> f332_out(T39:0) :|: TRUE f336_in(x12:0) -> f336_in(x12:0) :|: TRUE f332_out(T47:0) -> f332_out(T47:0) :|: TRUE f442_in -> f442_in :|: TRUE f446_out -> f336_in(x14:0) :|: TRUE f442_in -> f446_out :|: TRUE ---------------------------------------- (194) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f446_out -> f446_out :|: TRUE (2) f332_out(x1:0) -> f442_in :|: TRUE (3) f336_in(x10:0) -> f332_out(T39:0) :|: TRUE (4) f336_in(x12:0) -> f336_in(x12:0) :|: TRUE (5) f332_out(T47:0) -> f332_out(T47:0) :|: TRUE (6) f442_in -> f442_in :|: TRUE (7) f446_out -> f336_in(x14:0) :|: TRUE (8) f442_in -> f446_out :|: TRUE Arcs: (1) -> (1), (7) (2) -> (6), (8) (3) -> (2), (5) (4) -> (3), (4) (5) -> (2), (5) (6) -> (6), (8) (7) -> (3), (4) (8) -> (1), (7) This digraph is fully evaluated! ---------------------------------------- (195) Obligation: Termination digraph: Nodes: (1) f446_out -> f446_out :|: TRUE (2) f442_in -> f446_out :|: TRUE (3) f442_in -> f442_in :|: TRUE (4) f332_out(x1:0) -> f442_in :|: TRUE (5) f332_out(T47:0) -> f332_out(T47:0) :|: TRUE (6) f336_in(x10:0) -> f332_out(T39:0) :|: TRUE (7) f336_in(x12:0) -> f336_in(x12:0) :|: TRUE (8) f446_out -> f336_in(x14:0) :|: TRUE Arcs: (1) -> (1), (8) (2) -> (1), (8) (3) -> (2), (3) (4) -> (2), (3) (5) -> (4), (5) (6) -> (4), (5) (7) -> (6), (7) (8) -> (6), (7) This digraph is fully evaluated! ---------------------------------------- (196) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f446_out() f442_in() f332_out(VARIABLE) f336_in(VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (197) Obligation: Rules: f446_out -> f446_out :|: TRUE f442_in -> f446_out :|: TRUE f442_in -> f442_in :|: TRUE f332_out(x1:0) -> f442_in :|: TRUE f332_out(T47:0) -> f332_out(T47:0) :|: TRUE f336_in(x10:0) -> f332_out(T39:0) :|: TRUE f336_in(x12:0) -> f336_in(x12:0) :|: TRUE f446_out -> f336_in(x14:0) :|: TRUE