MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.pl # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 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, 11 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, 0 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, 7 ms] (40) PiDP (41) DependencyGraphProof [EQUIVALENT, 0 ms] (42) AND (43) PiDP (44) UsableRulesProof [EQUIVALENT, 0 ms] (45) PiDP (46) PiDPToQDPProof [EQUIVALENT, 0 ms] (47) QDP (48) QDPSizeChangeProof [EQUIVALENT, 3 ms] (49) YES (50) PiDP (51) UsableRulesProof [EQUIVALENT, 0 ms] (52) PiDP (53) PiDPToQDPProof [SOUND, 0 ms] (54) QDP (55) UsableRulesReductionPairsProof [EQUIVALENT, 0 ms] (56) QDP (57) MRRProof [EQUIVALENT, 11 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, 22 ms] (76) QTRS (77) DependencyPairsProof [EQUIVALENT, 0 ms] (78) QDP (79) DependencyGraphProof [EQUIVALENT, 0 ms] (80) AND (81) QDP (82) MNOCProof [EQUIVALENT, 0 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, 22 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, 0 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, 0 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, 41 ms] (129) TRIPLES (130) TriplesToPiDPProof [SOUND, 0 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, 56 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, 27 ms] (175) IRSwT (176) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (177) IRSwT (178) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] (179) IRSwT (180) FilterProof [EQUIVALENT, 0 ms] (181) IntTRS (182) IntTRSNonPeriodicNontermProof [COMPLETE, 5 ms] (183) NO (184) IRSwT (185) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (186) TRUE (187) IRSwT (188) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (189) IRSwT (190) IntTRSCompressionProof [EQUIVALENT, 16 ms] (191) IRSwT (192) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (193) IRSwT ---------------------------------------- (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": 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": { "type": "Nodes", "592": { "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": [] } }, "550": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "595": { "goal": [{ "clause": 8, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "596": { "goal": [{ "clause": 9, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "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": [] } }, "599": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "512": { "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": [] } }, "556": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "513": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "557": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T57 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "514": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "515": { "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": [] } }, "518": { "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": [] } }, "53": { "goal": [{ "clause": 0, "scope": 1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "54": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (perm T10 T9) (ordered T9))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "561": { "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": [] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "562": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "563": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "566": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "567": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "600": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "568": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "601": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "602": { "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": [] } }, "603": { "goal": [{ "clause": 8, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "604": { "goal": [{ "clause": 9, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "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 T118 T119)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T118", "T119" ], "free": [], "exprvars": [] } }, "609": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "371": { "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": [] } }, "570": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T74 T75 X90)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X90"], "exprvars": [] } }, "296": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "571": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "374": { "goal": [{ "clause": 1, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "572": { "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": [] } }, "298": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "375": { "goal": [{ "clause": 2, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "573": { "goal": [{ "clause": 5, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "376": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "574": { "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": [] } }, "377": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "575": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "378": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "576": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "577": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "578": { "goal": [{ "clause": 6, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "579": { "goal": [{ "clause": 7, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "539": { "goal": [{ "clause": 3, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "580": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "581": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "582": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "583": { "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": [] } }, "584": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "541": { "goal": [{ "clause": 4, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "585": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "586": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T90 T91))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T90", "T91" ], "free": [], "exprvars": [] } }, "544": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "545": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "546": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "549": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X61 (. T47 X62) T50)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T47"], "free": [ "X61", "X62" ], "exprvars": [] } } }, "edges": [ { "from": 1, "to": 53, "label": "CASE" }, { "from": 53, "to": 54, "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": 54, "to": 296, "label": "SPLIT 1" }, { "from": 54, "to": 298, "label": "SPLIT 2\nnew knowledge:\nT9 is ground" }, { "from": 296, "to": 371, "label": "CASE" }, { "from": 298, "to": 572, "label": "CASE" }, { "from": 371, "to": 374, "label": "PARALLEL" }, { "from": 371, "to": 375, "label": "PARALLEL" }, { "from": 374, "to": 376, "label": "EVAL with clause\nperm([], []).\nand substitutionT10 -> [],\nT9 -> []" }, { "from": 374, "to": 377, "label": "EVAL-BACKTRACK" }, { "from": 375, "to": 512, "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": 375, "to": 513, "label": "EVAL-BACKTRACK" }, { "from": 376, "to": 378, "label": "SUCCESS" }, { "from": 512, "to": 514, "label": "SPLIT 1" }, { "from": 512, "to": 515, "label": "SPLIT 2\nreplacements:X21 -> T25,\nX22 -> T26" }, { "from": 514, "to": 518, "label": "CASE" }, { "from": 515, "to": 556, "label": "SPLIT 1" }, { "from": 515, "to": 557, "label": "SPLIT 2\nreplacements:X23 -> T57" }, { "from": 518, "to": 539, "label": "PARALLEL" }, { "from": 518, "to": 541, "label": "PARALLEL" }, { "from": 539, "to": 544, "label": "EVAL with clause\napp([], X40, X40).\nand substitutionX21 -> [],\nT18 -> T39,\nX22 -> T40,\nX40 -> .(T39, T40),\nX41 -> T40,\nT20 -> .(T39, T40)" }, { "from": 539, "to": 545, "label": "EVAL-BACKTRACK" }, { "from": 541, "to": 549, "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": 541, "to": 550, "label": "EVAL-BACKTRACK" }, { "from": 544, "to": 546, "label": "SUCCESS" }, { "from": 549, "to": 514, "label": "INSTANCE with matching:\nX21 -> X61\nT18 -> T47\nX22 -> X62\nT20 -> T50" }, { "from": 556, "to": 561, "label": "CASE" }, { "from": 557, "to": 296, "label": "INSTANCE with matching:\nT10 -> T57\nT9 -> T19" }, { "from": 561, "to": 562, "label": "PARALLEL" }, { "from": 561, "to": 563, "label": "PARALLEL" }, { "from": 562, "to": 566, "label": "EVAL with clause\napp([], X75, X75).\nand substitutionT25 -> [],\nT26 -> T64,\nX75 -> T64,\nX23 -> T64" }, { "from": 562, "to": 567, "label": "EVAL-BACKTRACK" }, { "from": 563, "to": 570, "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": 563, "to": 571, "label": "EVAL-BACKTRACK" }, { "from": 566, "to": 568, "label": "SUCCESS" }, { "from": 570, "to": 556, "label": "INSTANCE with matching:\nT25 -> T74\nT26 -> T75\nX23 -> X90" }, { "from": 572, "to": 573, "label": "PARALLEL" }, { "from": 572, "to": 574, "label": "PARALLEL" }, { "from": 573, "to": 575, "label": "EVAL with clause\nordered([]).\nand substitutionT9 -> []" }, { "from": 573, "to": 576, "label": "EVAL-BACKTRACK" }, { "from": 574, "to": 578, "label": "PARALLEL" }, { "from": 574, "to": 579, "label": "PARALLEL" }, { "from": 575, "to": 577, "label": "SUCCESS" }, { "from": 578, "to": 580, "label": "EVAL with clause\nordered(.(X97, [])).\nand substitutionX97 -> T82,\nT9 -> .(T82, [])" }, { "from": 578, "to": 581, "label": "EVAL-BACKTRACK" }, { "from": 579, "to": 583, "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": 579, "to": 584, "label": "EVAL-BACKTRACK" }, { "from": 580, "to": 582, "label": "SUCCESS" }, { "from": 583, "to": 585, "label": "SPLIT 1" }, { "from": 583, "to": 586, "label": "SPLIT 2\nnew knowledge:\nT89 is ground\nT90 is ground" }, { "from": 585, "to": 592, "label": "CASE" }, { "from": 586, "to": 298, "label": "INSTANCE with matching:\nT9 -> .(T90, T91)" }, { "from": 592, "to": 595, "label": "PARALLEL" }, { "from": 592, "to": 596, "label": "PARALLEL" }, { "from": 595, "to": 597, "label": "EVAL with clause\nless(0, s(X115)).\nand substitutionT89 -> 0,\nT90 -> T100,\nX115 -> T100" }, { "from": 595, "to": 598, "label": "EVAL-BACKTRACK" }, { "from": 596, "to": 600, "label": "EVAL with clause\nless(s(X120), s(X121)) :- less(X120, X121).\nand substitutionX120 -> T105,\nT89 -> s(T105),\nT90 -> T106,\nX121 -> T106" }, { "from": 596, "to": 601, "label": "EVAL-BACKTRACK" }, { "from": 597, "to": 599, "label": "SUCCESS" }, { "from": 600, "to": 602, "label": "CASE" }, { "from": 602, "to": 603, "label": "PARALLEL" }, { "from": 602, "to": 604, "label": "PARALLEL" }, { "from": 603, "to": 605, "label": "EVAL with clause\nless(0, s(X128)).\nand substitutionT105 -> 0,\nX128 -> T113,\nT106 -> s(T113)" }, { "from": 603, "to": 606, "label": "EVAL-BACKTRACK" }, { "from": 604, "to": 608, "label": "EVAL with clause\nless(s(X133), s(X134)) :- less(X133, X134).\nand substitutionX133 -> T118,\nT105 -> s(T118),\nX134 -> T119,\nT106 -> s(T119)" }, { "from": 604, "to": 609, "label": "EVAL-BACKTRACK" }, { "from": 605, "to": 607, "label": "SUCCESS" }, { "from": 608, "to": 600, "label": "INSTANCE with matching:\nT105 -> T118\nT106 -> T119" } ], "type": "Graph" } } ---------------------------------------- (76) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_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: F1_IN(T9) -> U1^1(f54_in(T9), T9) F1_IN(T9) -> F54_IN(T9) F514_IN(T47) -> U2^1(f514_in(T47), T47) F514_IN(T47) -> F514_IN(T47) F296_IN(.(T18, T19)) -> U3^1(f512_in(T18, T19), .(T18, T19)) F296_IN(.(T18, T19)) -> F512_IN(T18, T19) F556_IN -> U4^1(f556_in) F556_IN -> F556_IN F298_IN(.(T89, .(T90, T91))) -> U5^1(f583_in(T89, T90, T91), .(T89, .(T90, T91))) F298_IN(.(T89, .(T90, T91))) -> F583_IN(T89, T90, T91) F600_IN(s(T118), s(T119)) -> U6^1(f600_in(T118, T119), s(T118), s(T119)) F600_IN(s(T118), s(T119)) -> F600_IN(T118, T119) F585_IN(s(T105), T106) -> U7^1(f600_in(T105, T106), s(T105), T106) F585_IN(s(T105), T106) -> F600_IN(T105, T106) F54_IN(T9) -> U8^1(f296_in(T9), T9) F54_IN(T9) -> F296_IN(T9) U8^1(f296_out1, T9) -> U9^1(f298_in(T9), T9) U8^1(f296_out1, T9) -> F298_IN(T9) F512_IN(T18, T19) -> U10^1(f514_in(T18), T18, T19) F512_IN(T18, T19) -> F514_IN(T18) U10^1(f514_out1, T18, T19) -> U11^1(f515_in(T19), T18, T19) U10^1(f514_out1, T18, T19) -> F515_IN(T19) F515_IN(T19) -> U12^1(f556_in, T19) F515_IN(T19) -> F556_IN U12^1(f556_out1, T19) -> U13^1(f296_in(T19), T19) U12^1(f556_out1, T19) -> F296_IN(T19) F583_IN(T89, T90, T91) -> U14^1(f585_in(T89, T90), T89, T90, T91) F583_IN(T89, T90, T91) -> F585_IN(T89, T90) U14^1(f585_out1, T89, T90, T91) -> U15^1(f298_in(.(T90, T91)), T89, T90, T91) U14^1(f585_out1, T89, T90, T91) -> F298_IN(.(T90, T91)) The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_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: F600_IN(s(T118), s(T119)) -> F600_IN(T118, T119) The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_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: F600_IN(s(T118), s(T119)) -> F600_IN(T118, T119) The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_out1 The set Q consists of the following terms: f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_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: F600_IN(s(T118), s(T119)) -> F600_IN(T118, T119) R is empty. The set Q consists of the following terms: f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_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]. f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_out1, x0, x1, x2) ---------------------------------------- (87) Obligation: Q DP problem: The TRS P consists of the following rules: F600_IN(s(T118), s(T119)) -> F600_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: *F600_IN(s(T118), s(T119)) -> F600_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: F298_IN(.(T89, .(T90, T91))) -> F583_IN(T89, T90, T91) F583_IN(T89, T90, T91) -> U14^1(f585_in(T89, T90), T89, T90, T91) U14^1(f585_out1, T89, T90, T91) -> F298_IN(.(T90, T91)) The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_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: F298_IN(.(T89, .(T90, T91))) -> F583_IN(T89, T90, T91) F583_IN(T89, T90, T91) -> U14^1(f585_in(T89, T90), T89, T90, T91) U14^1(f585_out1, T89, T90, T91) -> F298_IN(.(T90, T91)) The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_out1 The set Q consists of the following terms: f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_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: F298_IN(.(T89, .(T90, T91))) -> F583_IN(T89, T90, T91) F583_IN(T89, T90, T91) -> U14^1(f585_in(T89, T90), T89, T90, T91) U14^1(f585_out1, T89, T90, T91) -> F298_IN(.(T90, T91)) The TRS R consists of the following rules: f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U7(f600_out1, s(T105), T106) -> f585_out1 U6(f600_out1, s(T118), s(T119)) -> f600_out1 The set Q consists of the following terms: f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_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]. f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_out1, x0, x1, x2) ---------------------------------------- (96) Obligation: Q DP problem: The TRS P consists of the following rules: F298_IN(.(T89, .(T90, T91))) -> F583_IN(T89, T90, T91) F583_IN(T89, T90, T91) -> U14^1(f585_in(T89, T90), T89, T90, T91) U14^1(f585_out1, T89, T90, T91) -> F298_IN(.(T90, T91)) The TRS R consists of the following rules: f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U7(f600_out1, s(T105), T106) -> f585_out1 U6(f600_out1, s(T118), s(T119)) -> f600_out1 The set Q consists of the following terms: f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_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. F298_IN(.(T89, .(T90, T91))) -> F583_IN(T89, T90, T91) U14^1(f585_out1, T89, T90, T91) -> F298_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( f585_in_2(x_1, x_2) ) = x_1 POL( 0 ) = 2 POL( f585_out1 ) = 2 POL( s_1(x_1) ) = x_1 + 2 POL( U7_3(x_1, ..., x_3) ) = x_1 + 1 POL( f600_in_2(x_1, x_2) ) = x_1 POL( f600_out1 ) = 1 POL( U6_3(x_1, ..., x_3) ) = 2 POL( F298_IN_1(x_1) ) = 2x_1 + 1 POL( ._2(x_1, x_2) ) = x_1 + x_2 + 2 POL( F583_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: f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U7(f600_out1, s(T105), T106) -> f585_out1 U6(f600_out1, s(T118), s(T119)) -> f600_out1 ---------------------------------------- (98) Obligation: Q DP problem: The TRS P consists of the following rules: F583_IN(T89, T90, T91) -> U14^1(f585_in(T89, T90), T89, T90, T91) The TRS R consists of the following rules: f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U7(f600_out1, s(T105), T106) -> f585_out1 U6(f600_out1, s(T118), s(T119)) -> f600_out1 The set Q consists of the following terms: f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_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: F556_IN -> F556_IN The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_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: F556_IN -> F556_IN The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_out1 The set Q consists of the following terms: f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_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: F556_IN -> F556_IN R is empty. The set Q consists of the following terms: f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_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]. f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_out1, x0, x1, x2) ---------------------------------------- (107) Obligation: Q DP problem: The TRS P consists of the following rules: F556_IN -> F556_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 = F556_IN evaluates to t =F556_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 F556_IN to F556_IN. ---------------------------------------- (109) NO ---------------------------------------- (110) Obligation: Q DP problem: The TRS P consists of the following rules: F514_IN(T47) -> F514_IN(T47) The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_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: F514_IN(T47) -> F514_IN(T47) The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_out1 The set Q consists of the following terms: f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_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: F514_IN(T47) -> F514_IN(T47) R is empty. The set Q consists of the following terms: f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_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]. f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_out1, x0, x1, x2) ---------------------------------------- (116) Obligation: Q DP problem: The TRS P consists of the following rules: F514_IN(T47) -> F514_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 = F514_IN(T47) evaluates to t =F514_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 F514_IN(T47) to F514_IN(T47). ---------------------------------------- (118) NO ---------------------------------------- (119) Obligation: Q DP problem: The TRS P consists of the following rules: F512_IN(T18, T19) -> U10^1(f514_in(T18), T18, T19) U10^1(f514_out1, T18, T19) -> F515_IN(T19) F515_IN(T19) -> U12^1(f556_in, T19) U12^1(f556_out1, T19) -> F296_IN(T19) F296_IN(.(T18, T19)) -> F512_IN(T18, T19) The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_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: F512_IN(T18, T19) -> U10^1(f514_in(T18), T18, T19) U10^1(f514_out1, T18, T19) -> F515_IN(T19) F515_IN(T19) -> U12^1(f556_in, T19) U12^1(f556_out1, T19) -> F296_IN(T19) F296_IN(.(T18, T19)) -> F512_IN(T18, T19) The TRS R consists of the following rules: f1_in(T9) -> U1(f54_in(T9), T9) U1(f54_out1, T9) -> f1_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 f296_in([]) -> f296_out1 f296_in(.(T18, T19)) -> U3(f512_in(T18, T19), .(T18, T19)) U3(f512_out1, .(T18, T19)) -> f296_out1 f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f298_in([]) -> f298_out1 f298_in(.(T82, [])) -> f298_out1 f298_in(.(T89, .(T90, T91))) -> U5(f583_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f583_out1, .(T89, .(T90, T91))) -> f298_out1 f600_in(0, s(T113)) -> f600_out1 f600_in(s(T118), s(T119)) -> U6(f600_in(T118, T119), s(T118), s(T119)) U6(f600_out1, s(T118), s(T119)) -> f600_out1 f585_in(0, T100) -> f585_out1 f585_in(s(T105), T106) -> U7(f600_in(T105, T106), s(T105), T106) U7(f600_out1, s(T105), T106) -> f585_out1 f54_in(T9) -> U8(f296_in(T9), T9) U8(f296_out1, T9) -> U9(f298_in(T9), T9) U9(f298_out1, T9) -> f54_out1 f512_in(T18, T19) -> U10(f514_in(T18), T18, T19) U10(f514_out1, T18, T19) -> U11(f515_in(T19), T18, T19) U11(f515_out1, T18, T19) -> f512_out1 f515_in(T19) -> U12(f556_in, T19) U12(f556_out1, T19) -> U13(f296_in(T19), T19) U13(f296_out1, T19) -> f515_out1 f583_in(T89, T90, T91) -> U14(f585_in(T89, T90), T89, T90, T91) U14(f585_out1, T89, T90, T91) -> U15(f298_in(.(T90, T91)), T89, T90, T91) U15(f298_out1, T89, T90, T91) -> f583_out1 The set Q consists of the following terms: f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_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: F512_IN(T18, T19) -> U10^1(f514_in(T18), T18, T19) U10^1(f514_out1, T18, T19) -> F515_IN(T19) F515_IN(T19) -> U12^1(f556_in, T19) U12^1(f556_out1, T19) -> F296_IN(T19) F296_IN(.(T18, T19)) -> F512_IN(T18, T19) The TRS R consists of the following rules: f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 The set Q consists of the following terms: f1_in(x0) U1(f54_out1, x0) f514_in(x0) U2(f514_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f556_in U4(f556_out1) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_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]. f1_in(x0) U1(f54_out1, x0) f296_in([]) f296_in(.(x0, x1)) U3(f512_out1, .(x0, x1)) f298_in([]) f298_in(.(x0, [])) f298_in(.(x0, .(x1, x2))) U5(f583_out1, .(x0, .(x1, x2))) f600_in(0, s(x0)) f600_in(s(x0), s(x1)) U6(f600_out1, s(x0), s(x1)) f585_in(0, x0) f585_in(s(x0), x1) U7(f600_out1, s(x0), x1) f54_in(x0) U8(f296_out1, x0) U9(f298_out1, x0) f512_in(x0, x1) U10(f514_out1, x0, x1) U11(f515_out1, x0, x1) f515_in(x0) U12(f556_out1, x0) U13(f296_out1, x0) f583_in(x0, x1, x2) U14(f585_out1, x0, x1, x2) U15(f298_out1, x0, x1, x2) ---------------------------------------- (125) Obligation: Q DP problem: The TRS P consists of the following rules: F512_IN(T18, T19) -> U10^1(f514_in(T18), T18, T19) U10^1(f514_out1, T18, T19) -> F515_IN(T19) F515_IN(T19) -> U12^1(f556_in, T19) U12^1(f556_out1, T19) -> F296_IN(T19) F296_IN(.(T18, T19)) -> F512_IN(T18, T19) The TRS R consists of the following rules: f556_in -> f556_out1 f556_in -> U4(f556_in) U4(f556_out1) -> f556_out1 f514_in(T39) -> f514_out1 f514_in(T47) -> U2(f514_in(T47), T47) U2(f514_out1, T47) -> f514_out1 The set Q consists of the following terms: f514_in(x0) U2(f514_out1, x0) f556_in U4(f556_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(f514_out1, T18, T19) -> F515_IN(T19) The graph contains the following edges 3 >= 1 *F296_IN(.(T18, T19)) -> F512_IN(T18, T19) The graph contains the following edges 1 > 1, 1 > 2 *F515_IN(T19) -> U12^1(f556_in, T19) The graph contains the following edges 1 >= 2 *F512_IN(T18, T19) -> U10^1(f514_in(T18), T18, T19) The graph contains the following edges 1 >= 2, 2 >= 3 *U12^1(f556_out1, T19) -> F296_IN(T19) The graph contains the following edges 2 >= 1 ---------------------------------------- (127) YES ---------------------------------------- (128) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "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": { "44": { "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": [] } }, "48": { "goal": [{ "clause": 1, "scope": 2, "term": "(',' (perm T7 T6) (ordered T6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "49": { "goal": [{ "clause": 2, "scope": 2, "term": "(',' (perm T7 T6) (ordered T6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "type": "Nodes", "590": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "591": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "593": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T140 T141)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T140", "T141" ], "free": [], "exprvars": [] } }, "594": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "551": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T111 (s T112))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T111", "T112" ], "free": [], "exprvars": [] } }, "552": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T112 T113))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T112", "T113" ], "free": [], "exprvars": [] } }, "355": { "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": [] } }, "553": { "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": [] } }, "510": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T89 T90 X109)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X109"], "exprvars": [] } }, "554": { "goal": [{ "clause": 8, "scope": 8, "term": "(less T111 (s T112))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T111", "T112" ], "free": [], "exprvars": [] } }, "313": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "511": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T97 T83)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T83"], "free": [], "exprvars": [] } }, "555": { "goal": [{ "clause": 9, "scope": 8, "term": "(less T111 (s T112))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T111", "T112" ], "free": [], "exprvars": [] } }, "358": { "goal": [{ "clause": 3, "scope": 4, "term": "(app X23 (. T15 X24) T17)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X23", "X24" ], "exprvars": [] } }, "359": { "goal": [{ "clause": 4, "scope": 4, "term": "(app X23 (. T15 X24) T17)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X23", "X24" ], "exprvars": [] } }, "558": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "559": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "516": { "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": [] } }, "50": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "517": { "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": [] } }, "51": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "519": { "goal": [{ "clause": 6, "scope": 7, "term": "(ordered (. T15 T16))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "560": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "363": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "364": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "365": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "486": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T71 T72 X92)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X92"], "exprvars": [] } }, "487": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "520": { "goal": [{ "clause": 7, "scope": 7, "term": "(ordered (. T15 T16))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "564": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T127 T128)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T127", "T128" ], "free": [], "exprvars": [] } }, "565": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "5": { "goal": [{ "clause": 0, "scope": 1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "368": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X63 (. T44 X64) T47)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T44"], "free": [ "X63", "X64" ], "exprvars": [] } }, "369": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "326": { "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": [] } }, "569": { "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": [] } }, "328": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "491": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T54 T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "492": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T15 T16))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "495": { "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": [] } }, "452": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T22 T23 X25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X25"], "exprvars": [] } }, "496": { "goal": [{ "clause": 1, "scope": 6, "term": "(perm T54 T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "299": { "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": [] } }, "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": [] } }, "497": { "goal": [{ "clause": 2, "scope": 6, "term": "(perm T54 T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "499": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "456": { "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": [] } }, "458": { "goal": [{ "clause": 3, "scope": 5, "term": "(app T22 T23 X25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X25"], "exprvars": [] } }, "459": { "goal": [{ "clause": 4, "scope": 5, "term": "(app T22 T23 X25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X25"], "exprvars": [] } }, "32": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (perm T7 T6) (ordered T6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "462": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "342": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X23 (. T15 X24) T17)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X23", "X24" ], "exprvars": [] } }, "463": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "540": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "464": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "344": { "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": [] } }, "542": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "301": { "goal": [{ "clause": 5, "scope": 3, "term": "(ordered ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "543": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "587": { "goal": [{ "clause": 8, "scope": 9, "term": "(less T127 T128)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T127", "T128" ], "free": [], "exprvars": [] } }, "302": { "goal": [ { "clause": 6, "scope": 3, "term": "(ordered ([]))" }, { "clause": 7, "scope": 3, "term": "(ordered ([]))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "588": { "goal": [{ "clause": 9, "scope": 9, "term": "(less T127 T128)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T127", "T128" ], "free": [], "exprvars": [] } }, "501": { "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": [] } }, "304": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "305": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "503": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "547": { "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": [] } }, "548": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "308": { "goal": [{ "clause": 7, "scope": 3, "term": "(ordered ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "506": { "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": [] } }, "507": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "508": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X107 (. T82 X108) T84)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T82"], "free": [ "X107", "X108" ], "exprvars": [] } }, "509": { "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": [] } } }, "edges": [ { "from": 2, "to": 5, "label": "CASE" }, { "from": 5, "to": 32, "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": 32, "to": 44, "label": "CASE" }, { "from": 44, "to": 48, "label": "PARALLEL" }, { "from": 44, "to": 49, "label": "PARALLEL" }, { "from": 48, "to": 50, "label": "EVAL with clause\nperm([], []).\nand substitutionT7 -> [],\nT6 -> []" }, { "from": 48, "to": 51, "label": "EVAL-BACKTRACK" }, { "from": 49, "to": 326, "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": 49, "to": 328, "label": "EVAL-BACKTRACK" }, { "from": 50, "to": 299, "label": "CASE" }, { "from": 299, "to": 301, "label": "PARALLEL" }, { "from": 299, "to": 302, "label": "PARALLEL" }, { "from": 301, "to": 304, "label": "ONLY EVAL with clause\nordered([]).\nand substitution" }, { "from": 302, "to": 308, "label": "BACKTRACK\nfor clause: ordered(.(X1, []))because of non-unification" }, { "from": 304, "to": 305, "label": "SUCCESS" }, { "from": 308, "to": 313, "label": "BACKTRACK\nfor clause: ordered(.(X, .(Y, Xs))) :- ','(less(X, s(Y)), ordered(.(Y, Xs)))because of non-unification" }, { "from": 326, "to": 342, "label": "SPLIT 1" }, { "from": 326, "to": 344, "label": "SPLIT 2\nreplacements:X23 -> T22,\nX24 -> T23" }, { "from": 342, "to": 355, "label": "CASE" }, { "from": 344, "to": 452, "label": "SPLIT 1" }, { "from": 344, "to": 453, "label": "SPLIT 2\nreplacements:X25 -> T54" }, { "from": 355, "to": 358, "label": "PARALLEL" }, { "from": 355, "to": 359, "label": "PARALLEL" }, { "from": 358, "to": 363, "label": "EVAL with clause\napp([], X42, X42).\nand substitutionX23 -> [],\nT15 -> T36,\nX24 -> T37,\nX42 -> .(T36, T37),\nX43 -> T37,\nT17 -> .(T36, T37)" }, { "from": 358, "to": 364, "label": "EVAL-BACKTRACK" }, { "from": 359, "to": 368, "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": 359, "to": 369, "label": "EVAL-BACKTRACK" }, { "from": 363, "to": 365, "label": "SUCCESS" }, { "from": 368, "to": 342, "label": "INSTANCE with matching:\nX23 -> X63\nT15 -> T44\nX24 -> X64\nT17 -> T47" }, { "from": 452, "to": 456, "label": "CASE" }, { "from": 453, "to": 491, "label": "SPLIT 1" }, { "from": 453, "to": 492, "label": "SPLIT 2\nnew knowledge:\nT16 is ground" }, { "from": 456, "to": 458, "label": "PARALLEL" }, { "from": 456, "to": 459, "label": "PARALLEL" }, { "from": 458, "to": 462, "label": "EVAL with clause\napp([], X77, X77).\nand substitutionT22 -> [],\nT23 -> T61,\nX77 -> T61,\nX25 -> T61" }, { "from": 458, "to": 463, "label": "EVAL-BACKTRACK" }, { "from": 459, "to": 486, "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": 459, "to": 487, "label": "EVAL-BACKTRACK" }, { "from": 462, "to": 464, "label": "SUCCESS" }, { "from": 486, "to": 452, "label": "INSTANCE with matching:\nT22 -> T71\nT23 -> T72\nX25 -> X92" }, { "from": 491, "to": 495, "label": "CASE" }, { "from": 492, "to": 516, "label": "CASE" }, { "from": 495, "to": 496, "label": "PARALLEL" }, { "from": 495, "to": 497, "label": "PARALLEL" }, { "from": 496, "to": 499, "label": "EVAL with clause\nperm([], []).\nand substitutionT54 -> [],\nT16 -> []" }, { "from": 496, "to": 501, "label": "EVAL-BACKTRACK" }, { "from": 497, "to": 506, "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": 497, "to": 507, "label": "EVAL-BACKTRACK" }, { "from": 499, "to": 503, "label": "SUCCESS" }, { "from": 506, "to": 508, "label": "SPLIT 1" }, { "from": 506, "to": 509, "label": "SPLIT 2\nreplacements:X107 -> T89,\nX108 -> T90" }, { "from": 508, "to": 342, "label": "INSTANCE with matching:\nX23 -> X107\nT15 -> T82\nX24 -> X108\nT17 -> T84" }, { "from": 509, "to": 510, "label": "SPLIT 1" }, { "from": 509, "to": 511, "label": "SPLIT 2\nreplacements:X109 -> T97" }, { "from": 510, "to": 452, "label": "INSTANCE with matching:\nT22 -> T89\nT23 -> T90\nX25 -> X109" }, { "from": 511, "to": 491, "label": "INSTANCE with matching:\nT54 -> T97\nT16 -> T83" }, { "from": 516, "to": 517, "label": "BACKTRACK\nfor clause: ordered([])because of non-unification" }, { "from": 517, "to": 519, "label": "PARALLEL" }, { "from": 517, "to": 520, "label": "PARALLEL" }, { "from": 519, "to": 540, "label": "EVAL with clause\nordered(.(X126, [])).\nand substitutionT15 -> T104,\nX126 -> T104,\nT16 -> []" }, { "from": 519, "to": 542, "label": "EVAL-BACKTRACK" }, { "from": 520, "to": 547, "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": 520, "to": 548, "label": "EVAL-BACKTRACK" }, { "from": 540, "to": 543, "label": "SUCCESS" }, { "from": 547, "to": 551, "label": "SPLIT 1" }, { "from": 547, "to": 552, "label": "SPLIT 2\nnew knowledge:\nT111 is ground\nT112 is ground" }, { "from": 551, "to": 553, "label": "CASE" }, { "from": 552, "to": 492, "label": "INSTANCE with matching:\nT15 -> T112\nT16 -> T113" }, { "from": 553, "to": 554, "label": "PARALLEL" }, { "from": 553, "to": 555, "label": "PARALLEL" }, { "from": 554, "to": 558, "label": "EVAL with clause\nless(0, s(X144)).\nand substitutionT111 -> 0,\nT112 -> T122,\nX144 -> T122" }, { "from": 554, "to": 559, "label": "EVAL-BACKTRACK" }, { "from": 555, "to": 564, "label": "EVAL with clause\nless(s(X149), s(X150)) :- less(X149, X150).\nand substitutionX149 -> T127,\nT111 -> s(T127),\nT112 -> T128,\nX150 -> T128" }, { "from": 555, "to": 565, "label": "EVAL-BACKTRACK" }, { "from": 558, "to": 560, "label": "SUCCESS" }, { "from": 564, "to": 569, "label": "CASE" }, { "from": 569, "to": 587, "label": "PARALLEL" }, { "from": 569, "to": 588, "label": "PARALLEL" }, { "from": 587, "to": 589, "label": "EVAL with clause\nless(0, s(X157)).\nand substitutionT127 -> 0,\nX157 -> T135,\nT128 -> s(T135)" }, { "from": 587, "to": 590, "label": "EVAL-BACKTRACK" }, { "from": 588, "to": 593, "label": "EVAL with clause\nless(s(X162), s(X163)) :- less(X162, X163).\nand substitutionX162 -> T140,\nT127 -> s(T140),\nX163 -> T141,\nT128 -> s(T141)" }, { "from": 588, "to": 594, "label": "EVAL-BACKTRACK" }, { "from": 589, "to": 591, "label": "SUCCESS" }, { "from": 593, "to": 564, "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": 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": { "type": "Nodes", "350": { "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": [] } }, "396": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "397": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T57 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "310": { "goal": [{ "clause": 2, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "398": { "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": [] } }, "311": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "399": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "312": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "356": { "goal": [{ "clause": 3, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "357": { "goal": [{ "clause": 4, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "314": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "439": { "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": [] } }, "319": { "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": [] } }, "52": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (perm T10 T9) (ordered T9))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "360": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "361": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "362": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "483": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "440": { "goal": [{ "clause": 5, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "484": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "441": { "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": [] } }, "485": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "321": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "442": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "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": [{ "clause": -1, "scope": -1, "term": "(app X61 (. T47 X62) T50)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T47"], "free": [ "X61", "X62" ], "exprvars": [] } }, "443": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "367": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "400": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "444": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "488": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "445": { "goal": [{ "clause": 6, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "489": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "446": { "goal": [{ "clause": 7, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "7": { "goal": [{ "clause": 0, "scope": 1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "403": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "447": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "448": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "405": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "449": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "407": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "490": { "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": [] } }, "295": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "493": { "goal": [{ "clause": 8, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "450": { "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": [] } }, "494": { "goal": [{ "clause": 9, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "297": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "451": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "454": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "498": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "455": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T90 T91))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T90", "T91" ], "free": [], "exprvars": [] } }, "336": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "457": { "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": [] } }, "338": { "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": [] } }, "460": { "goal": [{ "clause": 8, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "461": { "goal": [{ "clause": 9, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "500": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "502": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "426": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T74 T75 X90)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X90"], "exprvars": [] } }, "504": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T118 T119)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T118", "T119" ], "free": [], "exprvars": [] } }, "307": { "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": [] } }, "505": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "429": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "309": { "goal": [{ "clause": 1, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } } }, "edges": [ { "from": 3, "to": 7, "label": "CASE" }, { "from": 7, "to": 52, "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": 52, "to": 295, "label": "SPLIT 1" }, { "from": 52, "to": 297, "label": "SPLIT 2\nnew knowledge:\nT9 is ground" }, { "from": 295, "to": 307, "label": "CASE" }, { "from": 297, "to": 439, "label": "CASE" }, { "from": 307, "to": 309, "label": "PARALLEL" }, { "from": 307, "to": 310, "label": "PARALLEL" }, { "from": 309, "to": 311, "label": "EVAL with clause\nperm([], []).\nand substitutionT10 -> [],\nT9 -> []" }, { "from": 309, "to": 312, "label": "EVAL-BACKTRACK" }, { "from": 310, "to": 319, "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": 310, "to": 321, "label": "EVAL-BACKTRACK" }, { "from": 311, "to": 314, "label": "SUCCESS" }, { "from": 319, "to": 336, "label": "SPLIT 1" }, { "from": 319, "to": 338, "label": "SPLIT 2\nreplacements:X21 -> T25,\nX22 -> T26" }, { "from": 336, "to": 350, "label": "CASE" }, { "from": 338, "to": 396, "label": "SPLIT 1" }, { "from": 338, "to": 397, "label": "SPLIT 2\nreplacements:X23 -> T57" }, { "from": 350, "to": 356, "label": "PARALLEL" }, { "from": 350, "to": 357, "label": "PARALLEL" }, { "from": 356, "to": 360, "label": "EVAL with clause\napp([], X40, X40).\nand substitutionX21 -> [],\nT18 -> T39,\nX22 -> T40,\nX40 -> .(T39, T40),\nX41 -> T40,\nT20 -> .(T39, T40)" }, { "from": 356, "to": 361, "label": "EVAL-BACKTRACK" }, { "from": 357, "to": 366, "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": 357, "to": 367, "label": "EVAL-BACKTRACK" }, { "from": 360, "to": 362, "label": "SUCCESS" }, { "from": 366, "to": 336, "label": "INSTANCE with matching:\nX21 -> X61\nT18 -> T47\nX22 -> X62\nT20 -> T50" }, { "from": 396, "to": 398, "label": "CASE" }, { "from": 397, "to": 295, "label": "INSTANCE with matching:\nT10 -> T57\nT9 -> T19" }, { "from": 398, "to": 399, "label": "PARALLEL" }, { "from": 398, "to": 400, "label": "PARALLEL" }, { "from": 399, "to": 403, "label": "EVAL with clause\napp([], X75, X75).\nand substitutionT25 -> [],\nT26 -> T64,\nX75 -> T64,\nX23 -> T64" }, { "from": 399, "to": 405, "label": "EVAL-BACKTRACK" }, { "from": 400, "to": 426, "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": 400, "to": 429, "label": "EVAL-BACKTRACK" }, { "from": 403, "to": 407, "label": "SUCCESS" }, { "from": 426, "to": 396, "label": "INSTANCE with matching:\nT25 -> T74\nT26 -> T75\nX23 -> X90" }, { "from": 439, "to": 440, "label": "PARALLEL" }, { "from": 439, "to": 441, "label": "PARALLEL" }, { "from": 440, "to": 442, "label": "EVAL with clause\nordered([]).\nand substitutionT9 -> []" }, { "from": 440, "to": 443, "label": "EVAL-BACKTRACK" }, { "from": 441, "to": 445, "label": "PARALLEL" }, { "from": 441, "to": 446, "label": "PARALLEL" }, { "from": 442, "to": 444, "label": "SUCCESS" }, { "from": 445, "to": 447, "label": "EVAL with clause\nordered(.(X97, [])).\nand substitutionX97 -> T82,\nT9 -> .(T82, [])" }, { "from": 445, "to": 448, "label": "EVAL-BACKTRACK" }, { "from": 446, "to": 450, "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": 446, "to": 451, "label": "EVAL-BACKTRACK" }, { "from": 447, "to": 449, "label": "SUCCESS" }, { "from": 450, "to": 454, "label": "SPLIT 1" }, { "from": 450, "to": 455, "label": "SPLIT 2\nnew knowledge:\nT89 is ground\nT90 is ground" }, { "from": 454, "to": 457, "label": "CASE" }, { "from": 455, "to": 297, "label": "INSTANCE with matching:\nT9 -> .(T90, T91)" }, { "from": 457, "to": 460, "label": "PARALLEL" }, { "from": 457, "to": 461, "label": "PARALLEL" }, { "from": 460, "to": 483, "label": "EVAL with clause\nless(0, s(X115)).\nand substitutionT89 -> 0,\nT90 -> T100,\nX115 -> T100" }, { "from": 460, "to": 484, "label": "EVAL-BACKTRACK" }, { "from": 461, "to": 488, "label": "EVAL with clause\nless(s(X120), s(X121)) :- less(X120, X121).\nand substitutionX120 -> T105,\nT89 -> s(T105),\nT90 -> T106,\nX121 -> T106" }, { "from": 461, "to": 489, "label": "EVAL-BACKTRACK" }, { "from": 483, "to": 485, "label": "SUCCESS" }, { "from": 488, "to": 490, "label": "CASE" }, { "from": 490, "to": 493, "label": "PARALLEL" }, { "from": 490, "to": 494, "label": "PARALLEL" }, { "from": 493, "to": 498, "label": "EVAL with clause\nless(0, s(X128)).\nand substitutionT105 -> 0,\nX128 -> T113,\nT106 -> s(T113)" }, { "from": 493, "to": 500, "label": "EVAL-BACKTRACK" }, { "from": 494, "to": 504, "label": "EVAL with clause\nless(s(X133), s(X134)) :- less(X133, X134).\nand substitutionX133 -> T118,\nT105 -> s(T118),\nX134 -> T119,\nT106 -> s(T119)" }, { "from": 494, "to": 505, "label": "EVAL-BACKTRACK" }, { "from": 498, "to": 502, "label": "SUCCESS" }, { "from": 504, "to": 488, "label": "INSTANCE with matching:\nT105 -> T118\nT106 -> T119" } ], "type": "Graph" } } ---------------------------------------- (164) Complex Obligation (AND) ---------------------------------------- (165) Obligation: Rules: f494_out(T105, T106) -> f490_out(T105, T106) :|: TRUE f490_in(x, x1) -> f493_in(x, x1) :|: TRUE f493_out(x2, x3) -> f490_out(x2, x3) :|: TRUE f490_in(x4, x5) -> f494_in(x4, x5) :|: TRUE f488_out(T118, T119) -> f504_out(T118, T119) :|: TRUE f504_in(x6, x7) -> f488_in(x6, x7) :|: TRUE f490_out(x8, x9) -> f488_out(x8, x9) :|: TRUE f488_in(x10, x11) -> f490_in(x10, x11) :|: TRUE f494_in(s(x12), s(x13)) -> f504_in(x12, x13) :|: TRUE f504_out(x14, x15) -> f494_out(s(x14), s(x15)) :|: TRUE f494_in(x16, x17) -> f505_in :|: TRUE f505_out -> f494_out(x18, x19) :|: TRUE f3_in(T2) -> f7_in(T2) :|: TRUE f7_out(x20) -> f3_out(x20) :|: TRUE f52_out(T9) -> f7_out(T9) :|: TRUE f7_in(x21) -> f52_in(x21) :|: TRUE f52_in(x22) -> f295_in(x22) :|: TRUE f297_out(x23) -> f52_out(x23) :|: TRUE f295_out(x24) -> f297_in(x24) :|: TRUE f297_in(x25) -> f439_in(x25) :|: TRUE f439_out(x26) -> f297_out(x26) :|: TRUE f439_in(x27) -> f440_in(x27) :|: TRUE f439_in(x28) -> f441_in(x28) :|: TRUE f440_out(x29) -> f439_out(x29) :|: TRUE f441_out(x30) -> f439_out(x30) :|: TRUE f445_out(x31) -> f441_out(x31) :|: TRUE f441_in(x32) -> f446_in(x32) :|: TRUE f446_out(x33) -> f441_out(x33) :|: TRUE f441_in(x34) -> f445_in(x34) :|: TRUE f451_out -> f446_out(x35) :|: TRUE f446_in(x36) -> f451_in :|: TRUE f446_in(.(T89, .(T90, T91))) -> f450_in(T89, T90, T91) :|: TRUE f450_out(x37, x38, x39) -> f446_out(.(x37, .(x38, x39))) :|: TRUE f454_out(x40, x41) -> f455_in(x41, x42) :|: TRUE f455_out(x43, x44) -> f450_out(x45, x43, x44) :|: TRUE f450_in(x46, x47, x48) -> f454_in(x46, x47) :|: TRUE f454_in(x49, x50) -> f457_in(x49, x50) :|: TRUE f457_out(x51, x52) -> f454_out(x51, x52) :|: TRUE f457_in(x53, x54) -> f461_in(x53, x54) :|: TRUE f461_out(x55, x56) -> f457_out(x55, x56) :|: TRUE f457_in(x57, x58) -> f460_in(x57, x58) :|: TRUE f460_out(x59, x60) -> f457_out(x59, x60) :|: TRUE f488_out(x61, x62) -> f461_out(s(x61), x62) :|: TRUE f489_out -> f461_out(x63, x64) :|: TRUE f461_in(s(x65), x66) -> f488_in(x65, x66) :|: TRUE f461_in(x67, x68) -> f489_in :|: TRUE Start term: f3_in(T2) ---------------------------------------- (166) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (167) TRUE ---------------------------------------- (168) Obligation: Rules: f396_in -> f398_in :|: TRUE f398_out -> f396_out :|: TRUE f400_in -> f429_in :|: TRUE f426_out -> f400_out :|: TRUE f400_in -> f426_in :|: TRUE f429_out -> f400_out :|: TRUE f396_out -> f426_out :|: TRUE f426_in -> f396_in :|: TRUE f399_out -> f398_out :|: TRUE f398_in -> f400_in :|: TRUE f400_out -> f398_out :|: TRUE f398_in -> f399_in :|: TRUE f3_in(T2) -> f7_in(T2) :|: TRUE f7_out(x) -> f3_out(x) :|: TRUE f52_out(T9) -> f7_out(T9) :|: TRUE f7_in(x1) -> f52_in(x1) :|: TRUE f52_in(x2) -> f295_in(x2) :|: TRUE f297_out(x3) -> f52_out(x3) :|: TRUE f295_out(x4) -> f297_in(x4) :|: TRUE f307_out(x5) -> f295_out(x5) :|: TRUE f295_in(x6) -> f307_in(x6) :|: TRUE f307_in(x7) -> f310_in(x7) :|: TRUE f309_out(x8) -> f307_out(x8) :|: TRUE f310_out(x9) -> f307_out(x9) :|: TRUE f307_in(x10) -> f309_in(x10) :|: TRUE f319_out(T18, T19) -> f310_out(.(T18, T19)) :|: TRUE f310_in(x11) -> f321_in :|: TRUE f310_in(.(x12, x13)) -> f319_in(x12, x13) :|: TRUE f321_out -> f310_out(x14) :|: TRUE f336_out(x15) -> f338_in(x16) :|: TRUE f338_out(x17) -> f319_out(x18, x17) :|: TRUE f319_in(x19, x20) -> f336_in(x19) :|: TRUE f338_in(x21) -> f396_in :|: TRUE f397_out(x22) -> f338_out(x22) :|: TRUE f396_out -> f397_in(x23) :|: TRUE Start term: f3_in(T2) ---------------------------------------- (169) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (170) TRUE ---------------------------------------- (171) Obligation: Rules: f357_in(T47) -> f366_in(T47) :|: TRUE f367_out -> f357_out(T18) :|: TRUE f366_out(x) -> f357_out(x) :|: TRUE f357_in(x1) -> f367_in :|: TRUE f350_in(x2) -> f357_in(x2) :|: TRUE f350_in(x3) -> f356_in(x3) :|: TRUE f356_out(x4) -> f350_out(x4) :|: TRUE f357_out(x5) -> f350_out(x5) :|: TRUE f350_out(x6) -> f336_out(x6) :|: TRUE f336_in(x7) -> f350_in(x7) :|: TRUE f366_in(x8) -> f336_in(x8) :|: TRUE f336_out(x9) -> f366_out(x9) :|: TRUE f3_in(T2) -> f7_in(T2) :|: TRUE f7_out(x10) -> f3_out(x10) :|: TRUE f52_out(T9) -> f7_out(T9) :|: TRUE f7_in(x11) -> f52_in(x11) :|: TRUE f52_in(x12) -> f295_in(x12) :|: TRUE f297_out(x13) -> f52_out(x13) :|: TRUE f295_out(x14) -> f297_in(x14) :|: TRUE f307_out(x15) -> f295_out(x15) :|: TRUE f295_in(x16) -> f307_in(x16) :|: TRUE f307_in(x17) -> f310_in(x17) :|: TRUE f309_out(x18) -> f307_out(x18) :|: TRUE f310_out(x19) -> f307_out(x19) :|: TRUE f307_in(x20) -> f309_in(x20) :|: TRUE f319_out(x21, x22) -> f310_out(.(x21, x22)) :|: TRUE f310_in(x23) -> f321_in :|: TRUE f310_in(.(x24, x25)) -> f319_in(x24, x25) :|: TRUE f321_out -> f310_out(x26) :|: TRUE f336_out(x27) -> f338_in(x28) :|: TRUE f338_out(x29) -> f319_out(x30, x29) :|: TRUE f319_in(x31, x32) -> f336_in(x31) :|: TRUE Start term: f3_in(T2) ---------------------------------------- (172) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f357_in(T47) -> f366_in(T47) :|: TRUE f350_in(x2) -> f357_in(x2) :|: TRUE f336_in(x7) -> f350_in(x7) :|: TRUE f366_in(x8) -> f336_in(x8) :|: TRUE ---------------------------------------- (173) Obligation: Rules: f357_in(T47) -> f366_in(T47) :|: TRUE f350_in(x2) -> f357_in(x2) :|: TRUE f336_in(x7) -> f350_in(x7) :|: TRUE f366_in(x8) -> f336_in(x8) :|: TRUE ---------------------------------------- (174) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (175) Obligation: Rules: f336_in(x7:0) -> f336_in(x7:0) :|: TRUE ---------------------------------------- (176) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (177) Obligation: Rules: f336_in(x7:0) -> f336_in(x7:0) :|: TRUE ---------------------------------------- (178) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f336_in(x7:0) -> f336_in(x7:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (179) Obligation: Termination digraph: Nodes: (1) f336_in(x7:0) -> f336_in(x7:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (180) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f336_in(VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (181) Obligation: Rules: f336_in(x7:0) -> f336_in(x7:0) :|: TRUE ---------------------------------------- (182) IntTRSNonPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x7:0) -> f(1, x7: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: f451_out -> f446_out(T9) :|: TRUE f446_in(x) -> f451_in :|: TRUE f446_in(.(T89, .(T90, T91))) -> f450_in(T89, T90, T91) :|: TRUE f450_out(x1, x2, x3) -> f446_out(.(x1, .(x2, x3))) :|: TRUE f454_in(x4, x5) -> f457_in(x4, x5) :|: TRUE f457_out(x6, x7) -> f454_out(x6, x7) :|: TRUE f494_out(T105, T106) -> f490_out(T105, T106) :|: TRUE f490_in(x8, x9) -> f493_in(x8, x9) :|: TRUE f493_out(x10, x11) -> f490_out(x10, x11) :|: TRUE f490_in(x12, x13) -> f494_in(x12, x13) :|: TRUE f498_in -> f498_out :|: TRUE f488_out(T118, T119) -> f504_out(T118, T119) :|: TRUE f504_in(x14, x15) -> f488_in(x14, x15) :|: TRUE f445_out(x16) -> f441_out(x16) :|: TRUE f441_in(x17) -> f446_in(x17) :|: TRUE f446_out(x18) -> f441_out(x18) :|: TRUE f441_in(x19) -> f445_in(x19) :|: TRUE f439_in(x20) -> f440_in(x20) :|: TRUE f439_in(x21) -> f441_in(x21) :|: TRUE f440_out(x22) -> f439_out(x22) :|: TRUE f441_out(x23) -> f439_out(x23) :|: TRUE f297_in(x24) -> f439_in(x24) :|: TRUE f439_out(x25) -> f297_out(x25) :|: TRUE f457_in(x26, x27) -> f461_in(x26, x27) :|: TRUE f461_out(x28, x29) -> f457_out(x28, x29) :|: TRUE f457_in(x30, x31) -> f460_in(x30, x31) :|: TRUE f460_out(x32, x33) -> f457_out(x32, x33) :|: TRUE f483_in -> f483_out :|: TRUE f483_out -> f460_out(0, T100) :|: TRUE f484_out -> f460_out(x34, x35) :|: TRUE f460_in(x36, x37) -> f484_in :|: TRUE f460_in(0, x38) -> f483_in :|: TRUE f454_out(x39, x40) -> f455_in(x40, x41) :|: TRUE f455_out(x42, x43) -> f450_out(x44, x42, x43) :|: TRUE f450_in(x45, x46, x47) -> f454_in(x45, x46) :|: TRUE f490_out(x48, x49) -> f488_out(x48, x49) :|: TRUE f488_in(x50, x51) -> f490_in(x50, x51) :|: TRUE f455_in(x52, x53) -> f297_in(.(x52, x53)) :|: TRUE f297_out(.(x54, x55)) -> f455_out(x54, x55) :|: TRUE f500_out -> f493_out(x56, x57) :|: TRUE f493_in(0, s(T113)) -> f498_in :|: TRUE f493_in(x58, x59) -> f500_in :|: TRUE f498_out -> f493_out(0, s(x60)) :|: TRUE f494_in(s(x61), s(x62)) -> f504_in(x61, x62) :|: TRUE f504_out(x63, x64) -> f494_out(s(x63), s(x64)) :|: TRUE f494_in(x65, x66) -> f505_in :|: TRUE f505_out -> f494_out(x67, x68) :|: TRUE f488_out(x69, x70) -> f461_out(s(x69), x70) :|: TRUE f489_out -> f461_out(x71, x72) :|: TRUE f461_in(s(x73), x74) -> f488_in(x73, x74) :|: TRUE f461_in(x75, x76) -> f489_in :|: TRUE f3_in(T2) -> f7_in(T2) :|: TRUE f7_out(x77) -> f3_out(x77) :|: TRUE f52_out(x78) -> f7_out(x78) :|: TRUE f7_in(x79) -> f52_in(x79) :|: TRUE f52_in(x80) -> f295_in(x80) :|: TRUE f297_out(x81) -> f52_out(x81) :|: TRUE f295_out(x82) -> f297_in(x82) :|: TRUE Start term: f3_in(T2) ---------------------------------------- (185) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (186) TRUE ---------------------------------------- (187) Obligation: Rules: f396_in -> f398_in :|: TRUE f398_out -> f396_out :|: TRUE f360_in -> f360_out :|: TRUE f400_in -> f429_in :|: TRUE f426_out -> f400_out :|: TRUE f400_in -> f426_in :|: TRUE f429_out -> f400_out :|: TRUE f350_in(T18) -> f357_in(T18) :|: TRUE f350_in(x) -> f356_in(x) :|: TRUE f356_out(x1) -> f350_out(x1) :|: TRUE f357_out(x2) -> f350_out(x2) :|: TRUE f319_out(x3, x4) -> f310_out(.(x3, x4)) :|: TRUE f310_in(T9) -> f321_in :|: TRUE f310_in(.(x5, x6)) -> f319_in(x5, x6) :|: TRUE f321_out -> f310_out(x7) :|: TRUE f307_out(x8) -> f295_out(x8) :|: TRUE f295_in(x9) -> f307_in(x9) :|: TRUE f403_in -> f403_out :|: TRUE f360_out -> f356_out(T39) :|: TRUE f356_in(x10) -> f361_in :|: TRUE f356_in(x11) -> f360_in :|: TRUE f361_out -> f356_out(x12) :|: TRUE f357_in(T47) -> f366_in(T47) :|: TRUE f367_out -> f357_out(x13) :|: TRUE f366_out(x14) -> f357_out(x14) :|: TRUE f357_in(x15) -> f367_in :|: TRUE f295_out(T19) -> f397_out(T19) :|: TRUE f397_in(x16) -> f295_in(x16) :|: TRUE f336_out(x17) -> f338_in(x18) :|: TRUE f338_out(x19) -> f319_out(x20, x19) :|: TRUE f319_in(x21, x22) -> f336_in(x21) :|: TRUE f399_in -> f405_in :|: TRUE f403_out -> f399_out :|: TRUE f405_out -> f399_out :|: TRUE f399_in -> f403_in :|: TRUE f396_out -> f426_out :|: TRUE f426_in -> f396_in :|: TRUE f307_in(x23) -> f310_in(x23) :|: TRUE f309_out(x24) -> f307_out(x24) :|: TRUE f310_out(x25) -> f307_out(x25) :|: TRUE f307_in(x26) -> f309_in(x26) :|: TRUE f350_out(x27) -> f336_out(x27) :|: TRUE f336_in(x28) -> f350_in(x28) :|: TRUE f399_out -> f398_out :|: TRUE f398_in -> f400_in :|: TRUE f400_out -> f398_out :|: TRUE f398_in -> f399_in :|: TRUE f366_in(x29) -> f336_in(x29) :|: TRUE f336_out(x30) -> f366_out(x30) :|: TRUE f338_in(x31) -> f396_in :|: TRUE f397_out(x32) -> f338_out(x32) :|: TRUE f396_out -> f397_in(x33) :|: TRUE f3_in(T2) -> f7_in(T2) :|: TRUE f7_out(x34) -> f3_out(x34) :|: TRUE f52_out(x35) -> f7_out(x35) :|: TRUE f7_in(x36) -> f52_in(x36) :|: TRUE f52_in(x37) -> f295_in(x37) :|: TRUE f297_out(x38) -> f52_out(x38) :|: TRUE f295_out(x39) -> f297_in(x39) :|: TRUE Start term: f3_in(T2) ---------------------------------------- (188) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f396_in -> f398_in :|: TRUE f398_out -> f396_out :|: TRUE f360_in -> f360_out :|: TRUE f426_out -> f400_out :|: TRUE f400_in -> f426_in :|: TRUE f350_in(T18) -> f357_in(T18) :|: TRUE f350_in(x) -> f356_in(x) :|: TRUE f356_out(x1) -> f350_out(x1) :|: TRUE f357_out(x2) -> f350_out(x2) :|: TRUE f310_in(.(x5, x6)) -> f319_in(x5, x6) :|: TRUE f295_in(x9) -> f307_in(x9) :|: TRUE f403_in -> f403_out :|: TRUE f360_out -> f356_out(T39) :|: TRUE f356_in(x11) -> f360_in :|: TRUE f357_in(T47) -> f366_in(T47) :|: TRUE f366_out(x14) -> f357_out(x14) :|: TRUE f397_in(x16) -> f295_in(x16) :|: TRUE f336_out(x17) -> f338_in(x18) :|: TRUE f319_in(x21, x22) -> f336_in(x21) :|: TRUE f403_out -> f399_out :|: TRUE f399_in -> f403_in :|: TRUE f396_out -> f426_out :|: TRUE f426_in -> f396_in :|: TRUE f307_in(x23) -> f310_in(x23) :|: TRUE f350_out(x27) -> f336_out(x27) :|: TRUE f336_in(x28) -> f350_in(x28) :|: TRUE f399_out -> f398_out :|: TRUE f398_in -> f400_in :|: TRUE f400_out -> f398_out :|: TRUE f398_in -> f399_in :|: TRUE f366_in(x29) -> f336_in(x29) :|: TRUE f336_out(x30) -> f366_out(x30) :|: TRUE f338_in(x31) -> f396_in :|: TRUE f396_out -> f397_in(x33) :|: TRUE ---------------------------------------- (189) Obligation: Rules: f396_in -> f398_in :|: TRUE f398_out -> f396_out :|: TRUE f360_in -> f360_out :|: TRUE f426_out -> f400_out :|: TRUE f400_in -> f426_in :|: TRUE f350_in(T18) -> f357_in(T18) :|: TRUE f350_in(x) -> f356_in(x) :|: TRUE f356_out(x1) -> f350_out(x1) :|: TRUE f357_out(x2) -> f350_out(x2) :|: TRUE f310_in(.(x5, x6)) -> f319_in(x5, x6) :|: TRUE f295_in(x9) -> f307_in(x9) :|: TRUE f403_in -> f403_out :|: TRUE f360_out -> f356_out(T39) :|: TRUE f356_in(x11) -> f360_in :|: TRUE f357_in(T47) -> f366_in(T47) :|: TRUE f366_out(x14) -> f357_out(x14) :|: TRUE f397_in(x16) -> f295_in(x16) :|: TRUE f336_out(x17) -> f338_in(x18) :|: TRUE f319_in(x21, x22) -> f336_in(x21) :|: TRUE f403_out -> f399_out :|: TRUE f399_in -> f403_in :|: TRUE f396_out -> f426_out :|: TRUE f426_in -> f396_in :|: TRUE f307_in(x23) -> f310_in(x23) :|: TRUE f350_out(x27) -> f336_out(x27) :|: TRUE f336_in(x28) -> f350_in(x28) :|: TRUE f399_out -> f398_out :|: TRUE f398_in -> f400_in :|: TRUE f400_out -> f398_out :|: TRUE f398_in -> f399_in :|: TRUE f366_in(x29) -> f336_in(x29) :|: TRUE f336_out(x30) -> f366_out(x30) :|: TRUE f338_in(x31) -> f396_in :|: TRUE f396_out -> f397_in(x33) :|: TRUE ---------------------------------------- (190) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (191) Obligation: Rules: f396_in -> f398_out :|: TRUE f336_out(x30:0) -> f336_out(x30:0) :|: TRUE f398_out -> f350_in(x5:0) :|: TRUE f350_in(T18:0) -> f350_in(T18:0) :|: TRUE f398_out -> f398_out :|: TRUE f396_in -> f396_in :|: TRUE f350_in(x:0) -> f336_out(T39:0) :|: TRUE f336_out(x17:0) -> f396_in :|: TRUE ---------------------------------------- (192) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (193) Obligation: Rules: f396_in -> f398_out :|: TRUE f336_out(x30:0) -> f336_out(x30:0) :|: TRUE f398_out -> f350_in(x5:0) :|: TRUE f350_in(T18:0) -> f350_in(T18:0) :|: TRUE f398_out -> f398_out :|: TRUE f396_in -> f396_in :|: TRUE f350_in(x:0) -> f336_out(T39:0) :|: TRUE f336_out(x17:0) -> f396_in :|: TRUE