/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 front(a,g) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) PrologToPiTRSProof [SOUND, 0 ms] (2) PiTRS (3) DependencyPairsProof [EQUIVALENT, 4 ms] (4) PiDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) AND (7) PiDP (8) UsableRulesProof [EQUIVALENT, 0 ms] (9) PiDP (10) PiDPToQDPProof [SOUND, 0 ms] (11) QDP (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] (13) YES (14) PiDP (15) UsableRulesProof [EQUIVALENT, 0 ms] (16) PiDP (17) PiDPToQDPProof [SOUND, 1 ms] (18) QDP (19) QDPSizeChangeProof [EQUIVALENT, 0 ms] (20) YES (21) PiDP (22) UsableRulesProof [EQUIVALENT, 0 ms] (23) PiDP (24) PiDPToQDPProof [SOUND, 0 ms] (25) QDP (26) PrologToPiTRSProof [SOUND, 0 ms] (27) PiTRS (28) DependencyPairsProof [EQUIVALENT, 15 ms] (29) PiDP (30) DependencyGraphProof [EQUIVALENT, 0 ms] (31) AND (32) PiDP (33) UsableRulesProof [EQUIVALENT, 0 ms] (34) PiDP (35) PiDPToQDPProof [SOUND, 0 ms] (36) QDP (37) QDPSizeChangeProof [EQUIVALENT, 0 ms] (38) YES (39) PiDP (40) UsableRulesProof [EQUIVALENT, 0 ms] (41) PiDP (42) PiDPToQDPProof [SOUND, 0 ms] (43) QDP (44) QDPSizeChangeProof [EQUIVALENT, 0 ms] (45) YES (46) PiDP (47) UsableRulesProof [EQUIVALENT, 0 ms] (48) PiDP (49) PiDPToQDPProof [SOUND, 0 ms] (50) QDP (51) PrologToTRSTransformerProof [SOUND, 0 ms] (52) QTRS (53) QTRSRRRProof [EQUIVALENT, 184 ms] (54) QTRS (55) DependencyPairsProof [EQUIVALENT, 1 ms] (56) QDP (57) DependencyGraphProof [EQUIVALENT, 0 ms] (58) AND (59) QDP (60) UsableRulesProof [EQUIVALENT, 0 ms] (61) QDP (62) QDP (63) PrologToIRSwTTransformerProof [SOUND, 59 ms] (64) AND (65) IRSwT (66) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (67) TRUE (68) IRSwT (69) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (70) TRUE (71) IRSwT (72) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (73) IRSwT (74) IntTRSCompressionProof [EQUIVALENT, 20 ms] (75) IRSwT (76) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (77) IRSwT (78) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] (79) IRSwT (80) FilterProof [EQUIVALENT, 0 ms] (81) IntTRS (82) IntTRSPeriodicNontermProof [COMPLETE, 5 ms] (83) NO (84) PrologToDTProblemTransformerProof [SOUND, 102 ms] (85) TRIPLES (86) UndefinedPredicateInTriplesTransformerProof [SOUND, 0 ms] (87) TRIPLES (88) TriplesToPiDPProof [SOUND, 44 ms] (89) PiDP (90) DependencyGraphProof [EQUIVALENT, 0 ms] (91) AND (92) PiDP (93) UsableRulesProof [EQUIVALENT, 0 ms] (94) PiDP (95) PiDPToQDPProof [SOUND, 0 ms] (96) QDP (97) QDPSizeChangeProof [EQUIVALENT, 0 ms] (98) YES (99) PiDP (100) UsableRulesProof [EQUIVALENT, 0 ms] (101) PiDP (102) PiDPToQDPProof [SOUND, 0 ms] (103) QDP (104) QDPSizeChangeProof [EQUIVALENT, 0 ms] (105) YES (106) PiDP (107) PiDPToQDPProof [SOUND, 0 ms] (108) QDP ---------------------------------------- (0) Obligation: Clauses: front(void, []). front(tree(X, void, void), .(X, [])). front(tree(X1, L, R), Xs) :- ','(front(L, Ls), ','(front(R, Rs), app(Ls, Rs, Xs))). app([], X, X). app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs). Query: front(a,g) ---------------------------------------- (1) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: front_in_2: (f,b) (f,f) app_in_3: (b,b,f) (b,b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x5) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (2) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x5) ---------------------------------------- (3) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: FRONT_IN_AG(tree(X1, L, R), Xs) -> U1_AG(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AG(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) FRONT_IN_AA(tree(X1, L, R), Xs) -> U1_AA(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AA(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_AA(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) U2_AA(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_AA(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) U2_AA(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> APP_IN_GGA(Ls, Rs, Xs) APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> U4_GGA(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) U1_AG(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_AG(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U1_AG(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) U2_AG(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_AG(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) U2_AG(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> APP_IN_GGG(Ls, Rs, Xs) APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> U4_GGG(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x5) FRONT_IN_AG(x1, x2) = FRONT_IN_AG(x2) U1_AG(x1, x2, x3, x4, x5) = U1_AG(x4, x5) FRONT_IN_AA(x1, x2) = FRONT_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x2, x5, x6) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x2, x3, x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U4_GGA(x1, x2, x3, x4, x5) = U4_GGA(x5) U2_AG(x1, x2, x3, x4, x5, x6) = U2_AG(x2, x4, x5, x6) U3_AG(x1, x2, x3, x4, x5) = U3_AG(x2, x3, x5) APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) U4_GGG(x1, x2, x3, x4, x5) = U4_GGG(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (4) Obligation: Pi DP problem: The TRS P consists of the following rules: FRONT_IN_AG(tree(X1, L, R), Xs) -> U1_AG(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AG(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) FRONT_IN_AA(tree(X1, L, R), Xs) -> U1_AA(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AA(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_AA(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) U2_AA(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_AA(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) U2_AA(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> APP_IN_GGA(Ls, Rs, Xs) APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> U4_GGA(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) U1_AG(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_AG(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U1_AG(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) U2_AG(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_AG(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) U2_AG(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> APP_IN_GGG(Ls, Rs, Xs) APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> U4_GGG(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x5) FRONT_IN_AG(x1, x2) = FRONT_IN_AG(x2) U1_AG(x1, x2, x3, x4, x5) = U1_AG(x4, x5) FRONT_IN_AA(x1, x2) = FRONT_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x2, x5, x6) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x2, x3, x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U4_GGA(x1, x2, x3, x4, x5) = U4_GGA(x5) U2_AG(x1, x2, x3, x4, x5, x6) = U2_AG(x2, x4, x5, x6) U3_AG(x1, x2, x3, x4, x5) = U3_AG(x2, x3, x5) APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) U4_GGG(x1, x2, x3, x4, x5) = U4_GGG(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (5) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 11 less nodes. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x5) APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (8) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (9) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (10) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: APP_IN_GGG(.(Xs), Ys, .(Zs)) -> APP_IN_GGG(Xs, Ys, Zs) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (12) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *APP_IN_GGG(.(Xs), Ys, .(Zs)) -> APP_IN_GGG(Xs, Ys, Zs) The graph contains the following edges 1 > 1, 2 >= 2, 3 > 3 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (15) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (16) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (17) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: APP_IN_GGA(.(Xs), Ys) -> APP_IN_GGA(Xs, Ys) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (19) 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: *APP_IN_GGA(.(Xs), Ys) -> APP_IN_GGA(Xs, Ys) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: Pi DP problem: The TRS P consists of the following rules: U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) FRONT_IN_AA(tree(X1, L, R), Xs) -> U1_AA(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AA(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x5) FRONT_IN_AA(x1, x2) = FRONT_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (22) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (23) Obligation: Pi DP problem: The TRS P consists of the following rules: U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) FRONT_IN_AA(tree(X1, L, R), Xs) -> U1_AA(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AA(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) The TRS R consists of the following rules: front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) The argument filtering Pi contains the following mapping: [] = [] .(x1, x2) = .(x2) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x5) FRONT_IN_AA(x1, x2) = FRONT_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (24) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (25) Obligation: Q DP problem: The TRS P consists of the following rules: U1_AA(front_out_aa(L, Ls)) -> FRONT_IN_AA FRONT_IN_AA -> U1_AA(front_in_aa) FRONT_IN_AA -> FRONT_IN_AA The TRS R consists of the following rules: front_in_aa -> front_out_aa(void, []) front_in_aa -> front_out_aa(tree(void, void), .([])) front_in_aa -> U1_aa(front_in_aa) U1_aa(front_out_aa(L, Ls)) -> U2_aa(L, Ls, front_in_aa) U2_aa(L, Ls, front_out_aa(R, Rs)) -> U3_aa(L, R, app_in_gga(Ls, Rs)) U3_aa(L, R, app_out_gga(Xs)) -> front_out_aa(tree(L, R), Xs) app_in_gga([], X) -> app_out_gga(X) app_in_gga(.(Xs), Ys) -> U4_gga(app_in_gga(Xs, Ys)) U4_gga(app_out_gga(Zs)) -> app_out_gga(.(Zs)) The set Q consists of the following terms: front_in_aa U1_aa(x0) U2_aa(x0, x1, x2) U3_aa(x0, x1, x2) app_in_gga(x0, x1) U4_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (26) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: front_in_2: (f,b) (f,f) app_in_3: (b,b,f) (b,b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1, x2) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x2, x3, x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x4, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x2, x3, x4, x5) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (27) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1, x2) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x2, x3, x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x4, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x2, x3, x4, x5) ---------------------------------------- (28) 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: FRONT_IN_AG(tree(X1, L, R), Xs) -> U1_AG(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AG(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) FRONT_IN_AA(tree(X1, L, R), Xs) -> U1_AA(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AA(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_AA(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) U2_AA(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_AA(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) U2_AA(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> APP_IN_GGA(Ls, Rs, Xs) APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> U4_GGA(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) U1_AG(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_AG(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U1_AG(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) U2_AG(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_AG(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) U2_AG(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> APP_IN_GGG(Ls, Rs, Xs) APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> U4_GGG(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1, x2) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x2, x3, x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x4, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x2, x3, x4, x5) FRONT_IN_AG(x1, x2) = FRONT_IN_AG(x2) U1_AG(x1, x2, x3, x4, x5) = U1_AG(x4, x5) FRONT_IN_AA(x1, x2) = FRONT_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x2, x5, x6) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x2, x3, x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U4_GGA(x1, x2, x3, x4, x5) = U4_GGA(x2, x3, x5) U2_AG(x1, x2, x3, x4, x5, x6) = U2_AG(x2, x4, x5, x6) U3_AG(x1, x2, x3, x4, x5) = U3_AG(x2, x3, x4, x5) APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) U4_GGG(x1, x2, x3, x4, x5) = U4_GGG(x2, x3, x4, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (29) Obligation: Pi DP problem: The TRS P consists of the following rules: FRONT_IN_AG(tree(X1, L, R), Xs) -> U1_AG(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AG(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) FRONT_IN_AA(tree(X1, L, R), Xs) -> U1_AA(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AA(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_AA(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) U2_AA(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_AA(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) U2_AA(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> APP_IN_GGA(Ls, Rs, Xs) APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> U4_GGA(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) U1_AG(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_AG(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U1_AG(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) U2_AG(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_AG(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) U2_AG(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> APP_IN_GGG(Ls, Rs, Xs) APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> U4_GGG(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1, x2) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x2, x3, x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x4, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x2, x3, x4, x5) FRONT_IN_AG(x1, x2) = FRONT_IN_AG(x2) U1_AG(x1, x2, x3, x4, x5) = U1_AG(x4, x5) FRONT_IN_AA(x1, x2) = FRONT_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) U2_AA(x1, x2, x3, x4, x5, x6) = U2_AA(x2, x5, x6) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x2, x3, x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) U4_GGA(x1, x2, x3, x4, x5) = U4_GGA(x2, x3, x5) U2_AG(x1, x2, x3, x4, x5, x6) = U2_AG(x2, x4, x5, x6) U3_AG(x1, x2, x3, x4, x5) = U3_AG(x2, x3, x4, x5) APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) U4_GGG(x1, x2, x3, x4, x5) = U4_GGG(x2, x3, x4, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (30) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 11 less nodes. ---------------------------------------- (31) Complex Obligation (AND) ---------------------------------------- (32) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1, x2) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x2, x3, x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x4, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x2, x3, x4, x5) APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (33) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (34) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (35) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: APP_IN_GGG(.(Xs), Ys, .(Zs)) -> APP_IN_GGG(Xs, Ys, Zs) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (37) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *APP_IN_GGG(.(Xs), Ys, .(Zs)) -> APP_IN_GGG(Xs, Ys, Zs) The graph contains the following edges 1 > 1, 2 >= 2, 3 > 3 ---------------------------------------- (38) YES ---------------------------------------- (39) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1, x2) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x2, x3, x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x4, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x2, x3, x4, x5) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (40) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (41) Obligation: Pi DP problem: The TRS P consists of the following rules: APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (42) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (43) Obligation: Q DP problem: The TRS P consists of the following rules: APP_IN_GGA(.(Xs), Ys) -> APP_IN_GGA(Xs, Ys) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (44) 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: *APP_IN_GGA(.(Xs), Ys) -> APP_IN_GGA(Xs, Ys) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (45) YES ---------------------------------------- (46) Obligation: Pi DP problem: The TRS P consists of the following rules: U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) FRONT_IN_AA(tree(X1, L, R), Xs) -> U1_AA(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AA(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) The TRS R consists of the following rules: front_in_ag(void, []) -> front_out_ag(void, []) front_in_ag(tree(X, void, void), .(X, [])) -> front_out_ag(tree(X, void, void), .(X, [])) front_in_ag(tree(X1, L, R), Xs) -> U1_ag(X1, L, R, Xs, front_in_aa(L, Ls)) front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) U1_ag(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_ag(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_ag(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_ag(X1, L, R, Xs, app_in_ggg(Ls, Rs, Xs)) app_in_ggg([], X, X) -> app_out_ggg([], X, X) app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U4_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) U4_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) U3_ag(X1, L, R, Xs, app_out_ggg(Ls, Rs, Xs)) -> front_out_ag(tree(X1, L, R), Xs) The argument filtering Pi contains the following mapping: front_in_ag(x1, x2) = front_in_ag(x2) [] = [] front_out_ag(x1, x2) = front_out_ag(x1, x2) .(x1, x2) = .(x2) U1_ag(x1, x2, x3, x4, x5) = U1_ag(x4, x5) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x2, x3, x5) U2_ag(x1, x2, x3, x4, x5, x6) = U2_ag(x2, x4, x5, x6) U3_ag(x1, x2, x3, x4, x5) = U3_ag(x2, x3, x4, x5) app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) U4_ggg(x1, x2, x3, x4, x5) = U4_ggg(x2, x3, x4, x5) FRONT_IN_AA(x1, x2) = FRONT_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (47) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (48) Obligation: Pi DP problem: The TRS P consists of the following rules: U1_AA(X1, L, R, Xs, front_out_aa(L, Ls)) -> FRONT_IN_AA(R, Rs) FRONT_IN_AA(tree(X1, L, R), Xs) -> U1_AA(X1, L, R, Xs, front_in_aa(L, Ls)) FRONT_IN_AA(tree(X1, L, R), Xs) -> FRONT_IN_AA(L, Ls) The TRS R consists of the following rules: front_in_aa(void, []) -> front_out_aa(void, []) front_in_aa(tree(X, void, void), .(X, [])) -> front_out_aa(tree(X, void, void), .(X, [])) front_in_aa(tree(X1, L, R), Xs) -> U1_aa(X1, L, R, Xs, front_in_aa(L, Ls)) U1_aa(X1, L, R, Xs, front_out_aa(L, Ls)) -> U2_aa(X1, L, R, Xs, Ls, front_in_aa(R, Rs)) U2_aa(X1, L, R, Xs, Ls, front_out_aa(R, Rs)) -> U3_aa(X1, L, R, Xs, app_in_gga(Ls, Rs, Xs)) U3_aa(X1, L, R, Xs, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(X1, L, R), Xs) app_in_gga([], X, X) -> app_out_gga([], X, X) app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U4_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) U4_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) The argument filtering Pi contains the following mapping: [] = [] .(x1, x2) = .(x2) front_in_aa(x1, x2) = front_in_aa front_out_aa(x1, x2) = front_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) U1_aa(x1, x2, x3, x4, x5) = U1_aa(x5) U2_aa(x1, x2, x3, x4, x5, x6) = U2_aa(x2, x5, x6) U3_aa(x1, x2, x3, x4, x5) = U3_aa(x2, x3, x5) app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) U4_gga(x1, x2, x3, x4, x5) = U4_gga(x2, x3, x5) FRONT_IN_AA(x1, x2) = FRONT_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (49) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: U1_AA(front_out_aa(L, Ls)) -> FRONT_IN_AA FRONT_IN_AA -> U1_AA(front_in_aa) FRONT_IN_AA -> FRONT_IN_AA The TRS R consists of the following rules: front_in_aa -> front_out_aa(void, []) front_in_aa -> front_out_aa(tree(void, void), .([])) front_in_aa -> U1_aa(front_in_aa) U1_aa(front_out_aa(L, Ls)) -> U2_aa(L, Ls, front_in_aa) U2_aa(L, Ls, front_out_aa(R, Rs)) -> U3_aa(L, R, app_in_gga(Ls, Rs)) U3_aa(L, R, app_out_gga(Ls, Rs, Xs)) -> front_out_aa(tree(L, R), Xs) app_in_gga([], X) -> app_out_gga([], X, X) app_in_gga(.(Xs), Ys) -> U4_gga(Xs, Ys, app_in_gga(Xs, Ys)) U4_gga(Xs, Ys, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(Xs), Ys, .(Zs)) The set Q consists of the following terms: front_in_aa U1_aa(x0) U2_aa(x0, x1, x2) U3_aa(x0, x1, x2) app_in_gga(x0, x1) U4_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (51) PrologToTRSTransformerProof (SOUND) Transformed Prolog program to TRS. { "root": 2, "program": { "directives": [], "clauses": [ [ "(front (void) ([]))", null ], [ "(front (tree X (void) (void)) (. X ([])))", null ], [ "(front (tree X1 L R) Xs)", "(',' (front L Ls) (',' (front R Rs) (app Ls Rs Xs)))" ], [ "(app ([]) X X)", null ], [ "(app (. X Xs) Ys (. X Zs))", "(app Xs Ys Zs)" ] ] }, "graph": { "nodes": { "44": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "48": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes", "194": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "392": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T85 T86 T84)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T84"], "free": [], "exprvars": [] } }, "393": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "196": { "goal": [{ "clause": 1, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "350": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "198": { "goal": [{ "clause": 2, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "353": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "354": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "316": { "goal": [ { "clause": 0, "scope": 2, "term": "(front T20 X21)" }, { "clause": 1, "scope": 2, "term": "(front T20 X21)" }, { "clause": 2, "scope": 2, "term": "(front T20 X21)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "317": { "goal": [{ "clause": 0, "scope": 2, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "318": { "goal": [ { "clause": 1, "scope": 2, "term": "(front T20 X21)" }, { "clause": 2, "scope": 2, "term": "(front T20 X21)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "319": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "282": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "283": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T23 X22) (app T22 X22 T19))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": ["X22"], "exprvars": [] } }, "361": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T60 T61 X68)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X68"], "exprvars": [] } }, "362": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "320": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "200": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "321": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "201": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "322": { "goal": [{ "clause": 1, "scope": 2, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "202": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "323": { "goal": [{ "clause": 2, "scope": 2, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "324": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "325": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "205": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T20 X21) (',' (front T21 X22) (app X21 X22 T19)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [ "X21", "X22" ], "exprvars": [] } }, "326": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "206": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "327": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T38 X44) (',' (front T39 X45) (app X44 X45 X46)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X46", "X44", "X45" ], "exprvars": [] } }, "328": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "29": { "goal": [ { "clause": 0, "scope": 1, "term": "(front T1 T2)" }, { "clause": 1, "scope": 1, "term": "(front T1 T2)" }, { "clause": 2, "scope": 1, "term": "(front T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "371": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T23 X22)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X22"], "exprvars": [] } }, "372": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T65 T64 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "331": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T38 X44)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X44"], "exprvars": [] } }, "332": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T41 X45) (app T40 X45 X46))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X46", "X45" ], "exprvars": [] } }, "338": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T41 X45)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X45"], "exprvars": [] } }, "32": { "goal": [{ "clause": 0, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "36": { "goal": [ { "clause": 1, "scope": 1, "term": "(front T1 T2)" }, { "clause": 2, "scope": 1, "term": "(front T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "380": { "goal": [ { "clause": 3, "scope": 4, "term": "(app T65 T64 T19)" }, { "clause": 4, "scope": 4, "term": "(app T65 T64 T19)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "340": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "384": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T65 T64 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "385": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T65 T64 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "387": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "344": { "goal": [ { "clause": 3, "scope": 3, "term": "(app T43 T42 X46)" }, { "clause": 4, "scope": 3, "term": "(app T43 T42 X46)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "388": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "389": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "346": { "goal": [{ "clause": 3, "scope": 3, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "348": { "goal": [{ "clause": 4, "scope": 3, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } } }, "edges": [ { "from": 2, "to": 29, "label": "CASE" }, { "from": 29, "to": 32, "label": "PARALLEL" }, { "from": 29, "to": 36, "label": "PARALLEL" }, { "from": 32, "to": 44, "label": "EVAL with clause\nfront(void, []).\nand substitutionT1 -> void,\nT2 -> []" }, { "from": 32, "to": 48, "label": "EVAL-BACKTRACK" }, { "from": 36, "to": 196, "label": "PARALLEL" }, { "from": 36, "to": 198, "label": "PARALLEL" }, { "from": 44, "to": 194, "label": "SUCCESS" }, { "from": 196, "to": 200, "label": "EVAL with clause\nfront(tree(X6, void, void), .(X6, [])).\nand substitutionX6 -> T7,\nT1 -> tree(T7, void, void),\nT2 -> .(T7, [])" }, { "from": 196, "to": 201, "label": "EVAL-BACKTRACK" }, { "from": 198, "to": 205, "label": "EVAL with clause\nfront(tree(X17, X18, X19), X20) :- ','(front(X18, X21), ','(front(X19, X22), app(X21, X22, X20))).\nand substitutionX17 -> T16,\nX18 -> T20,\nX19 -> T21,\nT1 -> tree(T16, T20, T21),\nT2 -> T19,\nX20 -> T19,\nT17 -> T20,\nT18 -> T21" }, { "from": 198, "to": 206, "label": "EVAL-BACKTRACK" }, { "from": 200, "to": 202, "label": "SUCCESS" }, { "from": 205, "to": 282, "label": "SPLIT 1" }, { "from": 205, "to": 283, "label": "SPLIT 2\nreplacements:X21 -> T22,\nT21 -> T23" }, { "from": 282, "to": 316, "label": "CASE" }, { "from": 283, "to": 371, "label": "SPLIT 1" }, { "from": 283, "to": 372, "label": "SPLIT 2\nreplacements:X22 -> T64,\nT22 -> T65" }, { "from": 316, "to": 317, "label": "PARALLEL" }, { "from": 316, "to": 318, "label": "PARALLEL" }, { "from": 317, "to": 319, "label": "EVAL with clause\nfront(void, []).\nand substitutionT20 -> void,\nX21 -> []" }, { "from": 317, "to": 320, "label": "EVAL-BACKTRACK" }, { "from": 318, "to": 322, "label": "PARALLEL" }, { "from": 318, "to": 323, "label": "PARALLEL" }, { "from": 319, "to": 321, "label": "SUCCESS" }, { "from": 322, "to": 324, "label": "EVAL with clause\nfront(tree(X27, void, void), .(X27, [])).\nand substitutionX27 -> T28,\nT20 -> tree(T28, void, void),\nX21 -> .(T28, [])" }, { "from": 322, "to": 325, "label": "EVAL-BACKTRACK" }, { "from": 323, "to": 327, "label": "EVAL with clause\nfront(tree(X40, X41, X42), X43) :- ','(front(X41, X44), ','(front(X42, X45), app(X44, X45, X43))).\nand substitutionX40 -> T35,\nX41 -> T38,\nX42 -> T39,\nT20 -> tree(T35, T38, T39),\nX21 -> X46,\nX43 -> X46,\nT36 -> T38,\nT37 -> T39" }, { "from": 323, "to": 328, "label": "EVAL-BACKTRACK" }, { "from": 324, "to": 326, "label": "SUCCESS" }, { "from": 327, "to": 331, "label": "SPLIT 1" }, { "from": 327, "to": 332, "label": "SPLIT 2\nreplacements:X44 -> T40,\nT39 -> T41" }, { "from": 331, "to": 282, "label": "INSTANCE with matching:\nT20 -> T38\nX21 -> X44" }, { "from": 332, "to": 338, "label": "SPLIT 1" }, { "from": 332, "to": 340, "label": "SPLIT 2\nreplacements:X45 -> T42,\nT40 -> T43" }, { "from": 338, "to": 282, "label": "INSTANCE with matching:\nT20 -> T41\nX21 -> X45" }, { "from": 340, "to": 344, "label": "CASE" }, { "from": 344, "to": 346, "label": "PARALLEL" }, { "from": 344, "to": 348, "label": "PARALLEL" }, { "from": 346, "to": 350, "label": "EVAL with clause\napp([], X53, X53).\nand substitutionT43 -> [],\nT42 -> T50,\nX53 -> T50,\nX46 -> T50" }, { "from": 346, "to": 353, "label": "EVAL-BACKTRACK" }, { "from": 348, "to": 361, "label": "EVAL with clause\napp(.(X64, X65), X66, .(X64, X67)) :- app(X65, X66, X67).\nand substitutionX64 -> T57,\nX65 -> T60,\nT43 -> .(T57, T60),\nT42 -> T61,\nX66 -> T61,\nX67 -> X68,\nX46 -> .(T57, X68),\nT58 -> T60,\nT59 -> T61" }, { "from": 348, "to": 362, "label": "EVAL-BACKTRACK" }, { "from": 350, "to": 354, "label": "SUCCESS" }, { "from": 361, "to": 340, "label": "INSTANCE with matching:\nT43 -> T60\nT42 -> T61\nX46 -> X68" }, { "from": 371, "to": 282, "label": "INSTANCE with matching:\nT20 -> T23\nX21 -> X22" }, { "from": 372, "to": 380, "label": "CASE" }, { "from": 380, "to": 384, "label": "PARALLEL" }, { "from": 380, "to": 385, "label": "PARALLEL" }, { "from": 384, "to": 387, "label": "EVAL with clause\napp([], X77, X77).\nand substitutionT65 -> [],\nT64 -> T72,\nX77 -> T72,\nT19 -> T72" }, { "from": 384, "to": 388, "label": "EVAL-BACKTRACK" }, { "from": 385, "to": 392, "label": "EVAL with clause\napp(.(X86, X87), X88, .(X86, X89)) :- app(X87, X88, X89).\nand substitutionX86 -> T81,\nX87 -> T85,\nT65 -> .(T81, T85),\nT64 -> T86,\nX88 -> T86,\nX89 -> T84,\nT19 -> .(T81, T84),\nT82 -> T85,\nT83 -> T86" }, { "from": 385, "to": 393, "label": "EVAL-BACKTRACK" }, { "from": 387, "to": 389, "label": "SUCCESS" }, { "from": 392, "to": 372, "label": "INSTANCE with matching:\nT65 -> T85\nT64 -> T86\nT19 -> T84" } ], "type": "Graph" } } ---------------------------------------- (52) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f2_in([]) -> f2_out1 f2_in(.(T7, [])) -> f2_out1 f2_in(T19) -> U1(f205_in(T19), T19) U1(f205_out1(X21, X22), T19) -> f2_out1 f282_in -> f282_out1 f282_in -> U2(f327_in) U2(f327_out1) -> f282_out1 f340_in -> f340_out1 f340_in -> U3(f340_in) U3(f340_out1) -> f340_out1 f372_in(T72) -> f372_out1([], T72) f372_in(.(T81, T84)) -> U4(f372_in(T84), .(T81, T84)) U4(f372_out1(T85, T86), .(T81, T84)) -> f372_out1(.(T81, T85), T86) f205_in(T19) -> U5(f282_in, T19) U5(f282_out1, T19) -> U6(f283_in(T19), T19) U6(f283_out1(T22, X22), T19) -> f205_out1(T22, X22) f283_in(T19) -> U7(f282_in, T19) U7(f282_out1, T19) -> U8(f372_in(T19), T19) U8(f372_out1(T65, T64), T19) -> f283_out1(T65, T64) f327_in -> U9(f282_in) U9(f282_out1) -> U10(f332_in) U10(f332_out1) -> f327_out1 f332_in -> U11(f282_in) U11(f282_out1) -> U12(f340_in) U12(f340_out1) -> f332_out1 Q is empty. ---------------------------------------- (53) QTRSRRRProof (EQUIVALENT) Used ordering: f2_in/1(YES) []/0) f2_out1/0) ./2(YES,YES) U1/2(YES,YES) f205_in/1(YES) f205_out1/2(YES,YES) f282_in/0) f282_out1/0) U2/1)YES( f327_in/0) f327_out1/0) f340_in/0) f340_out1/0) U3/1)YES( f372_in/1(YES) f372_out1/2(YES,YES) U4/2(YES,YES) U5/2(YES,YES) U6/2(YES,YES) f283_in/1(YES) f283_out1/2(YES,YES) U7/2(YES,YES) U8/2(YES,YES) U9/1)YES( U10/1)YES( f332_in/0) f332_out1/0) U11/1)YES( U12/1)YES( Quasi precedence: f2_in_1 > U1_2 f2_in_1 > f205_in_1 > [U5_2, f283_in_1] > [f282_in, f282_out1, f327_in, f327_out1, f340_in, f340_out1, f332_in, f332_out1] f2_in_1 > f205_in_1 > [U5_2, f283_in_1] > [f372_in_1, U7_2] > [] > f2_out1 f2_in_1 > f205_in_1 > [U5_2, f283_in_1] > [f372_in_1, U7_2] > [f372_out1_2, U4_2] > ._2 > f2_out1 f2_in_1 > f205_in_1 > [U5_2, f283_in_1] > [f372_in_1, U7_2] > [f372_out1_2, U4_2] > f283_out1_2 f2_in_1 > f205_in_1 > [U5_2, f283_in_1] > [f372_in_1, U7_2] > U8_2 f2_in_1 > f205_in_1 > [U5_2, f283_in_1] > U6_2 > f205_out1_2 > f2_out1 Status: f2_in_1: multiset status []: multiset status f2_out1: multiset status ._2: multiset status U1_2: multiset status f205_in_1: multiset status f205_out1_2: multiset status f282_in: multiset status f282_out1: multiset status f327_in: multiset status f327_out1: multiset status f340_in: multiset status f340_out1: multiset status f372_in_1: multiset status f372_out1_2: [2,1] U4_2: [1,2] U5_2: multiset status U6_2: multiset status f283_in_1: multiset status f283_out1_2: multiset status U7_2: multiset status U8_2: multiset status f332_in: multiset status f332_out1: multiset status With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: f2_in([]) -> f2_out1 f2_in(.(T7, [])) -> f2_out1 f2_in(T19) -> U1(f205_in(T19), T19) U1(f205_out1(X21, X22), T19) -> f2_out1 f372_in(T72) -> f372_out1([], T72) f372_in(.(T81, T84)) -> U4(f372_in(T84), .(T81, T84)) U4(f372_out1(T85, T86), .(T81, T84)) -> f372_out1(.(T81, T85), T86) f205_in(T19) -> U5(f282_in, T19) U5(f282_out1, T19) -> U6(f283_in(T19), T19) U6(f283_out1(T22, X22), T19) -> f205_out1(T22, X22) f283_in(T19) -> U7(f282_in, T19) U7(f282_out1, T19) -> U8(f372_in(T19), T19) U8(f372_out1(T65, T64), T19) -> f283_out1(T65, T64) ---------------------------------------- (54) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f282_in -> f282_out1 f282_in -> U2(f327_in) U2(f327_out1) -> f282_out1 f340_in -> f340_out1 f340_in -> U3(f340_in) U3(f340_out1) -> f340_out1 f327_in -> U9(f282_in) U9(f282_out1) -> U10(f332_in) U10(f332_out1) -> f327_out1 f332_in -> U11(f282_in) U11(f282_out1) -> U12(f340_in) U12(f340_out1) -> f332_out1 Q is empty. ---------------------------------------- (55) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: F282_IN -> U2^1(f327_in) F282_IN -> F327_IN F340_IN -> U3^1(f340_in) F340_IN -> F340_IN F327_IN -> U9^1(f282_in) F327_IN -> F282_IN U9^1(f282_out1) -> U10^1(f332_in) U9^1(f282_out1) -> F332_IN F332_IN -> U11^1(f282_in) F332_IN -> F282_IN U11^1(f282_out1) -> U12^1(f340_in) U11^1(f282_out1) -> F340_IN The TRS R consists of the following rules: f282_in -> f282_out1 f282_in -> U2(f327_in) U2(f327_out1) -> f282_out1 f340_in -> f340_out1 f340_in -> U3(f340_in) U3(f340_out1) -> f340_out1 f327_in -> U9(f282_in) U9(f282_out1) -> U10(f332_in) U10(f332_out1) -> f327_out1 f332_in -> U11(f282_in) U11(f282_out1) -> U12(f340_in) U12(f340_out1) -> f332_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (57) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 6 less nodes. ---------------------------------------- (58) Complex Obligation (AND) ---------------------------------------- (59) Obligation: Q DP problem: The TRS P consists of the following rules: F340_IN -> F340_IN The TRS R consists of the following rules: f282_in -> f282_out1 f282_in -> U2(f327_in) U2(f327_out1) -> f282_out1 f340_in -> f340_out1 f340_in -> U3(f340_in) U3(f340_out1) -> f340_out1 f327_in -> U9(f282_in) U9(f282_out1) -> U10(f332_in) U10(f332_out1) -> f327_out1 f332_in -> U11(f282_in) U11(f282_out1) -> U12(f340_in) U12(f340_out1) -> f332_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (60) 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. ---------------------------------------- (61) Obligation: Q DP problem: The TRS P consists of the following rules: F340_IN -> F340_IN R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: F282_IN -> F327_IN F327_IN -> U9^1(f282_in) U9^1(f282_out1) -> F332_IN F332_IN -> F282_IN F327_IN -> F282_IN The TRS R consists of the following rules: f282_in -> f282_out1 f282_in -> U2(f327_in) U2(f327_out1) -> f282_out1 f340_in -> f340_out1 f340_in -> U3(f340_in) U3(f340_out1) -> f340_out1 f327_in -> U9(f282_in) U9(f282_out1) -> U10(f332_in) U10(f332_out1) -> f327_out1 f332_in -> U11(f282_in) U11(f282_out1) -> U12(f340_in) U12(f340_out1) -> f332_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (63) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 1, "program": { "directives": [], "clauses": [ [ "(front (void) ([]))", null ], [ "(front (tree X (void) (void)) (. X ([])))", null ], [ "(front (tree X1 L R) Xs)", "(',' (front L Ls) (',' (front R Rs) (app Ls Rs Xs)))" ], [ "(app ([]) X X)", null ], [ "(app (. X Xs) Ys (. X Zs))", "(app Xs Ys Zs)" ] ] }, "graph": { "nodes": { "192": { "goal": [{ "clause": 2, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "type": "Nodes", "195": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "197": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "351": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T60 T61 X68)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X68"], "exprvars": [] } }, "199": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "312": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T38 X44)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X44"], "exprvars": [] } }, "356": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "313": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T41 X45) (app T40 X45 X46))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X46", "X45" ], "exprvars": [] } }, "359": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T23 X22)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X22"], "exprvars": [] } }, "15": { "goal": [{ "clause": 0, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "16": { "goal": [ { "clause": 1, "scope": 1, "term": "(front T1 T2)" }, { "clause": 2, "scope": 1, "term": "(front T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "280": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "281": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T23 X22) (app T22 X22 T19))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": ["X22"], "exprvars": [] } }, "360": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T65 T64 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "286": { "goal": [ { "clause": 0, "scope": 2, "term": "(front T20 X21)" }, { "clause": 1, "scope": 2, "term": "(front T20 X21)" }, { "clause": 2, "scope": 2, "term": "(front T20 X21)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "287": { "goal": [{ "clause": 0, "scope": 2, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "364": { "goal": [ { "clause": 3, "scope": 4, "term": "(app T65 T64 T19)" }, { "clause": 4, "scope": 4, "term": "(app T65 T64 T19)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "288": { "goal": [ { "clause": 1, "scope": 2, "term": "(front T20 X21)" }, { "clause": 2, "scope": 2, "term": "(front T20 X21)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "4": { "goal": [ { "clause": 0, "scope": 1, "term": "(front T1 T2)" }, { "clause": 1, "scope": 1, "term": "(front T1 T2)" }, { "clause": 2, "scope": 1, "term": "(front T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "367": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T65 T64 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "203": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T20 X21) (',' (front T21 X22) (app X21 X22 T19)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [ "X21", "X22" ], "exprvars": [] } }, "368": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T65 T64 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "204": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "329": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T41 X45)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X45"], "exprvars": [] } }, "24": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "25": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "292": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "293": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "294": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "130": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "295": { "goal": [{ "clause": 1, "scope": 2, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "296": { "goal": [{ "clause": 2, "scope": 2, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "330": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "375": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "376": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "333": { "goal": [ { "clause": 3, "scope": 3, "term": "(app T43 T42 X46)" }, { "clause": 4, "scope": 3, "term": "(app T43 T42 X46)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "377": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "334": { "goal": [{ "clause": 3, "scope": 3, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "335": { "goal": [{ "clause": 4, "scope": 3, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "339": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "383": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T85 T86 T84)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T84"], "free": [], "exprvars": [] } }, "341": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "188": { "goal": [{ "clause": 1, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "342": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "386": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "300": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "301": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "302": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "308": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T38 X44) (',' (front T39 X45) (app X44 X45 X46)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X46", "X44", "X45" ], "exprvars": [] } }, "309": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 1, "to": 4, "label": "CASE" }, { "from": 4, "to": 15, "label": "PARALLEL" }, { "from": 4, "to": 16, "label": "PARALLEL" }, { "from": 15, "to": 24, "label": "EVAL with clause\nfront(void, []).\nand substitutionT1 -> void,\nT2 -> []" }, { "from": 15, "to": 25, "label": "EVAL-BACKTRACK" }, { "from": 16, "to": 188, "label": "PARALLEL" }, { "from": 16, "to": 192, "label": "PARALLEL" }, { "from": 24, "to": 130, "label": "SUCCESS" }, { "from": 188, "to": 195, "label": "EVAL with clause\nfront(tree(X6, void, void), .(X6, [])).\nand substitutionX6 -> T7,\nT1 -> tree(T7, void, void),\nT2 -> .(T7, [])" }, { "from": 188, "to": 197, "label": "EVAL-BACKTRACK" }, { "from": 192, "to": 203, "label": "EVAL with clause\nfront(tree(X17, X18, X19), X20) :- ','(front(X18, X21), ','(front(X19, X22), app(X21, X22, X20))).\nand substitutionX17 -> T16,\nX18 -> T20,\nX19 -> T21,\nT1 -> tree(T16, T20, T21),\nT2 -> T19,\nX20 -> T19,\nT17 -> T20,\nT18 -> T21" }, { "from": 192, "to": 204, "label": "EVAL-BACKTRACK" }, { "from": 195, "to": 199, "label": "SUCCESS" }, { "from": 203, "to": 280, "label": "SPLIT 1" }, { "from": 203, "to": 281, "label": "SPLIT 2\nreplacements:X21 -> T22,\nT21 -> T23" }, { "from": 280, "to": 286, "label": "CASE" }, { "from": 281, "to": 359, "label": "SPLIT 1" }, { "from": 281, "to": 360, "label": "SPLIT 2\nreplacements:X22 -> T64,\nT22 -> T65" }, { "from": 286, "to": 287, "label": "PARALLEL" }, { "from": 286, "to": 288, "label": "PARALLEL" }, { "from": 287, "to": 292, "label": "EVAL with clause\nfront(void, []).\nand substitutionT20 -> void,\nX21 -> []" }, { "from": 287, "to": 293, "label": "EVAL-BACKTRACK" }, { "from": 288, "to": 295, "label": "PARALLEL" }, { "from": 288, "to": 296, "label": "PARALLEL" }, { "from": 292, "to": 294, "label": "SUCCESS" }, { "from": 295, "to": 300, "label": "EVAL with clause\nfront(tree(X27, void, void), .(X27, [])).\nand substitutionX27 -> T28,\nT20 -> tree(T28, void, void),\nX21 -> .(T28, [])" }, { "from": 295, "to": 301, "label": "EVAL-BACKTRACK" }, { "from": 296, "to": 308, "label": "EVAL with clause\nfront(tree(X40, X41, X42), X43) :- ','(front(X41, X44), ','(front(X42, X45), app(X44, X45, X43))).\nand substitutionX40 -> T35,\nX41 -> T38,\nX42 -> T39,\nT20 -> tree(T35, T38, T39),\nX21 -> X46,\nX43 -> X46,\nT36 -> T38,\nT37 -> T39" }, { "from": 296, "to": 309, "label": "EVAL-BACKTRACK" }, { "from": 300, "to": 302, "label": "SUCCESS" }, { "from": 308, "to": 312, "label": "SPLIT 1" }, { "from": 308, "to": 313, "label": "SPLIT 2\nreplacements:X44 -> T40,\nT39 -> T41" }, { "from": 312, "to": 280, "label": "INSTANCE with matching:\nT20 -> T38\nX21 -> X44" }, { "from": 313, "to": 329, "label": "SPLIT 1" }, { "from": 313, "to": 330, "label": "SPLIT 2\nreplacements:X45 -> T42,\nT40 -> T43" }, { "from": 329, "to": 280, "label": "INSTANCE with matching:\nT20 -> T41\nX21 -> X45" }, { "from": 330, "to": 333, "label": "CASE" }, { "from": 333, "to": 334, "label": "PARALLEL" }, { "from": 333, "to": 335, "label": "PARALLEL" }, { "from": 334, "to": 339, "label": "EVAL with clause\napp([], X53, X53).\nand substitutionT43 -> [],\nT42 -> T50,\nX53 -> T50,\nX46 -> T50" }, { "from": 334, "to": 341, "label": "EVAL-BACKTRACK" }, { "from": 335, "to": 351, "label": "EVAL with clause\napp(.(X64, X65), X66, .(X64, X67)) :- app(X65, X66, X67).\nand substitutionX64 -> T57,\nX65 -> T60,\nT43 -> .(T57, T60),\nT42 -> T61,\nX66 -> T61,\nX67 -> X68,\nX46 -> .(T57, X68),\nT58 -> T60,\nT59 -> T61" }, { "from": 335, "to": 356, "label": "EVAL-BACKTRACK" }, { "from": 339, "to": 342, "label": "SUCCESS" }, { "from": 351, "to": 330, "label": "INSTANCE with matching:\nT43 -> T60\nT42 -> T61\nX46 -> X68" }, { "from": 359, "to": 280, "label": "INSTANCE with matching:\nT20 -> T23\nX21 -> X22" }, { "from": 360, "to": 364, "label": "CASE" }, { "from": 364, "to": 367, "label": "PARALLEL" }, { "from": 364, "to": 368, "label": "PARALLEL" }, { "from": 367, "to": 375, "label": "EVAL with clause\napp([], X77, X77).\nand substitutionT65 -> [],\nT64 -> T72,\nX77 -> T72,\nT19 -> T72" }, { "from": 367, "to": 376, "label": "EVAL-BACKTRACK" }, { "from": 368, "to": 383, "label": "EVAL with clause\napp(.(X86, X87), X88, .(X86, X89)) :- app(X87, X88, X89).\nand substitutionX86 -> T81,\nX87 -> T85,\nT65 -> .(T81, T85),\nT64 -> T86,\nX88 -> T86,\nX89 -> T84,\nT19 -> .(T81, T84),\nT82 -> T85,\nT83 -> T86" }, { "from": 368, "to": 386, "label": "EVAL-BACKTRACK" }, { "from": 375, "to": 377, "label": "SUCCESS" }, { "from": 383, "to": 360, "label": "INSTANCE with matching:\nT65 -> T85\nT64 -> T86\nT19 -> T84" } ], "type": "Graph" } } ---------------------------------------- (64) Complex Obligation (AND) ---------------------------------------- (65) Obligation: Rules: f364_out(T19) -> f360_out(T19) :|: TRUE f360_in(x) -> f364_in(x) :|: TRUE f383_in(T84) -> f360_in(T84) :|: TRUE f360_out(x1) -> f383_out(x1) :|: TRUE f364_in(x2) -> f367_in(x2) :|: TRUE f367_out(x3) -> f364_out(x3) :|: TRUE f364_in(x4) -> f368_in(x4) :|: TRUE f368_out(x5) -> f364_out(x5) :|: TRUE f383_out(x6) -> f368_out(.(x7, x6)) :|: TRUE f368_in(x8) -> f386_in :|: TRUE f368_in(.(x9, x10)) -> f383_in(x10) :|: TRUE f386_out -> f368_out(x11) :|: TRUE f4_out(T2) -> f1_out(T2) :|: TRUE f1_in(x12) -> f4_in(x12) :|: TRUE f15_out(x13) -> f4_out(x13) :|: TRUE f4_in(x14) -> f15_in(x14) :|: TRUE f4_in(x15) -> f16_in(x15) :|: TRUE f16_out(x16) -> f4_out(x16) :|: TRUE f192_out(x17) -> f16_out(x17) :|: TRUE f16_in(x18) -> f192_in(x18) :|: TRUE f188_out(x19) -> f16_out(x19) :|: TRUE f16_in(x20) -> f188_in(x20) :|: TRUE f192_in(x21) -> f203_in(x21) :|: TRUE f203_out(x22) -> f192_out(x22) :|: TRUE f192_in(x23) -> f204_in :|: TRUE f204_out -> f192_out(x24) :|: TRUE f281_out(x25) -> f203_out(x25) :|: TRUE f280_out -> f281_in(x26) :|: TRUE f203_in(x27) -> f280_in :|: TRUE f281_in(x28) -> f359_in :|: TRUE f359_out -> f360_in(x29) :|: TRUE f360_out(x30) -> f281_out(x30) :|: TRUE Start term: f1_in(T2) ---------------------------------------- (66) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (67) TRUE ---------------------------------------- (68) Obligation: Rules: f335_in -> f351_in :|: TRUE f335_in -> f356_in :|: TRUE f356_out -> f335_out :|: TRUE f351_out -> f335_out :|: TRUE f333_in -> f335_in :|: TRUE f335_out -> f333_out :|: TRUE f333_in -> f334_in :|: TRUE f334_out -> f333_out :|: TRUE f330_in -> f333_in :|: TRUE f333_out -> f330_out :|: TRUE f351_in -> f330_in :|: TRUE f330_out -> f351_out :|: TRUE f4_out(T2) -> f1_out(T2) :|: TRUE f1_in(x) -> f4_in(x) :|: TRUE f15_out(x1) -> f4_out(x1) :|: TRUE f4_in(x2) -> f15_in(x2) :|: TRUE f4_in(x3) -> f16_in(x3) :|: TRUE f16_out(x4) -> f4_out(x4) :|: TRUE f192_out(x5) -> f16_out(x5) :|: TRUE f16_in(x6) -> f192_in(x6) :|: TRUE f188_out(x7) -> f16_out(x7) :|: TRUE f16_in(x8) -> f188_in(x8) :|: TRUE f192_in(T19) -> f203_in(T19) :|: TRUE f203_out(x9) -> f192_out(x9) :|: TRUE f192_in(x10) -> f204_in :|: TRUE f204_out -> f192_out(x11) :|: TRUE f281_out(x12) -> f203_out(x12) :|: TRUE f280_out -> f281_in(x13) :|: TRUE f203_in(x14) -> f280_in :|: TRUE f280_in -> f286_in :|: TRUE f286_out -> f280_out :|: TRUE f286_in -> f287_in :|: TRUE f286_in -> f288_in :|: TRUE f287_out -> f286_out :|: TRUE f288_out -> f286_out :|: TRUE f296_out -> f288_out :|: TRUE f295_out -> f288_out :|: TRUE f288_in -> f295_in :|: TRUE f288_in -> f296_in :|: TRUE f296_in -> f309_in :|: TRUE f309_out -> f296_out :|: TRUE f296_in -> f308_in :|: TRUE f308_out -> f296_out :|: TRUE f308_in -> f312_in :|: TRUE f312_out -> f313_in :|: TRUE f313_out -> f308_out :|: TRUE f313_in -> f329_in :|: TRUE f330_out -> f313_out :|: TRUE f329_out -> f330_in :|: TRUE f281_in(x15) -> f359_in :|: TRUE f359_out -> f360_in(x16) :|: TRUE f360_out(x17) -> f281_out(x17) :|: TRUE f280_out -> f359_out :|: TRUE f359_in -> f280_in :|: TRUE Start term: f1_in(T2) ---------------------------------------- (69) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (70) TRUE ---------------------------------------- (71) Obligation: Rules: f334_in -> f341_in :|: TRUE f334_in -> f339_in :|: TRUE f339_out -> f334_out :|: TRUE f341_out -> f334_out :|: TRUE f330_in -> f333_in :|: TRUE f333_out -> f330_out :|: TRUE f296_in -> f309_in :|: TRUE f309_out -> f296_out :|: TRUE f296_in -> f308_in :|: TRUE f308_out -> f296_out :|: TRUE f313_in -> f329_in :|: TRUE f330_out -> f313_out :|: TRUE f329_out -> f330_in :|: TRUE f308_in -> f312_in :|: TRUE f312_out -> f313_in :|: TRUE f313_out -> f308_out :|: TRUE f351_in -> f330_in :|: TRUE f330_out -> f351_out :|: TRUE f339_in -> f339_out :|: TRUE f312_in -> f280_in :|: TRUE f280_out -> f312_out :|: TRUE f280_in -> f286_in :|: TRUE f286_out -> f280_out :|: TRUE f286_in -> f287_in :|: TRUE f286_in -> f288_in :|: TRUE f287_out -> f286_out :|: TRUE f288_out -> f286_out :|: TRUE f335_in -> f351_in :|: TRUE f335_in -> f356_in :|: TRUE f356_out -> f335_out :|: TRUE f351_out -> f335_out :|: TRUE f280_out -> f329_out :|: TRUE f329_in -> f280_in :|: TRUE f333_in -> f335_in :|: TRUE f335_out -> f333_out :|: TRUE f333_in -> f334_in :|: TRUE f334_out -> f333_out :|: TRUE f296_out -> f288_out :|: TRUE f295_out -> f288_out :|: TRUE f288_in -> f295_in :|: TRUE f288_in -> f296_in :|: TRUE f4_out(T2) -> f1_out(T2) :|: TRUE f1_in(x) -> f4_in(x) :|: TRUE f15_out(x1) -> f4_out(x1) :|: TRUE f4_in(x2) -> f15_in(x2) :|: TRUE f4_in(x3) -> f16_in(x3) :|: TRUE f16_out(x4) -> f4_out(x4) :|: TRUE f192_out(x5) -> f16_out(x5) :|: TRUE f16_in(x6) -> f192_in(x6) :|: TRUE f188_out(x7) -> f16_out(x7) :|: TRUE f16_in(x8) -> f188_in(x8) :|: TRUE f192_in(T19) -> f203_in(T19) :|: TRUE f203_out(x9) -> f192_out(x9) :|: TRUE f192_in(x10) -> f204_in :|: TRUE f204_out -> f192_out(x11) :|: TRUE f281_out(x12) -> f203_out(x12) :|: TRUE f280_out -> f281_in(x13) :|: TRUE f203_in(x14) -> f280_in :|: TRUE f281_in(x15) -> f359_in :|: TRUE f359_out -> f360_in(x16) :|: TRUE f360_out(x17) -> f281_out(x17) :|: TRUE f280_out -> f359_out :|: TRUE f359_in -> f280_in :|: TRUE Start term: f1_in(T2) ---------------------------------------- (72) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f296_in -> f308_in :|: TRUE f308_in -> f312_in :|: TRUE f312_in -> f280_in :|: TRUE f280_in -> f286_in :|: TRUE f286_in -> f288_in :|: TRUE f288_in -> f296_in :|: TRUE ---------------------------------------- (73) Obligation: Rules: f296_in -> f308_in :|: TRUE f308_in -> f312_in :|: TRUE f312_in -> f280_in :|: TRUE f280_in -> f286_in :|: TRUE f286_in -> f288_in :|: TRUE f288_in -> f296_in :|: TRUE ---------------------------------------- (74) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (75) Obligation: Rules: f296_in -> f296_in :|: TRUE ---------------------------------------- (76) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (77) Obligation: Rules: f296_in -> f296_in :|: TRUE ---------------------------------------- (78) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f296_in -> f296_in :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (79) Obligation: Termination digraph: Nodes: (1) f296_in -> f296_in :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (80) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f296_in() Replaced non-predefined constructor symbols by 0. ---------------------------------------- (81) Obligation: Rules: f296_in -> f296_in :|: TRUE ---------------------------------------- (82) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc) -> f(1) :|: pc = 1 && TRUE Witness term starting non-terminating reduction: f(1) ---------------------------------------- (83) NO ---------------------------------------- (84) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 3, "program": { "directives": [], "clauses": [ [ "(front (void) ([]))", null ], [ "(front (tree X (void) (void)) (. X ([])))", null ], [ "(front (tree X1 L R) Xs)", "(',' (front L Ls) (',' (front R Rs) (app Ls Rs Xs)))" ], [ "(app ([]) X X)", null ], [ "(app (. X Xs) Ys (. X Zs))", "(app Xs Ys Zs)" ] ] }, "graph": { "nodes": { "type": "Nodes", "590": { "goal": [{ "clause": 3, "scope": 15, "term": "(app ([]) T246 T245)" }], "kb": { "nonunifying": [[ "(front T236 (. T243 T245))", "(front (tree X119 (void) (void)) (. X119 ([])))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T243", "T245" ], "free": ["X119"], "exprvars": [] } }, "591": { "goal": [{ "clause": 4, "scope": 15, "term": "(app ([]) T246 T245)" }], "kb": { "nonunifying": [[ "(front T236 (. T243 T245))", "(front (tree X119 (void) (void)) (. X119 ([])))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T243", "T245" ], "free": ["X119"], "exprvars": [] } }, "471": { "goal": [ { "clause": 3, "scope": 10, "term": "(app (. T144 ([])) T143 (. T117 ([])))" }, { "clause": 4, "scope": 10, "term": "(app (. T144 ([])) T143 (. T117 ([])))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "592": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "472": { "goal": [{ "clause": 4, "scope": 10, "term": "(app (. T144 ([])) T143 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "593": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "352": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "473": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T151 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "594": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "474": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "595": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "475": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (front T163 X179) (',' (front T164 X180) (app X179 X180 X181))) (',' (front T165 X129) (app X181 X129 (. T117 ([])))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [ "X129", "X181", "X179", "X180" ], "exprvars": [] } }, "596": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (front T263 X275) (',' (front T264 X276) (app X275 X276 X277))) (',' (front T265 X216) (app X277 X216 T214)))" }], "kb": { "nonunifying": [ [ "(front T1 T214)", "(front (void) ([]))" ], [ "(front T1 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X216", "X277", "X275", "X276" ], "exprvars": [] } }, "355": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "476": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "597": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "477": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T163 X179)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X179"], "exprvars": [] } }, "598": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T263 X275)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X275"], "exprvars": [] } }, "357": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T50 T51 X58)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X58"], "exprvars": [] } }, "478": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (front T167 X180) (app T166 X180 X181)) (',' (front T168 X129) (app X181 X129 (. T117 ([])))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [ "X129", "X181", "X180" ], "exprvars": [] } }, "599": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (front T267 X276) (app T266 X276 X277)) (',' (front T268 X216) (app X277 X216 T214)))" }], "kb": { "nonunifying": [ [ "(front T269 T214)", "(front (void) ([]))" ], [ "(front T269 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X216", "X277", "X276" ], "exprvars": [] } }, "358": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "479": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T167 X180)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X180"], "exprvars": [] } }, "517": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T203 T204 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "518": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "519": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T215 X215) (',' (front T216 X216) (app X215 X216 T214)))" }], "kb": { "nonunifying": [ [ "(front T1 T214)", "(front (void) ([]))" ], [ "(front T1 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X215", "X216" ], "exprvars": [] } }, "480": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T170 T169 X181) (',' (front T171 X129) (app X181 X129 (. T117 ([])))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [ "X129", "X181" ], "exprvars": [] } }, "481": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T170 T169 X181)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X181"], "exprvars": [] } }, "482": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T175 X129) (app T174 X129 (. T117 ([]))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": ["X129"], "exprvars": [] } }, "483": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T175 X129)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X129"], "exprvars": [] } }, "363": { "goal": [ { "clause": 3, "scope": 5, "term": "(app ([]) T13 ([]))" }, { "clause": 4, "scope": 5, "term": "(app ([]) T13 ([]))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "484": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T179 T178 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "485": { "goal": [ { "clause": 3, "scope": 11, "term": "(app T179 T178 (. T117 ([])))" }, { "clause": 4, "scope": 11, "term": "(app T179 T178 (. T117 ([])))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "365": { "goal": [{ "clause": 3, "scope": 5, "term": "(app ([]) T13 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "486": { "goal": [{ "clause": 3, "scope": 11, "term": "(app T179 T178 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "3": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "366": { "goal": [{ "clause": 4, "scope": 5, "term": "(app ([]) T13 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "487": { "goal": [{ "clause": 4, "scope": 11, "term": "(app T179 T178 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "520": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "400": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (front T85 X101) (app T84 X101 X102)) (',' (front T86 X12) (app X102 X12 ([]))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X12", "X102", "X101" ], "exprvars": [] } }, "488": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "521": { "goal": [ { "clause": 0, "scope": 12, "term": "(',' (front T215 X215) (',' (front T216 X216) (app X215 X216 T214)))" }, { "clause": 1, "scope": 12, "term": "(',' (front T215 X215) (',' (front T216 X216) (app X215 X216 T214)))" }, { "clause": 2, "scope": 12, "term": "(',' (front T215 X215) (',' (front T216 X216) (app X215 X216 T214)))" } ], "kb": { "nonunifying": [ [ "(front T1 T214)", "(front (void) ([]))" ], [ "(front T1 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X215", "X216" ], "exprvars": [] } }, "401": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T85 X101)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X101"], "exprvars": [] } }, "489": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "522": { "goal": [{ "clause": 0, "scope": 12, "term": "(',' (front T215 X215) (',' (front T216 X216) (app X215 X216 T214)))" }], "kb": { "nonunifying": [ [ "(front T1 T214)", "(front (void) ([]))" ], [ "(front T1 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X215", "X216" ], "exprvars": [] } }, "369": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "402": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T88 T87 X102) (',' (front T89 X12) (app X102 X12 ([]))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X12", "X102" ], "exprvars": [] } }, "523": { "goal": [ { "clause": 1, "scope": 12, "term": "(',' (front T215 X215) (',' (front T216 X216) (app X215 X216 T214)))" }, { "clause": 2, "scope": 12, "term": "(',' (front T215 X215) (',' (front T216 X216) (app X215 X216 T214)))" } ], "kb": { "nonunifying": [ [ "(front T1 T214)", "(front (void) ([]))" ], [ "(front T1 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X215", "X216" ], "exprvars": [] } }, "524": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T217 X216) (app ([]) X216 T214))" }], "kb": { "nonunifying": [ [ "(front T1 T214)", "(front (void) ([]))" ], [ "(front T1 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X216" ], "exprvars": [] } }, "525": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "526": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T217 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X216"], "exprvars": [] } }, "527": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T218 T214)" }], "kb": { "nonunifying": [ [ "(front T219 T214)", "(front (void) ([]))" ], [ "(front T219 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": ["X119"], "exprvars": [] } }, "528": { "goal": [ { "clause": 3, "scope": 13, "term": "(app ([]) T218 T214)" }, { "clause": 4, "scope": 13, "term": "(app ([]) T218 T214)" } ], "kb": { "nonunifying": [ [ "(front T219 T214)", "(front (void) ([]))" ], [ "(front T219 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": ["X119"], "exprvars": [] } }, "529": { "goal": [{ "clause": 3, "scope": 13, "term": "(app ([]) T218 T214)" }], "kb": { "nonunifying": [ [ "(front T219 T214)", "(front (void) ([]))" ], [ "(front T219 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": ["X119"], "exprvars": [] } }, "26": { "goal": [ { "clause": 0, "scope": 1, "term": "(front T1 T2)" }, { "clause": 1, "scope": 1, "term": "(front T1 T2)" }, { "clause": 2, "scope": 1, "term": "(front T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "27": { "goal": [ { "clause": -1, "scope": -1, "term": "(true)" }, { "clause": 1, "scope": 1, "term": "(front T1 ([]))" }, { "clause": 2, "scope": 1, "term": "(front T1 ([]))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "28": { "goal": [ { "clause": 1, "scope": 1, "term": "(front T1 T2)" }, { "clause": 2, "scope": 1, "term": "(front T1 T2)" } ], "kb": { "nonunifying": [[ "(front T1 T2)", "(front (void) ([]))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "490": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "370": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "373": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "374": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "530": { "goal": [{ "clause": 4, "scope": 13, "term": "(app ([]) T218 T214)" }], "kb": { "nonunifying": [ [ "(front T219 T214)", "(front (void) ([]))" ], [ "(front T219 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": ["X119"], "exprvars": [] } }, "531": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "378": { "goal": [{ "clause": 1, "scope": 2, "term": "(',' (front T10 X11) (',' (front T11 X12) (app X11 X12 ([]))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X11", "X12" ], "exprvars": [] } }, "532": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "379": { "goal": [{ "clause": 2, "scope": 2, "term": "(',' (front T10 X11) (',' (front T11 X12) (app X11 X12 ([]))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X11", "X12" ], "exprvars": [] } }, "533": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "654": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T277 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X216"], "exprvars": [] } }, "534": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "655": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T282 T281 T214)" }], "kb": { "nonunifying": [ [ "(front T283 T214)", "(front (void) ([]))" ], [ "(front T283 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": ["X119"], "exprvars": [] } }, "535": { "goal": [{ "clause": 1, "scope": 12, "term": "(',' (front T215 X215) (',' (front T216 X216) (app X215 X216 T214)))" }], "kb": { "nonunifying": [ [ "(front T1 T214)", "(front (void) ([]))" ], [ "(front T1 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X215", "X216" ], "exprvars": [] } }, "656": { "goal": [ { "clause": 3, "scope": 16, "term": "(app T282 T281 T214)" }, { "clause": 4, "scope": 16, "term": "(app T282 T281 T214)" } ], "kb": { "nonunifying": [ [ "(front T283 T214)", "(front (void) ([]))" ], [ "(front T283 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": ["X119"], "exprvars": [] } }, "536": { "goal": [{ "clause": 2, "scope": 12, "term": "(',' (front T215 X215) (',' (front T216 X216) (app X215 X216 T214)))" }], "kb": { "nonunifying": [ [ "(front T1 T214)", "(front (void) ([]))" ], [ "(front T1 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X215", "X216" ], "exprvars": [] } }, "657": { "goal": [{ "clause": 3, "scope": 16, "term": "(app T282 T281 T214)" }], "kb": { "nonunifying": [ [ "(front T283 T214)", "(front (void) ([]))" ], [ "(front T283 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": ["X119"], "exprvars": [] } }, "537": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T232 X216) (app (. T233 ([])) X216 T214))" }], "kb": { "nonunifying": [ [ "(front T1 T214)", "(front (void) ([]))" ], [ "(front T1 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X216" ], "exprvars": [] } }, "658": { "goal": [{ "clause": 4, "scope": 16, "term": "(app T282 T281 T214)" }], "kb": { "nonunifying": [ [ "(front T283 T214)", "(front (void) ([]))" ], [ "(front T283 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": ["X119"], "exprvars": [] } }, "538": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "659": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "539": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T232 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X216"], "exprvars": [] } }, "419": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T88 T87 X102)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X102"], "exprvars": [] } }, "381": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T66 X12) (app (. T67 ([])) X12 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "382": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "660": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "540": { "goal": [{ "clause": -1, "scope": -1, "term": "(app (. T235 ([])) T234 T214)" }], "kb": { "nonunifying": [ [ "(front T236 T214)", "(front (void) ([]))" ], [ "(front T236 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": ["X119"], "exprvars": [] } }, "661": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "420": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T93 X12) (app T92 X12 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "541": { "goal": [ { "clause": 3, "scope": 14, "term": "(app (. T235 ([])) T234 T214)" }, { "clause": 4, "scope": 14, "term": "(app (. T235 ([])) T234 T214)" } ], "kb": { "nonunifying": [ [ "(front T236 T214)", "(front (void) ([]))" ], [ "(front T236 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": ["X119"], "exprvars": [] } }, "662": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T303 T304 T302)" }], "kb": { "nonunifying": [[ "(front T283 (. T299 T302))", "(front (tree X119 (void) (void)) (. X119 ([])))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T299", "T302" ], "free": ["X119"], "exprvars": [] } }, "421": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T93 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "542": { "goal": [{ "clause": 4, "scope": 14, "term": "(app (. T235 ([])) T234 T214)" }], "kb": { "nonunifying": [ [ "(front T236 T214)", "(front (void) ([]))" ], [ "(front T236 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": ["X119"], "exprvars": [] } }, "663": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "422": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T97 T96 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "543": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T246 T245)" }], "kb": { "nonunifying": [[ "(front T236 (. T243 T245))", "(front (tree X119 (void) (void)) (. X119 ([])))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T243", "T245" ], "free": ["X119"], "exprvars": [] } }, "664": { "goal": [ { "clause": 3, "scope": 17, "term": "(app T303 T304 T302)" }, { "clause": 4, "scope": 17, "term": "(app T303 T304 T302)" } ], "kb": { "nonunifying": [[ "(front T283 (. T299 T302))", "(front (tree X119 (void) (void)) (. X119 ([])))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T299", "T302" ], "free": ["X119"], "exprvars": [] } }, "423": { "goal": [ { "clause": 3, "scope": 7, "term": "(app T97 T96 ([]))" }, { "clause": 4, "scope": 7, "term": "(app T97 T96 ([]))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "544": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "665": { "goal": [{ "clause": 3, "scope": 17, "term": "(app T303 T304 T302)" }], "kb": { "nonunifying": [[ "(front T283 (. T299 T302))", "(front (tree X119 (void) (void)) (. X119 ([])))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T299", "T302" ], "free": ["X119"], "exprvars": [] } }, "303": { "goal": [{ "clause": 1, "scope": 3, "term": "(front T12 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "424": { "goal": [{ "clause": 3, "scope": 7, "term": "(app T97 T96 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "545": { "goal": [ { "clause": 3, "scope": 15, "term": "(app ([]) T246 T245)" }, { "clause": 4, "scope": 15, "term": "(app ([]) T246 T245)" } ], "kb": { "nonunifying": [[ "(front T236 (. T243 T245))", "(front (tree X119 (void) (void)) (. X119 ([])))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T243", "T245" ], "free": ["X119"], "exprvars": [] } }, "666": { "goal": [{ "clause": 4, "scope": 17, "term": "(app T303 T304 T302)" }], "kb": { "nonunifying": [[ "(front T283 (. T299 T302))", "(front (tree X119 (void) (void)) (. X119 ([])))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T299", "T302" ], "free": ["X119"], "exprvars": [] } }, "304": { "goal": [{ "clause": 2, "scope": 3, "term": "(front T12 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "425": { "goal": [{ "clause": 4, "scope": 7, "term": "(app T97 T96 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "667": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "305": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "426": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "668": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "306": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "427": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "669": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "307": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "428": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "429": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "390": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T66 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "391": { "goal": [{ "clause": -1, "scope": -1, "term": "(app (. T69 ([])) T68 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "394": { "goal": [ { "clause": 3, "scope": 6, "term": "(app (. T69 ([])) T68 ([]))" }, { "clause": 4, "scope": 6, "term": "(app (. T69 ([])) T68 ([]))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "395": { "goal": [{ "clause": 4, "scope": 6, "term": "(app (. T69 ([])) T68 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "670": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T324 T325 T323)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T323"], "free": [], "exprvars": [] } }, "396": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "671": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "397": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (front T81 X100) (',' (front T82 X101) (app X100 X101 X102))) (',' (front T83 X12) (app X102 X12 ([]))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X12", "X102", "X100", "X101" ], "exprvars": [] } }, "430": { "goal": [ { "clause": -1, "scope": -1, "term": "(true)" }, { "clause": 2, "scope": 1, "term": "(front T1 (. T109 ([])))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T109"], "free": [], "exprvars": [] } }, "672": { "goal": [ { "clause": 3, "scope": 18, "term": "(app T324 T325 T323)" }, { "clause": 4, "scope": 18, "term": "(app T324 T325 T323)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T323"], "free": [], "exprvars": [] } }, "310": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T28 X34) (',' (front T29 X35) (app X34 X35 X36)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X36", "X34", "X35" ], "exprvars": [] } }, "398": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "431": { "goal": [{ "clause": 2, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [ [ "(front T1 T2)", "(front (void) ([]))" ], [ "(front T1 T2)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": ["X119"], "exprvars": [] } }, "673": { "goal": [{ "clause": 3, "scope": 18, "term": "(app T324 T325 T323)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T323"], "free": [], "exprvars": [] } }, "311": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "399": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T81 X100)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X100"], "exprvars": [] } }, "432": { "goal": [{ "clause": 2, "scope": 1, "term": "(front T1 (. T109 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T109"], "free": [], "exprvars": [] } }, "674": { "goal": [{ "clause": 4, "scope": 18, "term": "(app T324 T325 T323)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T323"], "free": [], "exprvars": [] } }, "433": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T118 X128) (',' (front T119 X129) (app X128 X129 (. T117 ([])))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [ "X128", "X129" ], "exprvars": [] } }, "675": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "434": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "676": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "314": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T28 X34)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X34"], "exprvars": [] } }, "435": { "goal": [ { "clause": 0, "scope": 8, "term": "(',' (front T118 X128) (',' (front T119 X129) (app X128 X129 (. T117 ([])))))" }, { "clause": 1, "scope": 8, "term": "(',' (front T118 X128) (',' (front T119 X129) (app X128 X129 (. T117 ([])))))" }, { "clause": 2, "scope": 8, "term": "(',' (front T118 X128) (',' (front T119 X129) (app X128 X129 (. T117 ([])))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [ "X128", "X129" ], "exprvars": [] } }, "677": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "315": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T31 X35) (app T30 X35 X36))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X36", "X35" ], "exprvars": [] } }, "436": { "goal": [{ "clause": 0, "scope": 8, "term": "(',' (front T118 X128) (',' (front T119 X129) (app X128 X129 (. T117 ([])))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [ "X128", "X129" ], "exprvars": [] } }, "678": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T345 T346 T344)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T344"], "free": [], "exprvars": [] } }, "437": { "goal": [ { "clause": 1, "scope": 8, "term": "(',' (front T118 X128) (',' (front T119 X129) (app X128 X129 (. T117 ([])))))" }, { "clause": 2, "scope": 8, "term": "(',' (front T118 X128) (',' (front T119 X129) (app X128 X129 (. T117 ([])))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [ "X128", "X129" ], "exprvars": [] } }, "679": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "438": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T120 X129) (app ([]) X129 (. T117 ([]))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": ["X129"], "exprvars": [] } }, "439": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "284": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T12 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "285": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T13 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "440": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T120 X129)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X129"], "exprvars": [] } }, "441": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T121 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "442": { "goal": [ { "clause": 3, "scope": 9, "term": "(app ([]) T121 (. T117 ([])))" }, { "clause": 4, "scope": 9, "term": "(app ([]) T121 (. T117 ([])))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "289": { "goal": [ { "clause": 0, "scope": 3, "term": "(front T12 X12)" }, { "clause": 1, "scope": 3, "term": "(front T12 X12)" }, { "clause": 2, "scope": 3, "term": "(front T12 X12)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "443": { "goal": [{ "clause": 3, "scope": 9, "term": "(app ([]) T121 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "444": { "goal": [{ "clause": 4, "scope": 9, "term": "(app ([]) T121 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "445": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "446": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "600": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T267 X276)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X276"], "exprvars": [] } }, "447": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "601": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (app T271 T270 X277) (',' (front T272 X216) (app X277 X216 T214)))" }], "kb": { "nonunifying": [ [ "(front T273 T214)", "(front (void) ([]))" ], [ "(front T273 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X216", "X277" ], "exprvars": [] } }, "448": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "602": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T271 T270 X277)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X277"], "exprvars": [] } }, "207": { "goal": [ { "clause": 1, "scope": 1, "term": "(front T1 ([]))" }, { "clause": 2, "scope": 1, "term": "(front T1 ([]))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "449": { "goal": [{ "clause": 1, "scope": 8, "term": "(',' (front T118 X128) (',' (front T119 X129) (app X128 X129 (. T117 ([])))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [ "X128", "X129" ], "exprvars": [] } }, "603": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T277 X216) (app T276 X216 T214))" }], "kb": { "nonunifying": [ [ "(front T278 T214)", "(front (void) ([]))" ], [ "(front T278 T214)", "(front (tree X119 (void) (void)) (. X119 ([])))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T214"], "free": [ "X119", "X216" ], "exprvars": [] } }, "208": { "goal": [{ "clause": 2, "scope": 1, "term": "(front T1 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "209": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T10 X11) (',' (front T11 X12) (app X11 X12 ([]))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X11", "X12" ], "exprvars": [] } }, "290": { "goal": [{ "clause": 0, "scope": 3, "term": "(front T12 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "291": { "goal": [ { "clause": 1, "scope": 3, "term": "(front T12 X12)" }, { "clause": 2, "scope": 3, "term": "(front T12 X12)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "450": { "goal": [{ "clause": 2, "scope": 8, "term": "(',' (front T118 X128) (',' (front T119 X129) (app X128 X129 (. T117 ([])))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [ "X128", "X129" ], "exprvars": [] } }, "297": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "451": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T141 X129) (app (. T142 ([])) X129 (. T117 ([]))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": ["X129"], "exprvars": [] } }, "210": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "298": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "452": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "211": { "goal": [ { "clause": 0, "scope": 2, "term": "(',' (front T10 X11) (',' (front T11 X12) (app X11 X12 ([]))))" }, { "clause": 1, "scope": 2, "term": "(',' (front T10 X11) (',' (front T11 X12) (app X11 X12 ([]))))" }, { "clause": 2, "scope": 2, "term": "(',' (front T10 X11) (',' (front T11 X12) (app X11 X12 ([]))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X11", "X12" ], "exprvars": [] } }, "299": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "453": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T141 X129)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X129"], "exprvars": [] } }, "212": { "goal": [{ "clause": 0, "scope": 2, "term": "(',' (front T10 X11) (',' (front T11 X12) (app X11 X12 ([]))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X11", "X12" ], "exprvars": [] } }, "454": { "goal": [{ "clause": -1, "scope": -1, "term": "(app (. T144 ([])) T143 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "213": { "goal": [ { "clause": 1, "scope": 2, "term": "(',' (front T10 X11) (',' (front T11 X12) (app X11 X12 ([]))))" }, { "clause": 2, "scope": 2, "term": "(',' (front T10 X11) (',' (front T11 X12) (app X11 X12 ([]))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X11", "X12" ], "exprvars": [] } }, "215": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T12 X12) (app ([]) X12 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "336": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T31 X35)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X35"], "exprvars": [] } }, "337": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T33 T32 X36)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X36"], "exprvars": [] } }, "217": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "343": { "goal": [ { "clause": 3, "scope": 4, "term": "(app T33 T32 X36)" }, { "clause": 4, "scope": 4, "term": "(app T33 T32 X36)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X36"], "exprvars": [] } }, "345": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T33 T32 X36)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X36"], "exprvars": [] } }, "347": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T33 T32 X36)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X36"], "exprvars": [] } }, "349": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 3, "to": 26, "label": "CASE" }, { "from": 26, "to": 27, "label": "EVAL with clause\nfront(void, []).\nand substitutionT1 -> void,\nT2 -> []" }, { "from": 26, "to": 28, "label": "EVAL-BACKTRACK" }, { "from": 27, "to": 207, "label": "SUCCESS" }, { "from": 28, "to": 430, "label": "EVAL with clause\nfront(tree(X119, void, void), .(X119, [])).\nand substitutionX119 -> T109,\nT1 -> tree(T109, void, void),\nT2 -> .(T109, [])" }, { "from": 28, "to": 431, "label": "EVAL-BACKTRACK" }, { "from": 207, "to": 208, "label": "BACKTRACK\nfor clause: front(tree(X, void, void), .(X, []))because of non-unification" }, { "from": 208, "to": 209, "label": "EVAL with clause\nfront(tree(X7, X8, X9), X10) :- ','(front(X8, X11), ','(front(X9, X12), app(X11, X12, X10))).\nand substitutionX7 -> T7,\nX8 -> T10,\nX9 -> T11,\nT1 -> tree(T7, T10, T11),\nX10 -> [],\nT8 -> T10,\nT9 -> T11" }, { "from": 208, "to": 210, "label": "EVAL-BACKTRACK" }, { "from": 209, "to": 211, "label": "CASE" }, { "from": 211, "to": 212, "label": "PARALLEL" }, { "from": 211, "to": 213, "label": "PARALLEL" }, { "from": 212, "to": 215, "label": "EVAL with clause\nfront(void, []).\nand substitutionT10 -> void,\nX11 -> [],\nT11 -> T12" }, { "from": 212, "to": 217, "label": "EVAL-BACKTRACK" }, { "from": 213, "to": 378, "label": "PARALLEL" }, { "from": 213, "to": 379, "label": "PARALLEL" }, { "from": 215, "to": 284, "label": "SPLIT 1" }, { "from": 215, "to": 285, "label": "SPLIT 2\nreplacements:X12 -> T13" }, { "from": 284, "to": 289, "label": "CASE" }, { "from": 285, "to": 363, "label": "CASE" }, { "from": 289, "to": 290, "label": "PARALLEL" }, { "from": 289, "to": 291, "label": "PARALLEL" }, { "from": 290, "to": 297, "label": "EVAL with clause\nfront(void, []).\nand substitutionT12 -> void,\nX12 -> []" }, { "from": 290, "to": 298, "label": "EVAL-BACKTRACK" }, { "from": 291, "to": 303, "label": "PARALLEL" }, { "from": 291, "to": 304, "label": "PARALLEL" }, { "from": 297, "to": 299, "label": "SUCCESS" }, { "from": 303, "to": 305, "label": "EVAL with clause\nfront(tree(X17, void, void), .(X17, [])).\nand substitutionX17 -> T18,\nT12 -> tree(T18, void, void),\nX12 -> .(T18, [])" }, { "from": 303, "to": 306, "label": "EVAL-BACKTRACK" }, { "from": 304, "to": 310, "label": "EVAL with clause\nfront(tree(X30, X31, X32), X33) :- ','(front(X31, X34), ','(front(X32, X35), app(X34, X35, X33))).\nand substitutionX30 -> T25,\nX31 -> T28,\nX32 -> T29,\nT12 -> tree(T25, T28, T29),\nX12 -> X36,\nX33 -> X36,\nT26 -> T28,\nT27 -> T29" }, { "from": 304, "to": 311, "label": "EVAL-BACKTRACK" }, { "from": 305, "to": 307, "label": "SUCCESS" }, { "from": 310, "to": 314, "label": "SPLIT 1" }, { "from": 310, "to": 315, "label": "SPLIT 2\nreplacements:X34 -> T30,\nT29 -> T31" }, { "from": 314, "to": 284, "label": "INSTANCE with matching:\nT12 -> T28\nX12 -> X34" }, { "from": 315, "to": 336, "label": "SPLIT 1" }, { "from": 315, "to": 337, "label": "SPLIT 2\nreplacements:X35 -> T32,\nT30 -> T33" }, { "from": 336, "to": 284, "label": "INSTANCE with matching:\nT12 -> T31\nX12 -> X35" }, { "from": 337, "to": 343, "label": "CASE" }, { "from": 343, "to": 345, "label": "PARALLEL" }, { "from": 343, "to": 347, "label": "PARALLEL" }, { "from": 345, "to": 349, "label": "EVAL with clause\napp([], X43, X43).\nand substitutionT33 -> [],\nT32 -> T40,\nX43 -> T40,\nX36 -> T40" }, { "from": 345, "to": 352, "label": "EVAL-BACKTRACK" }, { "from": 347, "to": 357, "label": "EVAL with clause\napp(.(X54, X55), X56, .(X54, X57)) :- app(X55, X56, X57).\nand substitutionX54 -> T47,\nX55 -> T50,\nT33 -> .(T47, T50),\nT32 -> T51,\nX56 -> T51,\nX57 -> X58,\nX36 -> .(T47, X58),\nT48 -> T50,\nT49 -> T51" }, { "from": 347, "to": 358, "label": "EVAL-BACKTRACK" }, { "from": 349, "to": 355, "label": "SUCCESS" }, { "from": 357, "to": 337, "label": "INSTANCE with matching:\nT33 -> T50\nT32 -> T51\nX36 -> X58" }, { "from": 363, "to": 365, "label": "PARALLEL" }, { "from": 363, "to": 366, "label": "PARALLEL" }, { "from": 365, "to": 369, "label": "EVAL with clause\napp([], X67, X67).\nand substitutionT13 -> [],\nX67 -> [],\nT60 -> []" }, { "from": 365, "to": 370, "label": "EVAL-BACKTRACK" }, { "from": 366, "to": 374, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 369, "to": 373, "label": "SUCCESS" }, { "from": 378, "to": 381, "label": "EVAL with clause\nfront(tree(X76, void, void), .(X76, [])).\nand substitutionX76 -> T67,\nT10 -> tree(T67, void, void),\nX11 -> .(T67, []),\nT11 -> T66,\nT65 -> T67" }, { "from": 378, "to": 382, "label": "EVAL-BACKTRACK" }, { "from": 379, "to": 397, "label": "EVAL with clause\nfront(tree(X96, X97, X98), X99) :- ','(front(X97, X100), ','(front(X98, X101), app(X100, X101, X99))).\nand substitutionX96 -> T78,\nX97 -> T81,\nX98 -> T82,\nT10 -> tree(T78, T81, T82),\nX11 -> X102,\nX99 -> X102,\nT79 -> T81,\nT80 -> T82,\nT11 -> T83" }, { "from": 379, "to": 398, "label": "EVAL-BACKTRACK" }, { "from": 381, "to": 390, "label": "SPLIT 1" }, { "from": 381, "to": 391, "label": "SPLIT 2\nreplacements:X12 -> T68,\nT67 -> T69" }, { "from": 390, "to": 284, "label": "INSTANCE with matching:\nT12 -> T66" }, { "from": 391, "to": 394, "label": "CASE" }, { "from": 394, "to": 395, "label": "BACKTRACK\nfor clause: app([], X, X)because of non-unification" }, { "from": 395, "to": 396, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 397, "to": 399, "label": "SPLIT 1" }, { "from": 397, "to": 400, "label": "SPLIT 2\nreplacements:X100 -> T84,\nT82 -> T85,\nT83 -> T86" }, { "from": 399, "to": 284, "label": "INSTANCE with matching:\nT12 -> T81\nX12 -> X100" }, { "from": 400, "to": 401, "label": "SPLIT 1" }, { "from": 400, "to": 402, "label": "SPLIT 2\nreplacements:X101 -> T87,\nT84 -> T88,\nT86 -> T89" }, { "from": 401, "to": 284, "label": "INSTANCE with matching:\nT12 -> T85\nX12 -> X101" }, { "from": 402, "to": 419, "label": "SPLIT 1" }, { "from": 402, "to": 420, "label": "SPLIT 2\nreplacements:X102 -> T92,\nT89 -> T93" }, { "from": 419, "to": 337, "label": "INSTANCE with matching:\nT33 -> T88\nT32 -> T87\nX36 -> X102" }, { "from": 420, "to": 421, "label": "SPLIT 1" }, { "from": 420, "to": 422, "label": "SPLIT 2\nreplacements:X12 -> T96,\nT92 -> T97" }, { "from": 421, "to": 284, "label": "INSTANCE with matching:\nT12 -> T93" }, { "from": 422, "to": 423, "label": "CASE" }, { "from": 423, "to": 424, "label": "PARALLEL" }, { "from": 423, "to": 425, "label": "PARALLEL" }, { "from": 424, "to": 426, "label": "EVAL with clause\napp([], X113, X113).\nand substitutionT97 -> [],\nT96 -> [],\nX113 -> [],\nT104 -> []" }, { "from": 424, "to": 427, "label": "EVAL-BACKTRACK" }, { "from": 425, "to": 429, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 426, "to": 428, "label": "SUCCESS" }, { "from": 430, "to": 432, "label": "SUCCESS" }, { "from": 431, "to": 519, "label": "EVAL with clause\nfront(tree(X211, X212, X213), X214) :- ','(front(X212, X215), ','(front(X213, X216), app(X215, X216, X214))).\nand substitutionX211 -> T211,\nX212 -> T215,\nX213 -> T216,\nT1 -> tree(T211, T215, T216),\nT2 -> T214,\nX214 -> T214,\nT212 -> T215,\nT213 -> T216" }, { "from": 431, "to": 520, "label": "EVAL-BACKTRACK" }, { "from": 432, "to": 433, "label": "EVAL with clause\nfront(tree(X124, X125, X126), X127) :- ','(front(X125, X128), ','(front(X126, X129), app(X128, X129, X127))).\nand substitutionX124 -> T114,\nX125 -> T118,\nX126 -> T119,\nT1 -> tree(T114, T118, T119),\nT109 -> T117,\nX127 -> .(T117, []),\nT115 -> T118,\nT116 -> T119" }, { "from": 432, "to": 434, "label": "EVAL-BACKTRACK" }, { "from": 433, "to": 435, "label": "CASE" }, { "from": 435, "to": 436, "label": "PARALLEL" }, { "from": 435, "to": 437, "label": "PARALLEL" }, { "from": 436, "to": 438, "label": "EVAL with clause\nfront(void, []).\nand substitutionT118 -> void,\nX128 -> [],\nT119 -> T120" }, { "from": 436, "to": 439, "label": "EVAL-BACKTRACK" }, { "from": 437, "to": 449, "label": "PARALLEL" }, { "from": 437, "to": 450, "label": "PARALLEL" }, { "from": 438, "to": 440, "label": "SPLIT 1" }, { "from": 438, "to": 441, "label": "SPLIT 2\nreplacements:X129 -> T121" }, { "from": 440, "to": 284, "label": "INSTANCE with matching:\nT12 -> T120\nX12 -> X129" }, { "from": 441, "to": 442, "label": "CASE" }, { "from": 442, "to": 443, "label": "PARALLEL" }, { "from": 442, "to": 444, "label": "PARALLEL" }, { "from": 443, "to": 445, "label": "EVAL with clause\napp([], X136, X136).\nand substitutionT121 -> .(T135, []),\nX136 -> .(T135, []),\nT117 -> T135,\nT134 -> .(T135, [])" }, { "from": 443, "to": 446, "label": "EVAL-BACKTRACK" }, { "from": 444, "to": 448, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 445, "to": 447, "label": "SUCCESS" }, { "from": 449, "to": 451, "label": "EVAL with clause\nfront(tree(X145, void, void), .(X145, [])).\nand substitutionX145 -> T142,\nT118 -> tree(T142, void, void),\nX128 -> .(T142, []),\nT119 -> T141,\nT140 -> T142" }, { "from": 449, "to": 452, "label": "EVAL-BACKTRACK" }, { "from": 450, "to": 475, "label": "EVAL with clause\nfront(tree(X175, X176, X177), X178) :- ','(front(X176, X179), ','(front(X177, X180), app(X179, X180, X178))).\nand substitutionX175 -> T160,\nX176 -> T163,\nX177 -> T164,\nT118 -> tree(T160, T163, T164),\nX128 -> X181,\nX178 -> X181,\nT161 -> T163,\nT162 -> T164,\nT119 -> T165" }, { "from": 450, "to": 476, "label": "EVAL-BACKTRACK" }, { "from": 451, "to": 453, "label": "SPLIT 1" }, { "from": 451, "to": 454, "label": "SPLIT 2\nreplacements:X129 -> T143,\nT142 -> T144" }, { "from": 453, "to": 284, "label": "INSTANCE with matching:\nT12 -> T141\nX12 -> X129" }, { "from": 454, "to": 471, "label": "CASE" }, { "from": 471, "to": 472, "label": "BACKTRACK\nfor clause: app([], X, X)because of non-unification" }, { "from": 472, "to": 473, "label": "EVAL with clause\napp(.(X157, X158), X159, .(X157, X160)) :- app(X158, X159, X160).\nand substitutionT144 -> T149,\nX157 -> T149,\nX158 -> [],\nT143 -> T151,\nX159 -> T151,\nT117 -> T149,\nX160 -> [],\nT150 -> T151" }, { "from": 472, "to": 474, "label": "EVAL-BACKTRACK" }, { "from": 473, "to": 285, "label": "INSTANCE with matching:\nT13 -> T151" }, { "from": 475, "to": 477, "label": "SPLIT 1" }, { "from": 475, "to": 478, "label": "SPLIT 2\nreplacements:X179 -> T166,\nT164 -> T167,\nT165 -> T168" }, { "from": 477, "to": 284, "label": "INSTANCE with matching:\nT12 -> T163\nX12 -> X179" }, { "from": 478, "to": 479, "label": "SPLIT 1" }, { "from": 478, "to": 480, "label": "SPLIT 2\nreplacements:X180 -> T169,\nT166 -> T170,\nT168 -> T171" }, { "from": 479, "to": 284, "label": "INSTANCE with matching:\nT12 -> T167\nX12 -> X180" }, { "from": 480, "to": 481, "label": "SPLIT 1" }, { "from": 480, "to": 482, "label": "SPLIT 2\nreplacements:X181 -> T174,\nT171 -> T175" }, { "from": 481, "to": 337, "label": "INSTANCE with matching:\nT33 -> T170\nT32 -> T169\nX36 -> X181" }, { "from": 482, "to": 483, "label": "SPLIT 1" }, { "from": 482, "to": 484, "label": "SPLIT 2\nreplacements:X129 -> T178,\nT174 -> T179" }, { "from": 483, "to": 284, "label": "INSTANCE with matching:\nT12 -> T175\nX12 -> X129" }, { "from": 484, "to": 485, "label": "CASE" }, { "from": 485, "to": 486, "label": "PARALLEL" }, { "from": 485, "to": 487, "label": "PARALLEL" }, { "from": 486, "to": 488, "label": "EVAL with clause\napp([], X192, X192).\nand substitutionT179 -> [],\nT178 -> .(T193, []),\nX192 -> .(T193, []),\nT117 -> T193,\nT192 -> .(T193, [])" }, { "from": 486, "to": 489, "label": "EVAL-BACKTRACK" }, { "from": 487, "to": 517, "label": "EVAL with clause\napp(.(X201, X202), X203, .(X201, X204)) :- app(X202, X203, X204).\nand substitutionX201 -> T200,\nX202 -> T203,\nT179 -> .(T200, T203),\nT178 -> T204,\nX203 -> T204,\nT117 -> T200,\nX204 -> [],\nT201 -> T203,\nT202 -> T204" }, { "from": 487, "to": 518, "label": "EVAL-BACKTRACK" }, { "from": 488, "to": 490, "label": "SUCCESS" }, { "from": 517, "to": 422, "label": "INSTANCE with matching:\nT97 -> T203\nT96 -> T204" }, { "from": 519, "to": 521, "label": "CASE" }, { "from": 521, "to": 522, "label": "PARALLEL" }, { "from": 521, "to": 523, "label": "PARALLEL" }, { "from": 522, "to": 524, "label": "EVAL with clause\nfront(void, []).\nand substitutionT215 -> void,\nX215 -> [],\nT216 -> T217" }, { "from": 522, "to": 525, "label": "EVAL-BACKTRACK" }, { "from": 523, "to": 535, "label": "PARALLEL" }, { "from": 523, "to": 536, "label": "PARALLEL" }, { "from": 524, "to": 526, "label": "SPLIT 1" }, { "from": 524, "to": 527, "label": "SPLIT 2\nreplacements:X216 -> T218,\nT1 -> T219" }, { "from": 526, "to": 284, "label": "INSTANCE with matching:\nT12 -> T217\nX12 -> X216" }, { "from": 527, "to": 528, "label": "CASE" }, { "from": 528, "to": 529, "label": "PARALLEL" }, { "from": 528, "to": 530, "label": "PARALLEL" }, { "from": 529, "to": 531, "label": "EVAL with clause\napp([], X223, X223).\nand substitutionT218 -> T226,\nX223 -> T226,\nT214 -> T226" }, { "from": 529, "to": 532, "label": "EVAL-BACKTRACK" }, { "from": 530, "to": 534, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 531, "to": 533, "label": "SUCCESS" }, { "from": 535, "to": 537, "label": "EVAL with clause\nfront(tree(X232, void, void), .(X232, [])).\nand substitutionX232 -> T233,\nT215 -> tree(T233, void, void),\nX215 -> .(T233, []),\nT216 -> T232,\nT231 -> T233" }, { "from": 535, "to": 538, "label": "EVAL-BACKTRACK" }, { "from": 536, "to": 596, "label": "EVAL with clause\nfront(tree(X271, X272, X273), X274) :- ','(front(X272, X275), ','(front(X273, X276), app(X275, X276, X274))).\nand substitutionX271 -> T260,\nX272 -> T263,\nX273 -> T264,\nT215 -> tree(T260, T263, T264),\nX215 -> X277,\nX274 -> X277,\nT261 -> T263,\nT262 -> T264,\nT216 -> T265" }, { "from": 536, "to": 597, "label": "EVAL-BACKTRACK" }, { "from": 537, "to": 539, "label": "SPLIT 1" }, { "from": 537, "to": 540, "label": "SPLIT 2\nreplacements:X216 -> T234,\nT233 -> T235,\nT1 -> T236" }, { "from": 539, "to": 284, "label": "INSTANCE with matching:\nT12 -> T232\nX12 -> X216" }, { "from": 540, "to": 541, "label": "CASE" }, { "from": 541, "to": 542, "label": "BACKTRACK\nfor clause: app([], X, X)because of non-unification" }, { "from": 542, "to": 543, "label": "EVAL with clause\napp(.(X244, X245), X246, .(X244, X247)) :- app(X245, X246, X247).\nand substitutionT235 -> T243,\nX244 -> T243,\nX245 -> [],\nT234 -> T246,\nX246 -> T246,\nX247 -> T245,\nT214 -> .(T243, T245),\nT244 -> T246" }, { "from": 542, "to": 544, "label": "EVAL-BACKTRACK" }, { "from": 543, "to": 545, "label": "CASE" }, { "from": 545, "to": 590, "label": "PARALLEL" }, { "from": 545, "to": 591, "label": "PARALLEL" }, { "from": 590, "to": 592, "label": "EVAL with clause\napp([], X254, X254).\nand substitutionT246 -> T253,\nX254 -> T253,\nT245 -> T253" }, { "from": 590, "to": 593, "label": "EVAL-BACKTRACK" }, { "from": 591, "to": 595, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 592, "to": 594, "label": "SUCCESS" }, { "from": 596, "to": 598, "label": "SPLIT 1" }, { "from": 596, "to": 599, "label": "SPLIT 2\nreplacements:X275 -> T266,\nT264 -> T267,\nT265 -> T268,\nT1 -> T269" }, { "from": 598, "to": 284, "label": "INSTANCE with matching:\nT12 -> T263\nX12 -> X275" }, { "from": 599, "to": 600, "label": "SPLIT 1" }, { "from": 599, "to": 601, "label": "SPLIT 2\nreplacements:X276 -> T270,\nT266 -> T271,\nT268 -> T272,\nT269 -> T273" }, { "from": 600, "to": 284, "label": "INSTANCE with matching:\nT12 -> T267\nX12 -> X276" }, { "from": 601, "to": 602, "label": "SPLIT 1" }, { "from": 601, "to": 603, "label": "SPLIT 2\nreplacements:X277 -> T276,\nT272 -> T277,\nT273 -> T278" }, { "from": 602, "to": 337, "label": "INSTANCE with matching:\nT33 -> T271\nT32 -> T270\nX36 -> X277" }, { "from": 603, "to": 654, "label": "SPLIT 1" }, { "from": 603, "to": 655, "label": "SPLIT 2\nreplacements:X216 -> T281,\nT276 -> T282,\nT278 -> T283" }, { "from": 654, "to": 284, "label": "INSTANCE with matching:\nT12 -> T277\nX12 -> X216" }, { "from": 655, "to": 656, "label": "CASE" }, { "from": 656, "to": 657, "label": "PARALLEL" }, { "from": 656, "to": 658, "label": "PARALLEL" }, { "from": 657, "to": 659, "label": "EVAL with clause\napp([], X288, X288).\nand substitutionT282 -> [],\nT281 -> T290,\nX288 -> T290,\nT214 -> T290" }, { "from": 657, "to": 660, "label": "EVAL-BACKTRACK" }, { "from": 658, "to": 662, "label": "EVAL with clause\napp(.(X297, X298), X299, .(X297, X300)) :- app(X298, X299, X300).\nand substitutionX297 -> T299,\nX298 -> T303,\nT282 -> .(T299, T303),\nT281 -> T304,\nX299 -> T304,\nX300 -> T302,\nT214 -> .(T299, T302),\nT300 -> T303,\nT301 -> T304" }, { "from": 658, "to": 663, "label": "EVAL-BACKTRACK" }, { "from": 659, "to": 661, "label": "SUCCESS" }, { "from": 662, "to": 664, "label": "CASE" }, { "from": 664, "to": 665, "label": "PARALLEL" }, { "from": 664, "to": 666, "label": "PARALLEL" }, { "from": 665, "to": 667, "label": "EVAL with clause\napp([], X307, X307).\nand substitutionT303 -> [],\nT304 -> T311,\nX307 -> T311,\nT302 -> T311" }, { "from": 665, "to": 668, "label": "EVAL-BACKTRACK" }, { "from": 666, "to": 670, "label": "EVAL with clause\napp(.(X316, X317), X318, .(X316, X319)) :- app(X317, X318, X319).\nand substitutionX316 -> T320,\nX317 -> T324,\nT303 -> .(T320, T324),\nT304 -> T325,\nX318 -> T325,\nX319 -> T323,\nT302 -> .(T320, T323),\nT321 -> T324,\nT322 -> T325" }, { "from": 666, "to": 671, "label": "EVAL-BACKTRACK" }, { "from": 667, "to": 669, "label": "SUCCESS" }, { "from": 670, "to": 672, "label": "CASE" }, { "from": 672, "to": 673, "label": "PARALLEL" }, { "from": 672, "to": 674, "label": "PARALLEL" }, { "from": 673, "to": 675, "label": "EVAL with clause\napp([], X326, X326).\nand substitutionT324 -> [],\nT325 -> T332,\nX326 -> T332,\nT323 -> T332" }, { "from": 673, "to": 676, "label": "EVAL-BACKTRACK" }, { "from": 674, "to": 678, "label": "EVAL with clause\napp(.(X335, X336), X337, .(X335, X338)) :- app(X336, X337, X338).\nand substitutionX335 -> T341,\nX336 -> T345,\nT324 -> .(T341, T345),\nT325 -> T346,\nX337 -> T346,\nX338 -> T344,\nT323 -> .(T341, T344),\nT342 -> T345,\nT343 -> T346" }, { "from": 674, "to": 679, "label": "EVAL-BACKTRACK" }, { "from": 675, "to": 677, "label": "SUCCESS" }, { "from": 678, "to": 670, "label": "INSTANCE with matching:\nT324 -> T345\nT325 -> T346\nT323 -> T344" } ], "type": "Graph" } } ---------------------------------------- (85) Obligation: Triples: frontA(tree(X1, X2, X3), X4) :- frontA(X2, X5). frontA(tree(X1, X2, X3), X4) :- ','(frontcA(X2, X5), frontA(X3, X6)). frontA(tree(X1, X2, X3), X4) :- ','(frontcA(X2, X5), ','(frontcA(X3, X6), appB(X5, X6, X4))). appB(.(X1, X2), X3, .(X1, X4)) :- appB(X2, X3, X4). appE(.(X1, X2), X3, .(X1, X4)) :- appE(X2, X3, X4). frontF(tree(X1, void, X2), []) :- frontA(X2, X3). frontF(tree(X1, void, X2), []) :- ','(frontcA(X2, X3), appC(X3)). frontF(tree(X1, tree(X2, void, void), X3), []) :- frontA(X3, X4). frontF(tree(X1, tree(X2, X3, X4), X5), []) :- frontA(X3, X6). frontF(tree(X1, tree(X2, X3, X4), X5), []) :- ','(frontcA(X3, X6), frontA(X4, X7)). frontF(tree(X1, tree(X2, X3, X4), X5), []) :- ','(frontcA(X3, X6), ','(frontcA(X4, X7), appB(X6, X7, X8))). frontF(tree(X1, tree(X2, X3, X4), X5), []) :- ','(frontcA(X3, X6), ','(frontcA(X4, X7), ','(appcB(X6, X7, X8), frontA(X5, X9)))). frontF(tree(X1, tree(X2, X3, X4), X5), []) :- ','(frontcA(X3, X6), ','(frontcA(X4, X7), ','(appcB(X6, X7, X8), ','(frontcA(X5, X9), appD(X8, X9))))). frontF(tree(X1, void, X2), .(X3, [])) :- frontA(X2, X4). frontF(tree(X1, tree(X2, void, void), X3), .(X4, [])) :- frontA(X3, X5). frontF(tree(X1, tree(X2, void, void), X3), .(X2, [])) :- ','(frontcA(X3, X4), appC(X4)). frontF(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) :- frontA(X3, X7). frontF(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) :- ','(frontcA(X3, X7), frontA(X4, X8)). frontF(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) :- ','(frontcA(X3, X7), ','(frontcA(X4, X8), appB(X7, X8, X9))). frontF(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) :- ','(frontcA(X3, X7), ','(frontcA(X4, X8), ','(appcB(X7, X8, X9), frontA(X5, X10)))). frontF(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) :- ','(frontcA(X3, X7), ','(frontcA(X4, X8), ','(appcB(X7, X8, .(X6, X9)), ','(frontcA(X5, X10), appD(X9, X10))))). frontF(tree(X1, void, X2), X3) :- frontA(X2, X4). frontF(tree(X1, tree(X2, void, void), X3), X4) :- frontA(X3, X5). frontF(tree(X1, tree(X2, X3, X4), X5), X6) :- frontA(X3, X7). frontF(tree(X1, tree(X2, X3, X4), X5), X6) :- ','(frontcA(X3, X7), frontA(X4, X8)). frontF(tree(X1, tree(X2, X3, X4), X5), X6) :- ','(frontcA(X3, X7), ','(frontcA(X4, X8), appB(X7, X8, X9))). frontF(tree(X1, tree(X2, X3, X4), X5), X6) :- ','(frontcA(X3, X7), ','(frontcA(X4, X8), ','(appcB(X7, X8, X9), frontA(X5, X10)))). frontF(tree(X1, tree(X2, X3, X4), X5), .(X6, .(X7, X8))) :- ','(frontcA(X3, X9), ','(frontcA(X4, X10), ','(appcB(X9, X10, .(X6, .(X7, X11))), ','(frontcA(X5, X12), appE(X11, X12, X8))))). Clauses: frontcA(void, []). frontcA(tree(X1, void, void), .(X1, [])). frontcA(tree(X1, X2, X3), X4) :- ','(frontcA(X2, X5), ','(frontcA(X3, X6), appcB(X5, X6, X4))). appcB([], X1, X1). appcB(.(X1, X2), X3, .(X1, X4)) :- appcB(X2, X3, X4). appcC([]). appcD([], []). appcE([], X1, X1). appcE(.(X1, X2), X3, .(X1, X4)) :- appcE(X2, X3, X4). Afs: frontF(x1, x2) = frontF(x2) ---------------------------------------- (86) UndefinedPredicateInTriplesTransformerProof (SOUND) Deleted triples and predicates having undefined goals [DT09]. ---------------------------------------- (87) Obligation: Triples: frontA(tree(X1, X2, X3), X4) :- frontA(X2, X5). frontA(tree(X1, X2, X3), X4) :- ','(frontcA(X2, X5), frontA(X3, X6)). frontA(tree(X1, X2, X3), X4) :- ','(frontcA(X2, X5), ','(frontcA(X3, X6), appB(X5, X6, X4))). appB(.(X1, X2), X3, .(X1, X4)) :- appB(X2, X3, X4). appE(.(X1, X2), X3, .(X1, X4)) :- appE(X2, X3, X4). frontF(tree(X1, void, X2), []) :- frontA(X2, X3). frontF(tree(X1, tree(X2, void, void), X3), []) :- frontA(X3, X4). frontF(tree(X1, tree(X2, X3, X4), X5), []) :- frontA(X3, X6). frontF(tree(X1, tree(X2, X3, X4), X5), []) :- ','(frontcA(X3, X6), frontA(X4, X7)). frontF(tree(X1, tree(X2, X3, X4), X5), []) :- ','(frontcA(X3, X6), ','(frontcA(X4, X7), appB(X6, X7, X8))). frontF(tree(X1, tree(X2, X3, X4), X5), []) :- ','(frontcA(X3, X6), ','(frontcA(X4, X7), ','(appcB(X6, X7, X8), frontA(X5, X9)))). frontF(tree(X1, void, X2), .(X3, [])) :- frontA(X2, X4). frontF(tree(X1, tree(X2, void, void), X3), .(X4, [])) :- frontA(X3, X5). frontF(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) :- frontA(X3, X7). frontF(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) :- ','(frontcA(X3, X7), frontA(X4, X8)). frontF(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) :- ','(frontcA(X3, X7), ','(frontcA(X4, X8), appB(X7, X8, X9))). frontF(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) :- ','(frontcA(X3, X7), ','(frontcA(X4, X8), ','(appcB(X7, X8, X9), frontA(X5, X10)))). frontF(tree(X1, void, X2), X3) :- frontA(X2, X4). frontF(tree(X1, tree(X2, void, void), X3), X4) :- frontA(X3, X5). frontF(tree(X1, tree(X2, X3, X4), X5), X6) :- frontA(X3, X7). frontF(tree(X1, tree(X2, X3, X4), X5), X6) :- ','(frontcA(X3, X7), frontA(X4, X8)). frontF(tree(X1, tree(X2, X3, X4), X5), X6) :- ','(frontcA(X3, X7), ','(frontcA(X4, X8), appB(X7, X8, X9))). frontF(tree(X1, tree(X2, X3, X4), X5), X6) :- ','(frontcA(X3, X7), ','(frontcA(X4, X8), ','(appcB(X7, X8, X9), frontA(X5, X10)))). frontF(tree(X1, tree(X2, X3, X4), X5), .(X6, .(X7, X8))) :- ','(frontcA(X3, X9), ','(frontcA(X4, X10), ','(appcB(X9, X10, .(X6, .(X7, X11))), ','(frontcA(X5, X12), appE(X11, X12, X8))))). Clauses: frontcA(void, []). frontcA(tree(X1, void, void), .(X1, [])). frontcA(tree(X1, X2, X3), X4) :- ','(frontcA(X2, X5), ','(frontcA(X3, X6), appcB(X5, X6, X4))). appcB([], X1, X1). appcB(.(X1, X2), X3, .(X1, X4)) :- appcB(X2, X3, X4). appcC([]). appcD([], []). appcE([], X1, X1). appcE(.(X1, X2), X3, .(X1, X4)) :- appcE(X2, X3, X4). Afs: frontF(x1, x2) = frontF(x2) ---------------------------------------- (88) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: frontF_in_2: (f,b) frontA_in_2: (f,f) frontcA_in_2: (f,f) appcB_in_3: (b,b,f) appB_in_3: (b,b,f) appE_in_3: (b,b,b) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: FRONTF_IN_AG(tree(X1, void, X2), []) -> U8_AG(X1, X2, frontA_in_aa(X2, X3)) FRONTF_IN_AG(tree(X1, void, X2), []) -> FRONTA_IN_AA(X2, X3) FRONTA_IN_AA(tree(X1, X2, X3), X4) -> U1_AA(X1, X2, X3, X4, frontA_in_aa(X2, X5)) FRONTA_IN_AA(tree(X1, X2, X3), X4) -> FRONTA_IN_AA(X2, X5) FRONTA_IN_AA(tree(X1, X2, X3), X4) -> U2_AA(X1, X2, X3, X4, frontcA_in_aa(X2, X5)) U2_AA(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> U3_AA(X1, X2, X3, X4, frontA_in_aa(X3, X6)) U2_AA(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> FRONTA_IN_AA(X3, X6) U2_AA(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> U4_AA(X1, X2, X3, X4, X5, frontcA_in_aa(X3, X6)) U4_AA(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> U5_AA(X1, X2, X3, X4, appB_in_gga(X5, X6, X4)) U4_AA(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> APPB_IN_GGA(X5, X6, X4) APPB_IN_GGA(.(X1, X2), X3, .(X1, X4)) -> U6_GGA(X1, X2, X3, X4, appB_in_gga(X2, X3, X4)) APPB_IN_GGA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_GGA(X2, X3, X4) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), []) -> U9_AG(X1, X2, X3, frontA_in_aa(X3, X4)) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), []) -> FRONTA_IN_AA(X3, X4) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), []) -> U10_AG(X1, X2, X3, X4, X5, frontA_in_aa(X3, X6)) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), []) -> FRONTA_IN_AA(X3, X6) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), []) -> U11_AG(X1, X2, X3, X4, X5, frontcA_in_aa(X3, X6)) U11_AG(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> U12_AG(X1, X2, X3, X4, X5, frontA_in_aa(X4, X7)) U11_AG(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> FRONTA_IN_AA(X4, X7) U11_AG(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> U13_AG(X1, X2, X3, X4, X5, X6, frontcA_in_aa(X4, X7)) U13_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X4, X7)) -> U14_AG(X1, X2, X3, X4, X5, appB_in_gga(X6, X7, X8)) U13_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X4, X7)) -> APPB_IN_GGA(X6, X7, X8) U13_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X4, X7)) -> U15_AG(X1, X2, X3, X4, X5, appcB_in_gga(X6, X7, X8)) U15_AG(X1, X2, X3, X4, X5, appcB_out_gga(X6, X7, X8)) -> U16_AG(X1, X2, X3, X4, X5, frontA_in_aa(X5, X9)) U15_AG(X1, X2, X3, X4, X5, appcB_out_gga(X6, X7, X8)) -> FRONTA_IN_AA(X5, X9) FRONTF_IN_AG(tree(X1, void, X2), .(X3, [])) -> U17_AG(X1, X2, X3, frontA_in_aa(X2, X4)) FRONTF_IN_AG(tree(X1, void, X2), .(X3, [])) -> FRONTA_IN_AA(X2, X4) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), .(X4, [])) -> U18_AG(X1, X2, X3, X4, frontA_in_aa(X3, X5)) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), .(X4, [])) -> FRONTA_IN_AA(X3, X5) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) -> U19_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X3, X7)) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) -> FRONTA_IN_AA(X3, X7) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) -> U20_AG(X1, X2, X3, X4, X5, X6, frontcA_in_aa(X3, X7)) U20_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> U21_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X4, X8)) U20_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> FRONTA_IN_AA(X4, X8) U20_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> U22_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_in_aa(X4, X8)) U22_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> U23_AG(X1, X2, X3, X4, X5, X6, appB_in_gga(X7, X8, X9)) U22_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> APPB_IN_GGA(X7, X8, X9) U22_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> U24_AG(X1, X2, X3, X4, X5, X6, appcB_in_gga(X7, X8, X9)) U24_AG(X1, X2, X3, X4, X5, X6, appcB_out_gga(X7, X8, X9)) -> U25_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X5, X10)) U24_AG(X1, X2, X3, X4, X5, X6, appcB_out_gga(X7, X8, X9)) -> FRONTA_IN_AA(X5, X10) FRONTF_IN_AG(tree(X1, void, X2), X3) -> U26_AG(X1, X2, X3, frontA_in_aa(X2, X4)) FRONTF_IN_AG(tree(X1, void, X2), X3) -> FRONTA_IN_AA(X2, X4) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), X4) -> U27_AG(X1, X2, X3, X4, frontA_in_aa(X3, X5)) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), X4) -> FRONTA_IN_AA(X3, X5) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), X6) -> U28_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X3, X7)) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), X6) -> FRONTA_IN_AA(X3, X7) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), X6) -> U29_AG(X1, X2, X3, X4, X5, X6, frontcA_in_aa(X3, X7)) U29_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> U30_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X4, X8)) U29_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> FRONTA_IN_AA(X4, X8) U29_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> U31_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_in_aa(X4, X8)) U31_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> U32_AG(X1, X2, X3, X4, X5, X6, appB_in_gga(X7, X8, X9)) U31_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> APPB_IN_GGA(X7, X8, X9) U31_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> U33_AG(X1, X2, X3, X4, X5, X6, appcB_in_gga(X7, X8, X9)) U33_AG(X1, X2, X3, X4, X5, X6, appcB_out_gga(X7, X8, X9)) -> U34_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X5, X10)) U33_AG(X1, X2, X3, X4, X5, X6, appcB_out_gga(X7, X8, X9)) -> FRONTA_IN_AA(X5, X10) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), .(X6, .(X7, X8))) -> U35_AG(X1, X2, X3, X4, X5, X6, X7, X8, frontcA_in_aa(X3, X9)) U35_AG(X1, X2, X3, X4, X5, X6, X7, X8, frontcA_out_aa(X3, X9)) -> U36_AG(X1, X2, X3, X4, X5, X6, X7, X8, X9, frontcA_in_aa(X4, X10)) U36_AG(X1, X2, X3, X4, X5, X6, X7, X8, X9, frontcA_out_aa(X4, X10)) -> U37_AG(X1, X2, X3, X4, X5, X6, X7, X8, appcB_in_gga(X9, X10, .(X6, .(X7, X11)))) U37_AG(X1, X2, X3, X4, X5, X6, X7, X8, appcB_out_gga(X9, X10, .(X6, .(X7, X11)))) -> U38_AG(X1, X2, X3, X4, X5, X6, X7, X8, X11, frontcA_in_aa(X5, X12)) U38_AG(X1, X2, X3, X4, X5, X6, X7, X8, X11, frontcA_out_aa(X5, X12)) -> U39_AG(X1, X2, X3, X4, X5, X6, X7, X8, appE_in_ggg(X11, X12, X8)) U38_AG(X1, X2, X3, X4, X5, X6, X7, X8, X11, frontcA_out_aa(X5, X12)) -> APPE_IN_GGG(X11, X12, X8) APPE_IN_GGG(.(X1, X2), X3, .(X1, X4)) -> U7_GGG(X1, X2, X3, X4, appE_in_ggg(X2, X3, X4)) APPE_IN_GGG(.(X1, X2), X3, .(X1, X4)) -> APPE_IN_GGG(X2, X3, X4) The TRS R consists of the following rules: frontcA_in_aa(void, []) -> frontcA_out_aa(void, []) frontcA_in_aa(tree(X1, void, void), .(X1, [])) -> frontcA_out_aa(tree(X1, void, void), .(X1, [])) frontcA_in_aa(tree(X1, X2, X3), X4) -> U41_aa(X1, X2, X3, X4, frontcA_in_aa(X2, X5)) U41_aa(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> U42_aa(X1, X2, X3, X4, X5, frontcA_in_aa(X3, X6)) U42_aa(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> U43_aa(X1, X2, X3, X4, appcB_in_gga(X5, X6, X4)) appcB_in_gga([], X1, X1) -> appcB_out_gga([], X1, X1) appcB_in_gga(.(X1, X2), X3, .(X1, X4)) -> U44_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U44_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, .(X1, X4)) U43_aa(X1, X2, X3, X4, appcB_out_gga(X5, X6, X4)) -> frontcA_out_aa(tree(X1, X2, X3), X4) The argument filtering Pi contains the following mapping: [] = [] frontA_in_aa(x1, x2) = frontA_in_aa frontcA_in_aa(x1, x2) = frontcA_in_aa frontcA_out_aa(x1, x2) = frontcA_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) .(x1, x2) = .(x2) U41_aa(x1, x2, x3, x4, x5) = U41_aa(x5) U42_aa(x1, x2, x3, x4, x5, x6) = U42_aa(x2, x5, x6) U43_aa(x1, x2, x3, x4, x5) = U43_aa(x2, x3, x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2, x3) U44_gga(x1, x2, x3, x4, x5) = U44_gga(x2, x3, x5) appB_in_gga(x1, x2, x3) = appB_in_gga(x1, x2) appE_in_ggg(x1, x2, x3) = appE_in_ggg(x1, x2, x3) FRONTF_IN_AG(x1, x2) = FRONTF_IN_AG(x2) U8_AG(x1, x2, x3) = U8_AG(x3) FRONTA_IN_AA(x1, x2) = FRONTA_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) U2_AA(x1, x2, x3, x4, x5) = U2_AA(x5) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) U4_AA(x1, x2, x3, x4, x5, x6) = U4_AA(x5, x6) U5_AA(x1, x2, x3, x4, x5) = U5_AA(x5) APPB_IN_GGA(x1, x2, x3) = APPB_IN_GGA(x1, x2) U6_GGA(x1, x2, x3, x4, x5) = U6_GGA(x2, x3, x5) U9_AG(x1, x2, x3, x4) = U9_AG(x4) U10_AG(x1, x2, x3, x4, x5, x6) = U10_AG(x6) U11_AG(x1, x2, x3, x4, x5, x6) = U11_AG(x6) U12_AG(x1, x2, x3, x4, x5, x6) = U12_AG(x6) U13_AG(x1, x2, x3, x4, x5, x6, x7) = U13_AG(x6, x7) U14_AG(x1, x2, x3, x4, x5, x6) = U14_AG(x6) U15_AG(x1, x2, x3, x4, x5, x6) = U15_AG(x6) U16_AG(x1, x2, x3, x4, x5, x6) = U16_AG(x6) U17_AG(x1, x2, x3, x4) = U17_AG(x4) U18_AG(x1, x2, x3, x4, x5) = U18_AG(x5) U19_AG(x1, x2, x3, x4, x5, x6, x7) = U19_AG(x7) U20_AG(x1, x2, x3, x4, x5, x6, x7) = U20_AG(x7) U21_AG(x1, x2, x3, x4, x5, x6, x7) = U21_AG(x7) U22_AG(x1, x2, x3, x4, x5, x6, x7, x8) = U22_AG(x7, x8) U23_AG(x1, x2, x3, x4, x5, x6, x7) = U23_AG(x7) U24_AG(x1, x2, x3, x4, x5, x6, x7) = U24_AG(x7) U25_AG(x1, x2, x3, x4, x5, x6, x7) = U25_AG(x7) U26_AG(x1, x2, x3, x4) = U26_AG(x3, x4) U27_AG(x1, x2, x3, x4, x5) = U27_AG(x4, x5) U28_AG(x1, x2, x3, x4, x5, x6, x7) = U28_AG(x6, x7) U29_AG(x1, x2, x3, x4, x5, x6, x7) = U29_AG(x6, x7) U30_AG(x1, x2, x3, x4, x5, x6, x7) = U30_AG(x6, x7) U31_AG(x1, x2, x3, x4, x5, x6, x7, x8) = U31_AG(x6, x7, x8) U32_AG(x1, x2, x3, x4, x5, x6, x7) = U32_AG(x6, x7) U33_AG(x1, x2, x3, x4, x5, x6, x7) = U33_AG(x6, x7) U34_AG(x1, x2, x3, x4, x5, x6, x7) = U34_AG(x6, x7) U35_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U35_AG(x8, x9) U36_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U36_AG(x8, x9, x10) U37_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U37_AG(x8, x9) U38_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U38_AG(x8, x9, x10) U39_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U39_AG(x8, x9) APPE_IN_GGG(x1, x2, x3) = APPE_IN_GGG(x1, x2, x3) U7_GGG(x1, x2, x3, x4, x5) = U7_GGG(x2, x3, x4, x5) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (89) Obligation: Pi DP problem: The TRS P consists of the following rules: FRONTF_IN_AG(tree(X1, void, X2), []) -> U8_AG(X1, X2, frontA_in_aa(X2, X3)) FRONTF_IN_AG(tree(X1, void, X2), []) -> FRONTA_IN_AA(X2, X3) FRONTA_IN_AA(tree(X1, X2, X3), X4) -> U1_AA(X1, X2, X3, X4, frontA_in_aa(X2, X5)) FRONTA_IN_AA(tree(X1, X2, X3), X4) -> FRONTA_IN_AA(X2, X5) FRONTA_IN_AA(tree(X1, X2, X3), X4) -> U2_AA(X1, X2, X3, X4, frontcA_in_aa(X2, X5)) U2_AA(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> U3_AA(X1, X2, X3, X4, frontA_in_aa(X3, X6)) U2_AA(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> FRONTA_IN_AA(X3, X6) U2_AA(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> U4_AA(X1, X2, X3, X4, X5, frontcA_in_aa(X3, X6)) U4_AA(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> U5_AA(X1, X2, X3, X4, appB_in_gga(X5, X6, X4)) U4_AA(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> APPB_IN_GGA(X5, X6, X4) APPB_IN_GGA(.(X1, X2), X3, .(X1, X4)) -> U6_GGA(X1, X2, X3, X4, appB_in_gga(X2, X3, X4)) APPB_IN_GGA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_GGA(X2, X3, X4) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), []) -> U9_AG(X1, X2, X3, frontA_in_aa(X3, X4)) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), []) -> FRONTA_IN_AA(X3, X4) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), []) -> U10_AG(X1, X2, X3, X4, X5, frontA_in_aa(X3, X6)) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), []) -> FRONTA_IN_AA(X3, X6) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), []) -> U11_AG(X1, X2, X3, X4, X5, frontcA_in_aa(X3, X6)) U11_AG(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> U12_AG(X1, X2, X3, X4, X5, frontA_in_aa(X4, X7)) U11_AG(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> FRONTA_IN_AA(X4, X7) U11_AG(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> U13_AG(X1, X2, X3, X4, X5, X6, frontcA_in_aa(X4, X7)) U13_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X4, X7)) -> U14_AG(X1, X2, X3, X4, X5, appB_in_gga(X6, X7, X8)) U13_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X4, X7)) -> APPB_IN_GGA(X6, X7, X8) U13_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X4, X7)) -> U15_AG(X1, X2, X3, X4, X5, appcB_in_gga(X6, X7, X8)) U15_AG(X1, X2, X3, X4, X5, appcB_out_gga(X6, X7, X8)) -> U16_AG(X1, X2, X3, X4, X5, frontA_in_aa(X5, X9)) U15_AG(X1, X2, X3, X4, X5, appcB_out_gga(X6, X7, X8)) -> FRONTA_IN_AA(X5, X9) FRONTF_IN_AG(tree(X1, void, X2), .(X3, [])) -> U17_AG(X1, X2, X3, frontA_in_aa(X2, X4)) FRONTF_IN_AG(tree(X1, void, X2), .(X3, [])) -> FRONTA_IN_AA(X2, X4) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), .(X4, [])) -> U18_AG(X1, X2, X3, X4, frontA_in_aa(X3, X5)) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), .(X4, [])) -> FRONTA_IN_AA(X3, X5) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) -> U19_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X3, X7)) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) -> FRONTA_IN_AA(X3, X7) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), .(X6, [])) -> U20_AG(X1, X2, X3, X4, X5, X6, frontcA_in_aa(X3, X7)) U20_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> U21_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X4, X8)) U20_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> FRONTA_IN_AA(X4, X8) U20_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> U22_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_in_aa(X4, X8)) U22_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> U23_AG(X1, X2, X3, X4, X5, X6, appB_in_gga(X7, X8, X9)) U22_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> APPB_IN_GGA(X7, X8, X9) U22_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> U24_AG(X1, X2, X3, X4, X5, X6, appcB_in_gga(X7, X8, X9)) U24_AG(X1, X2, X3, X4, X5, X6, appcB_out_gga(X7, X8, X9)) -> U25_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X5, X10)) U24_AG(X1, X2, X3, X4, X5, X6, appcB_out_gga(X7, X8, X9)) -> FRONTA_IN_AA(X5, X10) FRONTF_IN_AG(tree(X1, void, X2), X3) -> U26_AG(X1, X2, X3, frontA_in_aa(X2, X4)) FRONTF_IN_AG(tree(X1, void, X2), X3) -> FRONTA_IN_AA(X2, X4) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), X4) -> U27_AG(X1, X2, X3, X4, frontA_in_aa(X3, X5)) FRONTF_IN_AG(tree(X1, tree(X2, void, void), X3), X4) -> FRONTA_IN_AA(X3, X5) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), X6) -> U28_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X3, X7)) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), X6) -> FRONTA_IN_AA(X3, X7) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), X6) -> U29_AG(X1, X2, X3, X4, X5, X6, frontcA_in_aa(X3, X7)) U29_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> U30_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X4, X8)) U29_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> FRONTA_IN_AA(X4, X8) U29_AG(X1, X2, X3, X4, X5, X6, frontcA_out_aa(X3, X7)) -> U31_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_in_aa(X4, X8)) U31_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> U32_AG(X1, X2, X3, X4, X5, X6, appB_in_gga(X7, X8, X9)) U31_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> APPB_IN_GGA(X7, X8, X9) U31_AG(X1, X2, X3, X4, X5, X6, X7, frontcA_out_aa(X4, X8)) -> U33_AG(X1, X2, X3, X4, X5, X6, appcB_in_gga(X7, X8, X9)) U33_AG(X1, X2, X3, X4, X5, X6, appcB_out_gga(X7, X8, X9)) -> U34_AG(X1, X2, X3, X4, X5, X6, frontA_in_aa(X5, X10)) U33_AG(X1, X2, X3, X4, X5, X6, appcB_out_gga(X7, X8, X9)) -> FRONTA_IN_AA(X5, X10) FRONTF_IN_AG(tree(X1, tree(X2, X3, X4), X5), .(X6, .(X7, X8))) -> U35_AG(X1, X2, X3, X4, X5, X6, X7, X8, frontcA_in_aa(X3, X9)) U35_AG(X1, X2, X3, X4, X5, X6, X7, X8, frontcA_out_aa(X3, X9)) -> U36_AG(X1, X2, X3, X4, X5, X6, X7, X8, X9, frontcA_in_aa(X4, X10)) U36_AG(X1, X2, X3, X4, X5, X6, X7, X8, X9, frontcA_out_aa(X4, X10)) -> U37_AG(X1, X2, X3, X4, X5, X6, X7, X8, appcB_in_gga(X9, X10, .(X6, .(X7, X11)))) U37_AG(X1, X2, X3, X4, X5, X6, X7, X8, appcB_out_gga(X9, X10, .(X6, .(X7, X11)))) -> U38_AG(X1, X2, X3, X4, X5, X6, X7, X8, X11, frontcA_in_aa(X5, X12)) U38_AG(X1, X2, X3, X4, X5, X6, X7, X8, X11, frontcA_out_aa(X5, X12)) -> U39_AG(X1, X2, X3, X4, X5, X6, X7, X8, appE_in_ggg(X11, X12, X8)) U38_AG(X1, X2, X3, X4, X5, X6, X7, X8, X11, frontcA_out_aa(X5, X12)) -> APPE_IN_GGG(X11, X12, X8) APPE_IN_GGG(.(X1, X2), X3, .(X1, X4)) -> U7_GGG(X1, X2, X3, X4, appE_in_ggg(X2, X3, X4)) APPE_IN_GGG(.(X1, X2), X3, .(X1, X4)) -> APPE_IN_GGG(X2, X3, X4) The TRS R consists of the following rules: frontcA_in_aa(void, []) -> frontcA_out_aa(void, []) frontcA_in_aa(tree(X1, void, void), .(X1, [])) -> frontcA_out_aa(tree(X1, void, void), .(X1, [])) frontcA_in_aa(tree(X1, X2, X3), X4) -> U41_aa(X1, X2, X3, X4, frontcA_in_aa(X2, X5)) U41_aa(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> U42_aa(X1, X2, X3, X4, X5, frontcA_in_aa(X3, X6)) U42_aa(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> U43_aa(X1, X2, X3, X4, appcB_in_gga(X5, X6, X4)) appcB_in_gga([], X1, X1) -> appcB_out_gga([], X1, X1) appcB_in_gga(.(X1, X2), X3, .(X1, X4)) -> U44_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U44_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, .(X1, X4)) U43_aa(X1, X2, X3, X4, appcB_out_gga(X5, X6, X4)) -> frontcA_out_aa(tree(X1, X2, X3), X4) The argument filtering Pi contains the following mapping: [] = [] frontA_in_aa(x1, x2) = frontA_in_aa frontcA_in_aa(x1, x2) = frontcA_in_aa frontcA_out_aa(x1, x2) = frontcA_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) .(x1, x2) = .(x2) U41_aa(x1, x2, x3, x4, x5) = U41_aa(x5) U42_aa(x1, x2, x3, x4, x5, x6) = U42_aa(x2, x5, x6) U43_aa(x1, x2, x3, x4, x5) = U43_aa(x2, x3, x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2, x3) U44_gga(x1, x2, x3, x4, x5) = U44_gga(x2, x3, x5) appB_in_gga(x1, x2, x3) = appB_in_gga(x1, x2) appE_in_ggg(x1, x2, x3) = appE_in_ggg(x1, x2, x3) FRONTF_IN_AG(x1, x2) = FRONTF_IN_AG(x2) U8_AG(x1, x2, x3) = U8_AG(x3) FRONTA_IN_AA(x1, x2) = FRONTA_IN_AA U1_AA(x1, x2, x3, x4, x5) = U1_AA(x5) U2_AA(x1, x2, x3, x4, x5) = U2_AA(x5) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) U4_AA(x1, x2, x3, x4, x5, x6) = U4_AA(x5, x6) U5_AA(x1, x2, x3, x4, x5) = U5_AA(x5) APPB_IN_GGA(x1, x2, x3) = APPB_IN_GGA(x1, x2) U6_GGA(x1, x2, x3, x4, x5) = U6_GGA(x2, x3, x5) U9_AG(x1, x2, x3, x4) = U9_AG(x4) U10_AG(x1, x2, x3, x4, x5, x6) = U10_AG(x6) U11_AG(x1, x2, x3, x4, x5, x6) = U11_AG(x6) U12_AG(x1, x2, x3, x4, x5, x6) = U12_AG(x6) U13_AG(x1, x2, x3, x4, x5, x6, x7) = U13_AG(x6, x7) U14_AG(x1, x2, x3, x4, x5, x6) = U14_AG(x6) U15_AG(x1, x2, x3, x4, x5, x6) = U15_AG(x6) U16_AG(x1, x2, x3, x4, x5, x6) = U16_AG(x6) U17_AG(x1, x2, x3, x4) = U17_AG(x4) U18_AG(x1, x2, x3, x4, x5) = U18_AG(x5) U19_AG(x1, x2, x3, x4, x5, x6, x7) = U19_AG(x7) U20_AG(x1, x2, x3, x4, x5, x6, x7) = U20_AG(x7) U21_AG(x1, x2, x3, x4, x5, x6, x7) = U21_AG(x7) U22_AG(x1, x2, x3, x4, x5, x6, x7, x8) = U22_AG(x7, x8) U23_AG(x1, x2, x3, x4, x5, x6, x7) = U23_AG(x7) U24_AG(x1, x2, x3, x4, x5, x6, x7) = U24_AG(x7) U25_AG(x1, x2, x3, x4, x5, x6, x7) = U25_AG(x7) U26_AG(x1, x2, x3, x4) = U26_AG(x3, x4) U27_AG(x1, x2, x3, x4, x5) = U27_AG(x4, x5) U28_AG(x1, x2, x3, x4, x5, x6, x7) = U28_AG(x6, x7) U29_AG(x1, x2, x3, x4, x5, x6, x7) = U29_AG(x6, x7) U30_AG(x1, x2, x3, x4, x5, x6, x7) = U30_AG(x6, x7) U31_AG(x1, x2, x3, x4, x5, x6, x7, x8) = U31_AG(x6, x7, x8) U32_AG(x1, x2, x3, x4, x5, x6, x7) = U32_AG(x6, x7) U33_AG(x1, x2, x3, x4, x5, x6, x7) = U33_AG(x6, x7) U34_AG(x1, x2, x3, x4, x5, x6, x7) = U34_AG(x6, x7) U35_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U35_AG(x8, x9) U36_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U36_AG(x8, x9, x10) U37_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U37_AG(x8, x9) U38_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U38_AG(x8, x9, x10) U39_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U39_AG(x8, x9) APPE_IN_GGG(x1, x2, x3) = APPE_IN_GGG(x1, x2, x3) U7_GGG(x1, x2, x3, x4, x5) = U7_GGG(x2, x3, x4, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (90) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 58 less nodes. ---------------------------------------- (91) Complex Obligation (AND) ---------------------------------------- (92) Obligation: Pi DP problem: The TRS P consists of the following rules: APPE_IN_GGG(.(X1, X2), X3, .(X1, X4)) -> APPE_IN_GGG(X2, X3, X4) The TRS R consists of the following rules: frontcA_in_aa(void, []) -> frontcA_out_aa(void, []) frontcA_in_aa(tree(X1, void, void), .(X1, [])) -> frontcA_out_aa(tree(X1, void, void), .(X1, [])) frontcA_in_aa(tree(X1, X2, X3), X4) -> U41_aa(X1, X2, X3, X4, frontcA_in_aa(X2, X5)) U41_aa(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> U42_aa(X1, X2, X3, X4, X5, frontcA_in_aa(X3, X6)) U42_aa(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> U43_aa(X1, X2, X3, X4, appcB_in_gga(X5, X6, X4)) appcB_in_gga([], X1, X1) -> appcB_out_gga([], X1, X1) appcB_in_gga(.(X1, X2), X3, .(X1, X4)) -> U44_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U44_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, .(X1, X4)) U43_aa(X1, X2, X3, X4, appcB_out_gga(X5, X6, X4)) -> frontcA_out_aa(tree(X1, X2, X3), X4) The argument filtering Pi contains the following mapping: [] = [] frontcA_in_aa(x1, x2) = frontcA_in_aa frontcA_out_aa(x1, x2) = frontcA_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) .(x1, x2) = .(x2) U41_aa(x1, x2, x3, x4, x5) = U41_aa(x5) U42_aa(x1, x2, x3, x4, x5, x6) = U42_aa(x2, x5, x6) U43_aa(x1, x2, x3, x4, x5) = U43_aa(x2, x3, x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2, x3) U44_gga(x1, x2, x3, x4, x5) = U44_gga(x2, x3, x5) APPE_IN_GGG(x1, x2, x3) = APPE_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (93) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (94) Obligation: Pi DP problem: The TRS P consists of the following rules: APPE_IN_GGG(.(X1, X2), X3, .(X1, X4)) -> APPE_IN_GGG(X2, X3, X4) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) APPE_IN_GGG(x1, x2, x3) = APPE_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (95) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (96) Obligation: Q DP problem: The TRS P consists of the following rules: APPE_IN_GGG(.(X2), X3, .(X4)) -> APPE_IN_GGG(X2, X3, X4) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (97) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *APPE_IN_GGG(.(X2), X3, .(X4)) -> APPE_IN_GGG(X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 > 3 ---------------------------------------- (98) YES ---------------------------------------- (99) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_GGA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_GGA(X2, X3, X4) The TRS R consists of the following rules: frontcA_in_aa(void, []) -> frontcA_out_aa(void, []) frontcA_in_aa(tree(X1, void, void), .(X1, [])) -> frontcA_out_aa(tree(X1, void, void), .(X1, [])) frontcA_in_aa(tree(X1, X2, X3), X4) -> U41_aa(X1, X2, X3, X4, frontcA_in_aa(X2, X5)) U41_aa(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> U42_aa(X1, X2, X3, X4, X5, frontcA_in_aa(X3, X6)) U42_aa(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> U43_aa(X1, X2, X3, X4, appcB_in_gga(X5, X6, X4)) appcB_in_gga([], X1, X1) -> appcB_out_gga([], X1, X1) appcB_in_gga(.(X1, X2), X3, .(X1, X4)) -> U44_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U44_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, .(X1, X4)) U43_aa(X1, X2, X3, X4, appcB_out_gga(X5, X6, X4)) -> frontcA_out_aa(tree(X1, X2, X3), X4) The argument filtering Pi contains the following mapping: [] = [] frontcA_in_aa(x1, x2) = frontcA_in_aa frontcA_out_aa(x1, x2) = frontcA_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) .(x1, x2) = .(x2) U41_aa(x1, x2, x3, x4, x5) = U41_aa(x5) U42_aa(x1, x2, x3, x4, x5, x6) = U42_aa(x2, x5, x6) U43_aa(x1, x2, x3, x4, x5) = U43_aa(x2, x3, x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2, x3) U44_gga(x1, x2, x3, x4, x5) = U44_gga(x2, x3, x5) APPB_IN_GGA(x1, x2, x3) = APPB_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (100) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (101) Obligation: Pi DP problem: The TRS P consists of the following rules: APPB_IN_GGA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_GGA(X2, X3, X4) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) APPB_IN_GGA(x1, x2, x3) = APPB_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (102) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (103) Obligation: Q DP problem: The TRS P consists of the following rules: APPB_IN_GGA(.(X2), X3) -> APPB_IN_GGA(X2, X3) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (104) 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(.(X2), X3) -> APPB_IN_GGA(X2, X3) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (105) YES ---------------------------------------- (106) Obligation: Pi DP problem: The TRS P consists of the following rules: FRONTA_IN_AA(tree(X1, X2, X3), X4) -> U2_AA(X1, X2, X3, X4, frontcA_in_aa(X2, X5)) U2_AA(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> FRONTA_IN_AA(X3, X6) FRONTA_IN_AA(tree(X1, X2, X3), X4) -> FRONTA_IN_AA(X2, X5) The TRS R consists of the following rules: frontcA_in_aa(void, []) -> frontcA_out_aa(void, []) frontcA_in_aa(tree(X1, void, void), .(X1, [])) -> frontcA_out_aa(tree(X1, void, void), .(X1, [])) frontcA_in_aa(tree(X1, X2, X3), X4) -> U41_aa(X1, X2, X3, X4, frontcA_in_aa(X2, X5)) U41_aa(X1, X2, X3, X4, frontcA_out_aa(X2, X5)) -> U42_aa(X1, X2, X3, X4, X5, frontcA_in_aa(X3, X6)) U42_aa(X1, X2, X3, X4, X5, frontcA_out_aa(X3, X6)) -> U43_aa(X1, X2, X3, X4, appcB_in_gga(X5, X6, X4)) appcB_in_gga([], X1, X1) -> appcB_out_gga([], X1, X1) appcB_in_gga(.(X1, X2), X3, .(X1, X4)) -> U44_gga(X1, X2, X3, X4, appcB_in_gga(X2, X3, X4)) U44_gga(X1, X2, X3, X4, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X1, X2), X3, .(X1, X4)) U43_aa(X1, X2, X3, X4, appcB_out_gga(X5, X6, X4)) -> frontcA_out_aa(tree(X1, X2, X3), X4) The argument filtering Pi contains the following mapping: [] = [] frontcA_in_aa(x1, x2) = frontcA_in_aa frontcA_out_aa(x1, x2) = frontcA_out_aa(x1, x2) tree(x1, x2, x3) = tree(x2, x3) .(x1, x2) = .(x2) U41_aa(x1, x2, x3, x4, x5) = U41_aa(x5) U42_aa(x1, x2, x3, x4, x5, x6) = U42_aa(x2, x5, x6) U43_aa(x1, x2, x3, x4, x5) = U43_aa(x2, x3, x5) appcB_in_gga(x1, x2, x3) = appcB_in_gga(x1, x2) appcB_out_gga(x1, x2, x3) = appcB_out_gga(x1, x2, x3) U44_gga(x1, x2, x3, x4, x5) = U44_gga(x2, x3, x5) FRONTA_IN_AA(x1, x2) = FRONTA_IN_AA U2_AA(x1, x2, x3, x4, x5) = U2_AA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (107) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (108) Obligation: Q DP problem: The TRS P consists of the following rules: FRONTA_IN_AA -> U2_AA(frontcA_in_aa) U2_AA(frontcA_out_aa(X2, X5)) -> FRONTA_IN_AA FRONTA_IN_AA -> FRONTA_IN_AA The TRS R consists of the following rules: frontcA_in_aa -> frontcA_out_aa(void, []) frontcA_in_aa -> frontcA_out_aa(tree(void, void), .([])) frontcA_in_aa -> U41_aa(frontcA_in_aa) U41_aa(frontcA_out_aa(X2, X5)) -> U42_aa(X2, X5, frontcA_in_aa) U42_aa(X2, X5, frontcA_out_aa(X3, X6)) -> U43_aa(X2, X3, appcB_in_gga(X5, X6)) appcB_in_gga([], X1) -> appcB_out_gga([], X1, X1) appcB_in_gga(.(X2), X3) -> U44_gga(X2, X3, appcB_in_gga(X2, X3)) U44_gga(X2, X3, appcB_out_gga(X2, X3, X4)) -> appcB_out_gga(.(X2), X3, .(X4)) U43_aa(X2, X3, appcB_out_gga(X5, X6, X4)) -> frontcA_out_aa(tree(X2, X3), X4) The set Q consists of the following terms: frontcA_in_aa U41_aa(x0) U42_aa(x0, x1, x2) appcB_in_gga(x0, x1) U44_gga(x0, x1, x2) U43_aa(x0, x1, x2) We have to consider all (P,Q,R)-chains.