/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.pl /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern lessleaves(g,g) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) CutEliminatorProof [SOUND, 0 ms] (2) Prolog (3) PrologToPiTRSProof [SOUND, 25 ms] (4) PiTRS (5) DependencyPairsProof [EQUIVALENT, 44 ms] (6) PiDP (7) DependencyGraphProof [EQUIVALENT, 0 ms] (8) AND (9) PiDP (10) UsableRulesProof [EQUIVALENT, 0 ms] (11) PiDP (12) PiDPToQDPProof [SOUND, 0 ms] (13) QDP (14) TransformationProof [EQUIVALENT, 0 ms] (15) QDP (16) UsableRulesProof [EQUIVALENT, 0 ms] (17) QDP (18) QReductionProof [EQUIVALENT, 0 ms] (19) QDP (20) TransformationProof [EQUIVALENT, 0 ms] (21) QDP (22) UsableRulesProof [EQUIVALENT, 0 ms] (23) QDP (24) QReductionProof [EQUIVALENT, 0 ms] (25) QDP (26) NonTerminationLoopProof [COMPLETE, 0 ms] (27) NO (28) PiDP (29) UsableRulesProof [EQUIVALENT, 0 ms] (30) PiDP (31) PiDPToQDPProof [SOUND, 0 ms] (32) QDP (33) PiDP (34) UsableRulesProof [EQUIVALENT, 0 ms] (35) PiDP (36) PrologToPiTRSProof [SOUND, 33 ms] (37) PiTRS (38) DependencyPairsProof [EQUIVALENT, 28 ms] (39) PiDP (40) DependencyGraphProof [EQUIVALENT, 0 ms] (41) AND (42) PiDP (43) UsableRulesProof [EQUIVALENT, 0 ms] (44) PiDP (45) PiDPToQDPProof [SOUND, 0 ms] (46) QDP (47) TransformationProof [EQUIVALENT, 0 ms] (48) QDP (49) UsableRulesProof [EQUIVALENT, 0 ms] (50) QDP (51) QReductionProof [EQUIVALENT, 0 ms] (52) QDP (53) TransformationProof [EQUIVALENT, 0 ms] (54) QDP (55) UsableRulesProof [EQUIVALENT, 0 ms] (56) QDP (57) QReductionProof [EQUIVALENT, 0 ms] (58) QDP (59) NonTerminationLoopProof [COMPLETE, 0 ms] (60) NO (61) PiDP (62) UsableRulesProof [EQUIVALENT, 0 ms] (63) PiDP (64) PiDPToQDPProof [SOUND, 0 ms] (65) QDP (66) PiDP (67) UsableRulesProof [EQUIVALENT, 0 ms] (68) PiDP (69) PrologToTRSTransformerProof [SOUND, 86 ms] (70) QTRS (71) DependencyPairsProof [EQUIVALENT, 0 ms] (72) QDP (73) DependencyGraphProof [EQUIVALENT, 0 ms] (74) AND (75) QDP (76) UsableRulesProof [EQUIVALENT, 0 ms] (77) QDP (78) NonTerminationLoopProof [COMPLETE, 0 ms] (79) NO (80) QDP (81) UsableRulesProof [EQUIVALENT, 0 ms] (82) QDP (83) NonTerminationLoopProof [COMPLETE, 0 ms] (84) NO (85) QDP (86) UsableRulesProof [EQUIVALENT, 0 ms] (87) QDP (88) MRRProof [EQUIVALENT, 13 ms] (89) QDP (90) MRRProof [EQUIVALENT, 10 ms] (91) QDP (92) MNOCProof [EQUIVALENT, 0 ms] (93) QDP (94) UsableRulesProof [EQUIVALENT, 0 ms] (95) QDP (96) QReductionProof [EQUIVALENT, 0 ms] (97) QDP (98) TransformationProof [EQUIVALENT, 0 ms] (99) QDP (100) TransformationProof [EQUIVALENT, 0 ms] (101) QDP (102) NonTerminationLoopProof [COMPLETE, 0 ms] (103) NO (104) QDP (105) UsableRulesProof [EQUIVALENT, 0 ms] (106) QDP (107) ATransformationProof [EQUIVALENT, 0 ms] (108) QDP (109) NonTerminationLoopProof [COMPLETE, 0 ms] (110) NO (111) QDP (112) UsableRulesProof [EQUIVALENT, 0 ms] (113) QDP (114) QDPSizeChangeProof [EQUIVALENT, 0 ms] (115) YES (116) PrologToDTProblemTransformerProof [SOUND, 57 ms] (117) TRIPLES (118) TriplesToPiDPProof [SOUND, 27 ms] (119) PiDP (120) DependencyGraphProof [EQUIVALENT, 0 ms] (121) AND (122) PiDP (123) UsableRulesProof [EQUIVALENT, 0 ms] (124) PiDP (125) PiDPToQDPProof [SOUND, 0 ms] (126) QDP (127) ATransformationProof [EQUIVALENT, 0 ms] (128) QDP (129) NonTerminationLoopProof [COMPLETE, 0 ms] (130) NO (131) PiDP (132) UsableRulesProof [EQUIVALENT, 0 ms] (133) PiDP (134) PiDPToQDPProof [SOUND, 0 ms] (135) QDP (136) QDPSizeChangeProof [EQUIVALENT, 0 ms] (137) YES (138) PiDP (139) UsableRulesProof [EQUIVALENT, 0 ms] (140) PiDP (141) PiDPToQDPProof [SOUND, 0 ms] (142) QDP (143) NonTerminationLoopProof [COMPLETE, 0 ms] (144) NO (145) PiDP (146) UsableRulesProof [EQUIVALENT, 0 ms] (147) PiDP (148) PiDPToQDPProof [SOUND, 0 ms] (149) QDP (150) QDPSizeChangeProof [EQUIVALENT, 0 ms] (151) YES (152) PiDP (153) UsableRulesProof [EQUIVALENT, 0 ms] (154) PiDP (155) PiDPToQDPProof [SOUND, 0 ms] (156) QDP (157) NonTerminationLoopProof [COMPLETE, 0 ms] (158) NO (159) PiDP (160) UsableRulesProof [EQUIVALENT, 0 ms] (161) PiDP (162) PiDPToQDPProof [SOUND, 0 ms] (163) QDP (164) MRRProof [EQUIVALENT, 0 ms] (165) QDP (166) MRRProof [EQUIVALENT, 0 ms] (167) QDP (168) PiDP (169) UsableRulesProof [EQUIVALENT, 0 ms] (170) PiDP (171) PiDP (172) UsableRulesProof [EQUIVALENT, 0 ms] (173) PiDP (174) PrologToIRSwTTransformerProof [SOUND, 76 ms] (175) AND (176) IRSwT (177) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (178) TRUE (179) IRSwT (180) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (181) TRUE (182) IRSwT (183) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (184) TRUE (185) IRSwT (186) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (187) IRSwT (188) IntTRSCompressionProof [EQUIVALENT, 58 ms] (189) IRSwT (190) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (191) IRSwT (192) IRSwTTerminationDigraphProof [EQUIVALENT, 10 ms] (193) AND (194) IRSwT (195) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (196) IRSwT (197) TempFilterProof [SOUND, 2 ms] (198) IRSwT (199) IRSwTToQDPProof [SOUND, 0 ms] (200) QDP (201) QDPSizeChangeProof [EQUIVALENT, 0 ms] (202) YES (203) IRSwT (204) IRSwTToIntTRSProof [SOUND, 0 ms] (205) IRSwT ---------------------------------------- (0) Obligation: Clauses: lessleaves(nil, cons(X1, X2)). lessleaves(cons(U, V), cons(W, Z)) :- ','(app(U, V, U1), ','(app(W, Z, W1), lessleaves(U1, W1))). app(nil, Y, Z) :- ','(!, eq(Y, Z)). app(X, Y, cons(U, Z)) :- ','(head(X, U), ','(tail(X, V), app(V, Y, Z))). head([], X3). head(.(X, X4), X). tail([], []). tail(.(X5, X), X). eq(X, X). Query: lessleaves(g,g) ---------------------------------------- (1) CutEliminatorProof (SOUND) Eliminated all cuts by simply ignoring them[PROLOG]. ---------------------------------------- (2) Obligation: Clauses: lessleaves(nil, cons(X1, X2)). lessleaves(cons(U, V), cons(W, Z)) :- ','(app(U, V, U1), ','(app(W, Z, W1), lessleaves(U1, W1))). app(nil, Y, Z) :- eq(Y, Z). app(X, Y, cons(U, Z)) :- ','(head(X, U), ','(tail(X, V), app(V, Y, Z))). head([], X3). head(.(X, X4), X). tail([], []). tail(.(X5, X), X). eq(X, X). Query: lessleaves(g,g) ---------------------------------------- (3) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: lessleaves_in_2: (b,b) (f,f) app_in_3: (b,b,f) (f,f,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg U1_gg(x1, x2, x3, x4, x5) = U1_gg(x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x2) app_out_gga(x1, x2, x3) = app_out_gga U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (4) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg U1_gg(x1, x2, x3, x4, x5) = U1_gg(x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x2) app_out_gga(x1, x2, x3) = app_out_gga U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) ---------------------------------------- (5) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) -> U1_GG(U, V, W, Z, app_in_gga(U, V, U1)) LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) -> APP_IN_GGA(U, V, U1) APP_IN_GGA(nil, Y, Z) -> U4_GGA(Y, Z, eq_in_ga(Y, Z)) APP_IN_GGA(nil, Y, Z) -> EQ_IN_GA(Y, Z) APP_IN_GGA(X, Y, cons(U, Z)) -> U5_GGA(X, Y, U, Z, head_in_ga(X, U)) APP_IN_GGA(X, Y, cons(U, Z)) -> HEAD_IN_GA(X, U) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> U6_GGA(X, Y, U, Z, tail_in_ga(X, V)) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> TAIL_IN_GA(X, V) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> U7_GGA(X, Y, U, Z, app_in_gga(V, Y, Z)) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> APP_IN_GGA(V, Y, Z) U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_GG(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) -> APP_IN_GGA(W, Z, W1) U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_GG(U, V, W, Z, lessleaves_in_aa(U1, W1)) U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> U1_AA(U, V, W, Z, app_in_aaa(U, V, U1)) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> APP_IN_AAA(U, V, U1) APP_IN_AAA(nil, Y, Z) -> U4_AAA(Y, Z, eq_in_aa(Y, Z)) APP_IN_AAA(nil, Y, Z) -> EQ_IN_AA(Y, Z) APP_IN_AAA(X, Y, cons(U, Z)) -> U5_AAA(X, Y, U, Z, head_in_aa(X, U)) APP_IN_AAA(X, Y, cons(U, Z)) -> HEAD_IN_AA(X, U) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> U6_AAA(X, Y, U, Z, tail_in_aa(X, V)) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> TAIL_IN_AA(X, V) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> U7_AAA(X, Y, U, Z, app_in_aaa(V, Y, Z)) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> APP_IN_AAA(V, Y, Z) U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> APP_IN_AAA(W, Z, W1) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_AA(U, V, W, Z, lessleaves_in_aa(U1, W1)) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg U1_gg(x1, x2, x3, x4, x5) = U1_gg(x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x2) app_out_gga(x1, x2, x3) = app_out_gga U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) LESSLEAVES_IN_GG(x1, x2) = LESSLEAVES_IN_GG(x1, x2) U1_GG(x1, x2, x3, x4, x5) = U1_GG(x3, x4, x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U4_GGA(x1, x2, x3) = U4_GGA(x3) EQ_IN_GA(x1, x2) = EQ_IN_GA(x1) U5_GGA(x1, x2, x3, x4, x5) = U5_GGA(x1, x2, x5) HEAD_IN_GA(x1, x2) = HEAD_IN_GA(x1) U6_GGA(x1, x2, x3, x4, x5) = U6_GGA(x2, x5) TAIL_IN_GA(x1, x2) = TAIL_IN_GA(x1) U7_GGA(x1, x2, x3, x4, x5) = U7_GGA(x5) U2_GG(x1, x2, x3, x4, x5, x6) = U2_GG(x6) U3_GG(x1, x2, x3, x4, x5) = U3_GG(x5) LESSLEAVES_IN_AA(x1, x2) = LESSLEAVES_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U4_AAA(x1, x2, x3) = U4_AAA(x3) EQ_IN_AA(x1, x2) = EQ_IN_AA U5_AAA(x1, x2, x3, x4, x5) = U5_AAA(x5) HEAD_IN_AA(x1, x2) = HEAD_IN_AA U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) TAIL_IN_AA(x1, x2) = TAIL_IN_AA U7_AAA(x1, x2, x3, x4, x5) = U7_AAA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x6) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (6) Obligation: Pi DP problem: The TRS P consists of the following rules: LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) -> U1_GG(U, V, W, Z, app_in_gga(U, V, U1)) LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) -> APP_IN_GGA(U, V, U1) APP_IN_GGA(nil, Y, Z) -> U4_GGA(Y, Z, eq_in_ga(Y, Z)) APP_IN_GGA(nil, Y, Z) -> EQ_IN_GA(Y, Z) APP_IN_GGA(X, Y, cons(U, Z)) -> U5_GGA(X, Y, U, Z, head_in_ga(X, U)) APP_IN_GGA(X, Y, cons(U, Z)) -> HEAD_IN_GA(X, U) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> U6_GGA(X, Y, U, Z, tail_in_ga(X, V)) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> TAIL_IN_GA(X, V) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> U7_GGA(X, Y, U, Z, app_in_gga(V, Y, Z)) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> APP_IN_GGA(V, Y, Z) U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_GG(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) -> APP_IN_GGA(W, Z, W1) U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_GG(U, V, W, Z, lessleaves_in_aa(U1, W1)) U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> U1_AA(U, V, W, Z, app_in_aaa(U, V, U1)) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> APP_IN_AAA(U, V, U1) APP_IN_AAA(nil, Y, Z) -> U4_AAA(Y, Z, eq_in_aa(Y, Z)) APP_IN_AAA(nil, Y, Z) -> EQ_IN_AA(Y, Z) APP_IN_AAA(X, Y, cons(U, Z)) -> U5_AAA(X, Y, U, Z, head_in_aa(X, U)) APP_IN_AAA(X, Y, cons(U, Z)) -> HEAD_IN_AA(X, U) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> U6_AAA(X, Y, U, Z, tail_in_aa(X, V)) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> TAIL_IN_AA(X, V) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> U7_AAA(X, Y, U, Z, app_in_aaa(V, Y, Z)) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> APP_IN_AAA(V, Y, Z) U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> APP_IN_AAA(W, Z, W1) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_AA(U, V, W, Z, lessleaves_in_aa(U1, W1)) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg U1_gg(x1, x2, x3, x4, x5) = U1_gg(x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x2) app_out_gga(x1, x2, x3) = app_out_gga U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) LESSLEAVES_IN_GG(x1, x2) = LESSLEAVES_IN_GG(x1, x2) U1_GG(x1, x2, x3, x4, x5) = U1_GG(x3, x4, x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U4_GGA(x1, x2, x3) = U4_GGA(x3) EQ_IN_GA(x1, x2) = EQ_IN_GA(x1) U5_GGA(x1, x2, x3, x4, x5) = U5_GGA(x1, x2, x5) HEAD_IN_GA(x1, x2) = HEAD_IN_GA(x1) U6_GGA(x1, x2, x3, x4, x5) = U6_GGA(x2, x5) TAIL_IN_GA(x1, x2) = TAIL_IN_GA(x1) U7_GGA(x1, x2, x3, x4, x5) = U7_GGA(x5) U2_GG(x1, x2, x3, x4, x5, x6) = U2_GG(x6) U3_GG(x1, x2, x3, x4, x5) = U3_GG(x5) LESSLEAVES_IN_AA(x1, x2) = LESSLEAVES_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U4_AAA(x1, x2, x3) = U4_AAA(x3) EQ_IN_AA(x1, x2) = EQ_IN_AA U5_AAA(x1, x2, x3, x4, x5) = U5_AAA(x5) HEAD_IN_AA(x1, x2) = HEAD_IN_AA U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) TAIL_IN_AA(x1, x2) = TAIL_IN_AA U7_AAA(x1, x2, x3, x4, x5) = U7_AAA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x6) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (7) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 19 less nodes. ---------------------------------------- (8) Complex Obligation (AND) ---------------------------------------- (9) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_AAA(X, Y, cons(U, Z)) -> U5_AAA(X, Y, U, Z, head_in_aa(X, U)) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> U6_AAA(X, Y, U, Z, tail_in_aa(X, V)) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> APP_IN_AAA(V, Y, Z) The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg U1_gg(x1, x2, x3, x4, x5) = U1_gg(x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x2) app_out_gga(x1, x2, x3) = app_out_gga U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U5_AAA(x1, x2, x3, x4, x5) = U5_AAA(x5) U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (10) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (11) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_AAA(X, Y, cons(U, Z)) -> U5_AAA(X, Y, U, Z, head_in_aa(X, U)) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> U6_AAA(X, Y, U, Z, tail_in_aa(X, V)) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> APP_IN_AAA(V, Y, Z) The TRS R consists of the following rules: head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) [] = [] .(x1, x2) = .(x1, x2) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U5_AAA(x1, x2, x3, x4, x5) = U5_AAA(x5) U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (12) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: APP_IN_AAA -> U5_AAA(head_in_aa) U5_AAA(head_out_aa) -> U6_AAA(tail_in_aa) U6_AAA(tail_out_aa) -> APP_IN_AAA The TRS R consists of the following rules: head_in_aa -> head_out_aa tail_in_aa -> tail_out_aa The set Q consists of the following terms: head_in_aa tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (14) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule APP_IN_AAA -> U5_AAA(head_in_aa) at position [0] we obtained the following new rules [LPAR04]: (APP_IN_AAA -> U5_AAA(head_out_aa),APP_IN_AAA -> U5_AAA(head_out_aa)) ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: U5_AAA(head_out_aa) -> U6_AAA(tail_in_aa) U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) The TRS R consists of the following rules: head_in_aa -> head_out_aa tail_in_aa -> tail_out_aa The set Q consists of the following terms: head_in_aa tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (16) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: U5_AAA(head_out_aa) -> U6_AAA(tail_in_aa) U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) The TRS R consists of the following rules: tail_in_aa -> tail_out_aa The set Q consists of the following terms: head_in_aa tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (18) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. head_in_aa ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: U5_AAA(head_out_aa) -> U6_AAA(tail_in_aa) U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) The TRS R consists of the following rules: tail_in_aa -> tail_out_aa The set Q consists of the following terms: tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (20) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U5_AAA(head_out_aa) -> U6_AAA(tail_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa),U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa)) ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa) The TRS R consists of the following rules: tail_in_aa -> tail_out_aa The set Q consists of the following terms: tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (22) 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. ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa) R is empty. The set Q consists of the following terms: tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (24) 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]. tail_in_aa ---------------------------------------- (25) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (26) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = 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 APP_IN_AAA -> U5_AAA(head_out_aa) with rule APP_IN_AAA -> U5_AAA(head_out_aa) at position [] and matcher [ ] U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa) with rule U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa) at position [] and matcher [ ] U6_AAA(tail_out_aa) -> APP_IN_AAA with rule U6_AAA(tail_out_aa) -> APP_IN_AAA Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (27) NO ---------------------------------------- (28) Obligation: Pi DP problem: The TRS P consists of the following rules: U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> U1_AA(U, V, W, Z, app_in_aaa(U, V, U1)) The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg U1_gg(x1, x2, x3, x4, x5) = U1_gg(x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x2) app_out_gga(x1, x2, x3) = app_out_gga U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) LESSLEAVES_IN_AA(x1, x2) = LESSLEAVES_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (29) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (30) Obligation: Pi DP problem: The TRS P consists of the following rules: U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> U1_AA(U, V, W, Z, app_in_aaa(U, V, U1)) The TRS R consists of the following rules: app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) eq_in_aa(X, X) -> eq_out_aa(X, X) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) The argument filtering Pi contains the following mapping: nil = nil cons(x1, x2) = cons(x1, x2) [] = [] .(x1, x2) = .(x1, x2) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) LESSLEAVES_IN_AA(x1, x2) = LESSLEAVES_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (31) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: U1_AA(app_out_aaa) -> U2_AA(app_in_aaa) U2_AA(app_out_aaa) -> LESSLEAVES_IN_AA LESSLEAVES_IN_AA -> U1_AA(app_in_aaa) The TRS R consists of the following rules: app_in_aaa -> U4_aaa(eq_in_aa) app_in_aaa -> U5_aaa(head_in_aa) U4_aaa(eq_out_aa) -> app_out_aaa U5_aaa(head_out_aa) -> U6_aaa(tail_in_aa) eq_in_aa -> eq_out_aa head_in_aa -> head_out_aa U6_aaa(tail_out_aa) -> U7_aaa(app_in_aaa) tail_in_aa -> tail_out_aa U7_aaa(app_out_aaa) -> app_out_aaa The set Q consists of the following terms: app_in_aaa U4_aaa(x0) U5_aaa(x0) eq_in_aa head_in_aa U6_aaa(x0) tail_in_aa U7_aaa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (33) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGA(X, Y, cons(U, Z)) -> U5_GGA(X, Y, U, Z, head_in_ga(X, U)) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> U6_GGA(X, Y, U, Z, tail_in_ga(X, V)) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> APP_IN_GGA(V, Y, Z) The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg U1_gg(x1, x2, x3, x4, x5) = U1_gg(x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x2) app_out_gga(x1, x2, x3) = app_out_gga U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U5_GGA(x1, x2, x3, x4, x5) = U5_GGA(x1, x2, x5) U6_GGA(x1, x2, x3, x4, x5) = U6_GGA(x2, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (34) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (35) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGA(X, Y, cons(U, Z)) -> U5_GGA(X, Y, U, Z, head_in_ga(X, U)) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> U6_GGA(X, Y, U, Z, tail_in_ga(X, V)) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> APP_IN_GGA(V, Y, Z) The TRS R consists of the following rules: head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga .(x1, x2) = .(x1, x2) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x2) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U5_GGA(x1, x2, x3, x4, x5) = U5_GGA(x1, x2, x5) U6_GGA(x1, x2, x3, x4, x5) = U6_GGA(x2, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (36) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: lessleaves_in_2: (b,b) (f,f) app_in_3: (b,b,f) (f,f,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg(x1, x2) U1_gg(x1, x2, x3, x4, x5) = U1_gg(x1, x2, x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x1, x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2) U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga(x1) .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x1, x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x1, x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x1, x2, x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x1, x2, x3, x4, x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x1, x2, x3, x4, x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (37) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg(x1, x2) U1_gg(x1, x2, x3, x4, x5) = U1_gg(x1, x2, x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x1, x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2) U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga(x1) .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x1, x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x1, x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x1, x2, x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x1, x2, x3, x4, x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x1, x2, x3, x4, x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) ---------------------------------------- (38) 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: LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) -> U1_GG(U, V, W, Z, app_in_gga(U, V, U1)) LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) -> APP_IN_GGA(U, V, U1) APP_IN_GGA(nil, Y, Z) -> U4_GGA(Y, Z, eq_in_ga(Y, Z)) APP_IN_GGA(nil, Y, Z) -> EQ_IN_GA(Y, Z) APP_IN_GGA(X, Y, cons(U, Z)) -> U5_GGA(X, Y, U, Z, head_in_ga(X, U)) APP_IN_GGA(X, Y, cons(U, Z)) -> HEAD_IN_GA(X, U) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> U6_GGA(X, Y, U, Z, tail_in_ga(X, V)) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> TAIL_IN_GA(X, V) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> U7_GGA(X, Y, U, Z, app_in_gga(V, Y, Z)) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> APP_IN_GGA(V, Y, Z) U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_GG(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) -> APP_IN_GGA(W, Z, W1) U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_GG(U, V, W, Z, lessleaves_in_aa(U1, W1)) U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> U1_AA(U, V, W, Z, app_in_aaa(U, V, U1)) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> APP_IN_AAA(U, V, U1) APP_IN_AAA(nil, Y, Z) -> U4_AAA(Y, Z, eq_in_aa(Y, Z)) APP_IN_AAA(nil, Y, Z) -> EQ_IN_AA(Y, Z) APP_IN_AAA(X, Y, cons(U, Z)) -> U5_AAA(X, Y, U, Z, head_in_aa(X, U)) APP_IN_AAA(X, Y, cons(U, Z)) -> HEAD_IN_AA(X, U) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> U6_AAA(X, Y, U, Z, tail_in_aa(X, V)) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> TAIL_IN_AA(X, V) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> U7_AAA(X, Y, U, Z, app_in_aaa(V, Y, Z)) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> APP_IN_AAA(V, Y, Z) U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> APP_IN_AAA(W, Z, W1) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_AA(U, V, W, Z, lessleaves_in_aa(U1, W1)) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg(x1, x2) U1_gg(x1, x2, x3, x4, x5) = U1_gg(x1, x2, x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x1, x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2) U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga(x1) .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x1, x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x1, x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x1, x2, x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x1, x2, x3, x4, x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x1, x2, x3, x4, x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) LESSLEAVES_IN_GG(x1, x2) = LESSLEAVES_IN_GG(x1, x2) U1_GG(x1, x2, x3, x4, x5) = U1_GG(x1, x2, x3, x4, x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U4_GGA(x1, x2, x3) = U4_GGA(x1, x3) EQ_IN_GA(x1, x2) = EQ_IN_GA(x1) U5_GGA(x1, x2, x3, x4, x5) = U5_GGA(x1, x2, x5) HEAD_IN_GA(x1, x2) = HEAD_IN_GA(x1) U6_GGA(x1, x2, x3, x4, x5) = U6_GGA(x1, x2, x5) TAIL_IN_GA(x1, x2) = TAIL_IN_GA(x1) U7_GGA(x1, x2, x3, x4, x5) = U7_GGA(x1, x2, x5) U2_GG(x1, x2, x3, x4, x5, x6) = U2_GG(x1, x2, x3, x4, x6) U3_GG(x1, x2, x3, x4, x5) = U3_GG(x1, x2, x3, x4, x5) LESSLEAVES_IN_AA(x1, x2) = LESSLEAVES_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U4_AAA(x1, x2, x3) = U4_AAA(x3) EQ_IN_AA(x1, x2) = EQ_IN_AA U5_AAA(x1, x2, x3, x4, x5) = U5_AAA(x5) HEAD_IN_AA(x1, x2) = HEAD_IN_AA U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) TAIL_IN_AA(x1, x2) = TAIL_IN_AA U7_AAA(x1, x2, x3, x4, x5) = U7_AAA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x6) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (39) Obligation: Pi DP problem: The TRS P consists of the following rules: LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) -> U1_GG(U, V, W, Z, app_in_gga(U, V, U1)) LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) -> APP_IN_GGA(U, V, U1) APP_IN_GGA(nil, Y, Z) -> U4_GGA(Y, Z, eq_in_ga(Y, Z)) APP_IN_GGA(nil, Y, Z) -> EQ_IN_GA(Y, Z) APP_IN_GGA(X, Y, cons(U, Z)) -> U5_GGA(X, Y, U, Z, head_in_ga(X, U)) APP_IN_GGA(X, Y, cons(U, Z)) -> HEAD_IN_GA(X, U) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> U6_GGA(X, Y, U, Z, tail_in_ga(X, V)) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> TAIL_IN_GA(X, V) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> U7_GGA(X, Y, U, Z, app_in_gga(V, Y, Z)) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> APP_IN_GGA(V, Y, Z) U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_GG(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) -> APP_IN_GGA(W, Z, W1) U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_GG(U, V, W, Z, lessleaves_in_aa(U1, W1)) U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> U1_AA(U, V, W, Z, app_in_aaa(U, V, U1)) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> APP_IN_AAA(U, V, U1) APP_IN_AAA(nil, Y, Z) -> U4_AAA(Y, Z, eq_in_aa(Y, Z)) APP_IN_AAA(nil, Y, Z) -> EQ_IN_AA(Y, Z) APP_IN_AAA(X, Y, cons(U, Z)) -> U5_AAA(X, Y, U, Z, head_in_aa(X, U)) APP_IN_AAA(X, Y, cons(U, Z)) -> HEAD_IN_AA(X, U) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> U6_AAA(X, Y, U, Z, tail_in_aa(X, V)) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> TAIL_IN_AA(X, V) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> U7_AAA(X, Y, U, Z, app_in_aaa(V, Y, Z)) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> APP_IN_AAA(V, Y, Z) U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> APP_IN_AAA(W, Z, W1) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_AA(U, V, W, Z, lessleaves_in_aa(U1, W1)) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg(x1, x2) U1_gg(x1, x2, x3, x4, x5) = U1_gg(x1, x2, x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x1, x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2) U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga(x1) .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x1, x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x1, x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x1, x2, x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x1, x2, x3, x4, x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x1, x2, x3, x4, x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) LESSLEAVES_IN_GG(x1, x2) = LESSLEAVES_IN_GG(x1, x2) U1_GG(x1, x2, x3, x4, x5) = U1_GG(x1, x2, x3, x4, x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U4_GGA(x1, x2, x3) = U4_GGA(x1, x3) EQ_IN_GA(x1, x2) = EQ_IN_GA(x1) U5_GGA(x1, x2, x3, x4, x5) = U5_GGA(x1, x2, x5) HEAD_IN_GA(x1, x2) = HEAD_IN_GA(x1) U6_GGA(x1, x2, x3, x4, x5) = U6_GGA(x1, x2, x5) TAIL_IN_GA(x1, x2) = TAIL_IN_GA(x1) U7_GGA(x1, x2, x3, x4, x5) = U7_GGA(x1, x2, x5) U2_GG(x1, x2, x3, x4, x5, x6) = U2_GG(x1, x2, x3, x4, x6) U3_GG(x1, x2, x3, x4, x5) = U3_GG(x1, x2, x3, x4, x5) LESSLEAVES_IN_AA(x1, x2) = LESSLEAVES_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U4_AAA(x1, x2, x3) = U4_AAA(x3) EQ_IN_AA(x1, x2) = EQ_IN_AA U5_AAA(x1, x2, x3, x4, x5) = U5_AAA(x5) HEAD_IN_AA(x1, x2) = HEAD_IN_AA U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) TAIL_IN_AA(x1, x2) = TAIL_IN_AA U7_AAA(x1, x2, x3, x4, x5) = U7_AAA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x6) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (40) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 19 less nodes. ---------------------------------------- (41) Complex Obligation (AND) ---------------------------------------- (42) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_AAA(X, Y, cons(U, Z)) -> U5_AAA(X, Y, U, Z, head_in_aa(X, U)) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> U6_AAA(X, Y, U, Z, tail_in_aa(X, V)) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> APP_IN_AAA(V, Y, Z) The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg(x1, x2) U1_gg(x1, x2, x3, x4, x5) = U1_gg(x1, x2, x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x1, x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2) U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga(x1) .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x1, x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x1, x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x1, x2, x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x1, x2, x3, x4, x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x1, x2, x3, x4, x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U5_AAA(x1, x2, x3, x4, x5) = U5_AAA(x5) U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (43) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (44) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_AAA(X, Y, cons(U, Z)) -> U5_AAA(X, Y, U, Z, head_in_aa(X, U)) U5_AAA(X, Y, U, Z, head_out_aa(X, U)) -> U6_AAA(X, Y, U, Z, tail_in_aa(X, V)) U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) -> APP_IN_AAA(V, Y, Z) The TRS R consists of the following rules: head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) [] = [] .(x1, x2) = .(x1, x2) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa APP_IN_AAA(x1, x2, x3) = APP_IN_AAA U5_AAA(x1, x2, x3, x4, x5) = U5_AAA(x5) U6_AAA(x1, x2, x3, x4, x5) = U6_AAA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (45) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: APP_IN_AAA -> U5_AAA(head_in_aa) U5_AAA(head_out_aa) -> U6_AAA(tail_in_aa) U6_AAA(tail_out_aa) -> APP_IN_AAA The TRS R consists of the following rules: head_in_aa -> head_out_aa tail_in_aa -> tail_out_aa The set Q consists of the following terms: head_in_aa tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (47) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule APP_IN_AAA -> U5_AAA(head_in_aa) at position [0] we obtained the following new rules [LPAR04]: (APP_IN_AAA -> U5_AAA(head_out_aa),APP_IN_AAA -> U5_AAA(head_out_aa)) ---------------------------------------- (48) Obligation: Q DP problem: The TRS P consists of the following rules: U5_AAA(head_out_aa) -> U6_AAA(tail_in_aa) U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) The TRS R consists of the following rules: head_in_aa -> head_out_aa tail_in_aa -> tail_out_aa The set Q consists of the following terms: head_in_aa tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (49) 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. ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: U5_AAA(head_out_aa) -> U6_AAA(tail_in_aa) U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) The TRS R consists of the following rules: tail_in_aa -> tail_out_aa The set Q consists of the following terms: head_in_aa tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (51) 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]. head_in_aa ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: U5_AAA(head_out_aa) -> U6_AAA(tail_in_aa) U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) The TRS R consists of the following rules: tail_in_aa -> tail_out_aa The set Q consists of the following terms: tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (53) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U5_AAA(head_out_aa) -> U6_AAA(tail_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa),U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa)) ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa) The TRS R consists of the following rules: tail_in_aa -> tail_out_aa The set Q consists of the following terms: tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (55) 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. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa) R is empty. The set Q consists of the following terms: tail_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (57) 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]. tail_in_aa ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AAA(tail_out_aa) -> APP_IN_AAA APP_IN_AAA -> U5_AAA(head_out_aa) U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (59) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = 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 APP_IN_AAA -> U5_AAA(head_out_aa) with rule APP_IN_AAA -> U5_AAA(head_out_aa) at position [] and matcher [ ] U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa) with rule U5_AAA(head_out_aa) -> U6_AAA(tail_out_aa) at position [] and matcher [ ] U6_AAA(tail_out_aa) -> APP_IN_AAA with rule U6_AAA(tail_out_aa) -> APP_IN_AAA Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (60) NO ---------------------------------------- (61) Obligation: Pi DP problem: The TRS P consists of the following rules: U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> U1_AA(U, V, W, Z, app_in_aaa(U, V, U1)) The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg(x1, x2) U1_gg(x1, x2, x3, x4, x5) = U1_gg(x1, x2, x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x1, x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2) U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga(x1) .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x1, x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x1, x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x1, x2, x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x1, x2, x3, x4, x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x1, x2, x3, x4, x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) LESSLEAVES_IN_AA(x1, x2) = LESSLEAVES_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x6) 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: U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> LESSLEAVES_IN_AA(U1, W1) LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) -> U1_AA(U, V, W, Z, app_in_aaa(U, V, U1)) The TRS R consists of the following rules: app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) eq_in_aa(X, X) -> eq_out_aa(X, X) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) The argument filtering Pi contains the following mapping: nil = nil cons(x1, x2) = cons(x1, x2) [] = [] .(x1, x2) = .(x1, x2) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) LESSLEAVES_IN_AA(x1, x2) = LESSLEAVES_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x6) 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: U1_AA(app_out_aaa) -> U2_AA(app_in_aaa) U2_AA(app_out_aaa) -> LESSLEAVES_IN_AA LESSLEAVES_IN_AA -> U1_AA(app_in_aaa) The TRS R consists of the following rules: app_in_aaa -> U4_aaa(eq_in_aa) app_in_aaa -> U5_aaa(head_in_aa) U4_aaa(eq_out_aa) -> app_out_aaa U5_aaa(head_out_aa) -> U6_aaa(tail_in_aa) eq_in_aa -> eq_out_aa head_in_aa -> head_out_aa U6_aaa(tail_out_aa) -> U7_aaa(app_in_aaa) tail_in_aa -> tail_out_aa U7_aaa(app_out_aaa) -> app_out_aaa The set Q consists of the following terms: app_in_aaa U4_aaa(x0) U5_aaa(x0) eq_in_aa head_in_aa U6_aaa(x0) tail_in_aa U7_aaa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (66) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGA(X, Y, cons(U, Z)) -> U5_GGA(X, Y, U, Z, head_in_ga(X, U)) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> U6_GGA(X, Y, U, Z, tail_in_ga(X, V)) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> APP_IN_GGA(V, Y, Z) The TRS R consists of the following rules: lessleaves_in_gg(nil, cons(X1, X2)) -> lessleaves_out_gg(nil, cons(X1, X2)) lessleaves_in_gg(cons(U, V), cons(W, Z)) -> U1_gg(U, V, W, Z, app_in_gga(U, V, U1)) app_in_gga(nil, Y, Z) -> U4_gga(Y, Z, eq_in_ga(Y, Z)) eq_in_ga(X, X) -> eq_out_ga(X, X) U4_gga(Y, Z, eq_out_ga(Y, Z)) -> app_out_gga(nil, Y, Z) app_in_gga(X, Y, cons(U, Z)) -> U5_gga(X, Y, U, Z, head_in_ga(X, U)) head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) U5_gga(X, Y, U, Z, head_out_ga(X, U)) -> U6_gga(X, Y, U, Z, tail_in_ga(X, V)) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) U6_gga(X, Y, U, Z, tail_out_ga(X, V)) -> U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z)) U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) -> app_out_gga(X, Y, cons(U, Z)) U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) -> U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1)) U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) -> U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1)) lessleaves_in_aa(nil, cons(X1, X2)) -> lessleaves_out_aa(nil, cons(X1, X2)) lessleaves_in_aa(cons(U, V), cons(W, Z)) -> U1_aa(U, V, W, Z, app_in_aaa(U, V, U1)) app_in_aaa(nil, Y, Z) -> U4_aaa(Y, Z, eq_in_aa(Y, Z)) eq_in_aa(X, X) -> eq_out_aa(X, X) U4_aaa(Y, Z, eq_out_aa(Y, Z)) -> app_out_aaa(nil, Y, Z) app_in_aaa(X, Y, cons(U, Z)) -> U5_aaa(X, Y, U, Z, head_in_aa(X, U)) head_in_aa([], X3) -> head_out_aa([], X3) head_in_aa(.(X, X4), X) -> head_out_aa(.(X, X4), X) U5_aaa(X, Y, U, Z, head_out_aa(X, U)) -> U6_aaa(X, Y, U, Z, tail_in_aa(X, V)) tail_in_aa([], []) -> tail_out_aa([], []) tail_in_aa(.(X5, X), X) -> tail_out_aa(.(X5, X), X) U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) -> U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z)) U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) -> app_out_aaa(X, Y, cons(U, Z)) U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) -> U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1)) U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) -> U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1)) U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_aa(cons(U, V), cons(W, Z)) U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) -> lessleaves_out_gg(cons(U, V), cons(W, Z)) The argument filtering Pi contains the following mapping: lessleaves_in_gg(x1, x2) = lessleaves_in_gg(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) lessleaves_out_gg(x1, x2) = lessleaves_out_gg(x1, x2) U1_gg(x1, x2, x3, x4, x5) = U1_gg(x1, x2, x3, x4, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) U4_gga(x1, x2, x3) = U4_gga(x1, x3) eq_in_ga(x1, x2) = eq_in_ga(x1) eq_out_ga(x1, x2) = eq_out_ga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2) U5_gga(x1, x2, x3, x4, x5) = U5_gga(x1, x2, x5) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga(x1) .(x1, x2) = .(x1, x2) U6_gga(x1, x2, x3, x4, x5) = U6_gga(x1, x2, x5) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x1, x2) U7_gga(x1, x2, x3, x4, x5) = U7_gga(x1, x2, x5) U2_gg(x1, x2, x3, x4, x5, x6) = U2_gg(x1, x2, x3, x4, x6) U3_gg(x1, x2, x3, x4, x5) = U3_gg(x1, x2, x3, x4, x5) lessleaves_in_aa(x1, x2) = lessleaves_in_aa lessleaves_out_aa(x1, x2) = lessleaves_out_aa U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) app_in_aaa(x1, x2, x3) = app_in_aaa U4_aaa(x1, x2, x3) = U4_aaa(x3) eq_in_aa(x1, x2) = eq_in_aa eq_out_aa(x1, x2) = eq_out_aa app_out_aaa(x1, x2, x3) = app_out_aaa U5_aaa(x1, x2, x3, x4, x5) = U5_aaa(x5) head_in_aa(x1, x2) = head_in_aa head_out_aa(x1, x2) = head_out_aa U6_aaa(x1, x2, x3, x4, x5) = U6_aaa(x5) tail_in_aa(x1, x2) = tail_in_aa tail_out_aa(x1, x2) = tail_out_aa U7_aaa(x1, x2, x3, x4, x5) = U7_aaa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U5_GGA(x1, x2, x3, x4, x5) = U5_GGA(x1, x2, x5) U6_GGA(x1, x2, x3, x4, x5) = U6_GGA(x1, x2, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (67) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (68) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGA(X, Y, cons(U, Z)) -> U5_GGA(X, Y, U, Z, head_in_ga(X, U)) U5_GGA(X, Y, U, Z, head_out_ga(X, U)) -> U6_GGA(X, Y, U, Z, tail_in_ga(X, V)) U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) -> APP_IN_GGA(V, Y, Z) The TRS R consists of the following rules: head_in_ga([], X3) -> head_out_ga([], X3) head_in_ga(.(X, X4), X) -> head_out_ga(.(X, X4), X) tail_in_ga([], []) -> tail_out_ga([], []) tail_in_ga(.(X5, X), X) -> tail_out_ga(.(X5, X), X) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) head_in_ga(x1, x2) = head_in_ga(x1) [] = [] head_out_ga(x1, x2) = head_out_ga(x1) .(x1, x2) = .(x1, x2) tail_in_ga(x1, x2) = tail_in_ga(x1) tail_out_ga(x1, x2) = tail_out_ga(x1, x2) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U5_GGA(x1, x2, x3, x4, x5) = U5_GGA(x1, x2, x5) U6_GGA(x1, x2, x3, x4, x5) = U6_GGA(x1, x2, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (69) PrologToTRSTransformerProof (SOUND) Transformed Prolog program to TRS. { "root": 1, "program": { "directives": [], "clauses": [ [ "(lessleaves (nil) (cons X1 X2))", null ], [ "(lessleaves (cons U V) (cons W Z))", "(',' (app U V U1) (',' (app W Z W1) (lessleaves U1 W1)))" ], [ "(app (nil) Y Z)", "(',' (!) (eq Y Z))" ], [ "(app X Y (cons U Z))", "(',' (head X U) (',' (tail X V) (app V Y Z)))" ], [ "(head ([]) X3)", null ], [ "(head (. X X4) X)", null ], [ "(tail ([]) ([]))", null ], [ "(tail (. X5 X) X)", null ], [ "(eq X X)", null ] ] }, "graph": { "nodes": { "44": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "49": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes", "673": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T56 T40 X72)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T40", "T56" ], "free": ["X72"], "exprvars": [] } }, "750": { "goal": [ { "clause": 4, "scope": 10, "term": "(',' (head T112 X193) (',' (tail T112 X192) (app X192 T113 X194)))" }, { "clause": 5, "scope": 10, "term": "(',' (head T112 X193) (',' (tail T112 X192) (app X192 T113 X194)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X193", "X194", "X192" ], "exprvars": [] } }, "476": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail ([]) X70) (app X70 T40 X72))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [ "X72", "X70" ], "exprvars": [] } }, "752": { "goal": [{ "clause": 4, "scope": 10, "term": "(',' (head T112 X193) (',' (tail T112 X192) (app X192 T113 X194)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X193", "X194", "X192" ], "exprvars": [] } }, "478": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "632": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail (. T47 T48) X70) (app X70 T40 X72))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T40", "T47", "T48" ], "free": [ "X72", "X70" ], "exprvars": [] } }, "753": { "goal": [{ "clause": 5, "scope": 10, "term": "(',' (head T112 X193) (',' (tail T112 X192) (app X192 T113 X194)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X193", "X194", "X192" ], "exprvars": [] } }, "479": { "goal": [ { "clause": 6, "scope": 5, "term": "(',' (tail ([]) X70) (app X70 T40 X72))" }, { "clause": 7, "scope": 5, "term": "(',' (tail ([]) X70) (app X70 T40 X72))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [ "X72", "X70" ], "exprvars": [] } }, "754": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail ([]) X192) (app X192 T115 X194))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "755": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "757": { "goal": [ { "clause": 6, "scope": 11, "term": "(',' (tail ([]) X192) (app X192 T115 X194))" }, { "clause": 7, "scope": 11, "term": "(',' (tail ([]) X192) (app X192 T115 X194))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "637": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "719": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T23 T24 X31)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T23", "T24" ], "free": ["X31"], "exprvars": [] } }, "480": { "goal": [{ "clause": 6, "scope": 5, "term": "(',' (tail ([]) X70) (app X70 T40 X72))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [ "X72", "X70" ], "exprvars": [] } }, "162": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T21 T22 X30)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T21", "T22" ], "free": ["X30"], "exprvars": [] } }, "481": { "goal": [{ "clause": 7, "scope": 5, "term": "(',' (tail ([]) X70) (app X70 T40 X72))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [ "X72", "X70" ], "exprvars": [] } }, "163": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T23 T24 X31) (lessleaves T26 X31))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T23", "T24" ], "free": ["X31"], "exprvars": [] } }, "482": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T40 X72)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": ["X72"], "exprvars": [] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(lessleaves T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "760": { "goal": [{ "clause": 6, "scope": 11, "term": "(',' (tail ([]) X192) (app X192 T115 X194))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "761": { "goal": [{ "clause": 7, "scope": 11, "term": "(',' (tail ([]) X192) (app X192 T115 X194))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "762": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T115 X194)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X194"], "exprvars": [] } }, "5": { "goal": [ { "clause": 0, "scope": 1, "term": "(lessleaves T1 T2)" }, { "clause": 1, "scope": 1, "term": "(lessleaves T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "720": { "goal": [{ "clause": -1, "scope": -1, "term": "(lessleaves T26 T59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "446": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (head T39 X71) (',' (tail T39 X70) (app X70 T40 X72)))" }], "kb": { "nonunifying": [[ "(app T39 T40 X30)", "(app (nil) X44 X45)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X30", "X44", "X45", "X71", "X72", "X70" ], "exprvars": [] } }, "7": { "goal": [{ "clause": 0, "scope": 1, "term": "(lessleaves T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "766": { "goal": [ { "clause": 2, "scope": 12, "term": "(app ([]) T115 X194)" }, { "clause": 3, "scope": 12, "term": "(app ([]) T115 X194)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X194"], "exprvars": [] } }, "8": { "goal": [{ "clause": 1, "scope": 1, "term": "(lessleaves T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "327": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_2) (eq T30 X46))" }, { "clause": 3, "scope": 2, "term": "(app (nil) T30 X30)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T30"], "free": [ "X30", "X46" ], "exprvars": [] } }, "767": { "goal": [{ "clause": 3, "scope": 12, "term": "(app ([]) T115 X194)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X194"], "exprvars": [] } }, "800": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (head ([]) X240) (',' (tail ([]) X239) (app X239 T122 X241)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X240", "X241", "X239" ], "exprvars": [] } }, "328": { "goal": [{ "clause": 3, "scope": 2, "term": "(app T21 T22 X30)" }], "kb": { "nonunifying": [[ "(app T21 T22 X30)", "(app (nil) X44 X45)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T21", "T22" ], "free": [ "X30", "X44", "X45" ], "exprvars": [] } }, "647": { "goal": [ { "clause": 6, "scope": 6, "term": "(',' (tail (. T47 T48) X70) (app X70 T40 X72))" }, { "clause": 7, "scope": 6, "term": "(',' (tail (. T47 T48) X70) (app X70 T40 X72))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T40", "T47", "T48" ], "free": [ "X72", "X70" ], "exprvars": [] } }, "801": { "goal": [ { "clause": 4, "scope": 13, "term": "(',' (head ([]) X240) (',' (tail ([]) X239) (app X239 T122 X241)))" }, { "clause": 5, "scope": 13, "term": "(',' (head ([]) X240) (',' (tail ([]) X239) (app X239 T122 X241)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X240", "X241", "X239" ], "exprvars": [] } }, "329": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq T30 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T30"], "free": ["X46"], "exprvars": [] } }, "802": { "goal": [{ "clause": 4, "scope": 13, "term": "(',' (head ([]) X240) (',' (tail ([]) X239) (app X239 T122 X241)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X240", "X241", "X239" ], "exprvars": [] } }, "726": { "goal": [ { "clause": 0, "scope": 7, "term": "(lessleaves T26 T59)" }, { "clause": 1, "scope": 7, "term": "(lessleaves T26 T59)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "803": { "goal": [{ "clause": 5, "scope": 13, "term": "(',' (head ([]) X240) (',' (tail ([]) X239) (app X239 T122 X241)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X240", "X241", "X239" ], "exprvars": [] } }, "727": { "goal": [{ "clause": 0, "scope": 7, "term": "(lessleaves T26 T59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "804": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail ([]) X239) (app X239 T122 X241))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X241", "X239" ], "exprvars": [] } }, "728": { "goal": [{ "clause": 1, "scope": 7, "term": "(lessleaves T26 T59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "805": { "goal": [ { "clause": 6, "scope": 14, "term": "(',' (tail ([]) X239) (app X239 T122 X241))" }, { "clause": 7, "scope": 14, "term": "(',' (tail ([]) X239) (app X239 T122 X241))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X241", "X239" ], "exprvars": [] } }, "849": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T146 T147 X194)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X194"], "exprvars": [] } }, "729": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "806": { "goal": [{ "clause": 6, "scope": 14, "term": "(',' (tail ([]) X239) (app X239 T122 X241))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X241", "X239" ], "exprvars": [] } }, "807": { "goal": [{ "clause": 7, "scope": 14, "term": "(',' (tail ([]) X239) (app X239 T122 X241))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X241", "X239" ], "exprvars": [] } }, "808": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T122 X241)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X241"], "exprvars": [] } }, "809": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "295": { "goal": [ { "clause": 2, "scope": 2, "term": "(app T21 T22 X30)" }, { "clause": 3, "scope": 2, "term": "(app T21 T22 X30)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T21", "T22" ], "free": ["X30"], "exprvars": [] } }, "132": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T21 T22 X30) (',' (app T23 T24 X31) (lessleaves X30 X31)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T21", "T22", "T23", "T24" ], "free": [ "X30", "X31" ], "exprvars": [] } }, "650": { "goal": [{ "clause": 7, "scope": 6, "term": "(',' (tail (. T47 T48) X70) (app X70 T40 X72))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T40", "T47", "T48" ], "free": [ "X72", "X70" ], "exprvars": [] } }, "454": { "goal": [ { "clause": 4, "scope": 4, "term": "(',' (head T39 X71) (',' (tail T39 X70) (app X70 T40 X72)))" }, { "clause": 5, "scope": 4, "term": "(',' (head T39 X71) (',' (tail T39 X70) (app X70 T40 X72)))" } ], "kb": { "nonunifying": [[ "(app T39 T40 X30)", "(app (nil) X44 X45)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X30", "X44", "X45", "X71", "X72", "X70" ], "exprvars": [] } }, "850": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T93 T94 X153)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X153"], "exprvars": [] } }, "730": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "851": { "goal": [{ "clause": -1, "scope": -1, "term": "(lessleaves T151 T150)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "731": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "611": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "732": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T87 T88 X152) (',' (app T89 T90 X153) (lessleaves X152 X153)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X152", "X153" ], "exprvars": [] } }, "414": { "goal": [{ "clause": 8, "scope": 3, "term": "(eq T30 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T30"], "free": ["X46"], "exprvars": [] } }, "733": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "810": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "811": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "735": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T87 T88 X152)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X152"], "exprvars": [] } }, "812": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail (. T133 T134) X192) (app X192 T135 X194))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "736": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T93 T94 X153) (lessleaves T92 X153))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X153"], "exprvars": [] } }, "813": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "737": { "goal": [ { "clause": 2, "scope": 8, "term": "(app T87 T88 X152)" }, { "clause": 3, "scope": 8, "term": "(app T87 T88 X152)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X152"], "exprvars": [] } }, "814": { "goal": [ { "clause": 6, "scope": 15, "term": "(',' (tail (. T133 T134) X192) (app X192 T135 X194))" }, { "clause": 7, "scope": 15, "term": "(',' (tail (. T133 T134) X192) (app X192 T135 X194))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "738": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_8) (eq T99 X168))" }, { "clause": 3, "scope": 8, "term": "(app T87 T88 X152)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X152", "X168" ], "exprvars": [] } }, "815": { "goal": [{ "clause": 7, "scope": 15, "term": "(',' (tail (. T133 T134) X192) (app X192 T135 X194))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "739": { "goal": [{ "clause": 3, "scope": 8, "term": "(app T87 T88 X152)" }], "kb": { "nonunifying": [[ "(app T87 T88 X152)", "(app (nil) X166 X167)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X152", "X166", "X167" ], "exprvars": [] } }, "141": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "464": { "goal": [{ "clause": 4, "scope": 4, "term": "(',' (head T39 X71) (',' (tail T39 X70) (app X70 T40 X72)))" }], "kb": { "nonunifying": [[ "(app T39 T40 X30)", "(app (nil) X44 X45)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X30", "X44", "X45", "X71", "X72", "X70" ], "exprvars": [] } }, "740": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq T99 X168)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X168"], "exprvars": [] } }, "422": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "741": { "goal": [{ "clause": 8, "scope": 9, "term": "(eq T99 X168)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X168"], "exprvars": [] } }, "467": { "goal": [{ "clause": 5, "scope": 4, "term": "(',' (head T39 X71) (',' (tail T39 X70) (app X70 T40 X72)))" }], "kb": { "nonunifying": [[ "(app T39 T40 X30)", "(app (nil) X44 X45)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X30", "X44", "X45", "X71", "X72", "X70" ], "exprvars": [] } }, "742": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "424": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "743": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "749": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (head T112 X193) (',' (tail T112 X192) (app X192 T113 X194)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X193", "X194", "X192" ], "exprvars": [] } }, "43": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 1, "to": 5, "label": "CASE" }, { "from": 5, "to": 7, "label": "PARALLEL" }, { "from": 5, "to": 8, "label": "PARALLEL" }, { "from": 7, "to": 43, "label": "EVAL with clause\nlessleaves(nil, cons(X14, X15)).\nand substitutionT1 -> nil,\nX14 -> T11,\nX15 -> T12,\nT2 -> cons(T11, T12)" }, { "from": 7, "to": 44, "label": "EVAL-BACKTRACK" }, { "from": 8, "to": 132, "label": "EVAL with clause\nlessleaves(cons(X26, X27), cons(X28, X29)) :- ','(app(X26, X27, X30), ','(app(X28, X29, X31), lessleaves(X30, X31))).\nand substitutionX26 -> T21,\nX27 -> T22,\nT1 -> cons(T21, T22),\nX28 -> T23,\nX29 -> T24,\nT2 -> cons(T23, T24)" }, { "from": 8, "to": 141, "label": "EVAL-BACKTRACK" }, { "from": 43, "to": 49, "label": "SUCCESS" }, { "from": 132, "to": 162, "label": "SPLIT 1" }, { "from": 132, "to": 163, "label": "SPLIT 2\nnew knowledge:\nT21 is ground\nT22 is ground\nreplacements:X30 -> T26" }, { "from": 162, "to": 295, "label": "CASE" }, { "from": 163, "to": 719, "label": "SPLIT 1" }, { "from": 163, "to": 720, "label": "SPLIT 2\nnew knowledge:\nT23 is ground\nT24 is ground\nreplacements:X31 -> T59" }, { "from": 295, "to": 327, "label": "EVAL with clause\napp(nil, X44, X45) :- ','(!_2, eq(X44, X45)).\nand substitutionT21 -> nil,\nT22 -> T30,\nX44 -> T30,\nX30 -> X46,\nX45 -> X46" }, { "from": 295, "to": 328, "label": "EVAL-BACKTRACK" }, { "from": 327, "to": 329, "label": "CUT" }, { "from": 328, "to": 446, "label": "ONLY EVAL with clause\napp(X66, X67, cons(X68, X69)) :- ','(head(X66, X68), ','(tail(X66, X70), app(X70, X67, X69))).\nand substitutionT21 -> T39,\nX66 -> T39,\nT22 -> T40,\nX67 -> T40,\nX68 -> X71,\nX69 -> X72,\nX30 -> cons(X71, X72)" }, { "from": 329, "to": 414, "label": "CASE" }, { "from": 414, "to": 422, "label": "ONLY EVAL with clause\neq(X49, X49).\nand substitutionT30 -> T33,\nX49 -> T33,\nX46 -> T33" }, { "from": 422, "to": 424, "label": "SUCCESS" }, { "from": 446, "to": 454, "label": "CASE" }, { "from": 454, "to": 464, "label": "PARALLEL" }, { "from": 454, "to": 467, "label": "PARALLEL" }, { "from": 464, "to": 476, "label": "EVAL with clause\nhead([], X84).\nand substitutionT39 -> [],\nX71 -> X85,\nX84 -> X85" }, { "from": 464, "to": 478, "label": "EVAL-BACKTRACK" }, { "from": 467, "to": 632, "label": "EVAL with clause\nhead(.(X101, X102), X101).\nand substitutionX101 -> T47,\nX102 -> T48,\nT39 -> .(T47, T48),\nX71 -> T47" }, { "from": 467, "to": 637, "label": "EVAL-BACKTRACK" }, { "from": 476, "to": 479, "label": "CASE" }, { "from": 479, "to": 480, "label": "PARALLEL" }, { "from": 479, "to": 481, "label": "PARALLEL" }, { "from": 480, "to": 482, "label": "ONLY EVAL with clause\ntail([], []).\nand substitutionX70 -> []" }, { "from": 481, "to": 611, "label": "BACKTRACK\nfor clause: tail(.(X5, X), X)because of non-unification" }, { "from": 482, "to": 162, "label": "INSTANCE with matching:\nT21 -> []\nT22 -> T40\nX30 -> X72" }, { "from": 632, "to": 647, "label": "CASE" }, { "from": 647, "to": 650, "label": "BACKTRACK\nfor clause: tail([], [])because of non-unification" }, { "from": 650, "to": 673, "label": "ONLY EVAL with clause\ntail(.(X113, X114), X114).\nand substitutionT47 -> T55,\nX113 -> T55,\nT48 -> T56,\nX114 -> T56,\nX70 -> T56" }, { "from": 673, "to": 162, "label": "INSTANCE with matching:\nT21 -> T56\nT22 -> T40\nX30 -> X72" }, { "from": 719, "to": 162, "label": "INSTANCE with matching:\nT21 -> T23\nT22 -> T24\nX30 -> X31" }, { "from": 720, "to": 726, "label": "CASE" }, { "from": 726, "to": 727, "label": "PARALLEL" }, { "from": 726, "to": 728, "label": "PARALLEL" }, { "from": 727, "to": 729, "label": "EVAL with clause\nlessleaves(nil, cons(X136, X137)).\nand substitutionT26 -> nil,\nX136 -> T73,\nX137 -> T74,\nT59 -> cons(T73, T74)" }, { "from": 727, "to": 730, "label": "EVAL-BACKTRACK" }, { "from": 728, "to": 732, "label": "EVAL with clause\nlessleaves(cons(X148, X149), cons(X150, X151)) :- ','(app(X148, X149, X152), ','(app(X150, X151, X153), lessleaves(X152, X153))).\nand substitutionX148 -> T87,\nX149 -> T88,\nT26 -> cons(T87, T88),\nX150 -> T89,\nX151 -> T90,\nT59 -> cons(T89, T90),\nT83 -> T87,\nT84 -> T88,\nT85 -> T89,\nT86 -> T90" }, { "from": 728, "to": 733, "label": "EVAL-BACKTRACK" }, { "from": 729, "to": 731, "label": "SUCCESS" }, { "from": 732, "to": 735, "label": "SPLIT 1" }, { "from": 732, "to": 736, "label": "SPLIT 2\nreplacements:X152 -> T92,\nT89 -> T93,\nT90 -> T94" }, { "from": 735, "to": 737, "label": "CASE" }, { "from": 736, "to": 850, "label": "SPLIT 1" }, { "from": 736, "to": 851, "label": "SPLIT 2\nreplacements:X153 -> T150,\nT92 -> T151" }, { "from": 737, "to": 738, "label": "EVAL with clause\napp(nil, X166, X167) :- ','(!_8, eq(X166, X167)).\nand substitutionT87 -> nil,\nT88 -> T99,\nX166 -> T99,\nX152 -> X168,\nX167 -> X168,\nT98 -> T99" }, { "from": 737, "to": 739, "label": "EVAL-BACKTRACK" }, { "from": 738, "to": 740, "label": "CUT" }, { "from": 739, "to": 749, "label": "ONLY EVAL with clause\napp(X188, X189, cons(X190, X191)) :- ','(head(X188, X190), ','(tail(X188, X192), app(X192, X189, X191))).\nand substitutionT87 -> T112,\nX188 -> T112,\nT88 -> T113,\nX189 -> T113,\nX190 -> X193,\nX191 -> X194,\nX152 -> cons(X193, X194),\nT110 -> T112,\nT111 -> T113" }, { "from": 740, "to": 741, "label": "CASE" }, { "from": 741, "to": 742, "label": "ONLY EVAL with clause\neq(X171, X171).\nand substitutionT99 -> T102,\nX171 -> T102,\nX168 -> T102" }, { "from": 742, "to": 743, "label": "SUCCESS" }, { "from": 749, "to": 750, "label": "CASE" }, { "from": 750, "to": 752, "label": "PARALLEL" }, { "from": 750, "to": 753, "label": "PARALLEL" }, { "from": 752, "to": 754, "label": "EVAL with clause\nhead([], X206).\nand substitutionT112 -> [],\nX193 -> X207,\nX206 -> X207,\nT113 -> T115" }, { "from": 752, "to": 755, "label": "EVAL-BACKTRACK" }, { "from": 753, "to": 812, "label": "EVAL with clause\nhead(.(X280, X281), X280).\nand substitutionX280 -> T133,\nX281 -> T134,\nT112 -> .(T133, T134),\nX193 -> T133,\nT131 -> T133,\nT132 -> T134,\nT113 -> T135" }, { "from": 753, "to": 813, "label": "EVAL-BACKTRACK" }, { "from": 754, "to": 757, "label": "CASE" }, { "from": 757, "to": 760, "label": "PARALLEL" }, { "from": 757, "to": 761, "label": "PARALLEL" }, { "from": 760, "to": 762, "label": "ONLY EVAL with clause\ntail([], []).\nand substitutionX192 -> []" }, { "from": 761, "to": 811, "label": "BACKTRACK\nfor clause: tail(.(X5, X), X)because of non-unification" }, { "from": 762, "to": 766, "label": "CASE" }, { "from": 766, "to": 767, "label": "BACKTRACK\nfor clause: app(nil, Y, Z) :- ','(!, eq(Y, Z))because of non-unification" }, { "from": 767, "to": 800, "label": "ONLY EVAL with clause\napp(X235, X236, cons(X237, X238)) :- ','(head(X235, X237), ','(tail(X235, X239), app(X239, X236, X238))).\nand substitutionX235 -> [],\nT115 -> T122,\nX236 -> T122,\nX237 -> X240,\nX238 -> X241,\nX194 -> cons(X240, X241),\nT121 -> T122" }, { "from": 800, "to": 801, "label": "CASE" }, { "from": 801, "to": 802, "label": "PARALLEL" }, { "from": 801, "to": 803, "label": "PARALLEL" }, { "from": 802, "to": 804, "label": "ONLY EVAL with clause\nhead([], X259).\nand substitutionX240 -> X260,\nX259 -> X260" }, { "from": 803, "to": 810, "label": "BACKTRACK\nfor clause: head(.(X, X4), X)because of non-unification" }, { "from": 804, "to": 805, "label": "CASE" }, { "from": 805, "to": 806, "label": "PARALLEL" }, { "from": 805, "to": 807, "label": "PARALLEL" }, { "from": 806, "to": 808, "label": "ONLY EVAL with clause\ntail([], []).\nand substitutionX239 -> []" }, { "from": 807, "to": 809, "label": "BACKTRACK\nfor clause: tail(.(X5, X), X)because of non-unification" }, { "from": 808, "to": 762, "label": "INSTANCE with matching:\nT115 -> T122\nX194 -> X241" }, { "from": 812, "to": 814, "label": "CASE" }, { "from": 814, "to": 815, "label": "BACKTRACK\nfor clause: tail([], [])because of non-unification" }, { "from": 815, "to": 849, "label": "ONLY EVAL with clause\ntail(.(X292, X293), X293).\nand substitutionT133 -> T144,\nX292 -> T144,\nT134 -> T146,\nX293 -> T146,\nX192 -> T146,\nT145 -> T146,\nT135 -> T147" }, { "from": 849, "to": 735, "label": "INSTANCE with matching:\nT87 -> T146\nT88 -> T147\nX152 -> X194" }, { "from": 850, "to": 735, "label": "INSTANCE with matching:\nT87 -> T93\nT88 -> T94\nX152 -> X153" }, { "from": 851, "to": 720, "label": "INSTANCE with matching:\nT26 -> T151\nT59 -> T150" } ], "type": "Graph" } } ---------------------------------------- (70) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f1_in(nil, cons(T11, T12)) -> f1_out1 f1_in(cons(T21, T22), cons(T23, T24)) -> U1(f132_in(T21, T22, T23, T24), cons(T21, T22), cons(T23, T24)) U1(f132_out1, cons(T21, T22), cons(T23, T24)) -> f1_out1 f162_in(nil, T33) -> f162_out1 f162_in([], T40) -> U2(f162_in([], T40), [], T40) U2(f162_out1, [], T40) -> f162_out1 f162_in(.(T55, T56), T40) -> U3(f162_in(T56, T40), .(T55, T56), T40) U3(f162_out1, .(T55, T56), T40) -> f162_out1 f762_in -> U4(f762_in) U4(f762_out1) -> f762_out1 f735_in -> f735_out1 f735_in -> U5(f762_in) U5(f762_out1) -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 f720_in -> f720_out1 f720_in -> U7(f732_in) U7(f732_out1) -> f720_out1 f132_in(T21, T22, T23, T24) -> U8(f162_in(T21, T22), T21, T22, T23, T24) U8(f162_out1, T21, T22, T23, T24) -> U9(f163_in(T23, T24), T21, T22, T23, T24) U9(f163_out1, T21, T22, T23, T24) -> f132_out1 f163_in(T23, T24) -> U10(f162_in(T23, T24), T23, T24) U10(f162_out1, T23, T24) -> U11(f720_in, T23, T24) U11(f720_out1, T23, T24) -> f163_out1 f732_in -> U12(f735_in) U12(f735_out1) -> U13(f736_in) U13(f736_out1) -> f732_out1 f736_in -> U14(f735_in) U14(f735_out1) -> U15(f720_in) U15(f720_out1) -> f736_out1 Q is empty. ---------------------------------------- (71) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: F1_IN(cons(T21, T22), cons(T23, T24)) -> U1^1(f132_in(T21, T22, T23, T24), cons(T21, T22), cons(T23, T24)) F1_IN(cons(T21, T22), cons(T23, T24)) -> F132_IN(T21, T22, T23, T24) F162_IN([], T40) -> U2^1(f162_in([], T40), [], T40) F162_IN([], T40) -> F162_IN([], T40) F162_IN(.(T55, T56), T40) -> U3^1(f162_in(T56, T40), .(T55, T56), T40) F162_IN(.(T55, T56), T40) -> F162_IN(T56, T40) F762_IN -> U4^1(f762_in) F762_IN -> F762_IN F735_IN -> U5^1(f762_in) F735_IN -> F762_IN F735_IN -> U6^1(f735_in) F735_IN -> F735_IN F720_IN -> U7^1(f732_in) F720_IN -> F732_IN F132_IN(T21, T22, T23, T24) -> U8^1(f162_in(T21, T22), T21, T22, T23, T24) F132_IN(T21, T22, T23, T24) -> F162_IN(T21, T22) U8^1(f162_out1, T21, T22, T23, T24) -> U9^1(f163_in(T23, T24), T21, T22, T23, T24) U8^1(f162_out1, T21, T22, T23, T24) -> F163_IN(T23, T24) F163_IN(T23, T24) -> U10^1(f162_in(T23, T24), T23, T24) F163_IN(T23, T24) -> F162_IN(T23, T24) U10^1(f162_out1, T23, T24) -> U11^1(f720_in, T23, T24) U10^1(f162_out1, T23, T24) -> F720_IN F732_IN -> U12^1(f735_in) F732_IN -> F735_IN U12^1(f735_out1) -> U13^1(f736_in) U12^1(f735_out1) -> F736_IN F736_IN -> U14^1(f735_in) F736_IN -> F735_IN U14^1(f735_out1) -> U15^1(f720_in) U14^1(f735_out1) -> F720_IN The TRS R consists of the following rules: f1_in(nil, cons(T11, T12)) -> f1_out1 f1_in(cons(T21, T22), cons(T23, T24)) -> U1(f132_in(T21, T22, T23, T24), cons(T21, T22), cons(T23, T24)) U1(f132_out1, cons(T21, T22), cons(T23, T24)) -> f1_out1 f162_in(nil, T33) -> f162_out1 f162_in([], T40) -> U2(f162_in([], T40), [], T40) U2(f162_out1, [], T40) -> f162_out1 f162_in(.(T55, T56), T40) -> U3(f162_in(T56, T40), .(T55, T56), T40) U3(f162_out1, .(T55, T56), T40) -> f162_out1 f762_in -> U4(f762_in) U4(f762_out1) -> f762_out1 f735_in -> f735_out1 f735_in -> U5(f762_in) U5(f762_out1) -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 f720_in -> f720_out1 f720_in -> U7(f732_in) U7(f732_out1) -> f720_out1 f132_in(T21, T22, T23, T24) -> U8(f162_in(T21, T22), T21, T22, T23, T24) U8(f162_out1, T21, T22, T23, T24) -> U9(f163_in(T23, T24), T21, T22, T23, T24) U9(f163_out1, T21, T22, T23, T24) -> f132_out1 f163_in(T23, T24) -> U10(f162_in(T23, T24), T23, T24) U10(f162_out1, T23, T24) -> U11(f720_in, T23, T24) U11(f720_out1, T23, T24) -> f163_out1 f732_in -> U12(f735_in) U12(f735_out1) -> U13(f736_in) U13(f736_out1) -> f732_out1 f736_in -> U14(f735_in) U14(f735_out1) -> U15(f720_in) U15(f720_out1) -> f736_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (73) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 5 SCCs with 21 less nodes. ---------------------------------------- (74) Complex Obligation (AND) ---------------------------------------- (75) Obligation: Q DP problem: The TRS P consists of the following rules: F762_IN -> F762_IN The TRS R consists of the following rules: f1_in(nil, cons(T11, T12)) -> f1_out1 f1_in(cons(T21, T22), cons(T23, T24)) -> U1(f132_in(T21, T22, T23, T24), cons(T21, T22), cons(T23, T24)) U1(f132_out1, cons(T21, T22), cons(T23, T24)) -> f1_out1 f162_in(nil, T33) -> f162_out1 f162_in([], T40) -> U2(f162_in([], T40), [], T40) U2(f162_out1, [], T40) -> f162_out1 f162_in(.(T55, T56), T40) -> U3(f162_in(T56, T40), .(T55, T56), T40) U3(f162_out1, .(T55, T56), T40) -> f162_out1 f762_in -> U4(f762_in) U4(f762_out1) -> f762_out1 f735_in -> f735_out1 f735_in -> U5(f762_in) U5(f762_out1) -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 f720_in -> f720_out1 f720_in -> U7(f732_in) U7(f732_out1) -> f720_out1 f132_in(T21, T22, T23, T24) -> U8(f162_in(T21, T22), T21, T22, T23, T24) U8(f162_out1, T21, T22, T23, T24) -> U9(f163_in(T23, T24), T21, T22, T23, T24) U9(f163_out1, T21, T22, T23, T24) -> f132_out1 f163_in(T23, T24) -> U10(f162_in(T23, T24), T23, T24) U10(f162_out1, T23, T24) -> U11(f720_in, T23, T24) U11(f720_out1, T23, T24) -> f163_out1 f732_in -> U12(f735_in) U12(f735_out1) -> U13(f736_in) U13(f736_out1) -> f732_out1 f736_in -> U14(f735_in) U14(f735_out1) -> U15(f720_in) U15(f720_out1) -> f736_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (76) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (77) Obligation: Q DP problem: The TRS P consists of the following rules: F762_IN -> F762_IN R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (78) 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 = F762_IN evaluates to t =F762_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 F762_IN to F762_IN. ---------------------------------------- (79) NO ---------------------------------------- (80) Obligation: Q DP problem: The TRS P consists of the following rules: F735_IN -> F735_IN The TRS R consists of the following rules: f1_in(nil, cons(T11, T12)) -> f1_out1 f1_in(cons(T21, T22), cons(T23, T24)) -> U1(f132_in(T21, T22, T23, T24), cons(T21, T22), cons(T23, T24)) U1(f132_out1, cons(T21, T22), cons(T23, T24)) -> f1_out1 f162_in(nil, T33) -> f162_out1 f162_in([], T40) -> U2(f162_in([], T40), [], T40) U2(f162_out1, [], T40) -> f162_out1 f162_in(.(T55, T56), T40) -> U3(f162_in(T56, T40), .(T55, T56), T40) U3(f162_out1, .(T55, T56), T40) -> f162_out1 f762_in -> U4(f762_in) U4(f762_out1) -> f762_out1 f735_in -> f735_out1 f735_in -> U5(f762_in) U5(f762_out1) -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 f720_in -> f720_out1 f720_in -> U7(f732_in) U7(f732_out1) -> f720_out1 f132_in(T21, T22, T23, T24) -> U8(f162_in(T21, T22), T21, T22, T23, T24) U8(f162_out1, T21, T22, T23, T24) -> U9(f163_in(T23, T24), T21, T22, T23, T24) U9(f163_out1, T21, T22, T23, T24) -> f132_out1 f163_in(T23, T24) -> U10(f162_in(T23, T24), T23, T24) U10(f162_out1, T23, T24) -> U11(f720_in, T23, T24) U11(f720_out1, T23, T24) -> f163_out1 f732_in -> U12(f735_in) U12(f735_out1) -> U13(f736_in) U13(f736_out1) -> f732_out1 f736_in -> U14(f735_in) U14(f735_out1) -> U15(f720_in) U15(f720_out1) -> f736_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (81) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (82) Obligation: Q DP problem: The TRS P consists of the following rules: F735_IN -> F735_IN R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (83) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = F735_IN evaluates to t =F735_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 F735_IN to F735_IN. ---------------------------------------- (84) NO ---------------------------------------- (85) Obligation: Q DP problem: The TRS P consists of the following rules: F732_IN -> U12^1(f735_in) U12^1(f735_out1) -> F736_IN F736_IN -> U14^1(f735_in) U14^1(f735_out1) -> F720_IN F720_IN -> F732_IN The TRS R consists of the following rules: f1_in(nil, cons(T11, T12)) -> f1_out1 f1_in(cons(T21, T22), cons(T23, T24)) -> U1(f132_in(T21, T22, T23, T24), cons(T21, T22), cons(T23, T24)) U1(f132_out1, cons(T21, T22), cons(T23, T24)) -> f1_out1 f162_in(nil, T33) -> f162_out1 f162_in([], T40) -> U2(f162_in([], T40), [], T40) U2(f162_out1, [], T40) -> f162_out1 f162_in(.(T55, T56), T40) -> U3(f162_in(T56, T40), .(T55, T56), T40) U3(f162_out1, .(T55, T56), T40) -> f162_out1 f762_in -> U4(f762_in) U4(f762_out1) -> f762_out1 f735_in -> f735_out1 f735_in -> U5(f762_in) U5(f762_out1) -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 f720_in -> f720_out1 f720_in -> U7(f732_in) U7(f732_out1) -> f720_out1 f132_in(T21, T22, T23, T24) -> U8(f162_in(T21, T22), T21, T22, T23, T24) U8(f162_out1, T21, T22, T23, T24) -> U9(f163_in(T23, T24), T21, T22, T23, T24) U9(f163_out1, T21, T22, T23, T24) -> f132_out1 f163_in(T23, T24) -> U10(f162_in(T23, T24), T23, T24) U10(f162_out1, T23, T24) -> U11(f720_in, T23, T24) U11(f720_out1, T23, T24) -> f163_out1 f732_in -> U12(f735_in) U12(f735_out1) -> U13(f736_in) U13(f736_out1) -> f732_out1 f736_in -> U14(f735_in) U14(f735_out1) -> U15(f720_in) U15(f720_out1) -> f736_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (86) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (87) Obligation: Q DP problem: The TRS P consists of the following rules: F732_IN -> U12^1(f735_in) U12^1(f735_out1) -> F736_IN F736_IN -> U14^1(f735_in) U14^1(f735_out1) -> F720_IN F720_IN -> F732_IN The TRS R consists of the following rules: f735_in -> f735_out1 f735_in -> U5(f762_in) f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 f762_in -> U4(f762_in) U5(f762_out1) -> f735_out1 U4(f762_out1) -> f762_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (88) 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 rules of the TRS R: U5(f762_out1) -> f735_out1 U4(f762_out1) -> f762_out1 Used ordering: Polynomial interpretation [POLO]: POL(F720_IN) = 0 POL(F732_IN) = 0 POL(F736_IN) = 0 POL(U12^1(x_1)) = 2*x_1 POL(U14^1(x_1)) = 2*x_1 POL(U4(x_1)) = 2*x_1 POL(U5(x_1)) = 2*x_1 POL(U6(x_1)) = x_1 POL(f735_in) = 0 POL(f735_out1) = 0 POL(f762_in) = 0 POL(f762_out1) = 1 ---------------------------------------- (89) Obligation: Q DP problem: The TRS P consists of the following rules: F732_IN -> U12^1(f735_in) U12^1(f735_out1) -> F736_IN F736_IN -> U14^1(f735_in) U14^1(f735_out1) -> F720_IN F720_IN -> F732_IN The TRS R consists of the following rules: f735_in -> f735_out1 f735_in -> U5(f762_in) f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 f762_in -> U4(f762_in) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (90) 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 rules of the TRS R: f735_in -> U5(f762_in) Used ordering: Polynomial interpretation [POLO]: POL(F720_IN) = 2 POL(F732_IN) = 2 POL(F736_IN) = 2 POL(U12^1(x_1)) = x_1 POL(U14^1(x_1)) = x_1 POL(U4(x_1)) = 2*x_1 POL(U5(x_1)) = 1 + 2*x_1 POL(U6(x_1)) = x_1 POL(f735_in) = 2 POL(f735_out1) = 2 POL(f762_in) = 0 ---------------------------------------- (91) Obligation: Q DP problem: The TRS P consists of the following rules: F732_IN -> U12^1(f735_in) U12^1(f735_out1) -> F736_IN F736_IN -> U14^1(f735_in) U14^1(f735_out1) -> F720_IN F720_IN -> F732_IN The TRS R consists of the following rules: f735_in -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 f762_in -> U4(f762_in) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (92) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (93) Obligation: Q DP problem: The TRS P consists of the following rules: F732_IN -> U12^1(f735_in) U12^1(f735_out1) -> F736_IN F736_IN -> U14^1(f735_in) U14^1(f735_out1) -> F720_IN F720_IN -> F732_IN The TRS R consists of the following rules: f735_in -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 f762_in -> U4(f762_in) The set Q consists of the following terms: f735_in U6(f735_out1) f762_in We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (94) 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. ---------------------------------------- (95) Obligation: Q DP problem: The TRS P consists of the following rules: F732_IN -> U12^1(f735_in) U12^1(f735_out1) -> F736_IN F736_IN -> U14^1(f735_in) U14^1(f735_out1) -> F720_IN F720_IN -> F732_IN The TRS R consists of the following rules: f735_in -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 The set Q consists of the following terms: f735_in U6(f735_out1) f762_in We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (96) 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]. f762_in ---------------------------------------- (97) Obligation: Q DP problem: The TRS P consists of the following rules: F732_IN -> U12^1(f735_in) U12^1(f735_out1) -> F736_IN F736_IN -> U14^1(f735_in) U14^1(f735_out1) -> F720_IN F720_IN -> F732_IN The TRS R consists of the following rules: f735_in -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 The set Q consists of the following terms: f735_in U6(f735_out1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (98) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule F732_IN -> U12^1(f735_in) at position [0] we obtained the following new rules [LPAR04]: (F732_IN -> U12^1(f735_out1),F732_IN -> U12^1(f735_out1)) (F732_IN -> U12^1(U6(f735_in)),F732_IN -> U12^1(U6(f735_in))) ---------------------------------------- (99) Obligation: Q DP problem: The TRS P consists of the following rules: U12^1(f735_out1) -> F736_IN F736_IN -> U14^1(f735_in) U14^1(f735_out1) -> F720_IN F720_IN -> F732_IN F732_IN -> U12^1(f735_out1) F732_IN -> U12^1(U6(f735_in)) The TRS R consists of the following rules: f735_in -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 The set Q consists of the following terms: f735_in U6(f735_out1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (100) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule F736_IN -> U14^1(f735_in) at position [0] we obtained the following new rules [LPAR04]: (F736_IN -> U14^1(f735_out1),F736_IN -> U14^1(f735_out1)) (F736_IN -> U14^1(U6(f735_in)),F736_IN -> U14^1(U6(f735_in))) ---------------------------------------- (101) Obligation: Q DP problem: The TRS P consists of the following rules: U12^1(f735_out1) -> F736_IN U14^1(f735_out1) -> F720_IN F720_IN -> F732_IN F732_IN -> U12^1(f735_out1) F732_IN -> U12^1(U6(f735_in)) F736_IN -> U14^1(f735_out1) F736_IN -> U14^1(U6(f735_in)) The TRS R consists of the following rules: f735_in -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 The set Q consists of the following terms: f735_in U6(f735_out1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (102) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = F736_IN evaluates to t =F736_IN Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence F736_IN -> U14^1(f735_out1) with rule F736_IN -> U14^1(f735_out1) at position [] and matcher [ ] U14^1(f735_out1) -> F720_IN with rule U14^1(f735_out1) -> F720_IN at position [] and matcher [ ] F720_IN -> F732_IN with rule F720_IN -> F732_IN at position [] and matcher [ ] F732_IN -> U12^1(f735_out1) with rule F732_IN -> U12^1(f735_out1) at position [] and matcher [ ] U12^1(f735_out1) -> F736_IN with rule U12^1(f735_out1) -> F736_IN Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (103) NO ---------------------------------------- (104) Obligation: Q DP problem: The TRS P consists of the following rules: F162_IN([], T40) -> F162_IN([], T40) The TRS R consists of the following rules: f1_in(nil, cons(T11, T12)) -> f1_out1 f1_in(cons(T21, T22), cons(T23, T24)) -> U1(f132_in(T21, T22, T23, T24), cons(T21, T22), cons(T23, T24)) U1(f132_out1, cons(T21, T22), cons(T23, T24)) -> f1_out1 f162_in(nil, T33) -> f162_out1 f162_in([], T40) -> U2(f162_in([], T40), [], T40) U2(f162_out1, [], T40) -> f162_out1 f162_in(.(T55, T56), T40) -> U3(f162_in(T56, T40), .(T55, T56), T40) U3(f162_out1, .(T55, T56), T40) -> f162_out1 f762_in -> U4(f762_in) U4(f762_out1) -> f762_out1 f735_in -> f735_out1 f735_in -> U5(f762_in) U5(f762_out1) -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 f720_in -> f720_out1 f720_in -> U7(f732_in) U7(f732_out1) -> f720_out1 f132_in(T21, T22, T23, T24) -> U8(f162_in(T21, T22), T21, T22, T23, T24) U8(f162_out1, T21, T22, T23, T24) -> U9(f163_in(T23, T24), T21, T22, T23, T24) U9(f163_out1, T21, T22, T23, T24) -> f132_out1 f163_in(T23, T24) -> U10(f162_in(T23, T24), T23, T24) U10(f162_out1, T23, T24) -> U11(f720_in, T23, T24) U11(f720_out1, T23, T24) -> f163_out1 f732_in -> U12(f735_in) U12(f735_out1) -> U13(f736_in) U13(f736_out1) -> f732_out1 f736_in -> U14(f735_in) U14(f735_out1) -> U15(f720_in) U15(f720_out1) -> f736_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (105) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (106) Obligation: Q DP problem: The TRS P consists of the following rules: F162_IN([], T40) -> F162_IN([], T40) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (107) ATransformationProof (EQUIVALENT) We have applied the A-Transformation [FROCOS05] to get from an applicative problem to a standard problem. ---------------------------------------- (108) Obligation: Q DP problem: The TRS P consists of the following rules: [](T40) -> [](T40) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (109) 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 = [](T40) evaluates to t =[](T40) 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 [](T40) to [](T40). ---------------------------------------- (110) NO ---------------------------------------- (111) Obligation: Q DP problem: The TRS P consists of the following rules: F162_IN(.(T55, T56), T40) -> F162_IN(T56, T40) The TRS R consists of the following rules: f1_in(nil, cons(T11, T12)) -> f1_out1 f1_in(cons(T21, T22), cons(T23, T24)) -> U1(f132_in(T21, T22, T23, T24), cons(T21, T22), cons(T23, T24)) U1(f132_out1, cons(T21, T22), cons(T23, T24)) -> f1_out1 f162_in(nil, T33) -> f162_out1 f162_in([], T40) -> U2(f162_in([], T40), [], T40) U2(f162_out1, [], T40) -> f162_out1 f162_in(.(T55, T56), T40) -> U3(f162_in(T56, T40), .(T55, T56), T40) U3(f162_out1, .(T55, T56), T40) -> f162_out1 f762_in -> U4(f762_in) U4(f762_out1) -> f762_out1 f735_in -> f735_out1 f735_in -> U5(f762_in) U5(f762_out1) -> f735_out1 f735_in -> U6(f735_in) U6(f735_out1) -> f735_out1 f720_in -> f720_out1 f720_in -> U7(f732_in) U7(f732_out1) -> f720_out1 f132_in(T21, T22, T23, T24) -> U8(f162_in(T21, T22), T21, T22, T23, T24) U8(f162_out1, T21, T22, T23, T24) -> U9(f163_in(T23, T24), T21, T22, T23, T24) U9(f163_out1, T21, T22, T23, T24) -> f132_out1 f163_in(T23, T24) -> U10(f162_in(T23, T24), T23, T24) U10(f162_out1, T23, T24) -> U11(f720_in, T23, T24) U11(f720_out1, T23, T24) -> f163_out1 f732_in -> U12(f735_in) U12(f735_out1) -> U13(f736_in) U13(f736_out1) -> f732_out1 f736_in -> U14(f735_in) U14(f735_out1) -> U15(f720_in) U15(f720_out1) -> f736_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (112) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (113) Obligation: Q DP problem: The TRS P consists of the following rules: F162_IN(.(T55, T56), T40) -> F162_IN(T56, T40) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (114) 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: *F162_IN(.(T55, T56), T40) -> F162_IN(T56, T40) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (115) YES ---------------------------------------- (116) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 3, "program": { "directives": [], "clauses": [ [ "(lessleaves (nil) (cons X1 X2))", null ], [ "(lessleaves (cons U V) (cons W Z))", "(',' (app U V U1) (',' (app W Z W1) (lessleaves U1 W1)))" ], [ "(app (nil) Y Z)", "(',' (!) (eq Y Z))" ], [ "(app X Y (cons U Z))", "(',' (head X U) (',' (tail X V) (app V Y Z)))" ], [ "(head ([]) X3)", null ], [ "(head (. X X4) X)", null ], [ "(tail ([]) ([]))", null ], [ "(tail (. X5 X) X)", null ], [ "(eq X X)", null ] ] }, "graph": { "nodes": { "193": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T11 T12 X22) (',' (app T13 T14 X23) (lessleaves X22 X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T11", "T12", "T13", "T14" ], "free": [ "X22", "X23" ], "exprvars": [] } }, "type": "Nodes", "350": { "goal": [ { "clause": 2, "scope": 4, "term": "(app T13 T14 X23)" }, { "clause": 3, "scope": 4, "term": "(app T13 T14 X23)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14" ], "free": ["X23"], "exprvars": [] } }, "870": { "goal": [ { "clause": 6, "scope": 13, "term": "(',' (tail ([]) X202) (app X202 T110 X204))" }, { "clause": 7, "scope": 13, "term": "(',' (tail ([]) X202) (app X202 T110 X204))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X204", "X202" ], "exprvars": [] } }, "871": { "goal": [{ "clause": 6, "scope": 13, "term": "(',' (tail ([]) X202) (app X202 T110 X204))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X204", "X202" ], "exprvars": [] } }, "751": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T54 T38 X82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T38", "T54" ], "free": ["X82"], "exprvars": [] } }, "872": { "goal": [{ "clause": 7, "scope": 13, "term": "(',' (tail ([]) X202) (app X202 T110 X204))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X204", "X202" ], "exprvars": [] } }, "873": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T110 X204)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X204"], "exprvars": [] } }, "359": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_4) (eq T28 X56))" }, { "clause": 3, "scope": 4, "term": "(app (nil) T28 X23)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T28"], "free": [ "X23", "X56" ], "exprvars": [] } }, "756": { "goal": [ { "clause": 0, "scope": 9, "term": "(lessleaves T22 T24)" }, { "clause": 1, "scope": 9, "term": "(lessleaves T22 T24)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T22"], "free": [], "exprvars": [] } }, "758": { "goal": [{ "clause": 0, "scope": 9, "term": "(lessleaves T22 T24)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T22"], "free": [], "exprvars": [] } }, "759": { "goal": [{ "clause": 1, "scope": 9, "term": "(lessleaves T22 T24)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T22"], "free": [], "exprvars": [] } }, "362": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T13 T14 X23)" }], "kb": { "nonunifying": [[ "(app T13 T14 X23)", "(app (nil) X54 X55)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14" ], "free": [ "X23", "X54", "X55" ], "exprvars": [] } }, "242": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (eq T17 X32) (',' (app T13 T14 X23) (lessleaves X32 X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T17" ], "free": [ "X23", "X32" ], "exprvars": [] } }, "364": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq T28 X56)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T28"], "free": ["X56"], "exprvars": [] } }, "485": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3": { "goal": [{ "clause": -1, "scope": -1, "term": "(lessleaves T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "366": { "goal": [{ "clause": 8, "scope": 5, "term": "(eq T28 X56)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T28"], "free": ["X56"], "exprvars": [] } }, "488": { "goal": [ { "clause": 6, "scope": 7, "term": "(',' (tail ([]) X80) (app X80 T38 X82))" }, { "clause": 7, "scope": 7, "term": "(',' (tail ([]) X80) (app X80 T38 X82))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T38"], "free": [ "X82", "X80" ], "exprvars": [] } }, "763": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "401": { "goal": [{ "clause": 5, "scope": 6, "term": "(',' (head T37 X81) (',' (tail T37 X80) (app X80 T38 X82)))" }], "kb": { "nonunifying": [[ "(app T37 T38 X23)", "(app (nil) X54 X55)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T37", "T38" ], "free": [ "X23", "X54", "X55", "X81", "X82", "X80" ], "exprvars": [] } }, "489": { "goal": [{ "clause": 6, "scope": 7, "term": "(',' (tail ([]) X80) (app X80 T38 X82))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T38"], "free": [ "X82", "X80" ], "exprvars": [] } }, "764": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "6": { "goal": [ { "clause": 0, "scope": 1, "term": "(lessleaves T1 T2)" }, { "clause": 1, "scope": 1, "term": "(lessleaves T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "765": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "921": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "922": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail (. T118 T119) X202) (app X202 T120 X204))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X204", "X202" ], "exprvars": [] } }, "923": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "924": { "goal": [ { "clause": 6, "scope": 14, "term": "(',' (tail (. T118 T119) X202) (app X202 T120 X204))" }, { "clause": 7, "scope": 14, "term": "(',' (tail (. T118 T119) X202) (app X202 T120 X204))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X204", "X202" ], "exprvars": [] } }, "925": { "goal": [{ "clause": 7, "scope": 14, "term": "(',' (tail (. T118 T119) X202) (app X202 T120 X204))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X204", "X202" ], "exprvars": [] } }, "926": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T131 T132 X204)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X204"], "exprvars": [] } }, "927": { "goal": [ { "clause": 0, "scope": 15, "term": "(lessleaves T89 T88)" }, { "clause": 1, "scope": 15, "term": "(lessleaves T89 T88)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "928": { "goal": [{ "clause": 0, "scope": 15, "term": "(lessleaves T89 T88)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "929": { "goal": [{ "clause": 1, "scope": 15, "term": "(lessleaves T89 T88)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "490": { "goal": [{ "clause": 7, "scope": 7, "term": "(',' (tail ([]) X80) (app X80 T38 X82))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T38"], "free": [ "X82", "X80" ], "exprvars": [] } }, "493": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T38 X82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T38"], "free": ["X82"], "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": [] } }, "410": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail ([]) X80) (app X80 T38 X82))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T38"], "free": [ "X82", "X80" ], "exprvars": [] } }, "930": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "931": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "932": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "933": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T160 T161 X278) (',' (app T162 T163 X279) (lessleaves X278 X279)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X278", "X279" ], "exprvars": [] } }, "934": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "935": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T160 T161 X278)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X278"], "exprvars": [] } }, "936": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T166 T167 X279) (lessleaves T165 X279))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X279"], "exprvars": [] } }, "937": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (head T175 X310) (',' (tail T175 X309) (app X309 T176 X311))) (',' (app T13 T14 X23) (lessleaves (cons X310 X311) X23)))" }], "kb": { "nonunifying": [[ "(app T175 T176 X22)", "(app (nil) X30 X31)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T175", "T176" ], "free": [ "X22", "X23", "X30", "X31", "X310", "X311", "X309" ], "exprvars": [] } }, "938": { "goal": [ { "clause": 4, "scope": 16, "term": "(',' (',' (head T175 X310) (',' (tail T175 X309) (app X309 T176 X311))) (',' (app T13 T14 X23) (lessleaves (cons X310 X311) X23)))" }, { "clause": 5, "scope": 16, "term": "(',' (',' (head T175 X310) (',' (tail T175 X309) (app X309 T176 X311))) (',' (app T13 T14 X23) (lessleaves (cons X310 X311) X23)))" } ], "kb": { "nonunifying": [[ "(app T175 T176 X22)", "(app (nil) X30 X31)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T175", "T176" ], "free": [ "X22", "X23", "X30", "X31", "X310", "X311", "X309" ], "exprvars": [] } }, "939": { "goal": [{ "clause": 4, "scope": 16, "term": "(',' (',' (head T175 X310) (',' (tail T175 X309) (app X309 T176 X311))) (',' (app T13 T14 X23) (lessleaves (cons X310 X311) X23)))" }], "kb": { "nonunifying": [[ "(app T175 T176 X22)", "(app (nil) X30 X31)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T175", "T176" ], "free": [ "X22", "X23", "X30", "X31", "X310", "X311", "X309" ], "exprvars": [] } }, "940": { "goal": [{ "clause": 5, "scope": 16, "term": "(',' (',' (head T175 X310) (',' (tail T175 X309) (app X309 T176 X311))) (',' (app T13 T14 X23) (lessleaves (cons X310 X311) X23)))" }], "kb": { "nonunifying": [[ "(app T175 T176 X22)", "(app (nil) X30 X31)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T175", "T176" ], "free": [ "X22", "X23", "X30", "X31", "X310", "X311", "X309" ], "exprvars": [] } }, "941": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (tail ([]) X309) (app X309 T176 X311)) (',' (app T13 T14 X23) (lessleaves (cons X324 X311) X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T176" ], "free": [ "X23", "X311", "X309", "X324" ], "exprvars": [] } }, "942": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "943": { "goal": [ { "clause": 6, "scope": 17, "term": "(',' (',' (tail ([]) X309) (app X309 T176 X311)) (',' (app T13 T14 X23) (lessleaves (cons X324 X311) X23)))" }, { "clause": 7, "scope": 17, "term": "(',' (',' (tail ([]) X309) (app X309 T176 X311)) (',' (app T13 T14 X23) (lessleaves (cons X324 X311) X23)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T176" ], "free": [ "X23", "X311", "X309", "X324" ], "exprvars": [] } }, "944": { "goal": [{ "clause": 6, "scope": 17, "term": "(',' (',' (tail ([]) X309) (app X309 T176 X311)) (',' (app T13 T14 X23) (lessleaves (cons X324 X311) X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T176" ], "free": [ "X23", "X311", "X309", "X324" ], "exprvars": [] } }, "945": { "goal": [{ "clause": 7, "scope": 17, "term": "(',' (',' (tail ([]) X309) (app X309 T176 X311)) (',' (app T13 T14 X23) (lessleaves (cons X324 X311) X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T176" ], "free": [ "X23", "X311", "X309", "X324" ], "exprvars": [] } }, "946": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app ([]) T176 X311) (',' (app T13 T14 X23) (lessleaves (cons X324 X311) X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T176" ], "free": [ "X23", "X311", "X324" ], "exprvars": [] } }, "947": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T176 X311)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T176"], "free": ["X311"], "exprvars": [] } }, "948": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T13 T14 X23) (lessleaves (cons X324 T179) X23))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14" ], "free": [ "X23", "X324" ], "exprvars": [] } }, "949": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "152": { "goal": [ { "clause": -1, "scope": -1, "term": "(true)" }, { "clause": 1, "scope": 1, "term": "(lessleaves (nil) (cons T5 T6))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } }, "394": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (head T37 X81) (',' (tail T37 X80) (app X80 T38 X82)))" }], "kb": { "nonunifying": [[ "(app T37 T38 X23)", "(app (nil) X54 X55)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T37", "T38" ], "free": [ "X23", "X54", "X55", "X81", "X82", "X80" ], "exprvars": [] } }, "153": { "goal": [{ "clause": 1, "scope": 1, "term": "(lessleaves T1 T2)" }], "kb": { "nonunifying": [[ "(lessleaves T1 T2)", "(lessleaves (nil) (cons X8 X9))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [ "X8", "X9" ], "exprvars": [] } }, "395": { "goal": [ { "clause": 4, "scope": 6, "term": "(',' (head T37 X81) (',' (tail T37 X80) (app X80 T38 X82)))" }, { "clause": 5, "scope": 6, "term": "(',' (head T37 X81) (',' (tail T37 X80) (app X80 T38 X82)))" } ], "kb": { "nonunifying": [[ "(app T37 T38 X23)", "(app (nil) X54 X55)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T37", "T38" ], "free": [ "X23", "X54", "X55", "X81", "X82", "X80" ], "exprvars": [] } }, "154": { "goal": [{ "clause": 1, "scope": 1, "term": "(lessleaves (nil) (cons T5 T6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } }, "155": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "398": { "goal": [{ "clause": 4, "scope": 6, "term": "(',' (head T37 X81) (',' (tail T37 X80) (app X80 T38 X82)))" }], "kb": { "nonunifying": [[ "(app T37 T38 X23)", "(app (nil) X54 X55)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T37", "T38" ], "free": [ "X23", "X54", "X55", "X81", "X82", "X80" ], "exprvars": [] } }, "796": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T78 T79 X156) (',' (app T82 T83 X157) (lessleaves X156 X157)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T78", "T79" ], "free": [ "X156", "X157" ], "exprvars": [] } }, "950": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (tail (. T185 T186) X309) (app X309 T176 X311)) (',' (app T13 T14 X23) (lessleaves (cons T185 X311) X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T176", "T185", "T186" ], "free": [ "X23", "X311", "X309" ], "exprvars": [] } }, "797": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "951": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "798": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T78 T79 X156)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T78", "T79" ], "free": ["X156"], "exprvars": [] } }, "952": { "goal": [ { "clause": 6, "scope": 18, "term": "(',' (',' (tail (. T185 T186) X309) (app X309 T176 X311)) (',' (app T13 T14 X23) (lessleaves (cons T185 X311) X23)))" }, { "clause": 7, "scope": 18, "term": "(',' (',' (tail (. T185 T186) X309) (app X309 T176 X311)) (',' (app T13 T14 X23) (lessleaves (cons T185 X311) X23)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T176", "T185", "T186" ], "free": [ "X23", "X311", "X309" ], "exprvars": [] } }, "799": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T82 T83 X157) (lessleaves T85 X157))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X157"], "exprvars": [] } }, "953": { "goal": [{ "clause": 7, "scope": 18, "term": "(',' (',' (tail (. T185 T186) X309) (app X309 T176 X311)) (',' (app T13 T14 X23) (lessleaves (cons T185 X311) X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T176", "T185", "T186" ], "free": [ "X23", "X311", "X309" ], "exprvars": [] } }, "954": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T194 T176 X311) (',' (app T13 T14 X23) (lessleaves (cons T193 X311) X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T176", "T193", "T194" ], "free": [ "X23", "X311" ], "exprvars": [] } }, "955": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T194 T176 X311)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T176", "T194" ], "free": ["X311"], "exprvars": [] } }, "956": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T13 T14 X23) (lessleaves (cons T193 T196) X23))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T193" ], "free": ["X23"], "exprvars": [] } }, "838": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T82 T83 X157)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X157"], "exprvars": [] } }, "839": { "goal": [{ "clause": -1, "scope": -1, "term": "(lessleaves T89 T88)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "842": { "goal": [ { "clause": 2, "scope": 10, "term": "(app T82 T83 X157)" }, { "clause": 3, "scope": 10, "term": "(app T82 T83 X157)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X157"], "exprvars": [] } }, "843": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_10) (eq T94 X178))" }, { "clause": 3, "scope": 10, "term": "(app T82 T83 X157)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X157", "X178" ], "exprvars": [] } }, "844": { "goal": [{ "clause": 3, "scope": 10, "term": "(app T82 T83 X157)" }], "kb": { "nonunifying": [[ "(app T82 T83 X157)", "(app (nil) X176 X177)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X157", "X176", "X177" ], "exprvars": [] } }, "845": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq T94 X178)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X178"], "exprvars": [] } }, "846": { "goal": [{ "clause": 8, "scope": 11, "term": "(eq T94 X178)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X178"], "exprvars": [] } }, "847": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "848": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "334": { "goal": [{ "clause": 8, "scope": 3, "term": "(',' (eq T17 X32) (',' (app T13 T14 X23) (lessleaves X32 X23)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T17" ], "free": [ "X23", "X32" ], "exprvars": [] } }, "214": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "218": { "goal": [ { "clause": 2, "scope": 2, "term": "(',' (app T11 T12 X22) (',' (app T13 T14 X23) (lessleaves X22 X23)))" }, { "clause": 3, "scope": 2, "term": "(',' (app T11 T12 X22) (',' (app T13 T14 X23) (lessleaves X22 X23)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T11", "T12", "T13", "T14" ], "free": [ "X22", "X23" ], "exprvars": [] } }, "219": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (!_2) (eq T17 X32)) (',' (app T13 T14 X23) (lessleaves X32 X23)))" }, { "clause": 3, "scope": 2, "term": "(',' (app (nil) T17 X22) (',' (app T13 T14 X23) (lessleaves X22 X23)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T17" ], "free": [ "X22", "X23", "X32" ], "exprvars": [] } }, "858": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (head T107 X203) (',' (tail T107 X202) (app X202 T108 X204)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X203", "X204", "X202" ], "exprvars": [] } }, "341": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T13 T14 X23) (lessleaves T22 X23))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14", "T22" ], "free": ["X23"], "exprvars": [] } }, "860": { "goal": [ { "clause": 4, "scope": 12, "term": "(',' (head T107 X203) (',' (tail T107 X202) (app X202 T108 X204)))" }, { "clause": 5, "scope": 12, "term": "(',' (head T107 X203) (',' (tail T107 X202) (app X202 T108 X204)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X203", "X204", "X202" ], "exprvars": [] } }, "863": { "goal": [{ "clause": 4, "scope": 12, "term": "(',' (head T107 X203) (',' (tail T107 X202) (app X202 T108 X204)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X203", "X204", "X202" ], "exprvars": [] } }, "226": { "goal": [{ "clause": 3, "scope": 2, "term": "(',' (app T11 T12 X22) (',' (app T13 T14 X23) (lessleaves X22 X23)))" }], "kb": { "nonunifying": [[ "(app T11 T12 X22)", "(app (nil) X30 X31)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T11", "T12", "T13", "T14" ], "free": [ "X22", "X23", "X30", "X31" ], "exprvars": [] } }, "864": { "goal": [{ "clause": 5, "scope": 12, "term": "(',' (head T107 X203) (',' (tail T107 X202) (app X202 T108 X204)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X203", "X204", "X202" ], "exprvars": [] } }, "348": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T13 T14 X23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T13", "T14" ], "free": ["X23"], "exprvars": [] } }, "744": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "349": { "goal": [{ "clause": -1, "scope": -1, "term": "(lessleaves T22 T24)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T22"], "free": [], "exprvars": [] } }, "745": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail (. T45 T46) X80) (app X80 T38 X82))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T38", "T45", "T46" ], "free": [ "X82", "X80" ], "exprvars": [] } }, "866": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail ([]) X202) (app X202 T110 X204))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X204", "X202" ], "exprvars": [] } }, "746": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "867": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "747": { "goal": [ { "clause": 6, "scope": 8, "term": "(',' (tail (. T45 T46) X80) (app X80 T38 X82))" }, { "clause": 7, "scope": 8, "term": "(',' (tail (. T45 T46) X80) (app X80 T38 X82))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T38", "T45", "T46" ], "free": [ "X82", "X80" ], "exprvars": [] } }, "748": { "goal": [{ "clause": 7, "scope": 8, "term": "(',' (tail (. T45 T46) X80) (app X80 T38 X82))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T38", "T45", "T46" ], "free": [ "X82", "X80" ], "exprvars": [] } } }, "edges": [ { "from": 3, "to": 6, "label": "CASE" }, { "from": 6, "to": 152, "label": "EVAL with clause\nlessleaves(nil, cons(X8, X9)).\nand substitutionT1 -> nil,\nX8 -> T5,\nX9 -> T6,\nT2 -> cons(T5, T6)" }, { "from": 6, "to": 153, "label": "EVAL-BACKTRACK" }, { "from": 152, "to": 154, "label": "SUCCESS" }, { "from": 153, "to": 193, "label": "EVAL with clause\nlessleaves(cons(X18, X19), cons(X20, X21)) :- ','(app(X18, X19, X22), ','(app(X20, X21, X23), lessleaves(X22, X23))).\nand substitutionX18 -> T11,\nX19 -> T12,\nT1 -> cons(T11, T12),\nX20 -> T13,\nX21 -> T14,\nT2 -> cons(T13, T14)" }, { "from": 153, "to": 214, "label": "EVAL-BACKTRACK" }, { "from": 154, "to": 155, "label": "BACKTRACK\nfor clause: lessleaves(cons(U, V), cons(W, Z)) :- ','(app(U, V, U1), ','(app(W, Z, W1), lessleaves(U1, W1)))because of non-unification" }, { "from": 193, "to": 218, "label": "CASE" }, { "from": 218, "to": 219, "label": "EVAL with clause\napp(nil, X30, X31) :- ','(!_2, eq(X30, X31)).\nand substitutionT11 -> nil,\nT12 -> T17,\nX30 -> T17,\nX22 -> X32,\nX31 -> X32" }, { "from": 218, "to": 226, "label": "EVAL-BACKTRACK" }, { "from": 219, "to": 242, "label": "CUT" }, { "from": 226, "to": 937, "label": "ONLY EVAL with clause\napp(X305, X306, cons(X307, X308)) :- ','(head(X305, X307), ','(tail(X305, X309), app(X309, X306, X308))).\nand substitutionT11 -> T175,\nX305 -> T175,\nT12 -> T176,\nX306 -> T176,\nX307 -> X310,\nX308 -> X311,\nX22 -> cons(X310, X311)" }, { "from": 242, "to": 334, "label": "CASE" }, { "from": 334, "to": 341, "label": "ONLY EVAL with clause\neq(X41, X41).\nand substitutionT17 -> T22,\nX41 -> T22,\nX32 -> T22" }, { "from": 341, "to": 348, "label": "SPLIT 1" }, { "from": 341, "to": 349, "label": "SPLIT 2\nnew knowledge:\nT13 is ground\nT14 is ground\nreplacements:X23 -> T24" }, { "from": 348, "to": 350, "label": "CASE" }, { "from": 349, "to": 756, "label": "CASE" }, { "from": 350, "to": 359, "label": "EVAL with clause\napp(nil, X54, X55) :- ','(!_4, eq(X54, X55)).\nand substitutionT13 -> nil,\nT14 -> T28,\nX54 -> T28,\nX23 -> X56,\nX55 -> X56" }, { "from": 350, "to": 362, "label": "EVAL-BACKTRACK" }, { "from": 359, "to": 364, "label": "CUT" }, { "from": 362, "to": 394, "label": "ONLY EVAL with clause\napp(X76, X77, cons(X78, X79)) :- ','(head(X76, X78), ','(tail(X76, X80), app(X80, X77, X79))).\nand substitutionT13 -> T37,\nX76 -> T37,\nT14 -> T38,\nX77 -> T38,\nX78 -> X81,\nX79 -> X82,\nX23 -> cons(X81, X82)" }, { "from": 364, "to": 366, "label": "CASE" }, { "from": 366, "to": 373, "label": "ONLY EVAL with clause\neq(X59, X59).\nand substitutionT28 -> T31,\nX59 -> T31,\nX56 -> T31" }, { "from": 373, "to": 374, "label": "SUCCESS" }, { "from": 394, "to": 395, "label": "CASE" }, { "from": 395, "to": 398, "label": "PARALLEL" }, { "from": 395, "to": 401, "label": "PARALLEL" }, { "from": 398, "to": 410, "label": "EVAL with clause\nhead([], X94).\nand substitutionT37 -> [],\nX81 -> X95,\nX94 -> X95" }, { "from": 398, "to": 485, "label": "EVAL-BACKTRACK" }, { "from": 401, "to": 745, "label": "EVAL with clause\nhead(.(X111, X112), X111).\nand substitutionX111 -> T45,\nX112 -> T46,\nT37 -> .(T45, T46),\nX81 -> T45" }, { "from": 401, "to": 746, "label": "EVAL-BACKTRACK" }, { "from": 410, "to": 488, "label": "CASE" }, { "from": 488, "to": 489, "label": "PARALLEL" }, { "from": 488, "to": 490, "label": "PARALLEL" }, { "from": 489, "to": 493, "label": "ONLY EVAL with clause\ntail([], []).\nand substitutionX80 -> []" }, { "from": 490, "to": 744, "label": "BACKTRACK\nfor clause: tail(.(X5, X), X)because of non-unification" }, { "from": 493, "to": 348, "label": "INSTANCE with matching:\nT13 -> []\nT14 -> T38\nX23 -> X82" }, { "from": 745, "to": 747, "label": "CASE" }, { "from": 747, "to": 748, "label": "BACKTRACK\nfor clause: tail([], [])because of non-unification" }, { "from": 748, "to": 751, "label": "ONLY EVAL with clause\ntail(.(X123, X124), X124).\nand substitutionT45 -> T53,\nX123 -> T53,\nT46 -> T54,\nX124 -> T54,\nX80 -> T54" }, { "from": 751, "to": 348, "label": "INSTANCE with matching:\nT13 -> T54\nT14 -> T38\nX23 -> X82" }, { "from": 756, "to": 758, "label": "PARALLEL" }, { "from": 756, "to": 759, "label": "PARALLEL" }, { "from": 758, "to": 763, "label": "EVAL with clause\nlessleaves(nil, cons(X140, X141)).\nand substitutionT22 -> nil,\nX140 -> T68,\nX141 -> T69,\nT24 -> cons(T68, T69)" }, { "from": 758, "to": 764, "label": "EVAL-BACKTRACK" }, { "from": 759, "to": 796, "label": "EVAL with clause\nlessleaves(cons(X152, X153), cons(X154, X155)) :- ','(app(X152, X153, X156), ','(app(X154, X155, X157), lessleaves(X156, X157))).\nand substitutionX152 -> T78,\nX153 -> T79,\nT22 -> cons(T78, T79),\nX154 -> T82,\nX155 -> T83,\nT24 -> cons(T82, T83),\nT80 -> T82,\nT81 -> T83" }, { "from": 759, "to": 797, "label": "EVAL-BACKTRACK" }, { "from": 763, "to": 765, "label": "SUCCESS" }, { "from": 796, "to": 798, "label": "SPLIT 1" }, { "from": 796, "to": 799, "label": "SPLIT 2\nnew knowledge:\nT78 is ground\nT79 is ground\nreplacements:X156 -> T85" }, { "from": 798, "to": 348, "label": "INSTANCE with matching:\nT13 -> T78\nT14 -> T79\nX23 -> X156" }, { "from": 799, "to": 838, "label": "SPLIT 1" }, { "from": 799, "to": 839, "label": "SPLIT 2\nreplacements:X157 -> T88,\nT85 -> T89" }, { "from": 838, "to": 842, "label": "CASE" }, { "from": 839, "to": 927, "label": "CASE" }, { "from": 842, "to": 843, "label": "EVAL with clause\napp(nil, X176, X177) :- ','(!_10, eq(X176, X177)).\nand substitutionT82 -> nil,\nT83 -> T94,\nX176 -> T94,\nX157 -> X178,\nX177 -> X178,\nT93 -> T94" }, { "from": 842, "to": 844, "label": "EVAL-BACKTRACK" }, { "from": 843, "to": 845, "label": "CUT" }, { "from": 844, "to": 858, "label": "ONLY EVAL with clause\napp(X198, X199, cons(X200, X201)) :- ','(head(X198, X200), ','(tail(X198, X202), app(X202, X199, X201))).\nand substitutionT82 -> T107,\nX198 -> T107,\nT83 -> T108,\nX199 -> T108,\nX200 -> X203,\nX201 -> X204,\nX157 -> cons(X203, X204),\nT105 -> T107,\nT106 -> T108" }, { "from": 845, "to": 846, "label": "CASE" }, { "from": 846, "to": 847, "label": "ONLY EVAL with clause\neq(X181, X181).\nand substitutionT94 -> T97,\nX181 -> T97,\nX178 -> T97" }, { "from": 847, "to": 848, "label": "SUCCESS" }, { "from": 858, "to": 860, "label": "CASE" }, { "from": 860, "to": 863, "label": "PARALLEL" }, { "from": 860, "to": 864, "label": "PARALLEL" }, { "from": 863, "to": 866, "label": "EVAL with clause\nhead([], X216).\nand substitutionT107 -> [],\nX203 -> X217,\nX216 -> X217,\nT108 -> T110" }, { "from": 863, "to": 867, "label": "EVAL-BACKTRACK" }, { "from": 864, "to": 922, "label": "EVAL with clause\nhead(.(X233, X234), X233).\nand substitutionX233 -> T118,\nX234 -> T119,\nT107 -> .(T118, T119),\nX203 -> T118,\nT116 -> T118,\nT117 -> T119,\nT108 -> T120" }, { "from": 864, "to": 923, "label": "EVAL-BACKTRACK" }, { "from": 866, "to": 870, "label": "CASE" }, { "from": 870, "to": 871, "label": "PARALLEL" }, { "from": 870, "to": 872, "label": "PARALLEL" }, { "from": 871, "to": 873, "label": "ONLY EVAL with clause\ntail([], []).\nand substitutionX202 -> []" }, { "from": 872, "to": 921, "label": "BACKTRACK\nfor clause: tail(.(X5, X), X)because of non-unification" }, { "from": 873, "to": 838, "label": "INSTANCE with matching:\nT82 -> []\nT83 -> T110\nX157 -> X204" }, { "from": 922, "to": 924, "label": "CASE" }, { "from": 924, "to": 925, "label": "BACKTRACK\nfor clause: tail([], [])because of non-unification" }, { "from": 925, "to": 926, "label": "ONLY EVAL with clause\ntail(.(X245, X246), X246).\nand substitutionT118 -> T129,\nX245 -> T129,\nT119 -> T131,\nX246 -> T131,\nX202 -> T131,\nT130 -> T131,\nT120 -> T132" }, { "from": 926, "to": 838, "label": "INSTANCE with matching:\nT82 -> T131\nT83 -> T132\nX157 -> X204" }, { "from": 927, "to": 928, "label": "PARALLEL" }, { "from": 927, "to": 929, "label": "PARALLEL" }, { "from": 928, "to": 930, "label": "EVAL with clause\nlessleaves(nil, cons(X262, X263)).\nand substitutionT89 -> nil,\nX262 -> T146,\nX263 -> T147,\nT88 -> cons(T146, T147)" }, { "from": 928, "to": 931, "label": "EVAL-BACKTRACK" }, { "from": 929, "to": 933, "label": "EVAL with clause\nlessleaves(cons(X274, X275), cons(X276, X277)) :- ','(app(X274, X275, X278), ','(app(X276, X277, X279), lessleaves(X278, X279))).\nand substitutionX274 -> T160,\nX275 -> T161,\nT89 -> cons(T160, T161),\nX276 -> T162,\nX277 -> T163,\nT88 -> cons(T162, T163),\nT156 -> T160,\nT157 -> T161,\nT158 -> T162,\nT159 -> T163" }, { "from": 929, "to": 934, "label": "EVAL-BACKTRACK" }, { "from": 930, "to": 932, "label": "SUCCESS" }, { "from": 933, "to": 935, "label": "SPLIT 1" }, { "from": 933, "to": 936, "label": "SPLIT 2\nreplacements:X278 -> T165,\nT162 -> T166,\nT163 -> T167" }, { "from": 935, "to": 838, "label": "INSTANCE with matching:\nT82 -> T160\nT83 -> T161\nX157 -> X278" }, { "from": 936, "to": 799, "label": "INSTANCE with matching:\nT82 -> T166\nT83 -> T167\nX157 -> X279\nT85 -> T165" }, { "from": 937, "to": 938, "label": "CASE" }, { "from": 938, "to": 939, "label": "PARALLEL" }, { "from": 938, "to": 940, "label": "PARALLEL" }, { "from": 939, "to": 941, "label": "EVAL with clause\nhead([], X323).\nand substitutionT175 -> [],\nX310 -> X324,\nX323 -> X324" }, { "from": 939, "to": 942, "label": "EVAL-BACKTRACK" }, { "from": 940, "to": 950, "label": "EVAL with clause\nhead(.(X345, X346), X345).\nand substitutionX345 -> T185,\nX346 -> T186,\nT175 -> .(T185, T186),\nX310 -> T185" }, { "from": 940, "to": 951, "label": "EVAL-BACKTRACK" }, { "from": 941, "to": 943, "label": "CASE" }, { "from": 943, "to": 944, "label": "PARALLEL" }, { "from": 943, "to": 945, "label": "PARALLEL" }, { "from": 944, "to": 946, "label": "ONLY EVAL with clause\ntail([], []).\nand substitutionX309 -> []" }, { "from": 945, "to": 949, "label": "BACKTRACK\nfor clause: tail(.(X5, X), X)because of non-unification" }, { "from": 946, "to": 947, "label": "SPLIT 1" }, { "from": 946, "to": 948, "label": "SPLIT 2\nnew knowledge:\nT176 is ground\nreplacements:X311 -> T179" }, { "from": 947, "to": 348, "label": "INSTANCE with matching:\nT13 -> []\nT14 -> T176\nX23 -> X311" }, { "from": 948, "to": 799, "label": "INSTANCE with matching:\nT82 -> T13\nT83 -> T14\nX157 -> X23\nT85 -> cons(X324, T179)" }, { "from": 950, "to": 952, "label": "CASE" }, { "from": 952, "to": 953, "label": "BACKTRACK\nfor clause: tail([], [])because of non-unification" }, { "from": 953, "to": 954, "label": "ONLY EVAL with clause\ntail(.(X357, X358), X358).\nand substitutionT185 -> T193,\nX357 -> T193,\nT186 -> T194,\nX358 -> T194,\nX309 -> T194" }, { "from": 954, "to": 955, "label": "SPLIT 1" }, { "from": 954, "to": 956, "label": "SPLIT 2\nnew knowledge:\nT194 is ground\nT176 is ground\nreplacements:X311 -> T196" }, { "from": 955, "to": 348, "label": "INSTANCE with matching:\nT13 -> T194\nT14 -> T176\nX23 -> X311" }, { "from": 956, "to": 799, "label": "INSTANCE with matching:\nT82 -> T13\nT83 -> T14\nX157 -> X23\nT85 -> cons(T193, T196)" } ], "type": "Graph" } } ---------------------------------------- (117) Obligation: Triples: appA([], X1, cons(X2, X3)) :- appA([], X1, X3). appA(.(X1, X2), X3, cons(X1, X4)) :- appA(X2, X3, X4). appB([], X1, cons(X2, X3)) :- appB([], X1, X3). appB(.(X1, X2), X3, cons(X1, X4)) :- appB(X2, X3, X4). pC(X1, X2, X3, X4) :- appB(X1, X2, X3). pC(X1, X2, cons(X3, X4), cons(X5, X6)) :- ','(appcB(X1, X2, cons(X3, X4)), appB(X5, X6, X7)). pC(X1, X2, cons(X3, X4), cons(X5, X6)) :- ','(appcB(X1, X2, cons(X3, X4)), ','(appcB(X5, X6, X7), pC(X3, X4, X8, X7))). lessleavesD(cons(nil, X1), cons(X2, X3)) :- appA(X2, X3, X4). lessleavesD(cons(nil, cons(X1, X2)), cons(X3, X4)) :- ','(appcA(X3, X4, cons(X5, X6)), appA(X1, X2, X7)). lessleavesD(cons(nil, cons(X1, X2)), cons(X3, X4)) :- ','(appcA(X3, X4, cons(X5, X6)), ','(appcA(X1, X2, X7), pC(X5, X6, X8, X7))). lessleavesD(cons([], X1), cons(X2, X3)) :- appA([], X1, X4). lessleavesD(cons([], X1), cons(X2, X3)) :- ','(appcA([], X1, X4), pC(X2, X3, X5, cons(X6, X4))). lessleavesD(cons(.(X1, X2), X3), cons(X4, X5)) :- appA(X2, X3, X6). lessleavesD(cons(.(X1, X2), X3), cons(X4, X5)) :- ','(appcA(X2, X3, X6), pC(X4, X5, X7, cons(X1, X6))). Clauses: appcA(nil, X1, X1). appcA([], X1, cons(X2, X3)) :- appcA([], X1, X3). appcA(.(X1, X2), X3, cons(X1, X4)) :- appcA(X2, X3, X4). appcB(nil, X1, X1). appcB([], X1, cons(X2, X3)) :- appcB([], X1, X3). appcB(.(X1, X2), X3, cons(X1, X4)) :- appcB(X2, X3, X4). qcC(X1, X2, cons(X3, X4), nil) :- appcB(X1, X2, cons(X3, X4)). qcC(X1, X2, cons(X3, X4), cons(X5, X6)) :- ','(appcB(X1, X2, cons(X3, X4)), ','(appcB(X5, X6, X7), qcC(X3, X4, X8, X7))). Afs: lessleavesD(x1, x2) = lessleavesD(x1, x2) ---------------------------------------- (118) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: lessleavesD_in_2: (b,b) appA_in_3: (b,b,f) appcA_in_3: (b,b,f) pC_in_4: (f,f,f,f) (b,b,f,f) appB_in_3: (f,f,f) (b,f,f) (b,b,f) appcB_in_3: (f,f,f) (b,f,f) (b,b,f) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: LESSLEAVESD_IN_GG(cons(nil, X1), cons(X2, X3)) -> U10_GG(X1, X2, X3, appA_in_gga(X2, X3, X4)) LESSLEAVESD_IN_GG(cons(nil, X1), cons(X2, X3)) -> APPA_IN_GGA(X2, X3, X4) APPA_IN_GGA([], X1, cons(X2, X3)) -> U1_GGA(X1, X2, X3, appA_in_gga([], X1, X3)) APPA_IN_GGA([], X1, cons(X2, X3)) -> APPA_IN_GGA([], X1, X3) APPA_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> U2_GGA(X1, X2, X3, X4, appA_in_gga(X2, X3, X4)) APPA_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> APPA_IN_GGA(X2, X3, X4) LESSLEAVESD_IN_GG(cons(nil, cons(X1, X2)), cons(X3, X4)) -> U11_GG(X1, X2, X3, X4, appcA_in_gga(X3, X4, cons(X5, X6))) U11_GG(X1, X2, X3, X4, appcA_out_gga(X3, X4, cons(X5, X6))) -> U12_GG(X1, X2, X3, X4, appA_in_gga(X1, X2, X7)) U11_GG(X1, X2, X3, X4, appcA_out_gga(X3, X4, cons(X5, X6))) -> APPA_IN_GGA(X1, X2, X7) U11_GG(X1, X2, X3, X4, appcA_out_gga(X3, X4, cons(X5, X6))) -> U13_GG(X1, X2, X3, X4, X5, X6, appcA_in_gga(X1, X2, X7)) U13_GG(X1, X2, X3, X4, X5, X6, appcA_out_gga(X1, X2, X7)) -> U14_GG(X1, X2, X3, X4, pC_in_aaaa(X5, X6, X8, X7)) U13_GG(X1, X2, X3, X4, X5, X6, appcA_out_gga(X1, X2, X7)) -> PC_IN_AAAA(X5, X6, X8, X7) PC_IN_AAAA(X1, X2, X3, X4) -> U5_AAAA(X1, X2, X3, X4, appB_in_aaa(X1, X2, X3)) PC_IN_AAAA(X1, X2, X3, X4) -> APPB_IN_AAA(X1, X2, X3) APPB_IN_AAA([], X1, cons(X2, X3)) -> U3_AAA(X1, X2, X3, appB_in_gaa([], X1, X3)) APPB_IN_AAA([], X1, cons(X2, X3)) -> APPB_IN_GAA([], X1, X3) APPB_IN_GAA([], X1, cons(X2, X3)) -> U3_GAA(X1, X2, X3, appB_in_gaa([], X1, X3)) APPB_IN_GAA([], X1, cons(X2, X3)) -> APPB_IN_GAA([], X1, X3) APPB_IN_GAA(.(X1, X2), X3, cons(X1, X4)) -> U4_GAA(X1, X2, X3, X4, appB_in_gaa(X2, X3, X4)) APPB_IN_GAA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_GAA(X2, X3, X4) APPB_IN_AAA(.(X1, X2), X3, cons(X1, X4)) -> U4_AAA(X1, X2, X3, X4, appB_in_aaa(X2, X3, X4)) APPB_IN_AAA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_AAA(X2, X3, X4) PC_IN_AAAA(X1, X2, cons(X3, X4), cons(X5, X6)) -> U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_in_aaa(X1, X2, cons(X3, X4))) U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X1, X2, cons(X3, X4))) -> U7_AAAA(X1, X2, X3, X4, X5, X6, appB_in_aaa(X5, X6, X7)) U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X1, X2, cons(X3, X4))) -> APPB_IN_AAA(X5, X6, X7) U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X1, X2, cons(X3, X4))) -> U8_AAAA(X1, X2, X3, X4, X5, X6, appcB_in_aaa(X5, X6, X7)) U8_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X5, X6, X7)) -> U9_AAAA(X1, X2, X3, X4, X5, X6, pC_in_aaaa(X3, X4, X8, X7)) U8_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X5, X6, X7)) -> PC_IN_AAAA(X3, X4, X8, X7) LESSLEAVESD_IN_GG(cons([], X1), cons(X2, X3)) -> U15_GG(X1, X2, X3, appA_in_gga([], X1, X4)) LESSLEAVESD_IN_GG(cons([], X1), cons(X2, X3)) -> APPA_IN_GGA([], X1, X4) LESSLEAVESD_IN_GG(cons([], X1), cons(X2, X3)) -> U16_GG(X1, X2, X3, appcA_in_gga([], X1, X4)) U16_GG(X1, X2, X3, appcA_out_gga([], X1, X4)) -> U17_GG(X1, X2, X3, pC_in_ggaa(X2, X3, X5, cons(X6, X4))) U16_GG(X1, X2, X3, appcA_out_gga([], X1, X4)) -> PC_IN_GGAA(X2, X3, X5, cons(X6, X4)) PC_IN_GGAA(X1, X2, X3, X4) -> U5_GGAA(X1, X2, X3, X4, appB_in_gga(X1, X2, X3)) PC_IN_GGAA(X1, X2, X3, X4) -> APPB_IN_GGA(X1, X2, X3) APPB_IN_GGA([], X1, cons(X2, X3)) -> U3_GGA(X1, X2, X3, appB_in_gga([], X1, X3)) APPB_IN_GGA([], X1, cons(X2, X3)) -> APPB_IN_GGA([], X1, X3) APPB_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> U4_GGA(X1, X2, X3, X4, appB_in_gga(X2, X3, X4)) APPB_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_GGA(X2, X3, X4) PC_IN_GGAA(X1, X2, cons(X3, X4), cons(X5, X6)) -> U6_GGAA(X1, X2, X3, X4, X5, X6, appcB_in_gga(X1, X2, cons(X3, X4))) U6_GGAA(X1, X2, X3, X4, X5, X6, appcB_out_gga(X1, X2, cons(X3, X4))) -> U7_GGAA(X1, X2, X3, X4, X5, X6, appB_in_aaa(X5, X6, X7)) U6_GGAA(X1, X2, X3, X4, X5, X6, appcB_out_gga(X1, X2, cons(X3, X4))) -> APPB_IN_AAA(X5, X6, X7) U6_GGAA(X1, X2, X3, X4, X5, X6, appcB_out_gga(X1, X2, cons(X3, X4))) -> U8_GGAA(X1, X2, X3, X4, X5, X6, appcB_in_aaa(X5, X6, X7)) U8_GGAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X5, X6, X7)) -> U9_GGAA(X1, X2, X3, X4, X5, X6, pC_in_aaaa(X3, X4, X8, X7)) U8_GGAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X5, X6, X7)) -> PC_IN_AAAA(X3, X4, X8, X7) LESSLEAVESD_IN_GG(cons(.(X1, X2), X3), cons(X4, X5)) -> U18_GG(X1, X2, X3, X4, X5, appA_in_gga(X2, X3, X6)) LESSLEAVESD_IN_GG(cons(.(X1, X2), X3), cons(X4, X5)) -> APPA_IN_GGA(X2, X3, X6) LESSLEAVESD_IN_GG(cons(.(X1, X2), X3), cons(X4, X5)) -> U19_GG(X1, X2, X3, X4, X5, appcA_in_gga(X2, X3, X6)) U19_GG(X1, X2, X3, X4, X5, appcA_out_gga(X2, X3, X6)) -> U20_GG(X1, X2, X3, X4, X5, pC_in_ggaa(X4, X5, X7, cons(X1, X6))) U19_GG(X1, X2, X3, X4, X5, appcA_out_gga(X2, X3, X6)) -> PC_IN_GGAA(X4, X5, X7, cons(X1, X6)) The TRS R consists of the following rules: appcA_in_gga(nil, X1, X1) -> appcA_out_gga(nil, X1, X1) appcA_in_gga([], X1, cons(X2, X3)) -> U22_gga(X1, X2, X3, appcA_in_gga([], X1, X3)) appcA_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U23_gga(X1, X2, X3, X4, appcA_in_gga(X2, X3, X4)) U23_gga(X1, X2, X3, X4, appcA_out_gga(X2, X3, X4)) -> appcA_out_gga(.(X1, X2), X3, cons(X1, X4)) U22_gga(X1, X2, X3, appcA_out_gga([], X1, X3)) -> appcA_out_gga([], X1, cons(X2, X3)) appcB_in_aaa(nil, X1, X1) -> appcB_out_aaa(nil, X1, X1) appcB_in_aaa([], X1, cons(X2, X3)) -> U24_aaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(nil, X1, X1) -> appcB_out_gaa(nil, X1, X1) appcB_in_gaa([], X1, cons(X2, X3)) -> U24_gaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(.(X1, X2), X3, cons(X1, X4)) -> U25_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) U25_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, cons(X1, X4)) U24_gaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_gaa([], X1, cons(X2, X3)) U24_aaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_aaa([], X1, cons(X2, X3)) appcB_in_aaa(.(X1, X2), X3, cons(X1, X4)) -> U25_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U25_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, cons(X1, X4)) appcB_in_gga(nil, X1, X1) -> appcB_out_gga(nil, X1, X1) appcB_in_gga([], X1, cons(X2, X3)) -> U24_gga(X1, X2, X3, appcB_in_gga([], X1, X3)) appcB_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U25_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U25_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, cons(X1, X4)) U24_gga(X1, X2, X3, appcB_out_gga([], X1, X3)) -> appcB_out_gga([], X1, cons(X2, X3)) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) nil = nil appA_in_gga(x1, x2, x3) = appA_in_gga(x1, x2) [] = [] .(x1, x2) = .(x1, x2) appcA_in_gga(x1, x2, x3) = appcA_in_gga(x1, x2) appcA_out_gga(x1, x2, x3) = appcA_out_gga(x1, x2) U22_gga(x1, x2, x3, x4) = U22_gga(x1, x4) U23_gga(x1, x2, x3, x4, x5) = U23_gga(x1, x2, x3, x5) pC_in_aaaa(x1, x2, x3, x4) = pC_in_aaaa appB_in_aaa(x1, x2, x3) = appB_in_aaa appB_in_gaa(x1, x2, x3) = appB_in_gaa(x1) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U24_aaa(x1, x2, x3, x4) = U24_aaa(x4) appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1) U24_gaa(x1, x2, x3, x4) = U24_gaa(x4) U25_gaa(x1, x2, x3, x4, x5) = U25_gaa(x1, x2, x5) U25_aaa(x1, x2, x3, x4, x5) = U25_aaa(x5) pC_in_ggaa(x1, x2, x3, x4) = pC_in_ggaa(x1, x2) appB_in_gga(x1, x2, x3) = appB_in_gga(x1, x2) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x4) U25_gga(x1, x2, x3, x4, x5) = U25_gga(x1, x2, x3, x5) LESSLEAVESD_IN_GG(x1, x2) = LESSLEAVESD_IN_GG(x1, x2) U10_GG(x1, x2, x3, x4) = U10_GG(x1, x2, x3, x4) APPA_IN_GGA(x1, x2, x3) = APPA_IN_GGA(x1, x2) U1_GGA(x1, x2, x3, x4) = U1_GGA(x1, x4) U2_GGA(x1, x2, x3, x4, x5) = U2_GGA(x1, x2, x3, x5) U11_GG(x1, x2, x3, x4, x5) = U11_GG(x1, x2, x3, x4, x5) U12_GG(x1, x2, x3, x4, x5) = U12_GG(x1, x2, x3, x4, x5) U13_GG(x1, x2, x3, x4, x5, x6, x7) = U13_GG(x1, x2, x3, x4, x7) U14_GG(x1, x2, x3, x4, x5) = U14_GG(x1, x2, x3, x4, x5) PC_IN_AAAA(x1, x2, x3, x4) = PC_IN_AAAA U5_AAAA(x1, x2, x3, x4, x5) = U5_AAAA(x5) APPB_IN_AAA(x1, x2, x3) = APPB_IN_AAA U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) APPB_IN_GAA(x1, x2, x3) = APPB_IN_GAA(x1) U3_GAA(x1, x2, x3, x4) = U3_GAA(x4) U4_GAA(x1, x2, x3, x4, x5) = U4_GAA(x1, x2, x5) U4_AAA(x1, x2, x3, x4, x5) = U4_AAA(x5) U6_AAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAA(x7) U7_AAAA(x1, x2, x3, x4, x5, x6, x7) = U7_AAAA(x7) U8_AAAA(x1, x2, x3, x4, x5, x6, x7) = U8_AAAA(x7) U9_AAAA(x1, x2, x3, x4, x5, x6, x7) = U9_AAAA(x7) U15_GG(x1, x2, x3, x4) = U15_GG(x1, x2, x3, x4) U16_GG(x1, x2, x3, x4) = U16_GG(x1, x2, x3, x4) U17_GG(x1, x2, x3, x4) = U17_GG(x1, x2, x3, x4) PC_IN_GGAA(x1, x2, x3, x4) = PC_IN_GGAA(x1, x2) U5_GGAA(x1, x2, x3, x4, x5) = U5_GGAA(x1, x2, x5) APPB_IN_GGA(x1, x2, x3) = APPB_IN_GGA(x1, x2) U3_GGA(x1, x2, x3, x4) = U3_GGA(x1, x4) U4_GGA(x1, x2, x3, x4, x5) = U4_GGA(x1, x2, x3, x5) U6_GGAA(x1, x2, x3, x4, x5, x6, x7) = U6_GGAA(x1, x2, x7) U7_GGAA(x1, x2, x3, x4, x5, x6, x7) = U7_GGAA(x1, x2, x7) U8_GGAA(x1, x2, x3, x4, x5, x6, x7) = U8_GGAA(x1, x2, x7) U9_GGAA(x1, x2, x3, x4, x5, x6, x7) = U9_GGAA(x1, x2, x7) U18_GG(x1, x2, x3, x4, x5, x6) = U18_GG(x1, x2, x3, x4, x5, x6) U19_GG(x1, x2, x3, x4, x5, x6) = U19_GG(x1, x2, x3, x4, x5, x6) U20_GG(x1, x2, x3, x4, x5, x6) = U20_GG(x1, x2, x3, x4, x5, x6) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (119) Obligation: Pi DP problem: The TRS P consists of the following rules: LESSLEAVESD_IN_GG(cons(nil, X1), cons(X2, X3)) -> U10_GG(X1, X2, X3, appA_in_gga(X2, X3, X4)) LESSLEAVESD_IN_GG(cons(nil, X1), cons(X2, X3)) -> APPA_IN_GGA(X2, X3, X4) APPA_IN_GGA([], X1, cons(X2, X3)) -> U1_GGA(X1, X2, X3, appA_in_gga([], X1, X3)) APPA_IN_GGA([], X1, cons(X2, X3)) -> APPA_IN_GGA([], X1, X3) APPA_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> U2_GGA(X1, X2, X3, X4, appA_in_gga(X2, X3, X4)) APPA_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> APPA_IN_GGA(X2, X3, X4) LESSLEAVESD_IN_GG(cons(nil, cons(X1, X2)), cons(X3, X4)) -> U11_GG(X1, X2, X3, X4, appcA_in_gga(X3, X4, cons(X5, X6))) U11_GG(X1, X2, X3, X4, appcA_out_gga(X3, X4, cons(X5, X6))) -> U12_GG(X1, X2, X3, X4, appA_in_gga(X1, X2, X7)) U11_GG(X1, X2, X3, X4, appcA_out_gga(X3, X4, cons(X5, X6))) -> APPA_IN_GGA(X1, X2, X7) U11_GG(X1, X2, X3, X4, appcA_out_gga(X3, X4, cons(X5, X6))) -> U13_GG(X1, X2, X3, X4, X5, X6, appcA_in_gga(X1, X2, X7)) U13_GG(X1, X2, X3, X4, X5, X6, appcA_out_gga(X1, X2, X7)) -> U14_GG(X1, X2, X3, X4, pC_in_aaaa(X5, X6, X8, X7)) U13_GG(X1, X2, X3, X4, X5, X6, appcA_out_gga(X1, X2, X7)) -> PC_IN_AAAA(X5, X6, X8, X7) PC_IN_AAAA(X1, X2, X3, X4) -> U5_AAAA(X1, X2, X3, X4, appB_in_aaa(X1, X2, X3)) PC_IN_AAAA(X1, X2, X3, X4) -> APPB_IN_AAA(X1, X2, X3) APPB_IN_AAA([], X1, cons(X2, X3)) -> U3_AAA(X1, X2, X3, appB_in_gaa([], X1, X3)) APPB_IN_AAA([], X1, cons(X2, X3)) -> APPB_IN_GAA([], X1, X3) APPB_IN_GAA([], X1, cons(X2, X3)) -> U3_GAA(X1, X2, X3, appB_in_gaa([], X1, X3)) APPB_IN_GAA([], X1, cons(X2, X3)) -> APPB_IN_GAA([], X1, X3) APPB_IN_GAA(.(X1, X2), X3, cons(X1, X4)) -> U4_GAA(X1, X2, X3, X4, appB_in_gaa(X2, X3, X4)) APPB_IN_GAA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_GAA(X2, X3, X4) APPB_IN_AAA(.(X1, X2), X3, cons(X1, X4)) -> U4_AAA(X1, X2, X3, X4, appB_in_aaa(X2, X3, X4)) APPB_IN_AAA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_AAA(X2, X3, X4) PC_IN_AAAA(X1, X2, cons(X3, X4), cons(X5, X6)) -> U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_in_aaa(X1, X2, cons(X3, X4))) U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X1, X2, cons(X3, X4))) -> U7_AAAA(X1, X2, X3, X4, X5, X6, appB_in_aaa(X5, X6, X7)) U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X1, X2, cons(X3, X4))) -> APPB_IN_AAA(X5, X6, X7) U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X1, X2, cons(X3, X4))) -> U8_AAAA(X1, X2, X3, X4, X5, X6, appcB_in_aaa(X5, X6, X7)) U8_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X5, X6, X7)) -> U9_AAAA(X1, X2, X3, X4, X5, X6, pC_in_aaaa(X3, X4, X8, X7)) U8_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X5, X6, X7)) -> PC_IN_AAAA(X3, X4, X8, X7) LESSLEAVESD_IN_GG(cons([], X1), cons(X2, X3)) -> U15_GG(X1, X2, X3, appA_in_gga([], X1, X4)) LESSLEAVESD_IN_GG(cons([], X1), cons(X2, X3)) -> APPA_IN_GGA([], X1, X4) LESSLEAVESD_IN_GG(cons([], X1), cons(X2, X3)) -> U16_GG(X1, X2, X3, appcA_in_gga([], X1, X4)) U16_GG(X1, X2, X3, appcA_out_gga([], X1, X4)) -> U17_GG(X1, X2, X3, pC_in_ggaa(X2, X3, X5, cons(X6, X4))) U16_GG(X1, X2, X3, appcA_out_gga([], X1, X4)) -> PC_IN_GGAA(X2, X3, X5, cons(X6, X4)) PC_IN_GGAA(X1, X2, X3, X4) -> U5_GGAA(X1, X2, X3, X4, appB_in_gga(X1, X2, X3)) PC_IN_GGAA(X1, X2, X3, X4) -> APPB_IN_GGA(X1, X2, X3) APPB_IN_GGA([], X1, cons(X2, X3)) -> U3_GGA(X1, X2, X3, appB_in_gga([], X1, X3)) APPB_IN_GGA([], X1, cons(X2, X3)) -> APPB_IN_GGA([], X1, X3) APPB_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> U4_GGA(X1, X2, X3, X4, appB_in_gga(X2, X3, X4)) APPB_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_GGA(X2, X3, X4) PC_IN_GGAA(X1, X2, cons(X3, X4), cons(X5, X6)) -> U6_GGAA(X1, X2, X3, X4, X5, X6, appcB_in_gga(X1, X2, cons(X3, X4))) U6_GGAA(X1, X2, X3, X4, X5, X6, appcB_out_gga(X1, X2, cons(X3, X4))) -> U7_GGAA(X1, X2, X3, X4, X5, X6, appB_in_aaa(X5, X6, X7)) U6_GGAA(X1, X2, X3, X4, X5, X6, appcB_out_gga(X1, X2, cons(X3, X4))) -> APPB_IN_AAA(X5, X6, X7) U6_GGAA(X1, X2, X3, X4, X5, X6, appcB_out_gga(X1, X2, cons(X3, X4))) -> U8_GGAA(X1, X2, X3, X4, X5, X6, appcB_in_aaa(X5, X6, X7)) U8_GGAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X5, X6, X7)) -> U9_GGAA(X1, X2, X3, X4, X5, X6, pC_in_aaaa(X3, X4, X8, X7)) U8_GGAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X5, X6, X7)) -> PC_IN_AAAA(X3, X4, X8, X7) LESSLEAVESD_IN_GG(cons(.(X1, X2), X3), cons(X4, X5)) -> U18_GG(X1, X2, X3, X4, X5, appA_in_gga(X2, X3, X6)) LESSLEAVESD_IN_GG(cons(.(X1, X2), X3), cons(X4, X5)) -> APPA_IN_GGA(X2, X3, X6) LESSLEAVESD_IN_GG(cons(.(X1, X2), X3), cons(X4, X5)) -> U19_GG(X1, X2, X3, X4, X5, appcA_in_gga(X2, X3, X6)) U19_GG(X1, X2, X3, X4, X5, appcA_out_gga(X2, X3, X6)) -> U20_GG(X1, X2, X3, X4, X5, pC_in_ggaa(X4, X5, X7, cons(X1, X6))) U19_GG(X1, X2, X3, X4, X5, appcA_out_gga(X2, X3, X6)) -> PC_IN_GGAA(X4, X5, X7, cons(X1, X6)) The TRS R consists of the following rules: appcA_in_gga(nil, X1, X1) -> appcA_out_gga(nil, X1, X1) appcA_in_gga([], X1, cons(X2, X3)) -> U22_gga(X1, X2, X3, appcA_in_gga([], X1, X3)) appcA_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U23_gga(X1, X2, X3, X4, appcA_in_gga(X2, X3, X4)) U23_gga(X1, X2, X3, X4, appcA_out_gga(X2, X3, X4)) -> appcA_out_gga(.(X1, X2), X3, cons(X1, X4)) U22_gga(X1, X2, X3, appcA_out_gga([], X1, X3)) -> appcA_out_gga([], X1, cons(X2, X3)) appcB_in_aaa(nil, X1, X1) -> appcB_out_aaa(nil, X1, X1) appcB_in_aaa([], X1, cons(X2, X3)) -> U24_aaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(nil, X1, X1) -> appcB_out_gaa(nil, X1, X1) appcB_in_gaa([], X1, cons(X2, X3)) -> U24_gaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(.(X1, X2), X3, cons(X1, X4)) -> U25_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) U25_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, cons(X1, X4)) U24_gaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_gaa([], X1, cons(X2, X3)) U24_aaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_aaa([], X1, cons(X2, X3)) appcB_in_aaa(.(X1, X2), X3, cons(X1, X4)) -> U25_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U25_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, cons(X1, X4)) appcB_in_gga(nil, X1, X1) -> appcB_out_gga(nil, X1, X1) appcB_in_gga([], X1, cons(X2, X3)) -> U24_gga(X1, X2, X3, appcB_in_gga([], X1, X3)) appcB_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U25_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U25_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, cons(X1, X4)) U24_gga(X1, X2, X3, appcB_out_gga([], X1, X3)) -> appcB_out_gga([], X1, cons(X2, X3)) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) nil = nil appA_in_gga(x1, x2, x3) = appA_in_gga(x1, x2) [] = [] .(x1, x2) = .(x1, x2) appcA_in_gga(x1, x2, x3) = appcA_in_gga(x1, x2) appcA_out_gga(x1, x2, x3) = appcA_out_gga(x1, x2) U22_gga(x1, x2, x3, x4) = U22_gga(x1, x4) U23_gga(x1, x2, x3, x4, x5) = U23_gga(x1, x2, x3, x5) pC_in_aaaa(x1, x2, x3, x4) = pC_in_aaaa appB_in_aaa(x1, x2, x3) = appB_in_aaa appB_in_gaa(x1, x2, x3) = appB_in_gaa(x1) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U24_aaa(x1, x2, x3, x4) = U24_aaa(x4) appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1) U24_gaa(x1, x2, x3, x4) = U24_gaa(x4) U25_gaa(x1, x2, x3, x4, x5) = U25_gaa(x1, x2, x5) U25_aaa(x1, x2, x3, x4, x5) = U25_aaa(x5) pC_in_ggaa(x1, x2, x3, x4) = pC_in_ggaa(x1, x2) appB_in_gga(x1, x2, x3) = appB_in_gga(x1, x2) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x4) U25_gga(x1, x2, x3, x4, x5) = U25_gga(x1, x2, x3, x5) LESSLEAVESD_IN_GG(x1, x2) = LESSLEAVESD_IN_GG(x1, x2) U10_GG(x1, x2, x3, x4) = U10_GG(x1, x2, x3, x4) APPA_IN_GGA(x1, x2, x3) = APPA_IN_GGA(x1, x2) U1_GGA(x1, x2, x3, x4) = U1_GGA(x1, x4) U2_GGA(x1, x2, x3, x4, x5) = U2_GGA(x1, x2, x3, x5) U11_GG(x1, x2, x3, x4, x5) = U11_GG(x1, x2, x3, x4, x5) U12_GG(x1, x2, x3, x4, x5) = U12_GG(x1, x2, x3, x4, x5) U13_GG(x1, x2, x3, x4, x5, x6, x7) = U13_GG(x1, x2, x3, x4, x7) U14_GG(x1, x2, x3, x4, x5) = U14_GG(x1, x2, x3, x4, x5) PC_IN_AAAA(x1, x2, x3, x4) = PC_IN_AAAA U5_AAAA(x1, x2, x3, x4, x5) = U5_AAAA(x5) APPB_IN_AAA(x1, x2, x3) = APPB_IN_AAA U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) APPB_IN_GAA(x1, x2, x3) = APPB_IN_GAA(x1) U3_GAA(x1, x2, x3, x4) = U3_GAA(x4) U4_GAA(x1, x2, x3, x4, x5) = U4_GAA(x1, x2, x5) U4_AAA(x1, x2, x3, x4, x5) = U4_AAA(x5) U6_AAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAA(x7) U7_AAAA(x1, x2, x3, x4, x5, x6, x7) = U7_AAAA(x7) U8_AAAA(x1, x2, x3, x4, x5, x6, x7) = U8_AAAA(x7) U9_AAAA(x1, x2, x3, x4, x5, x6, x7) = U9_AAAA(x7) U15_GG(x1, x2, x3, x4) = U15_GG(x1, x2, x3, x4) U16_GG(x1, x2, x3, x4) = U16_GG(x1, x2, x3, x4) U17_GG(x1, x2, x3, x4) = U17_GG(x1, x2, x3, x4) PC_IN_GGAA(x1, x2, x3, x4) = PC_IN_GGAA(x1, x2) U5_GGAA(x1, x2, x3, x4, x5) = U5_GGAA(x1, x2, x5) APPB_IN_GGA(x1, x2, x3) = APPB_IN_GGA(x1, x2) U3_GGA(x1, x2, x3, x4) = U3_GGA(x1, x4) U4_GGA(x1, x2, x3, x4, x5) = U4_GGA(x1, x2, x3, x5) U6_GGAA(x1, x2, x3, x4, x5, x6, x7) = U6_GGAA(x1, x2, x7) U7_GGAA(x1, x2, x3, x4, x5, x6, x7) = U7_GGAA(x1, x2, x7) U8_GGAA(x1, x2, x3, x4, x5, x6, x7) = U8_GGAA(x1, x2, x7) U9_GGAA(x1, x2, x3, x4, x5, x6, x7) = U9_GGAA(x1, x2, x7) U18_GG(x1, x2, x3, x4, x5, x6) = U18_GG(x1, x2, x3, x4, x5, x6) U19_GG(x1, x2, x3, x4, x5, x6) = U19_GG(x1, x2, x3, x4, x5, x6) U20_GG(x1, x2, x3, x4, x5, x6) = U20_GG(x1, x2, x3, x4, x5, x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (120) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 8 SCCs with 40 less nodes. ---------------------------------------- (121) Complex Obligation (AND) ---------------------------------------- (122) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_GGA([], X1, cons(X2, X3)) -> APPB_IN_GGA([], X1, X3) The TRS R consists of the following rules: appcA_in_gga(nil, X1, X1) -> appcA_out_gga(nil, X1, X1) appcA_in_gga([], X1, cons(X2, X3)) -> U22_gga(X1, X2, X3, appcA_in_gga([], X1, X3)) appcA_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U23_gga(X1, X2, X3, X4, appcA_in_gga(X2, X3, X4)) U23_gga(X1, X2, X3, X4, appcA_out_gga(X2, X3, X4)) -> appcA_out_gga(.(X1, X2), X3, cons(X1, X4)) U22_gga(X1, X2, X3, appcA_out_gga([], X1, X3)) -> appcA_out_gga([], X1, cons(X2, X3)) appcB_in_aaa(nil, X1, X1) -> appcB_out_aaa(nil, X1, X1) appcB_in_aaa([], X1, cons(X2, X3)) -> U24_aaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(nil, X1, X1) -> appcB_out_gaa(nil, X1, X1) appcB_in_gaa([], X1, cons(X2, X3)) -> U24_gaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(.(X1, X2), X3, cons(X1, X4)) -> U25_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) U25_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, cons(X1, X4)) U24_gaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_gaa([], X1, cons(X2, X3)) U24_aaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_aaa([], X1, cons(X2, X3)) appcB_in_aaa(.(X1, X2), X3, cons(X1, X4)) -> U25_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U25_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, cons(X1, X4)) appcB_in_gga(nil, X1, X1) -> appcB_out_gga(nil, X1, X1) appcB_in_gga([], X1, cons(X2, X3)) -> U24_gga(X1, X2, X3, appcB_in_gga([], X1, X3)) appcB_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U25_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U25_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, cons(X1, X4)) U24_gga(X1, X2, X3, appcB_out_gga([], X1, X3)) -> appcB_out_gga([], X1, cons(X2, X3)) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) nil = nil [] = [] .(x1, x2) = .(x1, x2) appcA_in_gga(x1, x2, x3) = appcA_in_gga(x1, x2) appcA_out_gga(x1, x2, x3) = appcA_out_gga(x1, x2) U22_gga(x1, x2, x3, x4) = U22_gga(x1, x4) U23_gga(x1, x2, x3, x4, x5) = U23_gga(x1, x2, x3, x5) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U24_aaa(x1, x2, x3, x4) = U24_aaa(x4) appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1) U24_gaa(x1, x2, x3, x4) = U24_gaa(x4) U25_gaa(x1, x2, x3, x4, x5) = U25_gaa(x1, x2, x5) U25_aaa(x1, x2, x3, x4, x5) = U25_aaa(x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x4) U25_gga(x1, x2, x3, x4, x5) = U25_gga(x1, x2, x3, x5) APPB_IN_GGA(x1, x2, x3) = APPB_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (123) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (124) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_GGA([], X1, cons(X2, X3)) -> APPB_IN_GGA([], X1, X3) R is empty. The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) [] = [] APPB_IN_GGA(x1, x2, x3) = APPB_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (125) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (126) Obligation: Q DP problem: The TRS P consists of the following rules: APPB_IN_GGA([], X1) -> APPB_IN_GGA([], X1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (127) ATransformationProof (EQUIVALENT) We have applied the A-Transformation [FROCOS05] to get from an applicative problem to a standard problem. ---------------------------------------- (128) Obligation: Q DP problem: The TRS P consists of the following rules: [](X1) -> [](X1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (129) 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 = [](X1) evaluates to t =[](X1) 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 [](X1) to [](X1). ---------------------------------------- (130) NO ---------------------------------------- (131) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_GGA(X2, X3, X4) The TRS R consists of the following rules: appcA_in_gga(nil, X1, X1) -> appcA_out_gga(nil, X1, X1) appcA_in_gga([], X1, cons(X2, X3)) -> U22_gga(X1, X2, X3, appcA_in_gga([], X1, X3)) appcA_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U23_gga(X1, X2, X3, X4, appcA_in_gga(X2, X3, X4)) U23_gga(X1, X2, X3, X4, appcA_out_gga(X2, X3, X4)) -> appcA_out_gga(.(X1, X2), X3, cons(X1, X4)) U22_gga(X1, X2, X3, appcA_out_gga([], X1, X3)) -> appcA_out_gga([], X1, cons(X2, X3)) appcB_in_aaa(nil, X1, X1) -> appcB_out_aaa(nil, X1, X1) appcB_in_aaa([], X1, cons(X2, X3)) -> U24_aaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(nil, X1, X1) -> appcB_out_gaa(nil, X1, X1) appcB_in_gaa([], X1, cons(X2, X3)) -> U24_gaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(.(X1, X2), X3, cons(X1, X4)) -> U25_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) U25_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, cons(X1, X4)) U24_gaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_gaa([], X1, cons(X2, X3)) U24_aaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_aaa([], X1, cons(X2, X3)) appcB_in_aaa(.(X1, X2), X3, cons(X1, X4)) -> U25_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U25_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, cons(X1, X4)) appcB_in_gga(nil, X1, X1) -> appcB_out_gga(nil, X1, X1) appcB_in_gga([], X1, cons(X2, X3)) -> U24_gga(X1, X2, X3, appcB_in_gga([], X1, X3)) appcB_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U25_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U25_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, cons(X1, X4)) U24_gga(X1, X2, X3, appcB_out_gga([], X1, X3)) -> appcB_out_gga([], X1, cons(X2, X3)) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) nil = nil [] = [] .(x1, x2) = .(x1, x2) appcA_in_gga(x1, x2, x3) = appcA_in_gga(x1, x2) appcA_out_gga(x1, x2, x3) = appcA_out_gga(x1, x2) U22_gga(x1, x2, x3, x4) = U22_gga(x1, x4) U23_gga(x1, x2, x3, x4, x5) = U23_gga(x1, x2, x3, x5) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U24_aaa(x1, x2, x3, x4) = U24_aaa(x4) appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1) U24_gaa(x1, x2, x3, x4) = U24_gaa(x4) U25_gaa(x1, x2, x3, x4, x5) = U25_gaa(x1, x2, x5) U25_aaa(x1, x2, x3, x4, x5) = U25_aaa(x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x4) U25_gga(x1, x2, x3, x4, x5) = U25_gga(x1, x2, x3, x5) APPB_IN_GGA(x1, x2, x3) = APPB_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (132) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (133) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_GGA(X2, X3, X4) R is empty. The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) .(x1, x2) = .(x1, x2) APPB_IN_GGA(x1, x2, x3) = APPB_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (134) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (135) Obligation: Q DP problem: The TRS P consists of the following rules: APPB_IN_GGA(.(X1, X2), X3) -> APPB_IN_GGA(X2, X3) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (136) 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: *APPB_IN_GGA(.(X1, X2), X3) -> APPB_IN_GGA(X2, X3) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (137) YES ---------------------------------------- (138) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_GAA([], X1, cons(X2, X3)) -> APPB_IN_GAA([], X1, X3) The TRS R consists of the following rules: appcA_in_gga(nil, X1, X1) -> appcA_out_gga(nil, X1, X1) appcA_in_gga([], X1, cons(X2, X3)) -> U22_gga(X1, X2, X3, appcA_in_gga([], X1, X3)) appcA_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U23_gga(X1, X2, X3, X4, appcA_in_gga(X2, X3, X4)) U23_gga(X1, X2, X3, X4, appcA_out_gga(X2, X3, X4)) -> appcA_out_gga(.(X1, X2), X3, cons(X1, X4)) U22_gga(X1, X2, X3, appcA_out_gga([], X1, X3)) -> appcA_out_gga([], X1, cons(X2, X3)) appcB_in_aaa(nil, X1, X1) -> appcB_out_aaa(nil, X1, X1) appcB_in_aaa([], X1, cons(X2, X3)) -> U24_aaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(nil, X1, X1) -> appcB_out_gaa(nil, X1, X1) appcB_in_gaa([], X1, cons(X2, X3)) -> U24_gaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(.(X1, X2), X3, cons(X1, X4)) -> U25_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) U25_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, cons(X1, X4)) U24_gaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_gaa([], X1, cons(X2, X3)) U24_aaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_aaa([], X1, cons(X2, X3)) appcB_in_aaa(.(X1, X2), X3, cons(X1, X4)) -> U25_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U25_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, cons(X1, X4)) appcB_in_gga(nil, X1, X1) -> appcB_out_gga(nil, X1, X1) appcB_in_gga([], X1, cons(X2, X3)) -> U24_gga(X1, X2, X3, appcB_in_gga([], X1, X3)) appcB_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U25_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U25_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, cons(X1, X4)) U24_gga(X1, X2, X3, appcB_out_gga([], X1, X3)) -> appcB_out_gga([], X1, cons(X2, X3)) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) nil = nil [] = [] .(x1, x2) = .(x1, x2) appcA_in_gga(x1, x2, x3) = appcA_in_gga(x1, x2) appcA_out_gga(x1, x2, x3) = appcA_out_gga(x1, x2) U22_gga(x1, x2, x3, x4) = U22_gga(x1, x4) U23_gga(x1, x2, x3, x4, x5) = U23_gga(x1, x2, x3, x5) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U24_aaa(x1, x2, x3, x4) = U24_aaa(x4) appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1) U24_gaa(x1, x2, x3, x4) = U24_gaa(x4) U25_gaa(x1, x2, x3, x4, x5) = U25_gaa(x1, x2, x5) U25_aaa(x1, x2, x3, x4, x5) = U25_aaa(x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x4) U25_gga(x1, x2, x3, x4, x5) = U25_gga(x1, x2, x3, x5) APPB_IN_GAA(x1, x2, x3) = APPB_IN_GAA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (139) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (140) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_GAA([], X1, cons(X2, X3)) -> APPB_IN_GAA([], X1, X3) R is empty. The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) [] = [] APPB_IN_GAA(x1, x2, x3) = APPB_IN_GAA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (141) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (142) Obligation: Q DP problem: The TRS P consists of the following rules: APPB_IN_GAA([]) -> APPB_IN_GAA([]) R is empty. Q is empty. We have to consider all (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 = APPB_IN_GAA([]) evaluates to t =APPB_IN_GAA([]) 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_GAA([]) to APPB_IN_GAA([]). ---------------------------------------- (144) NO ---------------------------------------- (145) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_GAA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_GAA(X2, X3, X4) The TRS R consists of the following rules: appcA_in_gga(nil, X1, X1) -> appcA_out_gga(nil, X1, X1) appcA_in_gga([], X1, cons(X2, X3)) -> U22_gga(X1, X2, X3, appcA_in_gga([], X1, X3)) appcA_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U23_gga(X1, X2, X3, X4, appcA_in_gga(X2, X3, X4)) U23_gga(X1, X2, X3, X4, appcA_out_gga(X2, X3, X4)) -> appcA_out_gga(.(X1, X2), X3, cons(X1, X4)) U22_gga(X1, X2, X3, appcA_out_gga([], X1, X3)) -> appcA_out_gga([], X1, cons(X2, X3)) appcB_in_aaa(nil, X1, X1) -> appcB_out_aaa(nil, X1, X1) appcB_in_aaa([], X1, cons(X2, X3)) -> U24_aaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(nil, X1, X1) -> appcB_out_gaa(nil, X1, X1) appcB_in_gaa([], X1, cons(X2, X3)) -> U24_gaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(.(X1, X2), X3, cons(X1, X4)) -> U25_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) U25_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, cons(X1, X4)) U24_gaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_gaa([], X1, cons(X2, X3)) U24_aaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_aaa([], X1, cons(X2, X3)) appcB_in_aaa(.(X1, X2), X3, cons(X1, X4)) -> U25_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U25_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, cons(X1, X4)) appcB_in_gga(nil, X1, X1) -> appcB_out_gga(nil, X1, X1) appcB_in_gga([], X1, cons(X2, X3)) -> U24_gga(X1, X2, X3, appcB_in_gga([], X1, X3)) appcB_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U25_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U25_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, cons(X1, X4)) U24_gga(X1, X2, X3, appcB_out_gga([], X1, X3)) -> appcB_out_gga([], X1, cons(X2, X3)) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) nil = nil [] = [] .(x1, x2) = .(x1, x2) appcA_in_gga(x1, x2, x3) = appcA_in_gga(x1, x2) appcA_out_gga(x1, x2, x3) = appcA_out_gga(x1, x2) U22_gga(x1, x2, x3, x4) = U22_gga(x1, x4) U23_gga(x1, x2, x3, x4, x5) = U23_gga(x1, x2, x3, x5) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U24_aaa(x1, x2, x3, x4) = U24_aaa(x4) appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1) U24_gaa(x1, x2, x3, x4) = U24_gaa(x4) U25_gaa(x1, x2, x3, x4, x5) = U25_gaa(x1, x2, x5) U25_aaa(x1, x2, x3, x4, x5) = U25_aaa(x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x4) U25_gga(x1, x2, x3, x4, x5) = U25_gga(x1, x2, x3, x5) APPB_IN_GAA(x1, x2, x3) = APPB_IN_GAA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (146) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (147) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_GAA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_GAA(X2, X3, X4) R is empty. The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) .(x1, x2) = .(x1, x2) APPB_IN_GAA(x1, x2, x3) = APPB_IN_GAA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (148) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (149) Obligation: Q DP problem: The TRS P consists of the following rules: APPB_IN_GAA(.(X1, X2)) -> APPB_IN_GAA(X2) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (150) 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: *APPB_IN_GAA(.(X1, X2)) -> APPB_IN_GAA(X2) The graph contains the following edges 1 > 1 ---------------------------------------- (151) YES ---------------------------------------- (152) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_AAA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_AAA(X2, X3, X4) The TRS R consists of the following rules: appcA_in_gga(nil, X1, X1) -> appcA_out_gga(nil, X1, X1) appcA_in_gga([], X1, cons(X2, X3)) -> U22_gga(X1, X2, X3, appcA_in_gga([], X1, X3)) appcA_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U23_gga(X1, X2, X3, X4, appcA_in_gga(X2, X3, X4)) U23_gga(X1, X2, X3, X4, appcA_out_gga(X2, X3, X4)) -> appcA_out_gga(.(X1, X2), X3, cons(X1, X4)) U22_gga(X1, X2, X3, appcA_out_gga([], X1, X3)) -> appcA_out_gga([], X1, cons(X2, X3)) appcB_in_aaa(nil, X1, X1) -> appcB_out_aaa(nil, X1, X1) appcB_in_aaa([], X1, cons(X2, X3)) -> U24_aaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(nil, X1, X1) -> appcB_out_gaa(nil, X1, X1) appcB_in_gaa([], X1, cons(X2, X3)) -> U24_gaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(.(X1, X2), X3, cons(X1, X4)) -> U25_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) U25_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, cons(X1, X4)) U24_gaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_gaa([], X1, cons(X2, X3)) U24_aaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_aaa([], X1, cons(X2, X3)) appcB_in_aaa(.(X1, X2), X3, cons(X1, X4)) -> U25_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U25_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, cons(X1, X4)) appcB_in_gga(nil, X1, X1) -> appcB_out_gga(nil, X1, X1) appcB_in_gga([], X1, cons(X2, X3)) -> U24_gga(X1, X2, X3, appcB_in_gga([], X1, X3)) appcB_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U25_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U25_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, cons(X1, X4)) U24_gga(X1, X2, X3, appcB_out_gga([], X1, X3)) -> appcB_out_gga([], X1, cons(X2, X3)) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) nil = nil [] = [] .(x1, x2) = .(x1, x2) appcA_in_gga(x1, x2, x3) = appcA_in_gga(x1, x2) appcA_out_gga(x1, x2, x3) = appcA_out_gga(x1, x2) U22_gga(x1, x2, x3, x4) = U22_gga(x1, x4) U23_gga(x1, x2, x3, x4, x5) = U23_gga(x1, x2, x3, x5) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U24_aaa(x1, x2, x3, x4) = U24_aaa(x4) appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1) U24_gaa(x1, x2, x3, x4) = U24_gaa(x4) U25_gaa(x1, x2, x3, x4, x5) = U25_gaa(x1, x2, x5) U25_aaa(x1, x2, x3, x4, x5) = U25_aaa(x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x4) U25_gga(x1, x2, x3, x4, x5) = U25_gga(x1, x2, x3, x5) APPB_IN_AAA(x1, x2, x3) = APPB_IN_AAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (153) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (154) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_AAA(.(X1, X2), X3, cons(X1, X4)) -> APPB_IN_AAA(X2, X3, X4) R is empty. The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) .(x1, x2) = .(x1, x2) APPB_IN_AAA(x1, x2, x3) = APPB_IN_AAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (155) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (156) 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. ---------------------------------------- (157) 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. ---------------------------------------- (158) NO ---------------------------------------- (159) Obligation: Pi DP problem: The TRS P consists of the following rules: PC_IN_AAAA(X1, X2, cons(X3, X4), cons(X5, X6)) -> U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_in_aaa(X1, X2, cons(X3, X4))) U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X1, X2, cons(X3, X4))) -> U8_AAAA(X1, X2, X3, X4, X5, X6, appcB_in_aaa(X5, X6, X7)) U8_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X5, X6, X7)) -> PC_IN_AAAA(X3, X4, X8, X7) The TRS R consists of the following rules: appcA_in_gga(nil, X1, X1) -> appcA_out_gga(nil, X1, X1) appcA_in_gga([], X1, cons(X2, X3)) -> U22_gga(X1, X2, X3, appcA_in_gga([], X1, X3)) appcA_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U23_gga(X1, X2, X3, X4, appcA_in_gga(X2, X3, X4)) U23_gga(X1, X2, X3, X4, appcA_out_gga(X2, X3, X4)) -> appcA_out_gga(.(X1, X2), X3, cons(X1, X4)) U22_gga(X1, X2, X3, appcA_out_gga([], X1, X3)) -> appcA_out_gga([], X1, cons(X2, X3)) appcB_in_aaa(nil, X1, X1) -> appcB_out_aaa(nil, X1, X1) appcB_in_aaa([], X1, cons(X2, X3)) -> U24_aaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(nil, X1, X1) -> appcB_out_gaa(nil, X1, X1) appcB_in_gaa([], X1, cons(X2, X3)) -> U24_gaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(.(X1, X2), X3, cons(X1, X4)) -> U25_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) U25_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, cons(X1, X4)) U24_gaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_gaa([], X1, cons(X2, X3)) U24_aaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_aaa([], X1, cons(X2, X3)) appcB_in_aaa(.(X1, X2), X3, cons(X1, X4)) -> U25_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U25_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, cons(X1, X4)) appcB_in_gga(nil, X1, X1) -> appcB_out_gga(nil, X1, X1) appcB_in_gga([], X1, cons(X2, X3)) -> U24_gga(X1, X2, X3, appcB_in_gga([], X1, X3)) appcB_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U25_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U25_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, cons(X1, X4)) U24_gga(X1, X2, X3, appcB_out_gga([], X1, X3)) -> appcB_out_gga([], X1, cons(X2, X3)) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) nil = nil [] = [] .(x1, x2) = .(x1, x2) appcA_in_gga(x1, x2, x3) = appcA_in_gga(x1, x2) appcA_out_gga(x1, x2, x3) = appcA_out_gga(x1, x2) U22_gga(x1, x2, x3, x4) = U22_gga(x1, x4) U23_gga(x1, x2, x3, x4, x5) = U23_gga(x1, x2, x3, x5) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U24_aaa(x1, x2, x3, x4) = U24_aaa(x4) appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1) U24_gaa(x1, x2, x3, x4) = U24_gaa(x4) U25_gaa(x1, x2, x3, x4, x5) = U25_gaa(x1, x2, x5) U25_aaa(x1, x2, x3, x4, x5) = U25_aaa(x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x4) U25_gga(x1, x2, x3, x4, x5) = U25_gga(x1, x2, x3, x5) PC_IN_AAAA(x1, x2, x3, x4) = PC_IN_AAAA U6_AAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAA(x7) U8_AAAA(x1, x2, x3, x4, x5, x6, x7) = U8_AAAA(x7) We have to consider all (P,R,Pi)-chains ---------------------------------------- (160) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (161) Obligation: Pi DP problem: The TRS P consists of the following rules: PC_IN_AAAA(X1, X2, cons(X3, X4), cons(X5, X6)) -> U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_in_aaa(X1, X2, cons(X3, X4))) U6_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X1, X2, cons(X3, X4))) -> U8_AAAA(X1, X2, X3, X4, X5, X6, appcB_in_aaa(X5, X6, X7)) U8_AAAA(X1, X2, X3, X4, X5, X6, appcB_out_aaa(X5, X6, X7)) -> PC_IN_AAAA(X3, X4, X8, X7) The TRS R consists of the following rules: appcB_in_aaa(nil, X1, X1) -> appcB_out_aaa(nil, X1, X1) appcB_in_aaa([], X1, cons(X2, X3)) -> U24_aaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_aaa(.(X1, X2), X3, cons(X1, X4)) -> U25_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U24_aaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_aaa([], X1, cons(X2, X3)) U25_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, cons(X1, X4)) appcB_in_gaa([], X1, cons(X2, X3)) -> U24_gaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) U24_gaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_gaa([], X1, cons(X2, X3)) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) nil = nil [] = [] .(x1, x2) = .(x1, x2) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U24_aaa(x1, x2, x3, x4) = U24_aaa(x4) appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1) U24_gaa(x1, x2, x3, x4) = U24_gaa(x4) U25_aaa(x1, x2, x3, x4, x5) = U25_aaa(x5) PC_IN_AAAA(x1, x2, x3, x4) = PC_IN_AAAA U6_AAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAA(x7) U8_AAAA(x1, x2, x3, x4, x5, x6, x7) = U8_AAAA(x7) We have to consider all (P,R,Pi)-chains ---------------------------------------- (162) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (163) Obligation: Q DP problem: The TRS P consists of the following rules: PC_IN_AAAA -> U6_AAAA(appcB_in_aaa) U6_AAAA(appcB_out_aaa) -> U8_AAAA(appcB_in_aaa) U8_AAAA(appcB_out_aaa) -> PC_IN_AAAA The TRS R consists of the following rules: appcB_in_aaa -> appcB_out_aaa appcB_in_aaa -> U24_aaa(appcB_in_gaa([])) appcB_in_aaa -> U25_aaa(appcB_in_aaa) U24_aaa(appcB_out_gaa([])) -> appcB_out_aaa U25_aaa(appcB_out_aaa) -> appcB_out_aaa appcB_in_gaa([]) -> U24_gaa(appcB_in_gaa([])) U24_gaa(appcB_out_gaa([])) -> appcB_out_gaa([]) The set Q consists of the following terms: appcB_in_aaa U24_aaa(x0) U25_aaa(x0) appcB_in_gaa(x0) U24_gaa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (164) 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 rules of the TRS R: U24_aaa(appcB_out_gaa([])) -> appcB_out_aaa Used ordering: Polynomial interpretation [POLO]: POL(PC_IN_AAAA) = 0 POL(U24_aaa(x_1)) = 2*x_1 POL(U24_gaa(x_1)) = x_1 POL(U25_aaa(x_1)) = 2*x_1 POL(U6_AAAA(x_1)) = x_1 POL(U8_AAAA(x_1)) = 2*x_1 POL([]) = 0 POL(appcB_in_aaa) = 0 POL(appcB_in_gaa(x_1)) = 2*x_1 POL(appcB_out_aaa) = 0 POL(appcB_out_gaa(x_1)) = 1 + x_1 ---------------------------------------- (165) Obligation: Q DP problem: The TRS P consists of the following rules: PC_IN_AAAA -> U6_AAAA(appcB_in_aaa) U6_AAAA(appcB_out_aaa) -> U8_AAAA(appcB_in_aaa) U8_AAAA(appcB_out_aaa) -> PC_IN_AAAA The TRS R consists of the following rules: appcB_in_aaa -> appcB_out_aaa appcB_in_aaa -> U24_aaa(appcB_in_gaa([])) appcB_in_aaa -> U25_aaa(appcB_in_aaa) U25_aaa(appcB_out_aaa) -> appcB_out_aaa appcB_in_gaa([]) -> U24_gaa(appcB_in_gaa([])) U24_gaa(appcB_out_gaa([])) -> appcB_out_gaa([]) The set Q consists of the following terms: appcB_in_aaa U24_aaa(x0) U25_aaa(x0) appcB_in_gaa(x0) U24_gaa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (166) 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 rules of the TRS R: U24_gaa(appcB_out_gaa([])) -> appcB_out_gaa([]) Used ordering: Polynomial interpretation [POLO]: POL(PC_IN_AAAA) = 0 POL(U24_aaa(x_1)) = x_1 POL(U24_gaa(x_1)) = 2*x_1 POL(U25_aaa(x_1)) = 2*x_1 POL(U6_AAAA(x_1)) = 2*x_1 POL(U8_AAAA(x_1)) = 2*x_1 POL([]) = 0 POL(appcB_in_aaa) = 0 POL(appcB_in_gaa(x_1)) = 2*x_1 POL(appcB_out_aaa) = 0 POL(appcB_out_gaa(x_1)) = 1 + 2*x_1 ---------------------------------------- (167) Obligation: Q DP problem: The TRS P consists of the following rules: PC_IN_AAAA -> U6_AAAA(appcB_in_aaa) U6_AAAA(appcB_out_aaa) -> U8_AAAA(appcB_in_aaa) U8_AAAA(appcB_out_aaa) -> PC_IN_AAAA The TRS R consists of the following rules: appcB_in_aaa -> appcB_out_aaa appcB_in_aaa -> U24_aaa(appcB_in_gaa([])) appcB_in_aaa -> U25_aaa(appcB_in_aaa) U25_aaa(appcB_out_aaa) -> appcB_out_aaa appcB_in_gaa([]) -> U24_gaa(appcB_in_gaa([])) The set Q consists of the following terms: appcB_in_aaa U24_aaa(x0) U25_aaa(x0) appcB_in_gaa(x0) U24_gaa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (168) Obligation: Pi DP problem: The TRS P consists of the following rules: APPA_IN_GGA([], X1, cons(X2, X3)) -> APPA_IN_GGA([], X1, X3) The TRS R consists of the following rules: appcA_in_gga(nil, X1, X1) -> appcA_out_gga(nil, X1, X1) appcA_in_gga([], X1, cons(X2, X3)) -> U22_gga(X1, X2, X3, appcA_in_gga([], X1, X3)) appcA_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U23_gga(X1, X2, X3, X4, appcA_in_gga(X2, X3, X4)) U23_gga(X1, X2, X3, X4, appcA_out_gga(X2, X3, X4)) -> appcA_out_gga(.(X1, X2), X3, cons(X1, X4)) U22_gga(X1, X2, X3, appcA_out_gga([], X1, X3)) -> appcA_out_gga([], X1, cons(X2, X3)) appcB_in_aaa(nil, X1, X1) -> appcB_out_aaa(nil, X1, X1) appcB_in_aaa([], X1, cons(X2, X3)) -> U24_aaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(nil, X1, X1) -> appcB_out_gaa(nil, X1, X1) appcB_in_gaa([], X1, cons(X2, X3)) -> U24_gaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(.(X1, X2), X3, cons(X1, X4)) -> U25_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) U25_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, cons(X1, X4)) U24_gaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_gaa([], X1, cons(X2, X3)) U24_aaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_aaa([], X1, cons(X2, X3)) appcB_in_aaa(.(X1, X2), X3, cons(X1, X4)) -> U25_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U25_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, cons(X1, X4)) appcB_in_gga(nil, X1, X1) -> appcB_out_gga(nil, X1, X1) appcB_in_gga([], X1, cons(X2, X3)) -> U24_gga(X1, X2, X3, appcB_in_gga([], X1, X3)) appcB_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U25_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U25_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, cons(X1, X4)) U24_gga(X1, X2, X3, appcB_out_gga([], X1, X3)) -> appcB_out_gga([], X1, cons(X2, X3)) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) nil = nil [] = [] .(x1, x2) = .(x1, x2) appcA_in_gga(x1, x2, x3) = appcA_in_gga(x1, x2) appcA_out_gga(x1, x2, x3) = appcA_out_gga(x1, x2) U22_gga(x1, x2, x3, x4) = U22_gga(x1, x4) U23_gga(x1, x2, x3, x4, x5) = U23_gga(x1, x2, x3, x5) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U24_aaa(x1, x2, x3, x4) = U24_aaa(x4) appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1) U24_gaa(x1, x2, x3, x4) = U24_gaa(x4) U25_gaa(x1, x2, x3, x4, x5) = U25_gaa(x1, x2, x5) U25_aaa(x1, x2, x3, x4, x5) = U25_aaa(x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x4) U25_gga(x1, x2, x3, x4, x5) = U25_gga(x1, x2, x3, x5) APPA_IN_GGA(x1, x2, x3) = APPA_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (169) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (170) Obligation: Pi DP problem: The TRS P consists of the following rules: APPA_IN_GGA([], X1, cons(X2, X3)) -> APPA_IN_GGA([], X1, X3) R is empty. The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) [] = [] APPA_IN_GGA(x1, x2, x3) = APPA_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (171) Obligation: Pi DP problem: The TRS P consists of the following rules: APPA_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> APPA_IN_GGA(X2, X3, X4) The TRS R consists of the following rules: appcA_in_gga(nil, X1, X1) -> appcA_out_gga(nil, X1, X1) appcA_in_gga([], X1, cons(X2, X3)) -> U22_gga(X1, X2, X3, appcA_in_gga([], X1, X3)) appcA_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U23_gga(X1, X2, X3, X4, appcA_in_gga(X2, X3, X4)) U23_gga(X1, X2, X3, X4, appcA_out_gga(X2, X3, X4)) -> appcA_out_gga(.(X1, X2), X3, cons(X1, X4)) U22_gga(X1, X2, X3, appcA_out_gga([], X1, X3)) -> appcA_out_gga([], X1, cons(X2, X3)) appcB_in_aaa(nil, X1, X1) -> appcB_out_aaa(nil, X1, X1) appcB_in_aaa([], X1, cons(X2, X3)) -> U24_aaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(nil, X1, X1) -> appcB_out_gaa(nil, X1, X1) appcB_in_gaa([], X1, cons(X2, X3)) -> U24_gaa(X1, X2, X3, appcB_in_gaa([], X1, X3)) appcB_in_gaa(.(X1, X2), X3, cons(X1, X4)) -> U25_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) U25_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, cons(X1, X4)) U24_gaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_gaa([], X1, cons(X2, X3)) U24_aaa(X1, X2, X3, appcB_out_gaa([], X1, X3)) -> appcB_out_aaa([], X1, cons(X2, X3)) appcB_in_aaa(.(X1, X2), X3, cons(X1, X4)) -> U25_aaa(X1, X2, X3, X4, appcB_in_aaa(X2, X3, X4)) U25_aaa(X1, X2, X3, X4, appcB_out_aaa(X2, X3, X4)) -> appcB_out_aaa(.(X1, X2), X3, cons(X1, X4)) appcB_in_gga(nil, X1, X1) -> appcB_out_gga(nil, X1, X1) appcB_in_gga([], X1, cons(X2, X3)) -> U24_gga(X1, X2, X3, appcB_in_gga([], X1, X3)) appcB_in_gga(.(X1, X2), X3, cons(X1, X4)) -> U25_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U25_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, cons(X1, X4)) U24_gga(X1, X2, X3, appcB_out_gga([], X1, X3)) -> appcB_out_gga([], X1, cons(X2, X3)) The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) nil = nil [] = [] .(x1, x2) = .(x1, x2) appcA_in_gga(x1, x2, x3) = appcA_in_gga(x1, x2) appcA_out_gga(x1, x2, x3) = appcA_out_gga(x1, x2) U22_gga(x1, x2, x3, x4) = U22_gga(x1, x4) U23_gga(x1, x2, x3, x4, x5) = U23_gga(x1, x2, x3, x5) appcB_in_aaa(x1, x2, x3) = appcB_in_aaa appcB_out_aaa(x1, x2, x3) = appcB_out_aaa U24_aaa(x1, x2, x3, x4) = U24_aaa(x4) appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1) U24_gaa(x1, x2, x3, x4) = U24_gaa(x4) U25_gaa(x1, x2, x3, x4, x5) = U25_gaa(x1, x2, x5) U25_aaa(x1, x2, x3, x4, x5) = U25_aaa(x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x4) U25_gga(x1, x2, x3, x4, x5) = U25_gga(x1, x2, x3, x5) APPA_IN_GGA(x1, x2, x3) = APPA_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (172) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (173) Obligation: Pi DP problem: The TRS P consists of the following rules: APPA_IN_GGA(.(X1, X2), X3, cons(X1, X4)) -> APPA_IN_GGA(X2, X3, X4) R is empty. The argument filtering Pi contains the following mapping: cons(x1, x2) = cons(x1, x2) .(x1, x2) = .(x1, x2) APPA_IN_GGA(x1, x2, x3) = APPA_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (174) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 2, "program": { "directives": [], "clauses": [ [ "(lessleaves (nil) (cons X1 X2))", null ], [ "(lessleaves (cons U V) (cons W Z))", "(',' (app U V U1) (',' (app W Z W1) (lessleaves U1 W1)))" ], [ "(app (nil) Y Z)", "(',' (!) (eq Y Z))" ], [ "(app X Y (cons U Z))", "(',' (head X U) (',' (tail X V) (app V Y Z)))" ], [ "(head ([]) X3)", null ], [ "(head (. X X4) X)", null ], [ "(tail ([]) ([]))", null ], [ "(tail (. X5 X) X)", null ], [ "(eq X X)", null ] ] }, "graph": { "nodes": { "type": "Nodes", "195": { "goal": [{ "clause": 0, "scope": 1, "term": "(lessleaves T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "470": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "196": { "goal": [{ "clause": 1, "scope": 1, "term": "(lessleaves T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "471": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "197": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "198": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "199": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "830": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "874": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (head ([]) X240) (',' (tail ([]) X239) (app X239 T122 X241)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X240", "X241", "X239" ], "exprvars": [] } }, "831": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T87 T88 X152)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X152"], "exprvars": [] } }, "875": { "goal": [ { "clause": 4, "scope": 13, "term": "(',' (head ([]) X240) (',' (tail ([]) X239) (app X239 T122 X241)))" }, { "clause": 5, "scope": 13, "term": "(',' (head ([]) X240) (',' (tail ([]) X239) (app X239 T122 X241)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X240", "X241", "X239" ], "exprvars": [] } }, "832": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T93 T94 X153) (lessleaves T92 X153))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X153"], "exprvars": [] } }, "876": { "goal": [{ "clause": 4, "scope": 13, "term": "(',' (head ([]) X240) (',' (tail ([]) X239) (app X239 T122 X241)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X240", "X241", "X239" ], "exprvars": [] } }, "833": { "goal": [ { "clause": 2, "scope": 8, "term": "(app T87 T88 X152)" }, { "clause": 3, "scope": 8, "term": "(app T87 T88 X152)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X152"], "exprvars": [] } }, "877": { "goal": [{ "clause": 5, "scope": 13, "term": "(',' (head ([]) X240) (',' (tail ([]) X239) (app X239 T122 X241)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X240", "X241", "X239" ], "exprvars": [] } }, "910": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T122 X241)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X241"], "exprvars": [] } }, "834": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_8) (eq T99 X168))" }, { "clause": 3, "scope": 8, "term": "(app T87 T88 X152)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X152", "X168" ], "exprvars": [] } }, "878": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail ([]) X239) (app X239 T122 X241))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X241", "X239" ], "exprvars": [] } }, "911": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "835": { "goal": [{ "clause": 3, "scope": 8, "term": "(app T87 T88 X152)" }], "kb": { "nonunifying": [[ "(app T87 T88 X152)", "(app (nil) X166 X167)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X152", "X166", "X167" ], "exprvars": [] } }, "879": { "goal": [ { "clause": 6, "scope": 14, "term": "(',' (tail ([]) X239) (app X239 T122 X241))" }, { "clause": 7, "scope": 14, "term": "(',' (tail ([]) X239) (app X239 T122 X241))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X241", "X239" ], "exprvars": [] } }, "912": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "836": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq T99 X168)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X168"], "exprvars": [] } }, "913": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "837": { "goal": [{ "clause": 8, "scope": 9, "term": "(eq T99 X168)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X168"], "exprvars": [] } }, "914": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail (. T133 T134) X192) (app X192 T135 X194))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "915": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "916": { "goal": [ { "clause": 6, "scope": 15, "term": "(',' (tail (. T133 T134) X192) (app X192 T135 X194))" }, { "clause": 7, "scope": 15, "term": "(',' (tail (. T133 T134) X192) (app X192 T135 X194))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "917": { "goal": [{ "clause": 7, "scope": 15, "term": "(',' (tail (. T133 T134) X192) (app X192 T135 X194))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "918": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T146 T147 X194)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X194"], "exprvars": [] } }, "919": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T93 T94 X153)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X153"], "exprvars": [] } }, "483": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (head T39 X71) (',' (tail T39 X70) (app X70 T40 X72)))" }], "kb": { "nonunifying": [[ "(app T39 T40 X30)", "(app (nil) X44 X45)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X30", "X44", "X45", "X71", "X72", "X70" ], "exprvars": [] } }, "484": { "goal": [ { "clause": 4, "scope": 4, "term": "(',' (head T39 X71) (',' (tail T39 X70) (app X70 T40 X72)))" }, { "clause": 5, "scope": 4, "term": "(',' (head T39 X71) (',' (tail T39 X70) (app X70 T40 X72)))" } ], "kb": { "nonunifying": [[ "(app T39 T40 X30)", "(app (nil) X44 X45)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X30", "X44", "X45", "X71", "X72", "X70" ], "exprvars": [] } }, "880": { "goal": [{ "clause": 6, "scope": 14, "term": "(',' (tail ([]) X239) (app X239 T122 X241))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X241", "X239" ], "exprvars": [] } }, "881": { "goal": [{ "clause": 7, "scope": 14, "term": "(',' (tail ([]) X239) (app X239 T122 X241))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X241", "X239" ], "exprvars": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(lessleaves T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "200": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T21 T22 X30) (',' (app T23 T24 X31) (lessleaves X30 X31)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T21", "T22", "T23", "T24" ], "free": [ "X30", "X31" ], "exprvars": [] } }, "486": { "goal": [{ "clause": 4, "scope": 4, "term": "(',' (head T39 X71) (',' (tail T39 X70) (app X70 T40 X72)))" }], "kb": { "nonunifying": [[ "(app T39 T40 X30)", "(app (nil) X44 X45)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X30", "X44", "X45", "X71", "X72", "X70" ], "exprvars": [] } }, "201": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "487": { "goal": [{ "clause": 5, "scope": 4, "term": "(',' (head T39 X71) (',' (tail T39 X70) (app X70 T40 X72)))" }], "kb": { "nonunifying": [[ "(app T39 T40 X30)", "(app (nil) X44 X45)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X30", "X44", "X45", "X71", "X72", "X70" ], "exprvars": [] } }, "4": { "goal": [ { "clause": 0, "scope": 1, "term": "(lessleaves T1 T2)" }, { "clause": 1, "scope": 1, "term": "(lessleaves T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "840": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "841": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "920": { "goal": [{ "clause": -1, "scope": -1, "term": "(lessleaves T151 T150)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "207": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T21 T22 X30)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T21", "T22" ], "free": ["X30"], "exprvars": [] } }, "208": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T23 T24 X31) (lessleaves T26 X31))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T23", "T24" ], "free": ["X31"], "exprvars": [] } }, "209": { "goal": [ { "clause": 2, "scope": 2, "term": "(app T21 T22 X30)" }, { "clause": 3, "scope": 2, "term": "(app T21 T22 X30)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T21", "T22" ], "free": ["X30"], "exprvars": [] } }, "491": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail ([]) X70) (app X70 T40 X72))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [ "X72", "X70" ], "exprvars": [] } }, "492": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "494": { "goal": [ { "clause": 6, "scope": 5, "term": "(',' (tail ([]) X70) (app X70 T40 X72))" }, { "clause": 7, "scope": 5, "term": "(',' (tail ([]) X70) (app X70 T40 X72))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [ "X72", "X70" ], "exprvars": [] } }, "330": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_2) (eq T30 X46))" }, { "clause": 3, "scope": 2, "term": "(app (nil) T30 X30)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T30"], "free": [ "X30", "X46" ], "exprvars": [] } }, "495": { "goal": [{ "clause": 6, "scope": 5, "term": "(',' (tail ([]) X70) (app X70 T40 X72))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [ "X72", "X70" ], "exprvars": [] } }, "331": { "goal": [{ "clause": 3, "scope": 2, "term": "(app T21 T22 X30)" }], "kb": { "nonunifying": [[ "(app T21 T22 X30)", "(app (nil) X44 X45)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T21", "T22" ], "free": [ "X30", "X44", "X45" ], "exprvars": [] } }, "496": { "goal": [{ "clause": 7, "scope": 5, "term": "(',' (tail ([]) X70) (app X70 T40 X72))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [ "X72", "X70" ], "exprvars": [] } }, "332": { "goal": [{ "clause": -1, "scope": -1, "term": "(eq T30 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T30"], "free": ["X46"], "exprvars": [] } }, "852": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (head T112 X193) (',' (tail T112 X192) (app X192 T113 X194)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X193", "X194", "X192" ], "exprvars": [] } }, "853": { "goal": [ { "clause": 4, "scope": 10, "term": "(',' (head T112 X193) (',' (tail T112 X192) (app X192 T113 X194)))" }, { "clause": 5, "scope": 10, "term": "(',' (head T112 X193) (',' (tail T112 X192) (app X192 T113 X194)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X193", "X194", "X192" ], "exprvars": [] } }, "854": { "goal": [{ "clause": 4, "scope": 10, "term": "(',' (head T112 X193) (',' (tail T112 X192) (app X192 T113 X194)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X193", "X194", "X192" ], "exprvars": [] } }, "734": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "855": { "goal": [{ "clause": 5, "scope": 10, "term": "(',' (head T112 X193) (',' (tail T112 X192) (app X192 T113 X194)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X193", "X194", "X192" ], "exprvars": [] } }, "856": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail ([]) X192) (app X192 T115 X194))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "857": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "859": { "goal": [ { "clause": 6, "scope": 11, "term": "(',' (tail ([]) X192) (app X192 T115 X194))" }, { "clause": 7, "scope": 11, "term": "(',' (tail ([]) X192) (app X192 T115 X194))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "816": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail (. T47 T48) X70) (app X70 T40 X72))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T40", "T47", "T48" ], "free": [ "X72", "X70" ], "exprvars": [] } }, "817": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "818": { "goal": [ { "clause": 6, "scope": 6, "term": "(',' (tail (. T47 T48) X70) (app X70 T40 X72))" }, { "clause": 7, "scope": 6, "term": "(',' (tail (. T47 T48) X70) (app X70 T40 X72))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T40", "T47", "T48" ], "free": [ "X72", "X70" ], "exprvars": [] } }, "819": { "goal": [{ "clause": 7, "scope": 6, "term": "(',' (tail (. T47 T48) X70) (app X70 T40 X72))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T40", "T47", "T48" ], "free": [ "X72", "X70" ], "exprvars": [] } }, "462": { "goal": [{ "clause": 8, "scope": 3, "term": "(eq T30 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T30"], "free": ["X46"], "exprvars": [] } }, "861": { "goal": [{ "clause": 6, "scope": 11, "term": "(',' (tail ([]) X192) (app X192 T115 X194))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "862": { "goal": [{ "clause": 7, "scope": 11, "term": "(',' (tail ([]) X192) (app X192 T115 X194))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X194", "X192" ], "exprvars": [] } }, "500": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T40 X72)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": ["X72"], "exprvars": [] } }, "820": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T56 T40 X72)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T40", "T56" ], "free": ["X72"], "exprvars": [] } }, "821": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T23 T24 X31)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T23", "T24" ], "free": ["X31"], "exprvars": [] } }, "865": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T115 X194)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X194"], "exprvars": [] } }, "822": { "goal": [{ "clause": -1, "scope": -1, "term": "(lessleaves T26 T59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "823": { "goal": [ { "clause": 0, "scope": 7, "term": "(lessleaves T26 T59)" }, { "clause": 1, "scope": 7, "term": "(lessleaves T26 T59)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "824": { "goal": [{ "clause": 0, "scope": 7, "term": "(lessleaves T26 T59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "868": { "goal": [ { "clause": 2, "scope": 12, "term": "(app ([]) T115 X194)" }, { "clause": 3, "scope": 12, "term": "(app ([]) T115 X194)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X194"], "exprvars": [] } }, "825": { "goal": [{ "clause": 1, "scope": 7, "term": "(lessleaves T26 T59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "869": { "goal": [{ "clause": 3, "scope": 12, "term": "(app ([]) T115 X194)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X194"], "exprvars": [] } }, "826": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "827": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "828": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "829": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T87 T88 X152) (',' (app T89 T90 X153) (lessleaves X152 X153)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X152", "X153" ], "exprvars": [] } } }, "edges": [ { "from": 2, "to": 4, "label": "CASE" }, { "from": 4, "to": 195, "label": "PARALLEL" }, { "from": 4, "to": 196, "label": "PARALLEL" }, { "from": 195, "to": 197, "label": "EVAL with clause\nlessleaves(nil, cons(X14, X15)).\nand substitutionT1 -> nil,\nX14 -> T11,\nX15 -> T12,\nT2 -> cons(T11, T12)" }, { "from": 195, "to": 198, "label": "EVAL-BACKTRACK" }, { "from": 196, "to": 200, "label": "EVAL with clause\nlessleaves(cons(X26, X27), cons(X28, X29)) :- ','(app(X26, X27, X30), ','(app(X28, X29, X31), lessleaves(X30, X31))).\nand substitutionX26 -> T21,\nX27 -> T22,\nT1 -> cons(T21, T22),\nX28 -> T23,\nX29 -> T24,\nT2 -> cons(T23, T24)" }, { "from": 196, "to": 201, "label": "EVAL-BACKTRACK" }, { "from": 197, "to": 199, "label": "SUCCESS" }, { "from": 200, "to": 207, "label": "SPLIT 1" }, { "from": 200, "to": 208, "label": "SPLIT 2\nnew knowledge:\nT21 is ground\nT22 is ground\nreplacements:X30 -> T26" }, { "from": 207, "to": 209, "label": "CASE" }, { "from": 208, "to": 821, "label": "SPLIT 1" }, { "from": 208, "to": 822, "label": "SPLIT 2\nnew knowledge:\nT23 is ground\nT24 is ground\nreplacements:X31 -> T59" }, { "from": 209, "to": 330, "label": "EVAL with clause\napp(nil, X44, X45) :- ','(!_2, eq(X44, X45)).\nand substitutionT21 -> nil,\nT22 -> T30,\nX44 -> T30,\nX30 -> X46,\nX45 -> X46" }, { "from": 209, "to": 331, "label": "EVAL-BACKTRACK" }, { "from": 330, "to": 332, "label": "CUT" }, { "from": 331, "to": 483, "label": "ONLY EVAL with clause\napp(X66, X67, cons(X68, X69)) :- ','(head(X66, X68), ','(tail(X66, X70), app(X70, X67, X69))).\nand substitutionT21 -> T39,\nX66 -> T39,\nT22 -> T40,\nX67 -> T40,\nX68 -> X71,\nX69 -> X72,\nX30 -> cons(X71, X72)" }, { "from": 332, "to": 462, "label": "CASE" }, { "from": 462, "to": 470, "label": "ONLY EVAL with clause\neq(X49, X49).\nand substitutionT30 -> T33,\nX49 -> T33,\nX46 -> T33" }, { "from": 470, "to": 471, "label": "SUCCESS" }, { "from": 483, "to": 484, "label": "CASE" }, { "from": 484, "to": 486, "label": "PARALLEL" }, { "from": 484, "to": 487, "label": "PARALLEL" }, { "from": 486, "to": 491, "label": "EVAL with clause\nhead([], X84).\nand substitutionT39 -> [],\nX71 -> X85,\nX84 -> X85" }, { "from": 486, "to": 492, "label": "EVAL-BACKTRACK" }, { "from": 487, "to": 816, "label": "EVAL with clause\nhead(.(X101, X102), X101).\nand substitutionX101 -> T47,\nX102 -> T48,\nT39 -> .(T47, T48),\nX71 -> T47" }, { "from": 487, "to": 817, "label": "EVAL-BACKTRACK" }, { "from": 491, "to": 494, "label": "CASE" }, { "from": 494, "to": 495, "label": "PARALLEL" }, { "from": 494, "to": 496, "label": "PARALLEL" }, { "from": 495, "to": 500, "label": "ONLY EVAL with clause\ntail([], []).\nand substitutionX70 -> []" }, { "from": 496, "to": 734, "label": "BACKTRACK\nfor clause: tail(.(X5, X), X)because of non-unification" }, { "from": 500, "to": 207, "label": "INSTANCE with matching:\nT21 -> []\nT22 -> T40\nX30 -> X72" }, { "from": 816, "to": 818, "label": "CASE" }, { "from": 818, "to": 819, "label": "BACKTRACK\nfor clause: tail([], [])because of non-unification" }, { "from": 819, "to": 820, "label": "ONLY EVAL with clause\ntail(.(X113, X114), X114).\nand substitutionT47 -> T55,\nX113 -> T55,\nT48 -> T56,\nX114 -> T56,\nX70 -> T56" }, { "from": 820, "to": 207, "label": "INSTANCE with matching:\nT21 -> T56\nT22 -> T40\nX30 -> X72" }, { "from": 821, "to": 207, "label": "INSTANCE with matching:\nT21 -> T23\nT22 -> T24\nX30 -> X31" }, { "from": 822, "to": 823, "label": "CASE" }, { "from": 823, "to": 824, "label": "PARALLEL" }, { "from": 823, "to": 825, "label": "PARALLEL" }, { "from": 824, "to": 826, "label": "EVAL with clause\nlessleaves(nil, cons(X136, X137)).\nand substitutionT26 -> nil,\nX136 -> T73,\nX137 -> T74,\nT59 -> cons(T73, T74)" }, { "from": 824, "to": 827, "label": "EVAL-BACKTRACK" }, { "from": 825, "to": 829, "label": "EVAL with clause\nlessleaves(cons(X148, X149), cons(X150, X151)) :- ','(app(X148, X149, X152), ','(app(X150, X151, X153), lessleaves(X152, X153))).\nand substitutionX148 -> T87,\nX149 -> T88,\nT26 -> cons(T87, T88),\nX150 -> T89,\nX151 -> T90,\nT59 -> cons(T89, T90),\nT83 -> T87,\nT84 -> T88,\nT85 -> T89,\nT86 -> T90" }, { "from": 825, "to": 830, "label": "EVAL-BACKTRACK" }, { "from": 826, "to": 828, "label": "SUCCESS" }, { "from": 829, "to": 831, "label": "SPLIT 1" }, { "from": 829, "to": 832, "label": "SPLIT 2\nreplacements:X152 -> T92,\nT89 -> T93,\nT90 -> T94" }, { "from": 831, "to": 833, "label": "CASE" }, { "from": 832, "to": 919, "label": "SPLIT 1" }, { "from": 832, "to": 920, "label": "SPLIT 2\nreplacements:X153 -> T150,\nT92 -> T151" }, { "from": 833, "to": 834, "label": "EVAL with clause\napp(nil, X166, X167) :- ','(!_8, eq(X166, X167)).\nand substitutionT87 -> nil,\nT88 -> T99,\nX166 -> T99,\nX152 -> X168,\nX167 -> X168,\nT98 -> T99" }, { "from": 833, "to": 835, "label": "EVAL-BACKTRACK" }, { "from": 834, "to": 836, "label": "CUT" }, { "from": 835, "to": 852, "label": "ONLY EVAL with clause\napp(X188, X189, cons(X190, X191)) :- ','(head(X188, X190), ','(tail(X188, X192), app(X192, X189, X191))).\nand substitutionT87 -> T112,\nX188 -> T112,\nT88 -> T113,\nX189 -> T113,\nX190 -> X193,\nX191 -> X194,\nX152 -> cons(X193, X194),\nT110 -> T112,\nT111 -> T113" }, { "from": 836, "to": 837, "label": "CASE" }, { "from": 837, "to": 840, "label": "ONLY EVAL with clause\neq(X171, X171).\nand substitutionT99 -> T102,\nX171 -> T102,\nX168 -> T102" }, { "from": 840, "to": 841, "label": "SUCCESS" }, { "from": 852, "to": 853, "label": "CASE" }, { "from": 853, "to": 854, "label": "PARALLEL" }, { "from": 853, "to": 855, "label": "PARALLEL" }, { "from": 854, "to": 856, "label": "EVAL with clause\nhead([], X206).\nand substitutionT112 -> [],\nX193 -> X207,\nX206 -> X207,\nT113 -> T115" }, { "from": 854, "to": 857, "label": "EVAL-BACKTRACK" }, { "from": 855, "to": 914, "label": "EVAL with clause\nhead(.(X280, X281), X280).\nand substitutionX280 -> T133,\nX281 -> T134,\nT112 -> .(T133, T134),\nX193 -> T133,\nT131 -> T133,\nT132 -> T134,\nT113 -> T135" }, { "from": 855, "to": 915, "label": "EVAL-BACKTRACK" }, { "from": 856, "to": 859, "label": "CASE" }, { "from": 859, "to": 861, "label": "PARALLEL" }, { "from": 859, "to": 862, "label": "PARALLEL" }, { "from": 861, "to": 865, "label": "ONLY EVAL with clause\ntail([], []).\nand substitutionX192 -> []" }, { "from": 862, "to": 913, "label": "BACKTRACK\nfor clause: tail(.(X5, X), X)because of non-unification" }, { "from": 865, "to": 868, "label": "CASE" }, { "from": 868, "to": 869, "label": "BACKTRACK\nfor clause: app(nil, Y, Z) :- ','(!, eq(Y, Z))because of non-unification" }, { "from": 869, "to": 874, "label": "ONLY EVAL with clause\napp(X235, X236, cons(X237, X238)) :- ','(head(X235, X237), ','(tail(X235, X239), app(X239, X236, X238))).\nand substitutionX235 -> [],\nT115 -> T122,\nX236 -> T122,\nX237 -> X240,\nX238 -> X241,\nX194 -> cons(X240, X241),\nT121 -> T122" }, { "from": 874, "to": 875, "label": "CASE" }, { "from": 875, "to": 876, "label": "PARALLEL" }, { "from": 875, "to": 877, "label": "PARALLEL" }, { "from": 876, "to": 878, "label": "ONLY EVAL with clause\nhead([], X259).\nand substitutionX240 -> X260,\nX259 -> X260" }, { "from": 877, "to": 912, "label": "BACKTRACK\nfor clause: head(.(X, X4), X)because of non-unification" }, { "from": 878, "to": 879, "label": "CASE" }, { "from": 879, "to": 880, "label": "PARALLEL" }, { "from": 879, "to": 881, "label": "PARALLEL" }, { "from": 880, "to": 910, "label": "ONLY EVAL with clause\ntail([], []).\nand substitutionX239 -> []" }, { "from": 881, "to": 911, "label": "BACKTRACK\nfor clause: tail(.(X5, X), X)because of non-unification" }, { "from": 910, "to": 865, "label": "INSTANCE with matching:\nT115 -> T122\nX194 -> X241" }, { "from": 914, "to": 916, "label": "CASE" }, { "from": 916, "to": 917, "label": "BACKTRACK\nfor clause: tail([], [])because of non-unification" }, { "from": 917, "to": 918, "label": "ONLY EVAL with clause\ntail(.(X292, X293), X293).\nand substitutionT133 -> T144,\nX292 -> T144,\nT134 -> T146,\nX293 -> T146,\nX192 -> T146,\nT145 -> T146,\nT135 -> T147" }, { "from": 918, "to": 831, "label": "INSTANCE with matching:\nT87 -> T146\nT88 -> T147\nX152 -> X194" }, { "from": 919, "to": 831, "label": "INSTANCE with matching:\nT87 -> T93\nT88 -> T94\nX152 -> X153" }, { "from": 920, "to": 822, "label": "INSTANCE with matching:\nT26 -> T151\nT59 -> T150" } ], "type": "Graph" } } ---------------------------------------- (175) Complex Obligation (AND) ---------------------------------------- (176) Obligation: Rules: f874_in -> f875_in :|: TRUE f875_out -> f874_out :|: TRUE f880_out -> f879_out :|: TRUE f879_in -> f881_in :|: TRUE f881_out -> f879_out :|: TRUE f879_in -> f880_in :|: TRUE f875_in -> f876_in :|: TRUE f875_in -> f877_in :|: TRUE f876_out -> f875_out :|: TRUE f877_out -> f875_out :|: TRUE f865_out -> f910_out :|: TRUE f910_in -> f865_in :|: TRUE f874_out -> f869_out :|: TRUE f869_in -> f874_in :|: TRUE f876_in -> f878_in :|: TRUE f878_out -> f876_out :|: TRUE f878_in -> f879_in :|: TRUE f879_out -> f878_out :|: TRUE f865_in -> f868_in :|: TRUE f868_out -> f865_out :|: TRUE f910_out -> f880_out :|: TRUE f880_in -> f910_in :|: TRUE f869_out -> f868_out :|: TRUE f868_in -> f869_in :|: TRUE f2_in(T1, T2) -> f4_in(T1, T2) :|: TRUE f4_out(x, x1) -> f2_out(x, x1) :|: TRUE f4_in(x2, x3) -> f196_in(x2, x3) :|: TRUE f195_out(x4, x5) -> f4_out(x4, x5) :|: TRUE f196_out(x6, x7) -> f4_out(x6, x7) :|: TRUE f4_in(x8, x9) -> f195_in(x8, x9) :|: TRUE f196_in(cons(T21, T22), cons(T23, T24)) -> f200_in(T21, T22, T23, T24) :|: TRUE f196_in(x10, x11) -> f201_in :|: TRUE f201_out -> f196_out(x12, x13) :|: TRUE f200_out(x14, x15, x16, x17) -> f196_out(cons(x14, x15), cons(x16, x17)) :|: TRUE f208_out(x18, x19) -> f200_out(x20, x21, x18, x19) :|: TRUE f200_in(x22, x23, x24, x25) -> f207_in(x22, x23) :|: TRUE f207_out(x26, x27) -> f208_in(x28, x29) :|: TRUE f822_out -> f208_out(x30, x31) :|: TRUE f821_out(x32, x33) -> f822_in :|: TRUE f208_in(x34, x35) -> f821_in(x34, x35) :|: TRUE f823_out -> f822_out :|: TRUE f822_in -> f823_in :|: TRUE f823_in -> f824_in :|: TRUE f825_out -> f823_out :|: TRUE f824_out -> f823_out :|: TRUE f823_in -> f825_in :|: TRUE f825_in -> f829_in :|: TRUE f829_out -> f825_out :|: TRUE f830_out -> f825_out :|: TRUE f825_in -> f830_in :|: TRUE f831_out -> f832_in :|: TRUE f829_in -> f831_in :|: TRUE f832_out -> f829_out :|: TRUE f833_out -> f831_out :|: TRUE f831_in -> f833_in :|: TRUE f833_in -> f834_in :|: TRUE f834_out -> f833_out :|: TRUE f835_out -> f833_out :|: TRUE f833_in -> f835_in :|: TRUE f835_in -> f852_in :|: TRUE f852_out -> f835_out :|: TRUE f852_in -> f853_in :|: TRUE f853_out -> f852_out :|: TRUE f855_out -> f853_out :|: TRUE f853_in -> f854_in :|: TRUE f853_in -> f855_in :|: TRUE f854_out -> f853_out :|: TRUE f857_out -> f854_out :|: TRUE f854_in -> f856_in :|: TRUE f856_out -> f854_out :|: TRUE f854_in -> f857_in :|: TRUE f856_in -> f859_in :|: TRUE f859_out -> f856_out :|: TRUE f859_in -> f861_in :|: TRUE f859_in -> f862_in :|: TRUE f861_out -> f859_out :|: TRUE f862_out -> f859_out :|: TRUE f861_in -> f865_in :|: TRUE f865_out -> f861_out :|: TRUE f919_out -> f920_in :|: TRUE f920_out -> f832_out :|: TRUE f832_in -> f919_in :|: TRUE f919_in -> f831_in :|: TRUE f831_out -> f919_out :|: TRUE Start term: f2_in(T1, T2) ---------------------------------------- (177) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (178) TRUE ---------------------------------------- (179) Obligation: Rules: f918_in -> f831_in :|: TRUE f831_out -> f918_out :|: TRUE f914_in -> f916_in :|: TRUE f916_out -> f914_out :|: TRUE f917_in -> f918_in :|: TRUE f918_out -> f917_out :|: TRUE f835_in -> f852_in :|: TRUE f852_out -> f835_out :|: TRUE f833_out -> f831_out :|: TRUE f831_in -> f833_in :|: TRUE f855_out -> f853_out :|: TRUE f853_in -> f854_in :|: TRUE f853_in -> f855_in :|: TRUE f854_out -> f853_out :|: TRUE f916_in -> f917_in :|: TRUE f917_out -> f916_out :|: TRUE f914_out -> f855_out :|: TRUE f915_out -> f855_out :|: TRUE f855_in -> f915_in :|: TRUE f855_in -> f914_in :|: TRUE f852_in -> f853_in :|: TRUE f853_out -> f852_out :|: TRUE f833_in -> f834_in :|: TRUE f834_out -> f833_out :|: TRUE f835_out -> f833_out :|: TRUE f833_in -> f835_in :|: TRUE f2_in(T1, T2) -> f4_in(T1, T2) :|: TRUE f4_out(x, x1) -> f2_out(x, x1) :|: TRUE f4_in(x2, x3) -> f196_in(x2, x3) :|: TRUE f195_out(x4, x5) -> f4_out(x4, x5) :|: TRUE f196_out(x6, x7) -> f4_out(x6, x7) :|: TRUE f4_in(x8, x9) -> f195_in(x8, x9) :|: TRUE f196_in(cons(T21, T22), cons(T23, T24)) -> f200_in(T21, T22, T23, T24) :|: TRUE f196_in(x10, x11) -> f201_in :|: TRUE f201_out -> f196_out(x12, x13) :|: TRUE f200_out(x14, x15, x16, x17) -> f196_out(cons(x14, x15), cons(x16, x17)) :|: TRUE f208_out(x18, x19) -> f200_out(x20, x21, x18, x19) :|: TRUE f200_in(x22, x23, x24, x25) -> f207_in(x22, x23) :|: TRUE f207_out(x26, x27) -> f208_in(x28, x29) :|: TRUE f822_out -> f208_out(x30, x31) :|: TRUE f821_out(x32, x33) -> f822_in :|: TRUE f208_in(x34, x35) -> f821_in(x34, x35) :|: TRUE f823_out -> f822_out :|: TRUE f822_in -> f823_in :|: TRUE f823_in -> f824_in :|: TRUE f825_out -> f823_out :|: TRUE f824_out -> f823_out :|: TRUE f823_in -> f825_in :|: TRUE f825_in -> f829_in :|: TRUE f829_out -> f825_out :|: TRUE f830_out -> f825_out :|: TRUE f825_in -> f830_in :|: TRUE f831_out -> f832_in :|: TRUE f829_in -> f831_in :|: TRUE f832_out -> f829_out :|: TRUE f919_out -> f920_in :|: TRUE f920_out -> f832_out :|: TRUE f832_in -> f919_in :|: TRUE f919_in -> f831_in :|: TRUE f831_out -> f919_out :|: TRUE Start term: f2_in(T1, T2) ---------------------------------------- (180) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (181) TRUE ---------------------------------------- (182) Obligation: Rules: f914_in -> f916_in :|: TRUE f916_out -> f914_out :|: TRUE f874_in -> f875_in :|: TRUE f875_out -> f874_out :|: TRUE f912_out -> f877_out :|: TRUE f877_in -> f912_in :|: TRUE f835_in -> f852_in :|: TRUE f852_out -> f835_out :|: TRUE f823_out -> f822_out :|: TRUE f822_in -> f823_in :|: TRUE f855_out -> f853_out :|: TRUE f853_in -> f854_in :|: TRUE f853_in -> f855_in :|: TRUE f854_out -> f853_out :|: TRUE f865_out -> f910_out :|: TRUE f910_in -> f865_in :|: TRUE f862_in -> f913_in :|: TRUE f913_out -> f862_out :|: TRUE f916_in -> f917_in :|: TRUE f917_out -> f916_out :|: TRUE f874_out -> f869_out :|: TRUE f869_in -> f874_in :|: TRUE f852_in -> f853_in :|: TRUE f853_out -> f852_out :|: TRUE f861_in -> f865_in :|: TRUE f865_out -> f861_out :|: TRUE f869_out -> f868_out :|: TRUE f868_in -> f869_in :|: TRUE f833_in -> f834_in :|: TRUE f834_out -> f833_out :|: TRUE f835_out -> f833_out :|: TRUE f833_in -> f835_in :|: TRUE f834_in -> f836_in :|: TRUE f836_out -> f834_out :|: TRUE f880_out -> f879_out :|: TRUE f879_in -> f881_in :|: TRUE f881_out -> f879_out :|: TRUE f879_in -> f880_in :|: TRUE f833_out -> f831_out :|: TRUE f831_in -> f833_in :|: TRUE f919_out -> f920_in :|: TRUE f920_out -> f832_out :|: TRUE f832_in -> f919_in :|: TRUE f857_out -> f854_out :|: TRUE f854_in -> f856_in :|: TRUE f856_out -> f854_out :|: TRUE f854_in -> f857_in :|: TRUE f876_in -> f878_in :|: TRUE f878_out -> f876_out :|: TRUE f859_in -> f861_in :|: TRUE f859_in -> f862_in :|: TRUE f861_out -> f859_out :|: TRUE f862_out -> f859_out :|: TRUE f840_out -> f837_out :|: TRUE f837_in -> f840_in :|: TRUE f918_in -> f831_in :|: TRUE f831_out -> f918_out :|: TRUE f823_in -> f824_in :|: TRUE f825_out -> f823_out :|: TRUE f824_out -> f823_out :|: TRUE f823_in -> f825_in :|: TRUE f919_in -> f831_in :|: TRUE f831_out -> f919_out :|: TRUE f856_in -> f859_in :|: TRUE f859_out -> f856_out :|: TRUE f840_in -> f840_out :|: TRUE f822_out -> f920_out :|: TRUE f920_in -> f822_in :|: TRUE f865_in -> f868_in :|: TRUE f868_out -> f865_out :|: TRUE f881_in -> f911_in :|: TRUE f911_out -> f881_out :|: TRUE f910_out -> f880_out :|: TRUE f880_in -> f910_in :|: TRUE f917_in -> f918_in :|: TRUE f918_out -> f917_out :|: TRUE f875_in -> f876_in :|: TRUE f875_in -> f877_in :|: TRUE f876_out -> f875_out :|: TRUE f877_out -> f875_out :|: TRUE f825_in -> f829_in :|: TRUE f829_out -> f825_out :|: TRUE f830_out -> f825_out :|: TRUE f825_in -> f830_in :|: TRUE f837_out -> f836_out :|: TRUE f836_in -> f837_in :|: TRUE f831_out -> f832_in :|: TRUE f829_in -> f831_in :|: TRUE f832_out -> f829_out :|: TRUE f914_out -> f855_out :|: TRUE f915_out -> f855_out :|: TRUE f855_in -> f915_in :|: TRUE f855_in -> f914_in :|: TRUE f878_in -> f879_in :|: TRUE f879_out -> f878_out :|: TRUE f2_in(T1, T2) -> f4_in(T1, T2) :|: TRUE f4_out(x, x1) -> f2_out(x, x1) :|: TRUE f4_in(x2, x3) -> f196_in(x2, x3) :|: TRUE f195_out(x4, x5) -> f4_out(x4, x5) :|: TRUE f196_out(x6, x7) -> f4_out(x6, x7) :|: TRUE f4_in(x8, x9) -> f195_in(x8, x9) :|: TRUE f196_in(cons(T21, T22), cons(T23, T24)) -> f200_in(T21, T22, T23, T24) :|: TRUE f196_in(x10, x11) -> f201_in :|: TRUE f201_out -> f196_out(x12, x13) :|: TRUE f200_out(x14, x15, x16, x17) -> f196_out(cons(x14, x15), cons(x16, x17)) :|: TRUE f208_out(x18, x19) -> f200_out(x20, x21, x18, x19) :|: TRUE f200_in(x22, x23, x24, x25) -> f207_in(x22, x23) :|: TRUE f207_out(x26, x27) -> f208_in(x28, x29) :|: TRUE f822_out -> f208_out(x30, x31) :|: TRUE f821_out(x32, x33) -> f822_in :|: TRUE f208_in(x34, x35) -> f821_in(x34, x35) :|: TRUE Start term: f2_in(T1, T2) ---------------------------------------- (183) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (184) TRUE ---------------------------------------- (185) Obligation: Rules: f209_in(nil, T30) -> f330_in(T30) :|: TRUE f330_out(x) -> f209_out(nil, x) :|: TRUE f209_in(T21, T22) -> f331_in(T21, T22) :|: TRUE f331_out(x1, x2) -> f209_out(x1, x2) :|: TRUE f207_in(x3, x4) -> f209_in(x3, x4) :|: TRUE f209_out(x5, x6) -> f207_out(x5, x6) :|: TRUE f494_in(T40) -> f495_in(T40) :|: TRUE f495_out(x7) -> f494_out(x7) :|: TRUE f494_in(x8) -> f496_in(x8) :|: TRUE f496_out(x9) -> f494_out(x9) :|: TRUE f495_in(x10) -> f500_in(x10) :|: TRUE f500_out(x11) -> f495_out(x11) :|: TRUE f491_in(x12) -> f494_in(x12) :|: TRUE f494_out(x13) -> f491_out(x13) :|: TRUE f484_out(x14, x15) -> f483_out(x14, x15) :|: TRUE f483_in(x16, x17) -> f484_in(x16, x17) :|: TRUE f816_in(x18, x19, x20) -> f818_in(x18, x19, x20) :|: TRUE f818_out(x21, x22, x23) -> f816_out(x21, x22, x23) :|: TRUE f487_in(x24, x25) -> f817_in :|: TRUE f817_out -> f487_out(x26, x27) :|: TRUE f487_in(.(x28, x29), x30) -> f816_in(x28, x29, x30) :|: TRUE f816_out(x31, x32, x33) -> f487_out(.(x31, x32), x33) :|: TRUE f483_out(x34, x35) -> f331_out(x34, x35) :|: TRUE f331_in(x36, x37) -> f483_in(x36, x37) :|: TRUE f500_in(x38) -> f207_in([], x38) :|: TRUE f207_out([], x39) -> f500_out(x39) :|: TRUE f491_out(x40) -> f486_out([], x40) :|: TRUE f486_in([], x41) -> f491_in(x41) :|: TRUE f492_out -> f486_out(x42, x43) :|: TRUE f486_in(x44, x45) -> f492_in :|: TRUE f819_in(x46, x47, x48) -> f820_in(x47, x48) :|: TRUE f820_out(x49, x50) -> f819_out(x51, x49, x50) :|: TRUE f484_in(x52, x53) -> f487_in(x52, x53) :|: TRUE f484_in(x54, x55) -> f486_in(x54, x55) :|: TRUE f486_out(x56, x57) -> f484_out(x56, x57) :|: TRUE f487_out(x58, x59) -> f484_out(x58, x59) :|: TRUE f819_out(x60, x61, x62) -> f818_out(x60, x61, x62) :|: TRUE f818_in(x63, x64, x65) -> f819_in(x63, x64, x65) :|: TRUE f207_out(x66, x67) -> f820_out(x66, x67) :|: TRUE f820_in(x68, x69) -> f207_in(x68, x69) :|: TRUE f2_in(T1, T2) -> f4_in(T1, T2) :|: TRUE f4_out(x70, x71) -> f2_out(x70, x71) :|: TRUE f4_in(x72, x73) -> f196_in(x72, x73) :|: TRUE f195_out(x74, x75) -> f4_out(x74, x75) :|: TRUE f196_out(x76, x77) -> f4_out(x76, x77) :|: TRUE f4_in(x78, x79) -> f195_in(x78, x79) :|: TRUE f196_in(cons(x80, x81), cons(x82, x83)) -> f200_in(x80, x81, x82, x83) :|: TRUE f196_in(x84, x85) -> f201_in :|: TRUE f201_out -> f196_out(x86, x87) :|: TRUE f200_out(x88, x89, x90, x91) -> f196_out(cons(x88, x89), cons(x90, x91)) :|: TRUE f208_out(x92, x93) -> f200_out(x94, x95, x92, x93) :|: TRUE f200_in(x96, x97, x98, x99) -> f207_in(x96, x97) :|: TRUE f207_out(x100, x101) -> f208_in(x102, x103) :|: TRUE f822_out -> f208_out(T23, T24) :|: TRUE f821_out(x104, x105) -> f822_in :|: TRUE f208_in(x106, x107) -> f821_in(x106, x107) :|: TRUE f207_out(x108, x109) -> f821_out(x108, x109) :|: TRUE f821_in(x110, x111) -> f207_in(x110, x111) :|: TRUE Start term: f2_in(T1, T2) ---------------------------------------- (186) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f209_in(T21, T22) -> f331_in(T21, T22) :|: TRUE f207_in(x3, x4) -> f209_in(x3, x4) :|: TRUE f494_in(T40) -> f495_in(T40) :|: TRUE f495_in(x10) -> f500_in(x10) :|: TRUE f491_in(x12) -> f494_in(x12) :|: TRUE f483_in(x16, x17) -> f484_in(x16, x17) :|: TRUE f816_in(x18, x19, x20) -> f818_in(x18, x19, x20) :|: TRUE f487_in(.(x28, x29), x30) -> f816_in(x28, x29, x30) :|: TRUE f331_in(x36, x37) -> f483_in(x36, x37) :|: TRUE f500_in(x38) -> f207_in([], x38) :|: TRUE f486_in([], x41) -> f491_in(x41) :|: TRUE f819_in(x46, x47, x48) -> f820_in(x47, x48) :|: TRUE f484_in(x52, x53) -> f487_in(x52, x53) :|: TRUE f484_in(x54, x55) -> f486_in(x54, x55) :|: TRUE f818_in(x63, x64, x65) -> f819_in(x63, x64, x65) :|: TRUE f820_in(x68, x69) -> f207_in(x68, x69) :|: TRUE ---------------------------------------- (187) Obligation: Rules: f209_in(T21, T22) -> f331_in(T21, T22) :|: TRUE f207_in(x3, x4) -> f209_in(x3, x4) :|: TRUE f494_in(T40) -> f495_in(T40) :|: TRUE f495_in(x10) -> f500_in(x10) :|: TRUE f491_in(x12) -> f494_in(x12) :|: TRUE f483_in(x16, x17) -> f484_in(x16, x17) :|: TRUE f816_in(x18, x19, x20) -> f818_in(x18, x19, x20) :|: TRUE f487_in(.(x28, x29), x30) -> f816_in(x28, x29, x30) :|: TRUE f331_in(x36, x37) -> f483_in(x36, x37) :|: TRUE f500_in(x38) -> f207_in([], x38) :|: TRUE f486_in([], x41) -> f491_in(x41) :|: TRUE f819_in(x46, x47, x48) -> f820_in(x47, x48) :|: TRUE f484_in(x52, x53) -> f487_in(x52, x53) :|: TRUE f484_in(x54, x55) -> f486_in(x54, x55) :|: TRUE f818_in(x63, x64, x65) -> f819_in(x63, x64, x65) :|: TRUE f820_in(x68, x69) -> f207_in(x68, x69) :|: TRUE ---------------------------------------- (188) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (189) Obligation: Rules: f207_in([], x4:0) -> f207_in([], x4:0) :|: TRUE f207_in(.(x, x1), x2) -> f207_in(x1, x2) :|: TRUE ---------------------------------------- (190) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (191) Obligation: Rules: f207_in([], x4:0) -> f207_in([], x4:0) :|: TRUE f207_in(.(x, x1), x2) -> f207_in(x1, x2) :|: TRUE ---------------------------------------- (192) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f207_in([], x4:0) -> f207_in([], x4:0) :|: TRUE (2) f207_in(.(x, x1), x2) -> f207_in(x1, x2) :|: TRUE Arcs: (1) -> (1) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (193) Complex Obligation (AND) ---------------------------------------- (194) Obligation: Termination digraph: Nodes: (1) f207_in(.(x, x1), x2) -> f207_in(x1, x2) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (195) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f207_in(x1, x2) -> f207_in(x1) .(x1, x2) -> .(x2) ---------------------------------------- (196) Obligation: Rules: f207_in(.(x1)) -> f207_in(x1) :|: TRUE ---------------------------------------- (197) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f207_in(VARIABLE) .(VARIABLE) Removed predefined arithmetic. ---------------------------------------- (198) Obligation: Rules: f207_in(.(x1)) -> f207_in(x1) ---------------------------------------- (199) IRSwTToQDPProof (SOUND) Removed the integers and created a QDP-Problem. ---------------------------------------- (200) Obligation: Q DP problem: The TRS P consists of the following rules: f207_in(.(x1)) -> f207_in(x1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (201) 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: *f207_in(.(x1)) -> f207_in(x1) The graph contains the following edges 1 > 1 ---------------------------------------- (202) YES ---------------------------------------- (203) Obligation: Termination digraph: Nodes: (1) f207_in([], x4:0) -> f207_in([], x4:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (204) IRSwTToIntTRSProof (SOUND) Applied path-length measure to transform intTRS with terms to intTRS. ---------------------------------------- (205) Obligation: Rules: f207_in([], x) -> f207_in([], x) :|: TRUE