/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.pl /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.pl # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Left Termination of the query pattern 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, 15 ms] (4) PiDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) AND (7) PiDP (8) UsableRulesProof [EQUIVALENT, 2 ms] (9) PiDP (10) PiDPToQDPProof [SOUND, 13 ms] (11) QDP (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] (13) YES (14) PiDP (15) UsableRulesProof [EQUIVALENT, 0 ms] (16) PiDP (17) PiDPToQDPProof [SOUND, 0 ms] (18) QDP (19) 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, 10 ms] (29) PiDP (30) DependencyGraphProof [EQUIVALENT, 0 ms] (31) AND (32) PiDP (33) UsableRulesProof [EQUIVALENT, 0 ms] (34) PiDP (35) PiDPToQDPProof [SOUND, 1 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, 30 ms] (52) QTRS (53) QTRSRRRProof [EQUIVALENT, 136 ms] (54) QTRS (55) PrologToIRSwTTransformerProof [SOUND, 34 ms] (56) AND (57) IRSwT (58) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 1 ms] (59) TRUE (60) IRSwT (61) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (62) TRUE (63) IRSwT (64) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (65) IRSwT (66) IntTRSCompressionProof [EQUIVALENT, 20 ms] (67) IRSwT (68) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (69) IRSwT (70) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] (71) IRSwT (72) FilterProof [EQUIVALENT, 0 ms] (73) IntTRS (74) IntTRSPeriodicNontermProof [COMPLETE, 1 ms] (75) NO (76) PrologToDTProblemTransformerProof [SOUND, 101 ms] (77) TRIPLES (78) UndefinedPredicateInTriplesTransformerProof [SOUND, 0 ms] (79) TRIPLES (80) TriplesToPiDPProof [SOUND, 43 ms] (81) PiDP (82) DependencyGraphProof [EQUIVALENT, 0 ms] (83) AND (84) PiDP (85) UsableRulesProof [EQUIVALENT, 0 ms] (86) PiDP (87) PiDPToQDPProof [SOUND, 0 ms] (88) QDP (89) QDPSizeChangeProof [EQUIVALENT, 0 ms] (90) YES (91) PiDP (92) UsableRulesProof [EQUIVALENT, 0 ms] (93) PiDP (94) PiDPToQDPProof [SOUND, 0 ms] (95) QDP (96) QDPSizeChangeProof [EQUIVALENT, 0 ms] (97) YES (98) PiDP (99) PiDPToQDPProof [SOUND, 0 ms] (100) 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": { "45": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "390": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes", "392": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "394": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "395": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T85 T86 T84)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T84"], "free": [], "exprvars": [] } }, "397": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "312": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "313": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T60 T61 X68)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X68"], "exprvars": [] } }, "314": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "317": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T23 X22)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X22"], "exprvars": [] } }, "318": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T65 T64 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "160": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "121": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "122": { "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": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "5": { "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": [] } }, "203": { "goal": [{ "clause": 1, "scope": 2, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "6": { "goal": [{ "clause": 0, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "7": { "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": [] } }, "128": { "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": [] } }, "207": { "goal": [{ "clause": 2, "scope": 2, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "29": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "292": { "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": [] } }, "172": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "293": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "294": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T38 X44)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X44"], "exprvars": [] } }, "295": { "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": [] } }, "296": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T41 X45)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X45"], "exprvars": [] } }, "297": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "298": { "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": [] } }, "178": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "299": { "goal": [{ "clause": 3, "scope": 3, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "139": { "goal": [{ "clause": 0, "scope": 2, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "30": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "31": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "32": { "goal": [{ "clause": 1, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "33": { "goal": [{ "clause": 2, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "34": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "35": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "36": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "39": { "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": [] } }, "142": { "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": [] } }, "387": { "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": [] } }, "300": { "goal": [{ "clause": 4, "scope": 3, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "388": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T65 T64 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "224": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "389": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T65 T64 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "227": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "304": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "228": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "306": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 2, "to": 5, "label": "CASE" }, { "from": 5, "to": 6, "label": "PARALLEL" }, { "from": 5, "to": 7, "label": "PARALLEL" }, { "from": 6, "to": 29, "label": "EVAL with clause\nfront(void, []).\nand substitutionT1 -> void,\nT2 -> []" }, { "from": 6, "to": 30, "label": "EVAL-BACKTRACK" }, { "from": 7, "to": 32, "label": "PARALLEL" }, { "from": 7, "to": 33, "label": "PARALLEL" }, { "from": 29, "to": 31, "label": "SUCCESS" }, { "from": 32, "to": 34, "label": "EVAL with clause\nfront(tree(X6, void, void), .(X6, [])).\nand substitutionX6 -> T7,\nT1 -> tree(T7, void, void),\nT2 -> .(T7, [])" }, { "from": 32, "to": 35, "label": "EVAL-BACKTRACK" }, { "from": 33, "to": 39, "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": 33, "to": 45, "label": "EVAL-BACKTRACK" }, { "from": 34, "to": 36, "label": "SUCCESS" }, { "from": 39, "to": 121, "label": "SPLIT 1" }, { "from": 39, "to": 122, "label": "SPLIT 2\nreplacements:X21 -> T22,\nT21 -> T23" }, { "from": 121, "to": 128, "label": "CASE" }, { "from": 122, "to": 317, "label": "SPLIT 1" }, { "from": 122, "to": 318, "label": "SPLIT 2\nreplacements:X22 -> T64,\nT22 -> T65" }, { "from": 128, "to": 139, "label": "PARALLEL" }, { "from": 128, "to": 142, "label": "PARALLEL" }, { "from": 139, "to": 160, "label": "EVAL with clause\nfront(void, []).\nand substitutionT20 -> void,\nX21 -> []" }, { "from": 139, "to": 172, "label": "EVAL-BACKTRACK" }, { "from": 142, "to": 203, "label": "PARALLEL" }, { "from": 142, "to": 207, "label": "PARALLEL" }, { "from": 160, "to": 178, "label": "SUCCESS" }, { "from": 203, "to": 224, "label": "EVAL with clause\nfront(tree(X27, void, void), .(X27, [])).\nand substitutionX27 -> T28,\nT20 -> tree(T28, void, void),\nX21 -> .(T28, [])" }, { "from": 203, "to": 227, "label": "EVAL-BACKTRACK" }, { "from": 207, "to": 292, "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": 207, "to": 293, "label": "EVAL-BACKTRACK" }, { "from": 224, "to": 228, "label": "SUCCESS" }, { "from": 292, "to": 294, "label": "SPLIT 1" }, { "from": 292, "to": 295, "label": "SPLIT 2\nreplacements:X44 -> T40,\nT39 -> T41" }, { "from": 294, "to": 121, "label": "INSTANCE with matching:\nT20 -> T38\nX21 -> X44" }, { "from": 295, "to": 296, "label": "SPLIT 1" }, { "from": 295, "to": 297, "label": "SPLIT 2\nreplacements:X45 -> T42,\nT40 -> T43" }, { "from": 296, "to": 121, "label": "INSTANCE with matching:\nT20 -> T41\nX21 -> X45" }, { "from": 297, "to": 298, "label": "CASE" }, { "from": 298, "to": 299, "label": "PARALLEL" }, { "from": 298, "to": 300, "label": "PARALLEL" }, { "from": 299, "to": 304, "label": "EVAL with clause\napp([], X53, X53).\nand substitutionT43 -> [],\nT42 -> T50,\nX53 -> T50,\nX46 -> T50" }, { "from": 299, "to": 306, "label": "EVAL-BACKTRACK" }, { "from": 300, "to": 313, "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": 300, "to": 314, "label": "EVAL-BACKTRACK" }, { "from": 304, "to": 312, "label": "SUCCESS" }, { "from": 313, "to": 297, "label": "INSTANCE with matching:\nT43 -> T60\nT42 -> T61\nX46 -> X68" }, { "from": 317, "to": 121, "label": "INSTANCE with matching:\nT20 -> T23\nX21 -> X22" }, { "from": 318, "to": 387, "label": "CASE" }, { "from": 387, "to": 388, "label": "PARALLEL" }, { "from": 387, "to": 389, "label": "PARALLEL" }, { "from": 388, "to": 390, "label": "EVAL with clause\napp([], X77, X77).\nand substitutionT65 -> [],\nT64 -> T72,\nX77 -> T72,\nT19 -> T72" }, { "from": 388, "to": 392, "label": "EVAL-BACKTRACK" }, { "from": 389, "to": 395, "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": 389, "to": 397, "label": "EVAL-BACKTRACK" }, { "from": 390, "to": 394, "label": "SUCCESS" }, { "from": 395, "to": 318, "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(f39_in(T19), T19) U1(f39_out1(X21, X22), T19) -> f2_out1 f121_in -> f121_out1 f121_in -> U2(f292_in) U2(f292_out1) -> f121_out1 f297_in -> f297_out1 f297_in -> U3(f297_in) U3(f297_out1) -> f297_out1 f318_in(T72) -> f318_out1([], T72) f318_in(.(T81, T84)) -> U4(f318_in(T84), .(T81, T84)) U4(f318_out1(T85, T86), .(T81, T84)) -> f318_out1(.(T81, T85), T86) f39_in(T19) -> U5(f121_in, T19) U5(f121_out1, T19) -> U6(f122_in(T19), T19) U6(f122_out1(T22, X22), T19) -> f39_out1(T22, X22) f122_in(T19) -> U7(f121_in, T19) U7(f121_out1, T19) -> U8(f318_in(T19), T19) U8(f318_out1(T65, T64), T19) -> f122_out1(T65, T64) f292_in -> U9(f121_in) U9(f121_out1) -> U10(f295_in) U10(f295_out1) -> f292_out1 f295_in -> U11(f121_in) U11(f121_out1) -> U12(f297_in) U12(f297_out1) -> f295_out1 Q is empty. ---------------------------------------- (53) QTRSRRRProof (EQUIVALENT) Used ordering: f2_in/1(YES) []/0) f2_out1/0) ./2(YES,YES) U1/2(YES,YES) f39_in/1(YES) f39_out1/2(YES,YES) f121_in/0) f121_out1/0) U2/1)YES( f292_in/0) f292_out1/0) f297_in/0) f297_out1/0) U3/1)YES( f318_in/1(YES) f318_out1/2(YES,YES) U4/2(YES,YES) U5/2(YES,YES) U6/2(YES,YES) f122_in/1(YES) f122_out1/2(YES,YES) U7/2(YES,YES) U8/2(YES,YES) U9/1)YES( U10/1)YES( f295_in/0) f295_out1/0) U11/1)YES( U12/1)YES( Quasi precedence: f2_in_1 > f39_in_1 > [U5_2, f122_in_1] > [f121_in, f121_out1, f292_in, f292_out1, f297_in, f297_out1, f295_in, f295_out1] > [f2_out1, U1_2, f39_out1_2, f122_out1_2, U8_2] f2_in_1 > f39_in_1 > [U5_2, f122_in_1] > [f121_in, f121_out1, f292_in, f292_out1, f297_in, f297_out1, f295_in, f295_out1] > f318_in_1 > [] f2_in_1 > f39_in_1 > [U5_2, f122_in_1] > [f121_in, f121_out1, f292_in, f292_out1, f297_in, f297_out1, f295_in, f295_out1] > f318_in_1 > U4_2 > [._2, f318_out1_2] f2_in_1 > f39_in_1 > [U5_2, f122_in_1] > [f121_in, f121_out1, f292_in, f292_out1, f297_in, f297_out1, f295_in, f295_out1] > U6_2 f2_in_1 > f39_in_1 > [U5_2, f122_in_1] > U7_2 > [f2_out1, U1_2, f39_out1_2, f122_out1_2, U8_2] f2_in_1 > f39_in_1 > [U5_2, f122_in_1] > U7_2 > f318_in_1 > [] f2_in_1 > f39_in_1 > [U5_2, f122_in_1] > U7_2 > f318_in_1 > U4_2 > [._2, f318_out1_2] Status: f2_in_1: multiset status []: multiset status f2_out1: multiset status ._2: multiset status U1_2: [1,2] f39_in_1: multiset status f39_out1_2: multiset status f121_in: multiset status f121_out1: multiset status f292_in: multiset status f292_out1: multiset status f297_in: multiset status f297_out1: multiset status f318_in_1: [1] f318_out1_2: multiset status U4_2: multiset status U5_2: multiset status U6_2: multiset status f122_in_1: multiset status f122_out1_2: multiset status U7_2: multiset status U8_2: multiset status f295_in: multiset status f295_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(f39_in(T19), T19) U1(f39_out1(X21, X22), T19) -> f2_out1 f318_in(T72) -> f318_out1([], T72) f318_in(.(T81, T84)) -> U4(f318_in(T84), .(T81, T84)) U4(f318_out1(T85, T86), .(T81, T84)) -> f318_out1(.(T81, T85), T86) f39_in(T19) -> U5(f121_in, T19) U5(f121_out1, T19) -> U6(f122_in(T19), T19) U6(f122_out1(T22, X22), T19) -> f39_out1(T22, X22) f122_in(T19) -> U7(f121_in, T19) U7(f121_out1, T19) -> U8(f318_in(T19), T19) U8(f318_out1(T65, T64), T19) -> f122_out1(T65, T64) ---------------------------------------- (54) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f121_in -> f121_out1 f121_in -> U2(f292_in) U2(f292_out1) -> f121_out1 f297_in -> f297_out1 f297_in -> U3(f297_in) U3(f297_out1) -> f297_out1 f292_in -> U9(f121_in) U9(f121_out1) -> U10(f295_in) U10(f295_out1) -> f292_out1 f295_in -> U11(f121_in) U11(f121_out1) -> U12(f297_in) U12(f297_out1) -> f295_out1 Q is empty. ---------------------------------------- (55) 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": { "type": "Nodes", "273": { "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": [] } }, "350": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "310": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "311": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "116": { "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": [] } }, "315": { "goal": [{ "clause": 1, "scope": 2, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "316": { "goal": [{ "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": [] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "320": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "321": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "325": { "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": [] } }, "369": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T60 T61 X68)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X68"], "exprvars": [] } }, "326": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "370": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "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": [] } }, "373": { "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": [] } }, "374": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T65 T64 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "375": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T65 T64 T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "255": { "goal": [{ "clause": 0, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "376": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "256": { "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": [] } }, "377": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "257": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "334": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T38 X44)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X44"], "exprvars": [] } }, "378": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "258": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "335": { "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": [] } }, "259": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "339": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T41 X45)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X45"], "exprvars": [] } }, "260": { "goal": [{ "clause": 1, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "261": { "goal": [{ "clause": 2, "scope": 1, "term": "(front T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "382": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T85 T86 T84)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T84"], "free": [], "exprvars": [] } }, "262": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "383": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "263": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "340": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "264": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "265": { "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": [] } }, "266": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "267": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "268": { "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": [] } }, "345": { "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": [] } }, "346": { "goal": [{ "clause": 3, "scope": 3, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "347": { "goal": [{ "clause": 4, "scope": 3, "term": "(app T43 T42 X46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X46"], "exprvars": [] } }, "348": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "349": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "307": { "goal": [{ "clause": 0, "scope": 2, "term": "(front T20 X21)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X21"], "exprvars": [] } }, "308": { "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": [] } }, "309": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 1, "to": 116, "label": "CASE" }, { "from": 116, "to": 255, "label": "PARALLEL" }, { "from": 116, "to": 256, "label": "PARALLEL" }, { "from": 255, "to": 257, "label": "EVAL with clause\nfront(void, []).\nand substitutionT1 -> void,\nT2 -> []" }, { "from": 255, "to": 258, "label": "EVAL-BACKTRACK" }, { "from": 256, "to": 260, "label": "PARALLEL" }, { "from": 256, "to": 261, "label": "PARALLEL" }, { "from": 257, "to": 259, "label": "SUCCESS" }, { "from": 260, "to": 262, "label": "EVAL with clause\nfront(tree(X6, void, void), .(X6, [])).\nand substitutionX6 -> T7,\nT1 -> tree(T7, void, void),\nT2 -> .(T7, [])" }, { "from": 260, "to": 263, "label": "EVAL-BACKTRACK" }, { "from": 261, "to": 265, "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": 261, "to": 266, "label": "EVAL-BACKTRACK" }, { "from": 262, "to": 264, "label": "SUCCESS" }, { "from": 265, "to": 267, "label": "SPLIT 1" }, { "from": 265, "to": 268, "label": "SPLIT 2\nreplacements:X21 -> T22,\nT21 -> T23" }, { "from": 267, "to": 273, "label": "CASE" }, { "from": 268, "to": 371, "label": "SPLIT 1" }, { "from": 268, "to": 372, "label": "SPLIT 2\nreplacements:X22 -> T64,\nT22 -> T65" }, { "from": 273, "to": 307, "label": "PARALLEL" }, { "from": 273, "to": 308, "label": "PARALLEL" }, { "from": 307, "to": 309, "label": "EVAL with clause\nfront(void, []).\nand substitutionT20 -> void,\nX21 -> []" }, { "from": 307, "to": 310, "label": "EVAL-BACKTRACK" }, { "from": 308, "to": 315, "label": "PARALLEL" }, { "from": 308, "to": 316, "label": "PARALLEL" }, { "from": 309, "to": 311, "label": "SUCCESS" }, { "from": 315, "to": 319, "label": "EVAL with clause\nfront(tree(X27, void, void), .(X27, [])).\nand substitutionX27 -> T28,\nT20 -> tree(T28, void, void),\nX21 -> .(T28, [])" }, { "from": 315, "to": 320, "label": "EVAL-BACKTRACK" }, { "from": 316, "to": 325, "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": 316, "to": 326, "label": "EVAL-BACKTRACK" }, { "from": 319, "to": 321, "label": "SUCCESS" }, { "from": 325, "to": 334, "label": "SPLIT 1" }, { "from": 325, "to": 335, "label": "SPLIT 2\nreplacements:X44 -> T40,\nT39 -> T41" }, { "from": 334, "to": 267, "label": "INSTANCE with matching:\nT20 -> T38\nX21 -> X44" }, { "from": 335, "to": 339, "label": "SPLIT 1" }, { "from": 335, "to": 340, "label": "SPLIT 2\nreplacements:X45 -> T42,\nT40 -> T43" }, { "from": 339, "to": 267, "label": "INSTANCE with matching:\nT20 -> T41\nX21 -> X45" }, { "from": 340, "to": 345, "label": "CASE" }, { "from": 345, "to": 346, "label": "PARALLEL" }, { "from": 345, "to": 347, "label": "PARALLEL" }, { "from": 346, "to": 348, "label": "EVAL with clause\napp([], X53, X53).\nand substitutionT43 -> [],\nT42 -> T50,\nX53 -> T50,\nX46 -> T50" }, { "from": 346, "to": 349, "label": "EVAL-BACKTRACK" }, { "from": 347, "to": 369, "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": 347, "to": 370, "label": "EVAL-BACKTRACK" }, { "from": 348, "to": 350, "label": "SUCCESS" }, { "from": 369, "to": 340, "label": "INSTANCE with matching:\nT43 -> T60\nT42 -> T61\nX46 -> X68" }, { "from": 371, "to": 267, "label": "INSTANCE with matching:\nT20 -> T23\nX21 -> X22" }, { "from": 372, "to": 373, "label": "CASE" }, { "from": 373, "to": 374, "label": "PARALLEL" }, { "from": 373, "to": 375, "label": "PARALLEL" }, { "from": 374, "to": 376, "label": "EVAL with clause\napp([], X77, X77).\nand substitutionT65 -> [],\nT64 -> T72,\nX77 -> T72,\nT19 -> T72" }, { "from": 374, "to": 377, "label": "EVAL-BACKTRACK" }, { "from": 375, "to": 382, "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": 375, "to": 383, "label": "EVAL-BACKTRACK" }, { "from": 376, "to": 378, "label": "SUCCESS" }, { "from": 382, "to": 372, "label": "INSTANCE with matching:\nT65 -> T85\nT64 -> T86\nT19 -> T84" } ], "type": "Graph" } } ---------------------------------------- (56) Complex Obligation (AND) ---------------------------------------- (57) Obligation: Rules: f373_in(T19) -> f375_in(T19) :|: TRUE f374_out(x) -> f373_out(x) :|: TRUE f375_out(x1) -> f373_out(x1) :|: TRUE f373_in(x2) -> f374_in(x2) :|: TRUE f375_in(x3) -> f383_in :|: TRUE f383_out -> f375_out(x4) :|: TRUE f382_out(T84) -> f375_out(.(T81, T84)) :|: TRUE f375_in(.(x5, x6)) -> f382_in(x6) :|: TRUE f382_in(x7) -> f372_in(x7) :|: TRUE f372_out(x8) -> f382_out(x8) :|: TRUE f373_out(x9) -> f372_out(x9) :|: TRUE f372_in(x10) -> f373_in(x10) :|: TRUE f1_in(T2) -> f116_in(T2) :|: TRUE f116_out(x11) -> f1_out(x11) :|: TRUE f256_out(x12) -> f116_out(x12) :|: TRUE f116_in(x13) -> f255_in(x13) :|: TRUE f255_out(x14) -> f116_out(x14) :|: TRUE f116_in(x15) -> f256_in(x15) :|: TRUE f260_out(x16) -> f256_out(x16) :|: TRUE f261_out(x17) -> f256_out(x17) :|: TRUE f256_in(x18) -> f261_in(x18) :|: TRUE f256_in(x19) -> f260_in(x19) :|: TRUE f265_out(x20) -> f261_out(x20) :|: TRUE f261_in(x21) -> f265_in(x21) :|: TRUE f266_out -> f261_out(x22) :|: TRUE f261_in(x23) -> f266_in :|: TRUE f268_out(x24) -> f265_out(x24) :|: TRUE f265_in(x25) -> f267_in :|: TRUE f267_out -> f268_in(x26) :|: TRUE f371_out -> f372_in(x27) :|: TRUE f372_out(x28) -> f268_out(x28) :|: TRUE f268_in(x29) -> f371_in :|: TRUE Start term: f1_in(T2) ---------------------------------------- (58) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (59) TRUE ---------------------------------------- (60) Obligation: Rules: f347_in -> f370_in :|: TRUE f347_in -> f369_in :|: TRUE f369_out -> f347_out :|: TRUE f370_out -> f347_out :|: TRUE f345_in -> f347_in :|: TRUE f347_out -> f345_out :|: TRUE f345_in -> f346_in :|: TRUE f346_out -> f345_out :|: TRUE f345_out -> f340_out :|: TRUE f340_in -> f345_in :|: TRUE f369_in -> f340_in :|: TRUE f340_out -> f369_out :|: TRUE f1_in(T2) -> f116_in(T2) :|: TRUE f116_out(x) -> f1_out(x) :|: TRUE f256_out(x1) -> f116_out(x1) :|: TRUE f116_in(x2) -> f255_in(x2) :|: TRUE f255_out(x3) -> f116_out(x3) :|: TRUE f116_in(x4) -> f256_in(x4) :|: TRUE f260_out(x5) -> f256_out(x5) :|: TRUE f261_out(x6) -> f256_out(x6) :|: TRUE f256_in(x7) -> f261_in(x7) :|: TRUE f256_in(x8) -> f260_in(x8) :|: TRUE f265_out(T19) -> f261_out(T19) :|: TRUE f261_in(x9) -> f265_in(x9) :|: TRUE f266_out -> f261_out(x10) :|: TRUE f261_in(x11) -> f266_in :|: TRUE f268_out(x12) -> f265_out(x12) :|: TRUE f265_in(x13) -> f267_in :|: TRUE f267_out -> f268_in(x14) :|: TRUE f371_out -> f372_in(x15) :|: TRUE f372_out(x16) -> f268_out(x16) :|: TRUE f268_in(x17) -> f371_in :|: TRUE f371_in -> f267_in :|: TRUE f267_out -> f371_out :|: TRUE f273_out -> f267_out :|: TRUE f267_in -> f273_in :|: TRUE f273_in -> f307_in :|: TRUE f308_out -> f273_out :|: TRUE f273_in -> f308_in :|: TRUE f307_out -> f273_out :|: TRUE f308_in -> f315_in :|: TRUE f315_out -> f308_out :|: TRUE f308_in -> f316_in :|: TRUE f316_out -> f308_out :|: TRUE f316_in -> f326_in :|: TRUE f325_out -> f316_out :|: TRUE f316_in -> f325_in :|: TRUE f326_out -> f316_out :|: TRUE f325_in -> f334_in :|: TRUE f334_out -> f335_in :|: TRUE f335_out -> f325_out :|: TRUE f339_out -> f340_in :|: TRUE f340_out -> f335_out :|: TRUE f335_in -> f339_in :|: TRUE Start term: f1_in(T2) ---------------------------------------- (61) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (62) TRUE ---------------------------------------- (63) Obligation: Rules: f347_in -> f370_in :|: TRUE f347_in -> f369_in :|: TRUE f369_out -> f347_out :|: TRUE f370_out -> f347_out :|: TRUE f345_out -> f340_out :|: TRUE f340_in -> f345_in :|: TRUE f348_in -> f348_out :|: TRUE f273_in -> f307_in :|: TRUE f308_out -> f273_out :|: TRUE f273_in -> f308_in :|: TRUE f307_out -> f273_out :|: TRUE f325_in -> f334_in :|: TRUE f334_out -> f335_in :|: TRUE f335_out -> f325_out :|: TRUE f339_in -> f267_in :|: TRUE f267_out -> f339_out :|: TRUE f273_out -> f267_out :|: TRUE f267_in -> f273_in :|: TRUE f345_in -> f347_in :|: TRUE f347_out -> f345_out :|: TRUE f345_in -> f346_in :|: TRUE f346_out -> f345_out :|: TRUE f308_in -> f315_in :|: TRUE f315_out -> f308_out :|: TRUE f308_in -> f316_in :|: TRUE f316_out -> f308_out :|: TRUE f334_in -> f267_in :|: TRUE f267_out -> f334_out :|: TRUE f339_out -> f340_in :|: TRUE f340_out -> f335_out :|: TRUE f335_in -> f339_in :|: TRUE f369_in -> f340_in :|: TRUE f340_out -> f369_out :|: TRUE f316_in -> f326_in :|: TRUE f325_out -> f316_out :|: TRUE f316_in -> f325_in :|: TRUE f326_out -> f316_out :|: TRUE f346_in -> f348_in :|: TRUE f348_out -> f346_out :|: TRUE f349_out -> f346_out :|: TRUE f346_in -> f349_in :|: TRUE f1_in(T2) -> f116_in(T2) :|: TRUE f116_out(x) -> f1_out(x) :|: TRUE f256_out(x1) -> f116_out(x1) :|: TRUE f116_in(x2) -> f255_in(x2) :|: TRUE f255_out(x3) -> f116_out(x3) :|: TRUE f116_in(x4) -> f256_in(x4) :|: TRUE f260_out(x5) -> f256_out(x5) :|: TRUE f261_out(x6) -> f256_out(x6) :|: TRUE f256_in(x7) -> f261_in(x7) :|: TRUE f256_in(x8) -> f260_in(x8) :|: TRUE f265_out(T19) -> f261_out(T19) :|: TRUE f261_in(x9) -> f265_in(x9) :|: TRUE f266_out -> f261_out(x10) :|: TRUE f261_in(x11) -> f266_in :|: TRUE f268_out(x12) -> f265_out(x12) :|: TRUE f265_in(x13) -> f267_in :|: TRUE f267_out -> f268_in(x14) :|: TRUE f371_out -> f372_in(x15) :|: TRUE f372_out(x16) -> f268_out(x16) :|: TRUE f268_in(x17) -> f371_in :|: TRUE f371_in -> f267_in :|: TRUE f267_out -> f371_out :|: TRUE Start term: f1_in(T2) ---------------------------------------- (64) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f273_in -> f308_in :|: TRUE f325_in -> f334_in :|: TRUE f267_in -> f273_in :|: TRUE f308_in -> f316_in :|: TRUE f334_in -> f267_in :|: TRUE f316_in -> f325_in :|: TRUE ---------------------------------------- (65) Obligation: Rules: f273_in -> f308_in :|: TRUE f325_in -> f334_in :|: TRUE f267_in -> f273_in :|: TRUE f308_in -> f316_in :|: TRUE f334_in -> f267_in :|: TRUE f316_in -> f325_in :|: TRUE ---------------------------------------- (66) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (67) Obligation: Rules: f325_in -> f325_in :|: TRUE ---------------------------------------- (68) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (69) Obligation: Rules: f325_in -> f325_in :|: TRUE ---------------------------------------- (70) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f325_in -> f325_in :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (71) Obligation: Termination digraph: Nodes: (1) f325_in -> f325_in :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (72) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f325_in() Replaced non-predefined constructor symbols by 0. ---------------------------------------- (73) Obligation: Rules: f325_in -> f325_in :|: TRUE ---------------------------------------- (74) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc) -> f(1) :|: pc = 1 && TRUE Witness term starting non-terminating reduction: f(1) ---------------------------------------- (75) NO ---------------------------------------- (76) 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", "470": { "goal": [{ "clause": -1, "scope": -1, "term": "(app (. T144 ([])) T143 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "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": [] } }, "351": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T31 X35)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X35"], "exprvars": [] } }, "472": { "goal": [{ "clause": 4, "scope": 10, "term": "(app (. T144 ([])) T143 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "352": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T33 T32 X36)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X36"], "exprvars": [] } }, "473": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T151 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "474": { "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": [] } }, "476": { "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": [] } }, "510": { "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": [] } }, "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": [] } }, "511": { "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": [] } }, "479": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T167 X180)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X180"], "exprvars": [] } }, "512": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "117": { "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": [] } }, "513": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T232 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X216"], "exprvars": [] } }, "118": { "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": [] } }, "514": { "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": [] } }, "515": { "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": [] } }, "516": { "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": [] } }, "517": { "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": [] } }, "518": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "519": { "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": [] } }, "16": { "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": [] } }, "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": [] } }, "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": [] } }, "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": [] } }, "487": { "goal": [{ "clause": 4, "scope": 11, "term": "(app T179 T178 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "520": { "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": [] } }, "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": [] } }, "400": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "488": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "521": { "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": [] } }, "401": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "489": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "522": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "402": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "523": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "403": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "524": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "525": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "526": { "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": [] } }, "527": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "528": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T263 X275)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X275"], "exprvars": [] } }, "529": { "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": [] } }, "490": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "491": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T203 T204 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "492": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "493": { "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": [] } }, "494": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "495": { "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": [] } }, "496": { "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": [] } }, "497": { "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": [] } }, "530": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T267 X276)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X276"], "exprvars": [] } }, "498": { "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": [] } }, "531": { "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": [] } }, "499": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "532": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T271 T270 X277)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X277"], "exprvars": [] } }, "379": { "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": [] } }, "533": { "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": [] } }, "534": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T277 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X216"], "exprvars": [] } }, "535": { "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": [] } }, "536": { "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": [] } }, "537": { "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": [] } }, "538": { "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": [] } }, "539": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "380": { "goal": [{ "clause": 3, "scope": 4, "term": "(app T33 T32 X36)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X36"], "exprvars": [] } }, "381": { "goal": [{ "clause": 4, "scope": 4, "term": "(app T33 T32 X36)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X36"], "exprvars": [] } }, "384": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "385": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "386": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "540": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "420": { "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": [] } }, "541": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "421": { "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": [] } }, "542": { "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": [] } }, "301": { "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": [] } }, "422": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T66 X12) (app (. T67 ([])) X12 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "543": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "269": { "goal": [{ "clause": 2, "scope": 1, "term": "(front T1 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "302": { "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": [] } }, "423": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "544": { "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": [] } }, "303": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T12 X12) (app ([]) X12 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "424": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T66 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "545": { "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": [] } }, "425": { "goal": [{ "clause": -1, "scope": -1, "term": "(app (. T69 ([])) T68 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "546": { "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": [] } }, "305": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "426": { "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": [] } }, "547": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "427": { "goal": [{ "clause": 4, "scope": 6, "term": "(app (. T69 ([])) T68 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "548": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "428": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "549": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "429": { "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": [] } }, "270": { "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": [] } }, "391": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T50 T51 X58)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X58"], "exprvars": [] } }, "271": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "272": { "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": [] } }, "393": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "396": { "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": [] } }, "550": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T324 T325 T323)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T323"], "free": [], "exprvars": [] } }, "430": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "551": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "398": { "goal": [{ "clause": 3, "scope": 5, "term": "(app ([]) T13 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "431": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T81 X100)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X100"], "exprvars": [] } }, "552": { "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": [] } }, "399": { "goal": [{ "clause": 4, "scope": 5, "term": "(app ([]) T13 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "432": { "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": [] } }, "553": { "goal": [{ "clause": 3, "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 T85 X101)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X101"], "exprvars": [] } }, "554": { "goal": [{ "clause": 4, "scope": 18, "term": "(app T324 T325 T323)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T323"], "free": [], "exprvars": [] } }, "434": { "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": [] } }, "555": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "435": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T88 T87 X102)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X102"], "exprvars": [] } }, "556": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "436": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T93 X12) (app T92 X12 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "557": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "437": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T93 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "558": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T345 T346 T344)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T344"], "free": [], "exprvars": [] } }, "438": { "goal": [{ "clause": -1, "scope": -1, "term": "(app T97 T96 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "559": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "439": { "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": [] } }, "440": { "goal": [{ "clause": 3, "scope": 7, "term": "(app T97 T96 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "441": { "goal": [{ "clause": 4, "scope": 7, "term": "(app T97 T96 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "442": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "322": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T12 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "443": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "323": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T13 ([]))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "444": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "324": { "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": [] } }, "445": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "446": { "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": [] } }, "447": { "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": [] } }, "327": { "goal": [{ "clause": 0, "scope": 3, "term": "(front T12 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "448": { "goal": [{ "clause": 2, "scope": 1, "term": "(front T1 (. T109 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T109"], "free": [], "exprvars": [] } }, "328": { "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": [] } }, "449": { "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": [] } }, "329": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "450": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "330": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "451": { "goal": [ { "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": [] } }, "331": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "452": { "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": [] } }, "332": { "goal": [{ "clause": 1, "scope": 3, "term": "(front T12 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "453": { "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": [] } }, "333": { "goal": [{ "clause": 2, "scope": 3, "term": "(front T12 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "454": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (front T120 X129) (app ([]) X129 (. T117 ([]))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": ["X129"], "exprvars": [] } }, "455": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "456": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T120 X129)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X129"], "exprvars": [] } }, "336": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "457": { "goal": [{ "clause": -1, "scope": -1, "term": "(app ([]) T121 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "337": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "458": { "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": [] } }, "338": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "459": { "goal": [{ "clause": 3, "scope": 9, "term": "(app ([]) T121 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "460": { "goal": [{ "clause": 4, "scope": 9, "term": "(app ([]) T121 (. T117 ([])))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T117"], "free": [], "exprvars": [] } }, "461": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "341": { "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": [] } }, "462": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "342": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "463": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "343": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T28 X34)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X34"], "exprvars": [] } }, "464": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "344": { "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": [] } }, "465": { "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": [] } }, "466": { "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": [] } }, "467": { "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": [] } }, "500": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T217 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X216"], "exprvars": [] } }, "468": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "501": { "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": [] } }, "469": { "goal": [{ "clause": -1, "scope": -1, "term": "(front T141 X129)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X129"], "exprvars": [] } }, "502": { "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": [] } }, "503": { "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": [] } }, "504": { "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": [] } }, "505": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "506": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "507": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "508": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "509": { "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": [] } } }, "edges": [ { "from": 3, "to": 4, "label": "CASE" }, { "from": 4, "to": 16, "label": "EVAL with clause\nfront(void, []).\nand substitutionT1 -> void,\nT2 -> []" }, { "from": 4, "to": 117, "label": "EVAL-BACKTRACK" }, { "from": 16, "to": 118, "label": "SUCCESS" }, { "from": 117, "to": 446, "label": "EVAL with clause\nfront(tree(X119, void, void), .(X119, [])).\nand substitutionX119 -> T109,\nT1 -> tree(T109, void, void),\nT2 -> .(T109, [])" }, { "from": 117, "to": 447, "label": "EVAL-BACKTRACK" }, { "from": 118, "to": 269, "label": "BACKTRACK\nfor clause: front(tree(X, void, void), .(X, []))because of non-unification" }, { "from": 269, "to": 270, "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": 269, "to": 271, "label": "EVAL-BACKTRACK" }, { "from": 270, "to": 272, "label": "CASE" }, { "from": 272, "to": 301, "label": "PARALLEL" }, { "from": 272, "to": 302, "label": "PARALLEL" }, { "from": 301, "to": 303, "label": "EVAL with clause\nfront(void, []).\nand substitutionT10 -> void,\nX11 -> [],\nT11 -> T12" }, { "from": 301, "to": 305, "label": "EVAL-BACKTRACK" }, { "from": 302, "to": 420, "label": "PARALLEL" }, { "from": 302, "to": 421, "label": "PARALLEL" }, { "from": 303, "to": 322, "label": "SPLIT 1" }, { "from": 303, "to": 323, "label": "SPLIT 2\nreplacements:X12 -> T13" }, { "from": 322, "to": 324, "label": "CASE" }, { "from": 323, "to": 396, "label": "CASE" }, { "from": 324, "to": 327, "label": "PARALLEL" }, { "from": 324, "to": 328, "label": "PARALLEL" }, { "from": 327, "to": 329, "label": "EVAL with clause\nfront(void, []).\nand substitutionT12 -> void,\nX12 -> []" }, { "from": 327, "to": 330, "label": "EVAL-BACKTRACK" }, { "from": 328, "to": 332, "label": "PARALLEL" }, { "from": 328, "to": 333, "label": "PARALLEL" }, { "from": 329, "to": 331, "label": "SUCCESS" }, { "from": 332, "to": 336, "label": "EVAL with clause\nfront(tree(X17, void, void), .(X17, [])).\nand substitutionX17 -> T18,\nT12 -> tree(T18, void, void),\nX12 -> .(T18, [])" }, { "from": 332, "to": 337, "label": "EVAL-BACKTRACK" }, { "from": 333, "to": 341, "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": 333, "to": 342, "label": "EVAL-BACKTRACK" }, { "from": 336, "to": 338, "label": "SUCCESS" }, { "from": 341, "to": 343, "label": "SPLIT 1" }, { "from": 341, "to": 344, "label": "SPLIT 2\nreplacements:X34 -> T30,\nT29 -> T31" }, { "from": 343, "to": 322, "label": "INSTANCE with matching:\nT12 -> T28\nX12 -> X34" }, { "from": 344, "to": 351, "label": "SPLIT 1" }, { "from": 344, "to": 352, "label": "SPLIT 2\nreplacements:X35 -> T32,\nT30 -> T33" }, { "from": 351, "to": 322, "label": "INSTANCE with matching:\nT12 -> T31\nX12 -> X35" }, { "from": 352, "to": 379, "label": "CASE" }, { "from": 379, "to": 380, "label": "PARALLEL" }, { "from": 379, "to": 381, "label": "PARALLEL" }, { "from": 380, "to": 384, "label": "EVAL with clause\napp([], X43, X43).\nand substitutionT33 -> [],\nT32 -> T40,\nX43 -> T40,\nX36 -> T40" }, { "from": 380, "to": 385, "label": "EVAL-BACKTRACK" }, { "from": 381, "to": 391, "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": 381, "to": 393, "label": "EVAL-BACKTRACK" }, { "from": 384, "to": 386, "label": "SUCCESS" }, { "from": 391, "to": 352, "label": "INSTANCE with matching:\nT33 -> T50\nT32 -> T51\nX36 -> X58" }, { "from": 396, "to": 398, "label": "PARALLEL" }, { "from": 396, "to": 399, "label": "PARALLEL" }, { "from": 398, "to": 400, "label": "EVAL with clause\napp([], X67, X67).\nand substitutionT13 -> [],\nX67 -> [],\nT60 -> []" }, { "from": 398, "to": 401, "label": "EVAL-BACKTRACK" }, { "from": 399, "to": 403, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 400, "to": 402, "label": "SUCCESS" }, { "from": 420, "to": 422, "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": 420, "to": 423, "label": "EVAL-BACKTRACK" }, { "from": 421, "to": 429, "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": 421, "to": 430, "label": "EVAL-BACKTRACK" }, { "from": 422, "to": 424, "label": "SPLIT 1" }, { "from": 422, "to": 425, "label": "SPLIT 2\nreplacements:X12 -> T68,\nT67 -> T69" }, { "from": 424, "to": 322, "label": "INSTANCE with matching:\nT12 -> T66" }, { "from": 425, "to": 426, "label": "CASE" }, { "from": 426, "to": 427, "label": "BACKTRACK\nfor clause: app([], X, X)because of non-unification" }, { "from": 427, "to": 428, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 429, "to": 431, "label": "SPLIT 1" }, { "from": 429, "to": 432, "label": "SPLIT 2\nreplacements:X100 -> T84,\nT82 -> T85,\nT83 -> T86" }, { "from": 431, "to": 322, "label": "INSTANCE with matching:\nT12 -> T81\nX12 -> X100" }, { "from": 432, "to": 433, "label": "SPLIT 1" }, { "from": 432, "to": 434, "label": "SPLIT 2\nreplacements:X101 -> T87,\nT84 -> T88,\nT86 -> T89" }, { "from": 433, "to": 322, "label": "INSTANCE with matching:\nT12 -> T85\nX12 -> X101" }, { "from": 434, "to": 435, "label": "SPLIT 1" }, { "from": 434, "to": 436, "label": "SPLIT 2\nreplacements:X102 -> T92,\nT89 -> T93" }, { "from": 435, "to": 352, "label": "INSTANCE with matching:\nT33 -> T88\nT32 -> T87\nX36 -> X102" }, { "from": 436, "to": 437, "label": "SPLIT 1" }, { "from": 436, "to": 438, "label": "SPLIT 2\nreplacements:X12 -> T96,\nT92 -> T97" }, { "from": 437, "to": 322, "label": "INSTANCE with matching:\nT12 -> T93" }, { "from": 438, "to": 439, "label": "CASE" }, { "from": 439, "to": 440, "label": "PARALLEL" }, { "from": 439, "to": 441, "label": "PARALLEL" }, { "from": 440, "to": 442, "label": "EVAL with clause\napp([], X113, X113).\nand substitutionT97 -> [],\nT96 -> [],\nX113 -> [],\nT104 -> []" }, { "from": 440, "to": 443, "label": "EVAL-BACKTRACK" }, { "from": 441, "to": 445, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 442, "to": 444, "label": "SUCCESS" }, { "from": 446, "to": 448, "label": "SUCCESS" }, { "from": 447, "to": 493, "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": 447, "to": 494, "label": "EVAL-BACKTRACK" }, { "from": 448, "to": 449, "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": 448, "to": 450, "label": "EVAL-BACKTRACK" }, { "from": 449, "to": 451, "label": "CASE" }, { "from": 451, "to": 452, "label": "PARALLEL" }, { "from": 451, "to": 453, "label": "PARALLEL" }, { "from": 452, "to": 454, "label": "EVAL with clause\nfront(void, []).\nand substitutionT118 -> void,\nX128 -> [],\nT119 -> T120" }, { "from": 452, "to": 455, "label": "EVAL-BACKTRACK" }, { "from": 453, "to": 465, "label": "PARALLEL" }, { "from": 453, "to": 466, "label": "PARALLEL" }, { "from": 454, "to": 456, "label": "SPLIT 1" }, { "from": 454, "to": 457, "label": "SPLIT 2\nreplacements:X129 -> T121" }, { "from": 456, "to": 322, "label": "INSTANCE with matching:\nT12 -> T120\nX12 -> X129" }, { "from": 457, "to": 458, "label": "CASE" }, { "from": 458, "to": 459, "label": "PARALLEL" }, { "from": 458, "to": 460, "label": "PARALLEL" }, { "from": 459, "to": 461, "label": "EVAL with clause\napp([], X136, X136).\nand substitutionT121 -> .(T135, []),\nX136 -> .(T135, []),\nT117 -> T135,\nT134 -> .(T135, [])" }, { "from": 459, "to": 462, "label": "EVAL-BACKTRACK" }, { "from": 460, "to": 464, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 461, "to": 463, "label": "SUCCESS" }, { "from": 465, "to": 467, "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": 465, "to": 468, "label": "EVAL-BACKTRACK" }, { "from": 466, "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": 466, "to": 476, "label": "EVAL-BACKTRACK" }, { "from": 467, "to": 469, "label": "SPLIT 1" }, { "from": 467, "to": 470, "label": "SPLIT 2\nreplacements:X129 -> T143,\nT142 -> T144" }, { "from": 469, "to": 322, "label": "INSTANCE with matching:\nT12 -> T141\nX12 -> X129" }, { "from": 470, "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": 323, "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": 322, "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": 322, "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": 352, "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": 322, "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": 491, "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": 492, "label": "EVAL-BACKTRACK" }, { "from": 488, "to": 490, "label": "SUCCESS" }, { "from": 491, "to": 438, "label": "INSTANCE with matching:\nT97 -> T203\nT96 -> T204" }, { "from": 493, "to": 495, "label": "CASE" }, { "from": 495, "to": 496, "label": "PARALLEL" }, { "from": 495, "to": 497, "label": "PARALLEL" }, { "from": 496, "to": 498, "label": "EVAL with clause\nfront(void, []).\nand substitutionT215 -> void,\nX215 -> [],\nT216 -> T217" }, { "from": 496, "to": 499, "label": "EVAL-BACKTRACK" }, { "from": 497, "to": 509, "label": "PARALLEL" }, { "from": 497, "to": 510, "label": "PARALLEL" }, { "from": 498, "to": 500, "label": "SPLIT 1" }, { "from": 498, "to": 501, "label": "SPLIT 2\nreplacements:X216 -> T218,\nT1 -> T219" }, { "from": 500, "to": 322, "label": "INSTANCE with matching:\nT12 -> T217\nX12 -> X216" }, { "from": 501, "to": 502, "label": "CASE" }, { "from": 502, "to": 503, "label": "PARALLEL" }, { "from": 502, "to": 504, "label": "PARALLEL" }, { "from": 503, "to": 505, "label": "EVAL with clause\napp([], X223, X223).\nand substitutionT218 -> T226,\nX223 -> T226,\nT214 -> T226" }, { "from": 503, "to": 506, "label": "EVAL-BACKTRACK" }, { "from": 504, "to": 508, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 505, "to": 507, "label": "SUCCESS" }, { "from": 509, "to": 511, "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": 509, "to": 512, "label": "EVAL-BACKTRACK" }, { "from": 510, "to": 526, "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": 510, "to": 527, "label": "EVAL-BACKTRACK" }, { "from": 511, "to": 513, "label": "SPLIT 1" }, { "from": 511, "to": 514, "label": "SPLIT 2\nreplacements:X216 -> T234,\nT233 -> T235,\nT1 -> T236" }, { "from": 513, "to": 322, "label": "INSTANCE with matching:\nT12 -> T232\nX12 -> X216" }, { "from": 514, "to": 515, "label": "CASE" }, { "from": 515, "to": 516, "label": "BACKTRACK\nfor clause: app([], X, X)because of non-unification" }, { "from": 516, "to": 517, "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": 516, "to": 518, "label": "EVAL-BACKTRACK" }, { "from": 517, "to": 519, "label": "CASE" }, { "from": 519, "to": 520, "label": "PARALLEL" }, { "from": 519, "to": 521, "label": "PARALLEL" }, { "from": 520, "to": 522, "label": "EVAL with clause\napp([], X254, X254).\nand substitutionT246 -> T253,\nX254 -> T253,\nT245 -> T253" }, { "from": 520, "to": 523, "label": "EVAL-BACKTRACK" }, { "from": 521, "to": 525, "label": "BACKTRACK\nfor clause: app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs)because of non-unification" }, { "from": 522, "to": 524, "label": "SUCCESS" }, { "from": 526, "to": 528, "label": "SPLIT 1" }, { "from": 526, "to": 529, "label": "SPLIT 2\nreplacements:X275 -> T266,\nT264 -> T267,\nT265 -> T268,\nT1 -> T269" }, { "from": 528, "to": 322, "label": "INSTANCE with matching:\nT12 -> T263\nX12 -> X275" }, { "from": 529, "to": 530, "label": "SPLIT 1" }, { "from": 529, "to": 531, "label": "SPLIT 2\nreplacements:X276 -> T270,\nT266 -> T271,\nT268 -> T272,\nT269 -> T273" }, { "from": 530, "to": 322, "label": "INSTANCE with matching:\nT12 -> T267\nX12 -> X276" }, { "from": 531, "to": 532, "label": "SPLIT 1" }, { "from": 531, "to": 533, "label": "SPLIT 2\nreplacements:X277 -> T276,\nT272 -> T277,\nT273 -> T278" }, { "from": 532, "to": 352, "label": "INSTANCE with matching:\nT33 -> T271\nT32 -> T270\nX36 -> X277" }, { "from": 533, "to": 534, "label": "SPLIT 1" }, { "from": 533, "to": 535, "label": "SPLIT 2\nreplacements:X216 -> T281,\nT276 -> T282,\nT278 -> T283" }, { "from": 534, "to": 322, "label": "INSTANCE with matching:\nT12 -> T277\nX12 -> X216" }, { "from": 535, "to": 536, "label": "CASE" }, { "from": 536, "to": 537, "label": "PARALLEL" }, { "from": 536, "to": 538, "label": "PARALLEL" }, { "from": 537, "to": 539, "label": "EVAL with clause\napp([], X288, X288).\nand substitutionT282 -> [],\nT281 -> T290,\nX288 -> T290,\nT214 -> T290" }, { "from": 537, "to": 540, "label": "EVAL-BACKTRACK" }, { "from": 538, "to": 542, "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": 538, "to": 543, "label": "EVAL-BACKTRACK" }, { "from": 539, "to": 541, "label": "SUCCESS" }, { "from": 542, "to": 544, "label": "CASE" }, { "from": 544, "to": 545, "label": "PARALLEL" }, { "from": 544, "to": 546, "label": "PARALLEL" }, { "from": 545, "to": 547, "label": "EVAL with clause\napp([], X307, X307).\nand substitutionT303 -> [],\nT304 -> T311,\nX307 -> T311,\nT302 -> T311" }, { "from": 545, "to": 548, "label": "EVAL-BACKTRACK" }, { "from": 546, "to": 550, "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": 546, "to": 551, "label": "EVAL-BACKTRACK" }, { "from": 547, "to": 549, "label": "SUCCESS" }, { "from": 550, "to": 552, "label": "CASE" }, { "from": 552, "to": 553, "label": "PARALLEL" }, { "from": 552, "to": 554, "label": "PARALLEL" }, { "from": 553, "to": 555, "label": "EVAL with clause\napp([], X326, X326).\nand substitutionT324 -> [],\nT325 -> T332,\nX326 -> T332,\nT323 -> T332" }, { "from": 553, "to": 556, "label": "EVAL-BACKTRACK" }, { "from": 554, "to": 558, "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": 554, "to": 559, "label": "EVAL-BACKTRACK" }, { "from": 555, "to": 557, "label": "SUCCESS" }, { "from": 558, "to": 550, "label": "INSTANCE with matching:\nT324 -> T345\nT325 -> T346\nT323 -> T344" } ], "type": "Graph" } } ---------------------------------------- (77) 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) ---------------------------------------- (78) UndefinedPredicateInTriplesTransformerProof (SOUND) Deleted triples and predicates having undefined goals [DT09]. ---------------------------------------- (79) 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) ---------------------------------------- (80) 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 ---------------------------------------- (81) 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 ---------------------------------------- (82) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 58 less nodes. ---------------------------------------- (83) Complex Obligation (AND) ---------------------------------------- (84) 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 ---------------------------------------- (85) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (86) 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 ---------------------------------------- (87) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (88) 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. ---------------------------------------- (89) 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 ---------------------------------------- (90) YES ---------------------------------------- (91) 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 ---------------------------------------- (92) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (93) 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 ---------------------------------------- (94) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (95) 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. ---------------------------------------- (96) 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 ---------------------------------------- (97) YES ---------------------------------------- (98) 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 ---------------------------------------- (99) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (100) 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.