/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.pl /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.pl # AProVE Commit ID: 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, 0 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 [SOUND, 0 ms] (18) QDP (19) UsableRulesReductionPairsProof [EQUIVALENT, 21 ms] (20) QDP (21) MRRProof [EQUIVALENT, 0 ms] (22) QDP (23) PisEmptyProof [EQUIVALENT, 0 ms] (24) YES (25) PiDP (26) UsableRulesProof [EQUIVALENT, 0 ms] (27) PiDP (28) PiDPToQDPProof [SOUND, 0 ms] (29) QDP (30) NonTerminationLoopProof [COMPLETE, 0 ms] (31) NO (32) PiDP (33) UsableRulesProof [EQUIVALENT, 0 ms] (34) PiDP (35) PiDPToQDPProof [SOUND, 0 ms] (36) QDP (37) QDPSizeChangeProof [EQUIVALENT, 0 ms] (38) YES (39) PrologToPiTRSProof [SOUND, 0 ms] (40) PiTRS (41) DependencyPairsProof [EQUIVALENT, 0 ms] (42) PiDP (43) DependencyGraphProof [EQUIVALENT, 0 ms] (44) AND (45) PiDP (46) UsableRulesProof [EQUIVALENT, 0 ms] (47) PiDP (48) PiDPToQDPProof [EQUIVALENT, 0 ms] (49) QDP (50) QDPSizeChangeProof [EQUIVALENT, 0 ms] (51) YES (52) PiDP (53) UsableRulesProof [EQUIVALENT, 0 ms] (54) PiDP (55) PiDPToQDPProof [EQUIVALENT, 0 ms] (56) QDP (57) MRRProof [EQUIVALENT, 23 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) PrologToDTProblemTransformerProof [SOUND, 56 ms] (76) TRIPLES (77) TriplesToPiDPProof [SOUND, 28 ms] (78) PiDP (79) DependencyGraphProof [EQUIVALENT, 0 ms] (80) AND (81) PiDP (82) UsableRulesProof [EQUIVALENT, 0 ms] (83) PiDP (84) PiDPToQDPProof [EQUIVALENT, 0 ms] (85) QDP (86) QDPSizeChangeProof [EQUIVALENT, 0 ms] (87) YES (88) PiDP (89) UsableRulesProof [EQUIVALENT, 0 ms] (90) PiDP (91) PiDPToQDPProof [EQUIVALENT, 0 ms] (92) QDP (93) QDPSizeChangeProof [EQUIVALENT, 0 ms] (94) YES (95) PiDP (96) UsableRulesProof [EQUIVALENT, 0 ms] (97) PiDP (98) PiDPToQDPProof [SOUND, 0 ms] (99) QDP (100) NonTerminationLoopProof [COMPLETE, 0 ms] (101) NO (102) PiDP (103) UsableRulesProof [EQUIVALENT, 0 ms] (104) PiDP (105) PiDPToQDPProof [SOUND, 0 ms] (106) QDP (107) PiDP (108) UsableRulesProof [EQUIVALENT, 0 ms] (109) PiDP (110) PrologToTRSTransformerProof [SOUND, 39 ms] (111) QTRS (112) DependencyPairsProof [EQUIVALENT, 0 ms] (113) QDP (114) DependencyGraphProof [EQUIVALENT, 0 ms] (115) AND (116) QDP (117) MNOCProof [EQUIVALENT, 0 ms] (118) QDP (119) UsableRulesProof [EQUIVALENT, 0 ms] (120) QDP (121) QReductionProof [EQUIVALENT, 0 ms] (122) QDP (123) QDPSizeChangeProof [EQUIVALENT, 0 ms] (124) YES (125) QDP (126) MNOCProof [EQUIVALENT, 0 ms] (127) QDP (128) UsableRulesProof [EQUIVALENT, 0 ms] (129) QDP (130) QReductionProof [EQUIVALENT, 0 ms] (131) QDP (132) QDPOrderProof [EQUIVALENT, 23 ms] (133) QDP (134) DependencyGraphProof [EQUIVALENT, 0 ms] (135) TRUE (136) QDP (137) MNOCProof [EQUIVALENT, 0 ms] (138) QDP (139) UsableRulesProof [EQUIVALENT, 0 ms] (140) QDP (141) QReductionProof [EQUIVALENT, 0 ms] (142) QDP (143) NonTerminationLoopProof [COMPLETE, 0 ms] (144) NO (145) QDP (146) MNOCProof [EQUIVALENT, 0 ms] (147) QDP (148) UsableRulesProof [EQUIVALENT, 0 ms] (149) QDP (150) QReductionProof [EQUIVALENT, 0 ms] (151) QDP (152) NonTerminationLoopProof [COMPLETE, 0 ms] (153) NO (154) QDP (155) MNOCProof [EQUIVALENT, 0 ms] (156) QDP (157) UsableRulesProof [EQUIVALENT, 0 ms] (158) QDP (159) QReductionProof [EQUIVALENT, 0 ms] (160) QDP (161) QDPSizeChangeProof [EQUIVALENT, 0 ms] (162) YES (163) PrologToIRSwTTransformerProof [SOUND, 34 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, 0 ms] (175) IRSwT (176) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (177) IRSwT (178) IRSwTTerminationDigraphProof [EQUIVALENT, 7 ms] (179) IRSwT (180) FilterProof [EQUIVALENT, 0 ms] (181) IntTRS (182) IntTRSNonPeriodicNontermProof [COMPLETE, 6 ms] (183) NO (184) IRSwT (185) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (186) TRUE (187) IRSwT (188) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (189) IRSwT (190) IntTRSCompressionProof [EQUIVALENT, 17 ms] (191) IRSwT (192) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (193) IRSwT (194) IRSwTTerminationDigraphProof [EQUIVALENT, 29 ms] (195) 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 .(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 ---------------------------------------- (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 .(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 ---------------------------------------- (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 .(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 ---------------------------------------- (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 .(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 ---------------------------------------- (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 .(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 ---------------------------------------- (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 .(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 ---------------------------------------- (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)) 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 ---------------------------------------- (17) PiDPToQDPProof (SOUND) 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(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. ---------------------------------------- (19) 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 ---------------------------------------- (20) 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. ---------------------------------------- (21) 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 ---------------------------------------- (22) 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. ---------------------------------------- (23) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (24) YES ---------------------------------------- (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) 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 ---------------------------------------- (26) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (27) 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 ---------------------------------------- (28) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (29) 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. ---------------------------------------- (30) 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. ---------------------------------------- (31) NO ---------------------------------------- (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: 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 ---------------------------------------- (33) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (34) 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 ---------------------------------------- (35) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (36) 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. ---------------------------------------- (37) 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 ---------------------------------------- (38) YES ---------------------------------------- (39) 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 ---------------------------------------- (40) 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) ---------------------------------------- (41) 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 ---------------------------------------- (42) 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 ---------------------------------------- (43) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 11 less nodes. ---------------------------------------- (44) Complex Obligation (AND) ---------------------------------------- (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) 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 ---------------------------------------- (46) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (47) Obligation: Pi DP problem: The TRS P consists of the following rules: 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 ---------------------------------------- (48) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (49) Obligation: Q DP problem: The TRS P consists of the following rules: 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. ---------------------------------------- (50) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *LESS_IN_GG(s(X), s(Y)) -> LESS_IN_GG(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (51) YES ---------------------------------------- (52) Obligation: Pi DP problem: The TRS P consists of the following rules: 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 ---------------------------------------- (53) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (54) Obligation: Pi DP problem: The TRS P consists of the following rules: 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 ---------------------------------------- (55) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: 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. ---------------------------------------- (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(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 ---------------------------------------- (58) 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. ---------------------------------------- (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(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 ---------------------------------------- (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(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 ---------------------------------------- (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(x2, x3, x4) U4_AG(x1, x2, x3, x4) = U4_AG(x2, 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(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. ---------------------------------------- (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(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 ---------------------------------------- (74) YES ---------------------------------------- (75) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "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": { "44": { "goal": [ { "clause": 6, "scope": 3, "term": "(ordered ([]))" }, { "clause": 7, "scope": 3, "term": "(ordered ([]))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "88": { "goal": [{ "clause": 4, "scope": 4, "term": "(app X23 (. T15 X24) T17)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X23", "X24" ], "exprvars": [] } }, "45": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "46": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "48": { "goal": [{ "clause": 7, "scope": 3, "term": "(ordered ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "390": { "goal": [{ "clause": 2, "scope": 6, "term": "(perm T54 T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "type": "Nodes", "393": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "394": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "395": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "554": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "556": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "90": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "558": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "515": { "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": [] } }, "93": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "516": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "94": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "517": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X107 (. T82 X108) T84)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T82"], "free": [ "X107", "X108" ], "exprvars": [] } }, "518": { "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": [] } }, "52": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "98": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X63 (. T44 X64) T47)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T44"], "free": [ "X63", "X64" ], "exprvars": [] } }, "55": { "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": [] } }, "99": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "56": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "17": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (perm T7 T6) (ordered T6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "18": { "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": [] } }, "19": { "goal": [{ "clause": 1, "scope": 2, "term": "(',' (perm T7 T6) (ordered T6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "360": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T22 T23 X25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X25"], "exprvars": [] } }, "361": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (perm T54 T16) (ordered (. T15 T16)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "364": { "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": [] } }, "563": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T127 T128)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T127", "T128" ], "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": 3, "scope": 5, "term": "(app T22 T23 X25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X25"], "exprvars": [] } }, "367": { "goal": [{ "clause": 4, "scope": 5, "term": "(app T22 T23 X25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X25"], "exprvars": [] } }, "565": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "522": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T89 T90 X109)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X109"], "exprvars": [] } }, "566": { "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": [] } }, "6": { "goal": [{ "clause": 0, "scope": 1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "523": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T97 T83)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T83"], "free": [], "exprvars": [] } }, "567": { "goal": [{ "clause": 8, "scope": 9, "term": "(less T127 T128)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T127", "T128" ], "free": [], "exprvars": [] } }, "524": { "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": [] } }, "568": { "goal": [{ "clause": 9, "scope": 9, "term": "(less T127 T128)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T127", "T128" ], "free": [], "exprvars": [] } }, "525": { "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": [] } }, "569": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "526": { "goal": [{ "clause": 6, "scope": 7, "term": "(ordered (. T15 T16))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "527": { "goal": [{ "clause": 7, "scope": 7, "term": "(ordered (. T15 T16))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "528": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "529": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "20": { "goal": [{ "clause": 2, "scope": 2, "term": "(',' (perm T7 T6) (ordered T6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "370": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "371": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "372": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "570": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "571": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "572": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T140 T141)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T140", "T141" ], "free": [], "exprvars": [] } }, "573": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "376": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T71 T72 X92)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X92"], "exprvars": [] } }, "530": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "377": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "531": { "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": [] } }, "532": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "533": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T111 (s T112))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T111", "T112" ], "free": [], "exprvars": [] } }, "534": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T112 T113))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T112", "T113" ], "free": [], "exprvars": [] } }, "539": { "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": [] } }, "74": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X23 (. T15 X24) T17)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X23", "X24" ], "exprvars": [] } }, "75": { "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": [] } }, "38": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "39": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "380": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T54 T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "382": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T15 T16))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "541": { "goal": [{ "clause": 8, "scope": 8, "term": "(less T111 (s T112))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T111", "T112" ], "free": [], "exprvars": [] } }, "388": { "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": [] } }, "542": { "goal": [{ "clause": 9, "scope": 8, "term": "(less T111 (s T112))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T111", "T112" ], "free": [], "exprvars": [] } }, "389": { "goal": [{ "clause": 1, "scope": 6, "term": "(perm T54 T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "84": { "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": [] } }, "42": { "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": [] } }, "43": { "goal": [{ "clause": 5, "scope": 3, "term": "(ordered ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "87": { "goal": [{ "clause": 3, "scope": 4, "term": "(app X23 (. T15 X24) T17)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X23", "X24" ], "exprvars": [] } } }, "edges": [ { "from": 3, "to": 6, "label": "CASE" }, { "from": 6, "to": 17, "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": 17, "to": 18, "label": "CASE" }, { "from": 18, "to": 19, "label": "PARALLEL" }, { "from": 18, "to": 20, "label": "PARALLEL" }, { "from": 19, "to": 38, "label": "EVAL with clause\nperm([], []).\nand substitutionT7 -> [],\nT6 -> []" }, { "from": 19, "to": 39, "label": "EVAL-BACKTRACK" }, { "from": 20, "to": 55, "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": 20, "to": 56, "label": "EVAL-BACKTRACK" }, { "from": 38, "to": 42, "label": "CASE" }, { "from": 42, "to": 43, "label": "PARALLEL" }, { "from": 42, "to": 44, "label": "PARALLEL" }, { "from": 43, "to": 45, "label": "ONLY EVAL with clause\nordered([]).\nand substitution" }, { "from": 44, "to": 48, "label": "BACKTRACK\nfor clause: ordered(.(X1, []))because of non-unification" }, { "from": 45, "to": 46, "label": "SUCCESS" }, { "from": 48, "to": 52, "label": "BACKTRACK\nfor clause: ordered(.(X, .(Y, Xs))) :- ','(less(X, s(Y)), ordered(.(Y, Xs)))because of non-unification" }, { "from": 55, "to": 74, "label": "SPLIT 1" }, { "from": 55, "to": 75, "label": "SPLIT 2\nreplacements:X23 -> T22,\nX24 -> T23" }, { "from": 74, "to": 84, "label": "CASE" }, { "from": 75, "to": 360, "label": "SPLIT 1" }, { "from": 75, "to": 361, "label": "SPLIT 2\nreplacements:X25 -> T54" }, { "from": 84, "to": 87, "label": "PARALLEL" }, { "from": 84, "to": 88, "label": "PARALLEL" }, { "from": 87, "to": 90, "label": "EVAL with clause\napp([], X42, X42).\nand substitutionX23 -> [],\nT15 -> T36,\nX24 -> T37,\nX42 -> .(T36, T37),\nX43 -> T37,\nT17 -> .(T36, T37)" }, { "from": 87, "to": 93, "label": "EVAL-BACKTRACK" }, { "from": 88, "to": 98, "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": 88, "to": 99, "label": "EVAL-BACKTRACK" }, { "from": 90, "to": 94, "label": "SUCCESS" }, { "from": 98, "to": 74, "label": "INSTANCE with matching:\nX23 -> X63\nT15 -> T44\nX24 -> X64\nT17 -> T47" }, { "from": 360, "to": 364, "label": "CASE" }, { "from": 361, "to": 380, "label": "SPLIT 1" }, { "from": 361, "to": 382, "label": "SPLIT 2\nnew knowledge:\nT16 is ground" }, { "from": 364, "to": 366, "label": "PARALLEL" }, { "from": 364, "to": 367, "label": "PARALLEL" }, { "from": 366, "to": 370, "label": "EVAL with clause\napp([], X77, X77).\nand substitutionT22 -> [],\nT23 -> T61,\nX77 -> T61,\nX25 -> T61" }, { "from": 366, "to": 371, "label": "EVAL-BACKTRACK" }, { "from": 367, "to": 376, "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": 367, "to": 377, "label": "EVAL-BACKTRACK" }, { "from": 370, "to": 372, "label": "SUCCESS" }, { "from": 376, "to": 360, "label": "INSTANCE with matching:\nT22 -> T71\nT23 -> T72\nX25 -> X92" }, { "from": 380, "to": 388, "label": "CASE" }, { "from": 382, "to": 524, "label": "CASE" }, { "from": 388, "to": 389, "label": "PARALLEL" }, { "from": 388, "to": 390, "label": "PARALLEL" }, { "from": 389, "to": 393, "label": "EVAL with clause\nperm([], []).\nand substitutionT54 -> [],\nT16 -> []" }, { "from": 389, "to": 394, "label": "EVAL-BACKTRACK" }, { "from": 390, "to": 515, "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": 390, "to": 516, "label": "EVAL-BACKTRACK" }, { "from": 393, "to": 395, "label": "SUCCESS" }, { "from": 515, "to": 517, "label": "SPLIT 1" }, { "from": 515, "to": 518, "label": "SPLIT 2\nreplacements:X107 -> T89,\nX108 -> T90" }, { "from": 517, "to": 74, "label": "INSTANCE with matching:\nX23 -> X107\nT15 -> T82\nX24 -> X108\nT17 -> T84" }, { "from": 518, "to": 522, "label": "SPLIT 1" }, { "from": 518, "to": 523, "label": "SPLIT 2\nreplacements:X109 -> T97" }, { "from": 522, "to": 360, "label": "INSTANCE with matching:\nT22 -> T89\nT23 -> T90\nX25 -> X109" }, { "from": 523, "to": 380, "label": "INSTANCE with matching:\nT54 -> T97\nT16 -> T83" }, { "from": 524, "to": 525, "label": "BACKTRACK\nfor clause: ordered([])because of non-unification" }, { "from": 525, "to": 526, "label": "PARALLEL" }, { "from": 525, "to": 527, "label": "PARALLEL" }, { "from": 526, "to": 528, "label": "EVAL with clause\nordered(.(X126, [])).\nand substitutionT15 -> T104,\nX126 -> T104,\nT16 -> []" }, { "from": 526, "to": 529, "label": "EVAL-BACKTRACK" }, { "from": 527, "to": 531, "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": 527, "to": 532, "label": "EVAL-BACKTRACK" }, { "from": 528, "to": 530, "label": "SUCCESS" }, { "from": 531, "to": 533, "label": "SPLIT 1" }, { "from": 531, "to": 534, "label": "SPLIT 2\nnew knowledge:\nT111 is ground\nT112 is ground" }, { "from": 533, "to": 539, "label": "CASE" }, { "from": 534, "to": 382, "label": "INSTANCE with matching:\nT15 -> T112\nT16 -> T113" }, { "from": 539, "to": 541, "label": "PARALLEL" }, { "from": 539, "to": 542, "label": "PARALLEL" }, { "from": 541, "to": 554, "label": "EVAL with clause\nless(0, s(X144)).\nand substitutionT111 -> 0,\nT112 -> T122,\nX144 -> T122" }, { "from": 541, "to": 556, "label": "EVAL-BACKTRACK" }, { "from": 542, "to": 563, "label": "EVAL with clause\nless(s(X149), s(X150)) :- less(X149, X150).\nand substitutionX149 -> T127,\nT111 -> s(T127),\nT112 -> T128,\nX150 -> T128" }, { "from": 542, "to": 565, "label": "EVAL-BACKTRACK" }, { "from": 554, "to": 558, "label": "SUCCESS" }, { "from": 563, "to": 566, "label": "CASE" }, { "from": 566, "to": 567, "label": "PARALLEL" }, { "from": 566, "to": 568, "label": "PARALLEL" }, { "from": 567, "to": 569, "label": "EVAL with clause\nless(0, s(X157)).\nand substitutionT127 -> 0,\nX157 -> T135,\nT128 -> s(T135)" }, { "from": 567, "to": 570, "label": "EVAL-BACKTRACK" }, { "from": 568, "to": 572, "label": "EVAL with clause\nless(s(X162), s(X163)) :- less(X162, X163).\nand substitutionX162 -> T140,\nT127 -> s(T140),\nX163 -> T141,\nT128 -> s(T141)" }, { "from": 568, "to": 573, "label": "EVAL-BACKTRACK" }, { "from": 569, "to": 571, "label": "SUCCESS" }, { "from": 572, "to": 563, "label": "INSTANCE with matching:\nT127 -> T140\nT128 -> T141" } ], "type": "Graph" } } ---------------------------------------- (76) 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) ---------------------------------------- (77) 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 ---------------------------------------- (78) 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 ---------------------------------------- (79) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 5 SCCs with 22 less nodes. ---------------------------------------- (80) Complex Obligation (AND) ---------------------------------------- (81) 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 ---------------------------------------- (82) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (83) 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 ---------------------------------------- (84) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (85) 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. ---------------------------------------- (86) 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 ---------------------------------------- (87) YES ---------------------------------------- (88) 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 ---------------------------------------- (89) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (90) Obligation: Pi DP problem: The TRS P consists of the following rules: 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 ---------------------------------------- (91) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (92) Obligation: Q DP problem: The TRS P consists of the following rules: 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. ---------------------------------------- (93) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *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 ---------------------------------------- (94) YES ---------------------------------------- (95) 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 ---------------------------------------- (96) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (97) Obligation: Pi DP problem: The TRS P consists of the following rules: 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 ---------------------------------------- (98) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (99) Obligation: Q DP problem: The TRS P consists of the following rules: APPB_IN_AAA -> APPB_IN_AAA R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (100) 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. ---------------------------------------- (101) NO ---------------------------------------- (102) 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 ---------------------------------------- (103) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (104) 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 ---------------------------------------- (105) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (106) 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. ---------------------------------------- (107) 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 ---------------------------------------- (108) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (109) 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 ---------------------------------------- (110) 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": { "89": { "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": [] } }, "47": { "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": [] } }, "49": { "goal": [{ "clause": 1, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "391": { "goal": [{ "clause": 6, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "type": "Nodes", "392": { "goal": [{ "clause": 7, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "396": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "550": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "397": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "398": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "510": { "goal": [{ "clause": 8, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "511": { "goal": [{ "clause": 9, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "555": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T118 T119)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T118", "T119" ], "free": [], "exprvars": [] } }, "557": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "91": { "goal": [{ "clause": 3, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "92": { "goal": [{ "clause": 4, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "50": { "goal": [{ "clause": 2, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "51": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "95": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "96": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "519": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "53": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "97": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "54": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "57": { "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": [] } }, "58": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "362": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "363": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T57 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "365": { "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": [] } }, "520": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "521": { "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": 3, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "401": { "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": [] } }, "369": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "403": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "373": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "374": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "375": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "378": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T74 T75 X90)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X90"], "exprvars": [] } }, "379": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "535": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "536": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "36": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (perm T10 T9) (ordered T9))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "381": { "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": [] } }, "383": { "goal": [{ "clause": 5, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "384": { "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": [] } }, "385": { "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 X61 (. T47 X62) T50)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T47"], "free": [ "X61", "X62" ], "exprvars": [] } }, "386": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "387": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "345": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "543": { "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": [] } }, "544": { "goal": [{ "clause": 8, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "545": { "goal": [{ "clause": 9, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "548": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "505": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "549": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "506": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T90 T91))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T90", "T91" ], "free": [], "exprvars": [] } }, "40": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "507": { "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": [] } }, "41": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "85": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "86": { "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": [] } } }, "edges": [ { "from": 1, "to": 5, "label": "CASE" }, { "from": 5, "to": 36, "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": 36, "to": 40, "label": "SPLIT 1" }, { "from": 36, "to": 41, "label": "SPLIT 2\nnew knowledge:\nT9 is ground" }, { "from": 40, "to": 47, "label": "CASE" }, { "from": 41, "to": 381, "label": "CASE" }, { "from": 47, "to": 49, "label": "PARALLEL" }, { "from": 47, "to": 50, "label": "PARALLEL" }, { "from": 49, "to": 51, "label": "EVAL with clause\nperm([], []).\nand substitutionT10 -> [],\nT9 -> []" }, { "from": 49, "to": 53, "label": "EVAL-BACKTRACK" }, { "from": 50, "to": 57, "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": 50, "to": 58, "label": "EVAL-BACKTRACK" }, { "from": 51, "to": 54, "label": "SUCCESS" }, { "from": 57, "to": 85, "label": "SPLIT 1" }, { "from": 57, "to": 86, "label": "SPLIT 2\nreplacements:X21 -> T25,\nX22 -> T26" }, { "from": 85, "to": 89, "label": "CASE" }, { "from": 86, "to": 362, "label": "SPLIT 1" }, { "from": 86, "to": 363, "label": "SPLIT 2\nreplacements:X23 -> T57" }, { "from": 89, "to": 91, "label": "PARALLEL" }, { "from": 89, "to": 92, "label": "PARALLEL" }, { "from": 91, "to": 95, "label": "EVAL with clause\napp([], X40, X40).\nand substitutionX21 -> [],\nT18 -> T39,\nX22 -> T40,\nX40 -> .(T39, T40),\nX41 -> T40,\nT20 -> .(T39, T40)" }, { "from": 91, "to": 96, "label": "EVAL-BACKTRACK" }, { "from": 92, "to": 342, "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": 92, "to": 345, "label": "EVAL-BACKTRACK" }, { "from": 95, "to": 97, "label": "SUCCESS" }, { "from": 342, "to": 85, "label": "INSTANCE with matching:\nX21 -> X61\nT18 -> T47\nX22 -> X62\nT20 -> T50" }, { "from": 362, "to": 365, "label": "CASE" }, { "from": 363, "to": 40, "label": "INSTANCE with matching:\nT10 -> T57\nT9 -> T19" }, { "from": 365, "to": 368, "label": "PARALLEL" }, { "from": 365, "to": 369, "label": "PARALLEL" }, { "from": 368, "to": 373, "label": "EVAL with clause\napp([], X75, X75).\nand substitutionT25 -> [],\nT26 -> T64,\nX75 -> T64,\nX23 -> T64" }, { "from": 368, "to": 374, "label": "EVAL-BACKTRACK" }, { "from": 369, "to": 378, "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": 369, "to": 379, "label": "EVAL-BACKTRACK" }, { "from": 373, "to": 375, "label": "SUCCESS" }, { "from": 378, "to": 362, "label": "INSTANCE with matching:\nT25 -> T74\nT26 -> T75\nX23 -> X90" }, { "from": 381, "to": 383, "label": "PARALLEL" }, { "from": 381, "to": 384, "label": "PARALLEL" }, { "from": 383, "to": 385, "label": "EVAL with clause\nordered([]).\nand substitutionT9 -> []" }, { "from": 383, "to": 386, "label": "EVAL-BACKTRACK" }, { "from": 384, "to": 391, "label": "PARALLEL" }, { "from": 384, "to": 392, "label": "PARALLEL" }, { "from": 385, "to": 387, "label": "SUCCESS" }, { "from": 391, "to": 396, "label": "EVAL with clause\nordered(.(X97, [])).\nand substitutionX97 -> T82,\nT9 -> .(T82, [])" }, { "from": 391, "to": 397, "label": "EVAL-BACKTRACK" }, { "from": 392, "to": 401, "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": 392, "to": 403, "label": "EVAL-BACKTRACK" }, { "from": 396, "to": 398, "label": "SUCCESS" }, { "from": 401, "to": 505, "label": "SPLIT 1" }, { "from": 401, "to": 506, "label": "SPLIT 2\nnew knowledge:\nT89 is ground\nT90 is ground" }, { "from": 505, "to": 507, "label": "CASE" }, { "from": 506, "to": 41, "label": "INSTANCE with matching:\nT9 -> .(T90, T91)" }, { "from": 507, "to": 510, "label": "PARALLEL" }, { "from": 507, "to": 511, "label": "PARALLEL" }, { "from": 510, "to": 519, "label": "EVAL with clause\nless(0, s(X115)).\nand substitutionT89 -> 0,\nT90 -> T100,\nX115 -> T100" }, { "from": 510, "to": 520, "label": "EVAL-BACKTRACK" }, { "from": 511, "to": 535, "label": "EVAL with clause\nless(s(X120), s(X121)) :- less(X120, X121).\nand substitutionX120 -> T105,\nT89 -> s(T105),\nT90 -> T106,\nX121 -> T106" }, { "from": 511, "to": 536, "label": "EVAL-BACKTRACK" }, { "from": 519, "to": 521, "label": "SUCCESS" }, { "from": 535, "to": 543, "label": "CASE" }, { "from": 543, "to": 544, "label": "PARALLEL" }, { "from": 543, "to": 545, "label": "PARALLEL" }, { "from": 544, "to": 548, "label": "EVAL with clause\nless(0, s(X128)).\nand substitutionT105 -> 0,\nX128 -> T113,\nT106 -> s(T113)" }, { "from": 544, "to": 549, "label": "EVAL-BACKTRACK" }, { "from": 545, "to": 555, "label": "EVAL with clause\nless(s(X133), s(X134)) :- less(X133, X134).\nand substitutionX133 -> T118,\nT105 -> s(T118),\nX134 -> T119,\nT106 -> s(T119)" }, { "from": 545, "to": 557, "label": "EVAL-BACKTRACK" }, { "from": 548, "to": 550, "label": "SUCCESS" }, { "from": 555, "to": 535, "label": "INSTANCE with matching:\nT105 -> T118\nT106 -> T119" } ], "type": "Graph" } } ---------------------------------------- (111) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 Q is empty. ---------------------------------------- (112) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (113) Obligation: Q DP problem: The TRS P consists of the following rules: F1_IN(T9) -> U1^1(f36_in(T9), T9) F1_IN(T9) -> F36_IN(T9) F85_IN(T47) -> U2^1(f85_in(T47), T47) F85_IN(T47) -> F85_IN(T47) F40_IN(.(T18, T19)) -> U3^1(f57_in(T18, T19), .(T18, T19)) F40_IN(.(T18, T19)) -> F57_IN(T18, T19) F362_IN -> U4^1(f362_in) F362_IN -> F362_IN F41_IN(.(T89, .(T90, T91))) -> U5^1(f401_in(T89, T90, T91), .(T89, .(T90, T91))) F41_IN(.(T89, .(T90, T91))) -> F401_IN(T89, T90, T91) F535_IN(s(T118), s(T119)) -> U6^1(f535_in(T118, T119), s(T118), s(T119)) F535_IN(s(T118), s(T119)) -> F535_IN(T118, T119) F505_IN(s(T105), T106) -> U7^1(f535_in(T105, T106), s(T105), T106) F505_IN(s(T105), T106) -> F535_IN(T105, T106) F36_IN(T9) -> U8^1(f40_in(T9), T9) F36_IN(T9) -> F40_IN(T9) U8^1(f40_out1, T9) -> U9^1(f41_in(T9), T9) U8^1(f40_out1, T9) -> F41_IN(T9) F57_IN(T18, T19) -> U10^1(f85_in(T18), T18, T19) F57_IN(T18, T19) -> F85_IN(T18) U10^1(f85_out1, T18, T19) -> U11^1(f86_in(T19), T18, T19) U10^1(f85_out1, T18, T19) -> F86_IN(T19) F86_IN(T19) -> U12^1(f362_in, T19) F86_IN(T19) -> F362_IN U12^1(f362_out1, T19) -> U13^1(f40_in(T19), T19) U12^1(f362_out1, T19) -> F40_IN(T19) F401_IN(T89, T90, T91) -> U14^1(f505_in(T89, T90), T89, T90, T91) F401_IN(T89, T90, T91) -> F505_IN(T89, T90) U14^1(f505_out1, T89, T90, T91) -> U15^1(f41_in(.(T90, T91)), T89, T90, T91) U14^1(f505_out1, T89, T90, T91) -> F41_IN(.(T90, T91)) The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (114) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 5 SCCs with 19 less nodes. ---------------------------------------- (115) Complex Obligation (AND) ---------------------------------------- (116) Obligation: Q DP problem: The TRS P consists of the following rules: F535_IN(s(T118), s(T119)) -> F535_IN(T118, T119) The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (117) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (118) Obligation: Q DP problem: The TRS P consists of the following rules: F535_IN(s(T118), s(T119)) -> F535_IN(T118, T119) The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 The set Q consists of the following terms: f1_in(x0) U1(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (119) 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. ---------------------------------------- (120) Obligation: Q DP problem: The TRS P consists of the following rules: F535_IN(s(T118), s(T119)) -> F535_IN(T118, T119) R is empty. The set Q consists of the following terms: f1_in(x0) U1(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (121) 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(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) ---------------------------------------- (122) Obligation: Q DP problem: The TRS P consists of the following rules: F535_IN(s(T118), s(T119)) -> F535_IN(T118, T119) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (123) 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: *F535_IN(s(T118), s(T119)) -> F535_IN(T118, T119) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (124) YES ---------------------------------------- (125) Obligation: Q DP problem: The TRS P consists of the following rules: F41_IN(.(T89, .(T90, T91))) -> F401_IN(T89, T90, T91) F401_IN(T89, T90, T91) -> U14^1(f505_in(T89, T90), T89, T90, T91) U14^1(f505_out1, T89, T90, T91) -> F41_IN(.(T90, T91)) The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (126) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (127) Obligation: Q DP problem: The TRS P consists of the following rules: F41_IN(.(T89, .(T90, T91))) -> F401_IN(T89, T90, T91) F401_IN(T89, T90, T91) -> U14^1(f505_in(T89, T90), T89, T90, T91) U14^1(f505_out1, T89, T90, T91) -> F41_IN(.(T90, T91)) The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 The set Q consists of the following terms: f1_in(x0) U1(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (128) 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. ---------------------------------------- (129) Obligation: Q DP problem: The TRS P consists of the following rules: F41_IN(.(T89, .(T90, T91))) -> F401_IN(T89, T90, T91) F401_IN(T89, T90, T91) -> U14^1(f505_in(T89, T90), T89, T90, T91) U14^1(f505_out1, T89, T90, T91) -> F41_IN(.(T90, T91)) The TRS R consists of the following rules: f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U7(f535_out1, s(T105), T106) -> f505_out1 U6(f535_out1, s(T118), s(T119)) -> f535_out1 The set Q consists of the following terms: f1_in(x0) U1(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (130) 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(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) ---------------------------------------- (131) Obligation: Q DP problem: The TRS P consists of the following rules: F41_IN(.(T89, .(T90, T91))) -> F401_IN(T89, T90, T91) F401_IN(T89, T90, T91) -> U14^1(f505_in(T89, T90), T89, T90, T91) U14^1(f505_out1, T89, T90, T91) -> F41_IN(.(T90, T91)) The TRS R consists of the following rules: f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U7(f535_out1, s(T105), T106) -> f505_out1 U6(f535_out1, s(T118), s(T119)) -> f535_out1 The set Q consists of the following terms: f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (132) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. F41_IN(.(T89, .(T90, T91))) -> F401_IN(T89, T90, T91) U14^1(f505_out1, T89, T90, T91) -> F41_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( f505_in_2(x_1, x_2) ) = x_1 POL( 0 ) = 2 POL( f505_out1 ) = 2 POL( s_1(x_1) ) = x_1 + 2 POL( U7_3(x_1, ..., x_3) ) = x_1 + 1 POL( f535_in_2(x_1, x_2) ) = x_1 POL( f535_out1 ) = 1 POL( U6_3(x_1, ..., x_3) ) = 2 POL( F41_IN_1(x_1) ) = 2x_1 + 1 POL( ._2(x_1, x_2) ) = x_1 + x_2 + 2 POL( F401_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: f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U7(f535_out1, s(T105), T106) -> f505_out1 U6(f535_out1, s(T118), s(T119)) -> f535_out1 ---------------------------------------- (133) Obligation: Q DP problem: The TRS P consists of the following rules: F401_IN(T89, T90, T91) -> U14^1(f505_in(T89, T90), T89, T90, T91) The TRS R consists of the following rules: f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U7(f535_out1, s(T105), T106) -> f505_out1 U6(f535_out1, s(T118), s(T119)) -> f535_out1 The set Q consists of the following terms: f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (134) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node. ---------------------------------------- (135) TRUE ---------------------------------------- (136) Obligation: Q DP problem: The TRS P consists of the following rules: F362_IN -> F362_IN The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (137) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (138) Obligation: Q DP problem: The TRS P consists of the following rules: F362_IN -> F362_IN The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 The set Q consists of the following terms: f1_in(x0) U1(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (139) 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. ---------------------------------------- (140) Obligation: Q DP problem: The TRS P consists of the following rules: F362_IN -> F362_IN R is empty. The set Q consists of the following terms: f1_in(x0) U1(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (141) 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(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) ---------------------------------------- (142) Obligation: Q DP problem: The TRS P consists of the following rules: F362_IN -> F362_IN R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (143) 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 = F362_IN evaluates to t =F362_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 F362_IN to F362_IN. ---------------------------------------- (144) NO ---------------------------------------- (145) Obligation: Q DP problem: The TRS P consists of the following rules: F85_IN(T47) -> F85_IN(T47) The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (146) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (147) Obligation: Q DP problem: The TRS P consists of the following rules: F85_IN(T47) -> F85_IN(T47) The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 The set Q consists of the following terms: f1_in(x0) U1(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (148) 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. ---------------------------------------- (149) Obligation: Q DP problem: The TRS P consists of the following rules: F85_IN(T47) -> F85_IN(T47) R is empty. The set Q consists of the following terms: f1_in(x0) U1(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (150) 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(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) ---------------------------------------- (151) Obligation: Q DP problem: The TRS P consists of the following rules: F85_IN(T47) -> F85_IN(T47) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (152) 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 = F85_IN(T47) evaluates to t =F85_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 F85_IN(T47) to F85_IN(T47). ---------------------------------------- (153) NO ---------------------------------------- (154) Obligation: Q DP problem: The TRS P consists of the following rules: F57_IN(T18, T19) -> U10^1(f85_in(T18), T18, T19) U10^1(f85_out1, T18, T19) -> F86_IN(T19) F86_IN(T19) -> U12^1(f362_in, T19) U12^1(f362_out1, T19) -> F40_IN(T19) F40_IN(.(T18, T19)) -> F57_IN(T18, T19) The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (155) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (156) Obligation: Q DP problem: The TRS P consists of the following rules: F57_IN(T18, T19) -> U10^1(f85_in(T18), T18, T19) U10^1(f85_out1, T18, T19) -> F86_IN(T19) F86_IN(T19) -> U12^1(f362_in, T19) U12^1(f362_out1, T19) -> F40_IN(T19) F40_IN(.(T18, T19)) -> F57_IN(T18, T19) The TRS R consists of the following rules: f1_in(T9) -> U1(f36_in(T9), T9) U1(f36_out1, T9) -> f1_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 f40_in([]) -> f40_out1 f40_in(.(T18, T19)) -> U3(f57_in(T18, T19), .(T18, T19)) U3(f57_out1, .(T18, T19)) -> f40_out1 f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f41_in([]) -> f41_out1 f41_in(.(T82, [])) -> f41_out1 f41_in(.(T89, .(T90, T91))) -> U5(f401_in(T89, T90, T91), .(T89, .(T90, T91))) U5(f401_out1, .(T89, .(T90, T91))) -> f41_out1 f535_in(0, s(T113)) -> f535_out1 f535_in(s(T118), s(T119)) -> U6(f535_in(T118, T119), s(T118), s(T119)) U6(f535_out1, s(T118), s(T119)) -> f535_out1 f505_in(0, T100) -> f505_out1 f505_in(s(T105), T106) -> U7(f535_in(T105, T106), s(T105), T106) U7(f535_out1, s(T105), T106) -> f505_out1 f36_in(T9) -> U8(f40_in(T9), T9) U8(f40_out1, T9) -> U9(f41_in(T9), T9) U9(f41_out1, T9) -> f36_out1 f57_in(T18, T19) -> U10(f85_in(T18), T18, T19) U10(f85_out1, T18, T19) -> U11(f86_in(T19), T18, T19) U11(f86_out1, T18, T19) -> f57_out1 f86_in(T19) -> U12(f362_in, T19) U12(f362_out1, T19) -> U13(f40_in(T19), T19) U13(f40_out1, T19) -> f86_out1 f401_in(T89, T90, T91) -> U14(f505_in(T89, T90), T89, T90, T91) U14(f505_out1, T89, T90, T91) -> U15(f41_in(.(T90, T91)), T89, T90, T91) U15(f41_out1, T89, T90, T91) -> f401_out1 The set Q consists of the following terms: f1_in(x0) U1(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (157) 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. ---------------------------------------- (158) Obligation: Q DP problem: The TRS P consists of the following rules: F57_IN(T18, T19) -> U10^1(f85_in(T18), T18, T19) U10^1(f85_out1, T18, T19) -> F86_IN(T19) F86_IN(T19) -> U12^1(f362_in, T19) U12^1(f362_out1, T19) -> F40_IN(T19) F40_IN(.(T18, T19)) -> F57_IN(T18, T19) The TRS R consists of the following rules: f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 The set Q consists of the following terms: f1_in(x0) U1(f36_out1, x0) f85_in(x0) U2(f85_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f362_in U4(f362_out1) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (159) 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(f36_out1, x0) f40_in([]) f40_in(.(x0, x1)) U3(f57_out1, .(x0, x1)) f41_in([]) f41_in(.(x0, [])) f41_in(.(x0, .(x1, x2))) U5(f401_out1, .(x0, .(x1, x2))) f535_in(0, s(x0)) f535_in(s(x0), s(x1)) U6(f535_out1, s(x0), s(x1)) f505_in(0, x0) f505_in(s(x0), x1) U7(f535_out1, s(x0), x1) f36_in(x0) U8(f40_out1, x0) U9(f41_out1, x0) f57_in(x0, x1) U10(f85_out1, x0, x1) U11(f86_out1, x0, x1) f86_in(x0) U12(f362_out1, x0) U13(f40_out1, x0) f401_in(x0, x1, x2) U14(f505_out1, x0, x1, x2) U15(f41_out1, x0, x1, x2) ---------------------------------------- (160) Obligation: Q DP problem: The TRS P consists of the following rules: F57_IN(T18, T19) -> U10^1(f85_in(T18), T18, T19) U10^1(f85_out1, T18, T19) -> F86_IN(T19) F86_IN(T19) -> U12^1(f362_in, T19) U12^1(f362_out1, T19) -> F40_IN(T19) F40_IN(.(T18, T19)) -> F57_IN(T18, T19) The TRS R consists of the following rules: f362_in -> f362_out1 f362_in -> U4(f362_in) U4(f362_out1) -> f362_out1 f85_in(T39) -> f85_out1 f85_in(T47) -> U2(f85_in(T47), T47) U2(f85_out1, T47) -> f85_out1 The set Q consists of the following terms: f85_in(x0) U2(f85_out1, x0) f362_in U4(f362_out1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (161) 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(f85_out1, T18, T19) -> F86_IN(T19) The graph contains the following edges 3 >= 1 *F40_IN(.(T18, T19)) -> F57_IN(T18, T19) The graph contains the following edges 1 > 1, 1 > 2 *F86_IN(T19) -> U12^1(f362_in, T19) The graph contains the following edges 1 >= 2 *F57_IN(T18, T19) -> U10^1(f85_in(T18), T18, T19) The graph contains the following edges 1 >= 2, 2 >= 3 *U12^1(f362_out1, T19) -> F40_IN(T19) The graph contains the following edges 2 >= 1 ---------------------------------------- (162) YES ---------------------------------------- (163) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 2, "program": { "directives": [], "clauses": [ [ "(ss Xs Ys)", "(',' (perm Xs Ys) (ordered Ys))" ], [ "(perm ([]) ([]))", null ], [ "(perm Xs (. X Ys))", "(',' (app X1s (. X X2s) Xs) (',' (app X1s X2s Zs) (perm Zs Ys)))" ], [ "(app ([]) X X)", null ], [ "(app (. X Xs) Ys (. X Zs))", "(app Xs Ys Zs)" ], [ "(ordered ([]))", null ], [ "(ordered (. X1 ([])))", null ], [ "(ordered (. X (. Y Xs)))", "(',' (less X (s Y)) (ordered (. Y Xs)))" ], [ "(less (0) (s X2))", null ], [ "(less (s X) (s Y))", "(less X Y)" ] ] }, "graph": { "nodes": { "type": "Nodes", "350": { "goal": [{ "clause": 3, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "351": { "goal": [{ "clause": 4, "scope": 3, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "352": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "353": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "430": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "551": { "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": [] } }, "354": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "431": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "552": { "goal": [{ "clause": 8, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "355": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X61 (. T47 X62) T50)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T47"], "free": [ "X61", "X62" ], "exprvars": [] } }, "553": { "goal": [{ "clause": 9, "scope": 7, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "356": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "477": { "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": [] } }, "512": { "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": [] } }, "436": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "513": { "goal": [{ "clause": 8, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "514": { "goal": [{ "clause": 9, "scope": 6, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "438": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "559": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "480": { "goal": [{ "clause": 5, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "481": { "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": [] } }, "560": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "440": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "484": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "561": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "562": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T118 T119)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T118", "T119" ], "free": [], "exprvars": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "486": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "564": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4": { "goal": [{ "clause": 0, "scope": 1, "term": "(ss T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "488": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "494": { "goal": [{ "clause": 6, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "496": { "goal": [{ "clause": 7, "scope": 5, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "454": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T74 T75 X90)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X90"], "exprvars": [] } }, "457": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "415": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T25 T26 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X23"], "exprvars": [] } }, "416": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T57 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "537": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "538": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "76": { "goal": [{ "clause": -1, "scope": -1, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "77": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "78": { "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": [] } }, "79": { "goal": [{ "clause": 1, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "37": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (perm T10 T9) (ordered T9))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "340": { "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": [] } }, "341": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "540": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "343": { "goal": [{ "clause": -1, "scope": -1, "term": "(app X21 (. T18 X22) T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [ "X21", "X22" ], "exprvars": [] } }, "344": { "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": [] } }, "500": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "347": { "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": [] } }, "501": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "425": { "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": [] } }, "502": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "546": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T105 T106)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T105", "T106" ], "free": [], "exprvars": [] } }, "80": { "goal": [{ "clause": 2, "scope": 2, "term": "(perm T10 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "503": { "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": [] } }, "547": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "81": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "504": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "82": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "83": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "508": { "goal": [{ "clause": -1, "scope": -1, "term": "(less T89 (s T90))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T89", "T90" ], "free": [], "exprvars": [] } }, "509": { "goal": [{ "clause": -1, "scope": -1, "term": "(ordered (. T90 T91))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T90", "T91" ], "free": [], "exprvars": [] } } }, "edges": [ { "from": 2, "to": 4, "label": "CASE" }, { "from": 4, "to": 37, "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": 37, "to": 76, "label": "SPLIT 1" }, { "from": 37, "to": 77, "label": "SPLIT 2\nnew knowledge:\nT9 is ground" }, { "from": 76, "to": 78, "label": "CASE" }, { "from": 77, "to": 477, "label": "CASE" }, { "from": 78, "to": 79, "label": "PARALLEL" }, { "from": 78, "to": 80, "label": "PARALLEL" }, { "from": 79, "to": 81, "label": "EVAL with clause\nperm([], []).\nand substitutionT10 -> [],\nT9 -> []" }, { "from": 79, "to": 82, "label": "EVAL-BACKTRACK" }, { "from": 80, "to": 340, "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": 80, "to": 341, "label": "EVAL-BACKTRACK" }, { "from": 81, "to": 83, "label": "SUCCESS" }, { "from": 340, "to": 343, "label": "SPLIT 1" }, { "from": 340, "to": 344, "label": "SPLIT 2\nreplacements:X21 -> T25,\nX22 -> T26" }, { "from": 343, "to": 347, "label": "CASE" }, { "from": 344, "to": 415, "label": "SPLIT 1" }, { "from": 344, "to": 416, "label": "SPLIT 2\nreplacements:X23 -> T57" }, { "from": 347, "to": 350, "label": "PARALLEL" }, { "from": 347, "to": 351, "label": "PARALLEL" }, { "from": 350, "to": 352, "label": "EVAL with clause\napp([], X40, X40).\nand substitutionX21 -> [],\nT18 -> T39,\nX22 -> T40,\nX40 -> .(T39, T40),\nX41 -> T40,\nT20 -> .(T39, T40)" }, { "from": 350, "to": 353, "label": "EVAL-BACKTRACK" }, { "from": 351, "to": 355, "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": 351, "to": 356, "label": "EVAL-BACKTRACK" }, { "from": 352, "to": 354, "label": "SUCCESS" }, { "from": 355, "to": 343, "label": "INSTANCE with matching:\nX21 -> X61\nT18 -> T47\nX22 -> X62\nT20 -> T50" }, { "from": 415, "to": 425, "label": "CASE" }, { "from": 416, "to": 76, "label": "INSTANCE with matching:\nT10 -> T57\nT9 -> T19" }, { "from": 425, "to": 430, "label": "PARALLEL" }, { "from": 425, "to": 431, "label": "PARALLEL" }, { "from": 430, "to": 436, "label": "EVAL with clause\napp([], X75, X75).\nand substitutionT25 -> [],\nT26 -> T64,\nX75 -> T64,\nX23 -> T64" }, { "from": 430, "to": 438, "label": "EVAL-BACKTRACK" }, { "from": 431, "to": 454, "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": 431, "to": 457, "label": "EVAL-BACKTRACK" }, { "from": 436, "to": 440, "label": "SUCCESS" }, { "from": 454, "to": 415, "label": "INSTANCE with matching:\nT25 -> T74\nT26 -> T75\nX23 -> X90" }, { "from": 477, "to": 480, "label": "PARALLEL" }, { "from": 477, "to": 481, "label": "PARALLEL" }, { "from": 480, "to": 484, "label": "EVAL with clause\nordered([]).\nand substitutionT9 -> []" }, { "from": 480, "to": 486, "label": "EVAL-BACKTRACK" }, { "from": 481, "to": 494, "label": "PARALLEL" }, { "from": 481, "to": 496, "label": "PARALLEL" }, { "from": 484, "to": 488, "label": "SUCCESS" }, { "from": 494, "to": 500, "label": "EVAL with clause\nordered(.(X97, [])).\nand substitutionX97 -> T82,\nT9 -> .(T82, [])" }, { "from": 494, "to": 501, "label": "EVAL-BACKTRACK" }, { "from": 496, "to": 503, "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": 496, "to": 504, "label": "EVAL-BACKTRACK" }, { "from": 500, "to": 502, "label": "SUCCESS" }, { "from": 503, "to": 508, "label": "SPLIT 1" }, { "from": 503, "to": 509, "label": "SPLIT 2\nnew knowledge:\nT89 is ground\nT90 is ground" }, { "from": 508, "to": 512, "label": "CASE" }, { "from": 509, "to": 77, "label": "INSTANCE with matching:\nT9 -> .(T90, T91)" }, { "from": 512, "to": 513, "label": "PARALLEL" }, { "from": 512, "to": 514, "label": "PARALLEL" }, { "from": 513, "to": 537, "label": "EVAL with clause\nless(0, s(X115)).\nand substitutionT89 -> 0,\nT90 -> T100,\nX115 -> T100" }, { "from": 513, "to": 538, "label": "EVAL-BACKTRACK" }, { "from": 514, "to": 546, "label": "EVAL with clause\nless(s(X120), s(X121)) :- less(X120, X121).\nand substitutionX120 -> T105,\nT89 -> s(T105),\nT90 -> T106,\nX121 -> T106" }, { "from": 514, "to": 547, "label": "EVAL-BACKTRACK" }, { "from": 537, "to": 540, "label": "SUCCESS" }, { "from": 546, "to": 551, "label": "CASE" }, { "from": 551, "to": 552, "label": "PARALLEL" }, { "from": 551, "to": 553, "label": "PARALLEL" }, { "from": 552, "to": 559, "label": "EVAL with clause\nless(0, s(X128)).\nand substitutionT105 -> 0,\nX128 -> T113,\nT106 -> s(T113)" }, { "from": 552, "to": 560, "label": "EVAL-BACKTRACK" }, { "from": 553, "to": 562, "label": "EVAL with clause\nless(s(X133), s(X134)) :- less(X133, X134).\nand substitutionX133 -> T118,\nT105 -> s(T118),\nX134 -> T119,\nT106 -> s(T119)" }, { "from": 553, "to": 564, "label": "EVAL-BACKTRACK" }, { "from": 559, "to": 561, "label": "SUCCESS" }, { "from": 562, "to": 546, "label": "INSTANCE with matching:\nT105 -> T118\nT106 -> T119" } ], "type": "Graph" } } ---------------------------------------- (164) Complex Obligation (AND) ---------------------------------------- (165) Obligation: Rules: f546_out(T118, T119) -> f562_out(T118, T119) :|: TRUE f562_in(x, x1) -> f546_in(x, x1) :|: TRUE f551_in(T105, T106) -> f553_in(T105, T106) :|: TRUE f553_out(x2, x3) -> f551_out(x2, x3) :|: TRUE f552_out(x4, x5) -> f551_out(x4, x5) :|: TRUE f551_in(x6, x7) -> f552_in(x6, x7) :|: TRUE f551_out(x8, x9) -> f546_out(x8, x9) :|: TRUE f546_in(x10, x11) -> f551_in(x10, x11) :|: TRUE f562_out(x12, x13) -> f553_out(s(x12), s(x13)) :|: TRUE f564_out -> f553_out(x14, x15) :|: TRUE f553_in(x16, x17) -> f564_in :|: TRUE f553_in(s(x18), s(x19)) -> f562_in(x18, x19) :|: TRUE f2_in(T2) -> f4_in(T2) :|: TRUE f4_out(x20) -> f2_out(x20) :|: TRUE f4_in(T9) -> f37_in(T9) :|: TRUE f37_out(x21) -> f4_out(x21) :|: TRUE f76_out(x22) -> f77_in(x22) :|: TRUE f37_in(x23) -> f76_in(x23) :|: TRUE f77_out(x24) -> f37_out(x24) :|: TRUE f77_in(x25) -> f477_in(x25) :|: TRUE f477_out(x26) -> f77_out(x26) :|: TRUE f477_in(x27) -> f481_in(x27) :|: TRUE f480_out(x28) -> f477_out(x28) :|: TRUE f481_out(x29) -> f477_out(x29) :|: TRUE f477_in(x30) -> f480_in(x30) :|: TRUE f496_out(x31) -> f481_out(x31) :|: TRUE f481_in(x32) -> f496_in(x32) :|: TRUE f481_in(x33) -> f494_in(x33) :|: TRUE f494_out(x34) -> f481_out(x34) :|: TRUE f496_in(.(T89, .(T90, T91))) -> f503_in(T89, T90, T91) :|: TRUE f496_in(x35) -> f504_in :|: TRUE f503_out(x36, x37, x38) -> f496_out(.(x36, .(x37, x38))) :|: TRUE f504_out -> f496_out(x39) :|: TRUE f509_out(x40, x41) -> f503_out(x42, x40, x41) :|: TRUE f508_out(x43, x44) -> f509_in(x44, x45) :|: TRUE f503_in(x46, x47, x48) -> f508_in(x46, x47) :|: TRUE f512_out(x49, x50) -> f508_out(x49, x50) :|: TRUE f508_in(x51, x52) -> f512_in(x51, x52) :|: TRUE f512_in(x53, x54) -> f513_in(x53, x54) :|: TRUE f514_out(x55, x56) -> f512_out(x55, x56) :|: TRUE f513_out(x57, x58) -> f512_out(x57, x58) :|: TRUE f512_in(x59, x60) -> f514_in(x59, x60) :|: TRUE f546_out(x61, x62) -> f514_out(s(x61), x62) :|: TRUE f547_out -> f514_out(x63, x64) :|: TRUE f514_in(s(x65), x66) -> f546_in(x65, x66) :|: TRUE f514_in(x67, x68) -> f547_in :|: TRUE Start term: f2_in(T2) ---------------------------------------- (166) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (167) TRUE ---------------------------------------- (168) Obligation: Rules: f415_in -> f425_in :|: TRUE f425_out -> f415_out :|: TRUE f454_in -> f415_in :|: TRUE f415_out -> f454_out :|: TRUE f425_in -> f430_in :|: TRUE f430_out -> f425_out :|: TRUE f431_out -> f425_out :|: TRUE f425_in -> f431_in :|: TRUE f457_out -> f431_out :|: TRUE f454_out -> f431_out :|: TRUE f431_in -> f454_in :|: TRUE f431_in -> f457_in :|: TRUE f2_in(T2) -> f4_in(T2) :|: TRUE f4_out(x) -> f2_out(x) :|: TRUE f4_in(T9) -> f37_in(T9) :|: TRUE f37_out(x1) -> f4_out(x1) :|: TRUE f76_out(x2) -> f77_in(x2) :|: TRUE f37_in(x3) -> f76_in(x3) :|: TRUE f77_out(x4) -> f37_out(x4) :|: TRUE f76_in(x5) -> f78_in(x5) :|: TRUE f78_out(x6) -> f76_out(x6) :|: TRUE f79_out(x7) -> f78_out(x7) :|: TRUE f80_out(x8) -> f78_out(x8) :|: TRUE f78_in(x9) -> f80_in(x9) :|: TRUE f78_in(x10) -> f79_in(x10) :|: TRUE f341_out -> f80_out(x11) :|: TRUE f80_in(.(T18, T19)) -> f340_in(T18, T19) :|: TRUE f340_out(x12, x13) -> f80_out(.(x12, x13)) :|: TRUE f80_in(x14) -> f341_in :|: TRUE f340_in(x15, x16) -> f343_in(x15) :|: TRUE f344_out(x17) -> f340_out(x18, x17) :|: TRUE f343_out(x19) -> f344_in(x20) :|: TRUE f415_out -> f416_in(x21) :|: TRUE f416_out(x22) -> f344_out(x22) :|: TRUE f344_in(x23) -> f415_in :|: TRUE Start term: f2_in(T2) ---------------------------------------- (169) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (170) TRUE ---------------------------------------- (171) Obligation: Rules: f351_in(T18) -> f356_in :|: TRUE f356_out -> f351_out(x) :|: TRUE f355_out(T47) -> f351_out(T47) :|: TRUE f351_in(x1) -> f355_in(x1) :|: TRUE f343_out(x2) -> f355_out(x2) :|: TRUE f355_in(x3) -> f343_in(x3) :|: TRUE f343_in(x4) -> f347_in(x4) :|: TRUE f347_out(x5) -> f343_out(x5) :|: TRUE f347_in(x6) -> f351_in(x6) :|: TRUE f347_in(x7) -> f350_in(x7) :|: TRUE f350_out(x8) -> f347_out(x8) :|: TRUE f351_out(x9) -> f347_out(x9) :|: TRUE f2_in(T2) -> f4_in(T2) :|: TRUE f4_out(x10) -> f2_out(x10) :|: TRUE f4_in(T9) -> f37_in(T9) :|: TRUE f37_out(x11) -> f4_out(x11) :|: TRUE f76_out(x12) -> f77_in(x12) :|: TRUE f37_in(x13) -> f76_in(x13) :|: TRUE f77_out(x14) -> f37_out(x14) :|: TRUE f76_in(x15) -> f78_in(x15) :|: TRUE f78_out(x16) -> f76_out(x16) :|: TRUE f79_out(x17) -> f78_out(x17) :|: TRUE f80_out(x18) -> f78_out(x18) :|: TRUE f78_in(x19) -> f80_in(x19) :|: TRUE f78_in(x20) -> f79_in(x20) :|: TRUE f341_out -> f80_out(x21) :|: TRUE f80_in(.(x22, x23)) -> f340_in(x22, x23) :|: TRUE f340_out(x24, x25) -> f80_out(.(x24, x25)) :|: TRUE f80_in(x26) -> f341_in :|: TRUE f340_in(x27, x28) -> f343_in(x27) :|: TRUE f344_out(x29) -> f340_out(x30, x29) :|: TRUE f343_out(x31) -> f344_in(x32) :|: TRUE Start term: f2_in(T2) ---------------------------------------- (172) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f351_in(x1) -> f355_in(x1) :|: TRUE f355_in(x3) -> f343_in(x3) :|: TRUE f343_in(x4) -> f347_in(x4) :|: TRUE f347_in(x6) -> f351_in(x6) :|: TRUE ---------------------------------------- (173) Obligation: Rules: f351_in(x1) -> f355_in(x1) :|: TRUE f355_in(x3) -> f343_in(x3) :|: TRUE f343_in(x4) -> f347_in(x4) :|: TRUE f347_in(x6) -> f351_in(x6) :|: TRUE ---------------------------------------- (174) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (175) Obligation: Rules: f351_in(x1:0) -> f351_in(x1:0) :|: TRUE ---------------------------------------- (176) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (177) Obligation: Rules: f351_in(x1:0) -> f351_in(x1:0) :|: TRUE ---------------------------------------- (178) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f351_in(x1:0) -> f351_in(x1:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (179) Obligation: Termination digraph: Nodes: (1) f351_in(x1:0) -> f351_in(x1:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (180) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f351_in(VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (181) Obligation: Rules: f351_in(x1:0) -> f351_in(x1:0) :|: TRUE ---------------------------------------- (182) IntTRSNonPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x1:0) -> f(1, x1: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: f559_in -> f559_out :|: TRUE f496_out(T9) -> f481_out(T9) :|: TRUE f481_in(x) -> f496_in(x) :|: TRUE f481_in(x1) -> f494_in(x1) :|: TRUE f494_out(x2) -> f481_out(x2) :|: TRUE f513_in(T89, T90) -> f538_in :|: TRUE f513_in(0, T100) -> f537_in :|: TRUE f537_out -> f513_out(0, x3) :|: TRUE f538_out -> f513_out(x4, x5) :|: TRUE f512_in(x6, x7) -> f513_in(x6, x7) :|: TRUE f514_out(x8, x9) -> f512_out(x8, x9) :|: TRUE f513_out(x10, x11) -> f512_out(x10, x11) :|: TRUE f512_in(x12, x13) -> f514_in(x12, x13) :|: TRUE f512_out(x14, x15) -> f508_out(x14, x15) :|: TRUE f508_in(x16, x17) -> f512_in(x16, x17) :|: TRUE f551_out(T105, T106) -> f546_out(T105, T106) :|: TRUE f546_in(x18, x19) -> f551_in(x18, x19) :|: TRUE f562_out(T118, T119) -> f553_out(s(T118), s(T119)) :|: TRUE f564_out -> f553_out(x20, x21) :|: TRUE f553_in(x22, x23) -> f564_in :|: TRUE f553_in(s(x24), s(x25)) -> f562_in(x24, x25) :|: TRUE f77_out(.(x26, x27)) -> f509_out(x26, x27) :|: TRUE f509_in(x28, x29) -> f77_in(.(x28, x29)) :|: TRUE f546_out(x30, x31) -> f514_out(s(x30), x31) :|: TRUE f547_out -> f514_out(x32, x33) :|: TRUE f514_in(s(x34), x35) -> f546_in(x34, x35) :|: TRUE f514_in(x36, x37) -> f547_in :|: TRUE f537_in -> f537_out :|: TRUE f509_out(x38, x39) -> f503_out(x40, x38, x39) :|: TRUE f508_out(x41, x42) -> f509_in(x42, x43) :|: TRUE f503_in(x44, x45, x46) -> f508_in(x44, x45) :|: TRUE f546_out(x47, x48) -> f562_out(x47, x48) :|: TRUE f562_in(x49, x50) -> f546_in(x49, x50) :|: TRUE f551_in(x51, x52) -> f553_in(x51, x52) :|: TRUE f553_out(x53, x54) -> f551_out(x53, x54) :|: TRUE f552_out(x55, x56) -> f551_out(x55, x56) :|: TRUE f551_in(x57, x58) -> f552_in(x57, x58) :|: TRUE f77_in(x59) -> f477_in(x59) :|: TRUE f477_out(x60) -> f77_out(x60) :|: TRUE f552_in(0, s(T113)) -> f559_in :|: TRUE f559_out -> f552_out(0, s(x61)) :|: TRUE f552_in(x62, x63) -> f560_in :|: TRUE f560_out -> f552_out(x64, x65) :|: TRUE f477_in(x66) -> f481_in(x66) :|: TRUE f480_out(x67) -> f477_out(x67) :|: TRUE f481_out(x68) -> f477_out(x68) :|: TRUE f477_in(x69) -> f480_in(x69) :|: TRUE f496_in(.(x70, .(x71, x72))) -> f503_in(x70, x71, x72) :|: TRUE f496_in(x73) -> f504_in :|: TRUE f503_out(x74, x75, x76) -> f496_out(.(x74, .(x75, x76))) :|: TRUE f504_out -> f496_out(x77) :|: TRUE f2_in(T2) -> f4_in(T2) :|: TRUE f4_out(x78) -> f2_out(x78) :|: TRUE f4_in(x79) -> f37_in(x79) :|: TRUE f37_out(x80) -> f4_out(x80) :|: TRUE f76_out(x81) -> f77_in(x81) :|: TRUE f37_in(x82) -> f76_in(x82) :|: TRUE f77_out(x83) -> f37_out(x83) :|: TRUE Start term: f2_in(T2) ---------------------------------------- (185) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (186) TRUE ---------------------------------------- (187) Obligation: Rules: f341_out -> f80_out(T9) :|: TRUE f80_in(.(T18, T19)) -> f340_in(T18, T19) :|: TRUE f340_out(x, x1) -> f80_out(.(x, x1)) :|: TRUE f80_in(x2) -> f341_in :|: TRUE f351_in(x3) -> f356_in :|: TRUE f356_out -> f351_out(x4) :|: TRUE f355_out(T47) -> f351_out(T47) :|: TRUE f351_in(x5) -> f355_in(x5) :|: TRUE f343_out(x6) -> f355_out(x6) :|: TRUE f355_in(x7) -> f343_in(x7) :|: TRUE f436_in -> f436_out :|: TRUE f415_out -> f416_in(x8) :|: TRUE f416_out(x9) -> f344_out(x9) :|: TRUE f344_in(x10) -> f415_in :|: TRUE f76_in(x11) -> f78_in(x11) :|: TRUE f78_out(x12) -> f76_out(x12) :|: TRUE f347_in(x13) -> f351_in(x13) :|: TRUE f347_in(x14) -> f350_in(x14) :|: TRUE f350_out(x15) -> f347_out(x15) :|: TRUE f351_out(x16) -> f347_out(x16) :|: TRUE f353_out -> f350_out(x17) :|: TRUE f350_in(x18) -> f353_in :|: TRUE f352_out -> f350_out(T39) :|: TRUE f350_in(x19) -> f352_in :|: TRUE f415_in -> f425_in :|: TRUE f425_out -> f415_out :|: TRUE f454_in -> f415_in :|: TRUE f415_out -> f454_out :|: TRUE f430_in -> f436_in :|: TRUE f438_out -> f430_out :|: TRUE f430_in -> f438_in :|: TRUE f436_out -> f430_out :|: TRUE f352_in -> f352_out :|: TRUE f340_in(x20, x21) -> f343_in(x20) :|: TRUE f344_out(x22) -> f340_out(x23, x22) :|: TRUE f343_out(x24) -> f344_in(x25) :|: TRUE f425_in -> f430_in :|: TRUE f430_out -> f425_out :|: TRUE f431_out -> f425_out :|: TRUE f425_in -> f431_in :|: TRUE f416_in(x26) -> f76_in(x26) :|: TRUE f76_out(x27) -> f416_out(x27) :|: TRUE f457_out -> f431_out :|: TRUE f454_out -> f431_out :|: TRUE f431_in -> f454_in :|: TRUE f431_in -> f457_in :|: TRUE f79_out(x28) -> f78_out(x28) :|: TRUE f80_out(x29) -> f78_out(x29) :|: TRUE f78_in(x30) -> f80_in(x30) :|: TRUE f78_in(x31) -> f79_in(x31) :|: TRUE f343_in(x32) -> f347_in(x32) :|: TRUE f347_out(x33) -> f343_out(x33) :|: TRUE f2_in(T2) -> f4_in(T2) :|: TRUE f4_out(x34) -> f2_out(x34) :|: TRUE f4_in(x35) -> f37_in(x35) :|: TRUE f37_out(x36) -> f4_out(x36) :|: TRUE f76_out(x37) -> f77_in(x37) :|: TRUE f37_in(x38) -> f76_in(x38) :|: TRUE f77_out(x39) -> f37_out(x39) :|: TRUE Start term: f2_in(T2) ---------------------------------------- (188) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f80_in(.(T18, T19)) -> f340_in(T18, T19) :|: TRUE f355_out(T47) -> f351_out(T47) :|: TRUE f351_in(x5) -> f355_in(x5) :|: TRUE f343_out(x6) -> f355_out(x6) :|: TRUE f355_in(x7) -> f343_in(x7) :|: TRUE f436_in -> f436_out :|: TRUE f415_out -> f416_in(x8) :|: TRUE f344_in(x10) -> f415_in :|: TRUE f76_in(x11) -> f78_in(x11) :|: TRUE f347_in(x13) -> f351_in(x13) :|: TRUE f347_in(x14) -> f350_in(x14) :|: TRUE f350_out(x15) -> f347_out(x15) :|: TRUE f351_out(x16) -> f347_out(x16) :|: TRUE f352_out -> f350_out(T39) :|: TRUE f350_in(x19) -> f352_in :|: TRUE f415_in -> f425_in :|: TRUE f425_out -> f415_out :|: TRUE f454_in -> f415_in :|: TRUE f415_out -> f454_out :|: TRUE f430_in -> f436_in :|: TRUE f436_out -> f430_out :|: TRUE f352_in -> f352_out :|: TRUE f340_in(x20, x21) -> f343_in(x20) :|: TRUE f343_out(x24) -> f344_in(x25) :|: TRUE f425_in -> f430_in :|: TRUE f430_out -> f425_out :|: TRUE f431_out -> f425_out :|: TRUE f425_in -> f431_in :|: TRUE f416_in(x26) -> f76_in(x26) :|: TRUE f454_out -> f431_out :|: TRUE f431_in -> f454_in :|: TRUE f78_in(x30) -> f80_in(x30) :|: TRUE f343_in(x32) -> f347_in(x32) :|: TRUE f347_out(x33) -> f343_out(x33) :|: TRUE ---------------------------------------- (189) Obligation: Rules: f80_in(.(T18, T19)) -> f340_in(T18, T19) :|: TRUE f355_out(T47) -> f351_out(T47) :|: TRUE f351_in(x5) -> f355_in(x5) :|: TRUE f343_out(x6) -> f355_out(x6) :|: TRUE f355_in(x7) -> f343_in(x7) :|: TRUE f436_in -> f436_out :|: TRUE f415_out -> f416_in(x8) :|: TRUE f344_in(x10) -> f415_in :|: TRUE f76_in(x11) -> f78_in(x11) :|: TRUE f347_in(x13) -> f351_in(x13) :|: TRUE f347_in(x14) -> f350_in(x14) :|: TRUE f350_out(x15) -> f347_out(x15) :|: TRUE f351_out(x16) -> f347_out(x16) :|: TRUE f352_out -> f350_out(T39) :|: TRUE f350_in(x19) -> f352_in :|: TRUE f415_in -> f425_in :|: TRUE f425_out -> f415_out :|: TRUE f454_in -> f415_in :|: TRUE f415_out -> f454_out :|: TRUE f430_in -> f436_in :|: TRUE f436_out -> f430_out :|: TRUE f352_in -> f352_out :|: TRUE f340_in(x20, x21) -> f343_in(x20) :|: TRUE f343_out(x24) -> f344_in(x25) :|: TRUE f425_in -> f430_in :|: TRUE f430_out -> f425_out :|: TRUE f431_out -> f425_out :|: TRUE f425_in -> f431_in :|: TRUE f416_in(x26) -> f76_in(x26) :|: TRUE f454_out -> f431_out :|: TRUE f431_in -> f454_in :|: TRUE f78_in(x30) -> f80_in(x30) :|: TRUE f343_in(x32) -> f347_in(x32) :|: TRUE f347_out(x33) -> f343_out(x33) :|: TRUE ---------------------------------------- (190) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (191) Obligation: Rules: f347_in(x13:0) -> f347_in(x13:0) :|: TRUE f343_out(x6:0) -> f343_out(x6:0) :|: TRUE f343_out(x24:0) -> f425_in :|: TRUE f425_in -> f425_in :|: TRUE f347_in(x14:0) -> f343_out(T39:0) :|: TRUE f425_in -> f425_out :|: TRUE f425_out -> f425_out :|: TRUE f425_out -> f347_in(T18:0) :|: TRUE ---------------------------------------- (192) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (193) Obligation: Rules: f347_in(x13:0) -> f347_in(x13:0) :|: TRUE f343_out(x6:0) -> f343_out(x6:0) :|: TRUE f343_out(x24:0) -> f425_in :|: TRUE f425_in -> f425_in :|: TRUE f347_in(x14:0) -> f343_out(T39:0) :|: TRUE f425_in -> f425_out :|: TRUE f425_out -> f425_out :|: TRUE f425_out -> f347_in(T18:0) :|: TRUE ---------------------------------------- (194) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f347_in(x13:0) -> f347_in(x13:0) :|: TRUE (2) f343_out(x6:0) -> f343_out(x6:0) :|: TRUE (3) f343_out(x24:0) -> f425_in :|: TRUE (4) f425_in -> f425_in :|: TRUE (5) f347_in(x14:0) -> f343_out(T39:0) :|: TRUE (6) f425_in -> f425_out :|: TRUE (7) f425_out -> f425_out :|: TRUE (8) f425_out -> f347_in(T18:0) :|: TRUE Arcs: (1) -> (1), (5) (2) -> (2), (3) (3) -> (4), (6) (4) -> (4), (6) (5) -> (2), (3) (6) -> (7), (8) (7) -> (7), (8) (8) -> (1), (5) This digraph is fully evaluated! ---------------------------------------- (195) Obligation: Termination digraph: Nodes: (1) f347_in(x13:0) -> f347_in(x13:0) :|: TRUE (2) f425_out -> f347_in(T18:0) :|: TRUE (3) f425_out -> f425_out :|: TRUE (4) f425_in -> f425_out :|: TRUE (5) f425_in -> f425_in :|: TRUE (6) f343_out(x24:0) -> f425_in :|: TRUE (7) f343_out(x6:0) -> f343_out(x6:0) :|: TRUE (8) f347_in(x14:0) -> f343_out(T39:0) :|: TRUE Arcs: (1) -> (1), (8) (2) -> (1), (8) (3) -> (2), (3) (4) -> (2), (3) (5) -> (4), (5) (6) -> (4), (5) (7) -> (6), (7) (8) -> (6), (7) This digraph is fully evaluated!