/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.pl /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern reverse(a,g) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) PrologToPiTRSProof [SOUND, 0 ms] (2) PiTRS (3) DependencyPairsProof [EQUIVALENT, 0 ms] (4) PiDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) PiDP (7) UsableRulesProof [EQUIVALENT, 0 ms] (8) PiDP (9) PiDPToQDPProof [SOUND, 0 ms] (10) QDP (11) TransformationProof [EQUIVALENT, 0 ms] (12) QDP (13) TransformationProof [EQUIVALENT, 0 ms] (14) QDP (15) TransformationProof [EQUIVALENT, 0 ms] (16) QDP (17) PrologToPiTRSProof [SOUND, 0 ms] (18) PiTRS (19) DependencyPairsProof [EQUIVALENT, 0 ms] (20) PiDP (21) DependencyGraphProof [EQUIVALENT, 0 ms] (22) PiDP (23) UsableRulesProof [EQUIVALENT, 0 ms] (24) PiDP (25) PiDPToQDPProof [SOUND, 0 ms] (26) QDP (27) TransformationProof [EQUIVALENT, 0 ms] (28) QDP (29) TransformationProof [EQUIVALENT, 0 ms] (30) QDP (31) TransformationProof [EQUIVALENT, 0 ms] (32) QDP (33) PrologToDTProblemTransformerProof [SOUND, 0 ms] (34) TRIPLES (35) TriplesToPiDPProof [SOUND, 0 ms] (36) PiDP (37) DependencyGraphProof [EQUIVALENT, 0 ms] (38) PiDP (39) PiDPToQDPProof [SOUND, 0 ms] (40) QDP (41) TransformationProof [EQUIVALENT, 0 ms] (42) QDP (43) TransformationProof [EQUIVALENT, 0 ms] (44) QDP (45) TransformationProof [EQUIVALENT, 0 ms] (46) QDP (47) PrologToTRSTransformerProof [SOUND, 41 ms] (48) QTRS (49) PrologToIRSwTTransformerProof [SOUND, 44 ms] (50) IRSwT (51) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (52) IRSwT (53) IntTRSCompressionProof [EQUIVALENT, 21 ms] (54) IRSwT (55) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (56) IRSwT (57) IRSwTTerminationDigraphProof [EQUIVALENT, 2 ms] (58) IRSwT (59) FilterProof [EQUIVALENT, 0 ms] (60) IntTRS (61) IntTRSPeriodicNontermProof [COMPLETE, 0 ms] (62) NO ---------------------------------------- (0) Obligation: Clauses: reverse(X1s, X2s) :- reverse(X1s, [], X2s). reverse([], Xs, Xs). reverse(.(X, X1s), X2s, Ys) :- reverse(X1s, .(X, X2s), Ys). Query: reverse(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: reverse_in_2: (f,b) reverse_in_3: (f,b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: reverse_in_ag(X1s, X2s) -> U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s)) reverse_in_agg([], Xs, Xs) -> reverse_out_agg([], Xs, Xs) reverse_in_agg(.(X, X1s), X2s, Ys) -> U2_agg(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) U2_agg(X, X1s, X2s, Ys, reverse_out_agg(X1s, .(X, X2s), Ys)) -> reverse_out_agg(.(X, X1s), X2s, Ys) U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) -> reverse_out_ag(X1s, X2s) The argument filtering Pi contains the following mapping: reverse_in_ag(x1, x2) = reverse_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x3) reverse_in_agg(x1, x2, x3) = reverse_in_agg(x2, x3) reverse_out_agg(x1, x2, x3) = reverse_out_agg(x1) U2_agg(x1, x2, x3, x4, x5) = U2_agg(x5) .(x1, x2) = .(x2) [] = [] reverse_out_ag(x1, x2) = reverse_out_ag(x1) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (2) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: reverse_in_ag(X1s, X2s) -> U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s)) reverse_in_agg([], Xs, Xs) -> reverse_out_agg([], Xs, Xs) reverse_in_agg(.(X, X1s), X2s, Ys) -> U2_agg(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) U2_agg(X, X1s, X2s, Ys, reverse_out_agg(X1s, .(X, X2s), Ys)) -> reverse_out_agg(.(X, X1s), X2s, Ys) U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) -> reverse_out_ag(X1s, X2s) The argument filtering Pi contains the following mapping: reverse_in_ag(x1, x2) = reverse_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x3) reverse_in_agg(x1, x2, x3) = reverse_in_agg(x2, x3) reverse_out_agg(x1, x2, x3) = reverse_out_agg(x1) U2_agg(x1, x2, x3, x4, x5) = U2_agg(x5) .(x1, x2) = .(x2) [] = [] reverse_out_ag(x1, x2) = reverse_out_ag(x1) ---------------------------------------- (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: REVERSE_IN_AG(X1s, X2s) -> U1_AG(X1s, X2s, reverse_in_agg(X1s, [], X2s)) REVERSE_IN_AG(X1s, X2s) -> REVERSE_IN_AGG(X1s, [], X2s) REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> U2_AGG(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> REVERSE_IN_AGG(X1s, .(X, X2s), Ys) The TRS R consists of the following rules: reverse_in_ag(X1s, X2s) -> U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s)) reverse_in_agg([], Xs, Xs) -> reverse_out_agg([], Xs, Xs) reverse_in_agg(.(X, X1s), X2s, Ys) -> U2_agg(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) U2_agg(X, X1s, X2s, Ys, reverse_out_agg(X1s, .(X, X2s), Ys)) -> reverse_out_agg(.(X, X1s), X2s, Ys) U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) -> reverse_out_ag(X1s, X2s) The argument filtering Pi contains the following mapping: reverse_in_ag(x1, x2) = reverse_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x3) reverse_in_agg(x1, x2, x3) = reverse_in_agg(x2, x3) reverse_out_agg(x1, x2, x3) = reverse_out_agg(x1) U2_agg(x1, x2, x3, x4, x5) = U2_agg(x5) .(x1, x2) = .(x2) [] = [] reverse_out_ag(x1, x2) = reverse_out_ag(x1) REVERSE_IN_AG(x1, x2) = REVERSE_IN_AG(x2) U1_AG(x1, x2, x3) = U1_AG(x3) REVERSE_IN_AGG(x1, x2, x3) = REVERSE_IN_AGG(x2, x3) U2_AGG(x1, x2, x3, x4, x5) = U2_AGG(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (4) Obligation: Pi DP problem: The TRS P consists of the following rules: REVERSE_IN_AG(X1s, X2s) -> U1_AG(X1s, X2s, reverse_in_agg(X1s, [], X2s)) REVERSE_IN_AG(X1s, X2s) -> REVERSE_IN_AGG(X1s, [], X2s) REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> U2_AGG(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> REVERSE_IN_AGG(X1s, .(X, X2s), Ys) The TRS R consists of the following rules: reverse_in_ag(X1s, X2s) -> U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s)) reverse_in_agg([], Xs, Xs) -> reverse_out_agg([], Xs, Xs) reverse_in_agg(.(X, X1s), X2s, Ys) -> U2_agg(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) U2_agg(X, X1s, X2s, Ys, reverse_out_agg(X1s, .(X, X2s), Ys)) -> reverse_out_agg(.(X, X1s), X2s, Ys) U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) -> reverse_out_ag(X1s, X2s) The argument filtering Pi contains the following mapping: reverse_in_ag(x1, x2) = reverse_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x3) reverse_in_agg(x1, x2, x3) = reverse_in_agg(x2, x3) reverse_out_agg(x1, x2, x3) = reverse_out_agg(x1) U2_agg(x1, x2, x3, x4, x5) = U2_agg(x5) .(x1, x2) = .(x2) [] = [] reverse_out_ag(x1, x2) = reverse_out_ag(x1) REVERSE_IN_AG(x1, x2) = REVERSE_IN_AG(x2) U1_AG(x1, x2, x3) = U1_AG(x3) REVERSE_IN_AGG(x1, x2, x3) = REVERSE_IN_AGG(x2, x3) U2_AGG(x1, x2, x3, x4, x5) = U2_AGG(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (5) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. ---------------------------------------- (6) Obligation: Pi DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> REVERSE_IN_AGG(X1s, .(X, X2s), Ys) The TRS R consists of the following rules: reverse_in_ag(X1s, X2s) -> U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s)) reverse_in_agg([], Xs, Xs) -> reverse_out_agg([], Xs, Xs) reverse_in_agg(.(X, X1s), X2s, Ys) -> U2_agg(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) U2_agg(X, X1s, X2s, Ys, reverse_out_agg(X1s, .(X, X2s), Ys)) -> reverse_out_agg(.(X, X1s), X2s, Ys) U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) -> reverse_out_ag(X1s, X2s) The argument filtering Pi contains the following mapping: reverse_in_ag(x1, x2) = reverse_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x3) reverse_in_agg(x1, x2, x3) = reverse_in_agg(x2, x3) reverse_out_agg(x1, x2, x3) = reverse_out_agg(x1) U2_agg(x1, x2, x3, x4, x5) = U2_agg(x5) .(x1, x2) = .(x2) [] = [] reverse_out_ag(x1, x2) = reverse_out_ag(x1) REVERSE_IN_AGG(x1, x2, x3) = REVERSE_IN_AGG(x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (7) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (8) Obligation: Pi DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> REVERSE_IN_AGG(X1s, .(X, X2s), Ys) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) REVERSE_IN_AGG(x1, x2, x3) = REVERSE_IN_AGG(x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (9) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (10) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(X2s, Ys) -> REVERSE_IN_AGG(.(X2s), Ys) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (11) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule REVERSE_IN_AGG(X2s, Ys) -> REVERSE_IN_AGG(.(X2s), Ys) we obtained the following new rules [LPAR04]: (REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1),REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1)) ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (13) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule REVERSE_IN_AGG(X2s, Ys) -> REVERSE_IN_AGG(.(X2s), Ys) we obtained the following new rules [LPAR04]: (REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1),REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1)) ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (15) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1) we obtained the following new rules [LPAR04]: (REVERSE_IN_AGG(.(.(z0)), z1) -> REVERSE_IN_AGG(.(.(.(z0))), z1),REVERSE_IN_AGG(.(.(z0)), z1) -> REVERSE_IN_AGG(.(.(.(z0))), z1)) ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(.(.(z0)), z1) -> REVERSE_IN_AGG(.(.(.(z0))), z1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (17) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: reverse_in_2: (f,b) reverse_in_3: (f,b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: reverse_in_ag(X1s, X2s) -> U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s)) reverse_in_agg([], Xs, Xs) -> reverse_out_agg([], Xs, Xs) reverse_in_agg(.(X, X1s), X2s, Ys) -> U2_agg(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) U2_agg(X, X1s, X2s, Ys, reverse_out_agg(X1s, .(X, X2s), Ys)) -> reverse_out_agg(.(X, X1s), X2s, Ys) U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) -> reverse_out_ag(X1s, X2s) The argument filtering Pi contains the following mapping: reverse_in_ag(x1, x2) = reverse_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) reverse_in_agg(x1, x2, x3) = reverse_in_agg(x2, x3) reverse_out_agg(x1, x2, x3) = reverse_out_agg(x1, x2, x3) U2_agg(x1, x2, x3, x4, x5) = U2_agg(x3, x4, x5) .(x1, x2) = .(x2) [] = [] reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (18) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: reverse_in_ag(X1s, X2s) -> U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s)) reverse_in_agg([], Xs, Xs) -> reverse_out_agg([], Xs, Xs) reverse_in_agg(.(X, X1s), X2s, Ys) -> U2_agg(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) U2_agg(X, X1s, X2s, Ys, reverse_out_agg(X1s, .(X, X2s), Ys)) -> reverse_out_agg(.(X, X1s), X2s, Ys) U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) -> reverse_out_ag(X1s, X2s) The argument filtering Pi contains the following mapping: reverse_in_ag(x1, x2) = reverse_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) reverse_in_agg(x1, x2, x3) = reverse_in_agg(x2, x3) reverse_out_agg(x1, x2, x3) = reverse_out_agg(x1, x2, x3) U2_agg(x1, x2, x3, x4, x5) = U2_agg(x3, x4, x5) .(x1, x2) = .(x2) [] = [] reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) ---------------------------------------- (19) 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: REVERSE_IN_AG(X1s, X2s) -> U1_AG(X1s, X2s, reverse_in_agg(X1s, [], X2s)) REVERSE_IN_AG(X1s, X2s) -> REVERSE_IN_AGG(X1s, [], X2s) REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> U2_AGG(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> REVERSE_IN_AGG(X1s, .(X, X2s), Ys) The TRS R consists of the following rules: reverse_in_ag(X1s, X2s) -> U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s)) reverse_in_agg([], Xs, Xs) -> reverse_out_agg([], Xs, Xs) reverse_in_agg(.(X, X1s), X2s, Ys) -> U2_agg(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) U2_agg(X, X1s, X2s, Ys, reverse_out_agg(X1s, .(X, X2s), Ys)) -> reverse_out_agg(.(X, X1s), X2s, Ys) U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) -> reverse_out_ag(X1s, X2s) The argument filtering Pi contains the following mapping: reverse_in_ag(x1, x2) = reverse_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) reverse_in_agg(x1, x2, x3) = reverse_in_agg(x2, x3) reverse_out_agg(x1, x2, x3) = reverse_out_agg(x1, x2, x3) U2_agg(x1, x2, x3, x4, x5) = U2_agg(x3, x4, x5) .(x1, x2) = .(x2) [] = [] reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) REVERSE_IN_AG(x1, x2) = REVERSE_IN_AG(x2) U1_AG(x1, x2, x3) = U1_AG(x2, x3) REVERSE_IN_AGG(x1, x2, x3) = REVERSE_IN_AGG(x2, x3) U2_AGG(x1, x2, x3, x4, x5) = U2_AGG(x3, x4, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (20) Obligation: Pi DP problem: The TRS P consists of the following rules: REVERSE_IN_AG(X1s, X2s) -> U1_AG(X1s, X2s, reverse_in_agg(X1s, [], X2s)) REVERSE_IN_AG(X1s, X2s) -> REVERSE_IN_AGG(X1s, [], X2s) REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> U2_AGG(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> REVERSE_IN_AGG(X1s, .(X, X2s), Ys) The TRS R consists of the following rules: reverse_in_ag(X1s, X2s) -> U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s)) reverse_in_agg([], Xs, Xs) -> reverse_out_agg([], Xs, Xs) reverse_in_agg(.(X, X1s), X2s, Ys) -> U2_agg(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) U2_agg(X, X1s, X2s, Ys, reverse_out_agg(X1s, .(X, X2s), Ys)) -> reverse_out_agg(.(X, X1s), X2s, Ys) U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) -> reverse_out_ag(X1s, X2s) The argument filtering Pi contains the following mapping: reverse_in_ag(x1, x2) = reverse_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) reverse_in_agg(x1, x2, x3) = reverse_in_agg(x2, x3) reverse_out_agg(x1, x2, x3) = reverse_out_agg(x1, x2, x3) U2_agg(x1, x2, x3, x4, x5) = U2_agg(x3, x4, x5) .(x1, x2) = .(x2) [] = [] reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) REVERSE_IN_AG(x1, x2) = REVERSE_IN_AG(x2) U1_AG(x1, x2, x3) = U1_AG(x2, x3) REVERSE_IN_AGG(x1, x2, x3) = REVERSE_IN_AGG(x2, x3) U2_AGG(x1, x2, x3, x4, x5) = U2_AGG(x3, x4, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (21) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. ---------------------------------------- (22) Obligation: Pi DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> REVERSE_IN_AGG(X1s, .(X, X2s), Ys) The TRS R consists of the following rules: reverse_in_ag(X1s, X2s) -> U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s)) reverse_in_agg([], Xs, Xs) -> reverse_out_agg([], Xs, Xs) reverse_in_agg(.(X, X1s), X2s, Ys) -> U2_agg(X, X1s, X2s, Ys, reverse_in_agg(X1s, .(X, X2s), Ys)) U2_agg(X, X1s, X2s, Ys, reverse_out_agg(X1s, .(X, X2s), Ys)) -> reverse_out_agg(.(X, X1s), X2s, Ys) U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) -> reverse_out_ag(X1s, X2s) The argument filtering Pi contains the following mapping: reverse_in_ag(x1, x2) = reverse_in_ag(x2) U1_ag(x1, x2, x3) = U1_ag(x2, x3) reverse_in_agg(x1, x2, x3) = reverse_in_agg(x2, x3) reverse_out_agg(x1, x2, x3) = reverse_out_agg(x1, x2, x3) U2_agg(x1, x2, x3, x4, x5) = U2_agg(x3, x4, x5) .(x1, x2) = .(x2) [] = [] reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) REVERSE_IN_AGG(x1, x2, x3) = REVERSE_IN_AGG(x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (23) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (24) Obligation: Pi DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(.(X, X1s), X2s, Ys) -> REVERSE_IN_AGG(X1s, .(X, X2s), Ys) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) REVERSE_IN_AGG(x1, x2, x3) = REVERSE_IN_AGG(x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (25) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(X2s, Ys) -> REVERSE_IN_AGG(.(X2s), Ys) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (27) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule REVERSE_IN_AGG(X2s, Ys) -> REVERSE_IN_AGG(.(X2s), Ys) we obtained the following new rules [LPAR04]: (REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1),REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1)) ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (29) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule REVERSE_IN_AGG(X2s, Ys) -> REVERSE_IN_AGG(.(X2s), Ys) we obtained the following new rules [LPAR04]: (REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1),REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1)) ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (31) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule REVERSE_IN_AGG(.(z0), z1) -> REVERSE_IN_AGG(.(.(z0)), z1) we obtained the following new rules [LPAR04]: (REVERSE_IN_AGG(.(.(z0)), z1) -> REVERSE_IN_AGG(.(.(.(z0))), z1),REVERSE_IN_AGG(.(.(z0)), z1) -> REVERSE_IN_AGG(.(.(.(z0))), z1)) ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSE_IN_AGG(.(.(z0)), z1) -> REVERSE_IN_AGG(.(.(.(z0))), z1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (33) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 35, "program": { "directives": [], "clauses": [ [ "(reverse X1s X2s)", "(reverse X1s ([]) X2s)" ], [ "(reverse ([]) Xs Xs)", null ], [ "(reverse (. X X1s) X2s Ys)", "(reverse X1s (. X X2s) Ys)" ] ] }, "graph": { "nodes": { "270": { "goal": [{ "clause": 2, "scope": 10, "term": "(reverse T395 (. T396 T420) T394)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T394"], "free": [], "exprvars": [] } }, "type": "Nodes", "194": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "271": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "195": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "272": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "196": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "273": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "153": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T38 (. T39 (. T40 ([]))) T37)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T37"], "free": [], "exprvars": [] } }, "230": { "goal": [ { "clause": 1, "scope": 8, "term": "(reverse T232 (. T233 (. T234 (. T235 (. T236 (. T237 (. T238 ([]))))))) T231)" }, { "clause": 2, "scope": 8, "term": "(reverse T232 (. T233 (. T234 (. T235 (. T236 (. T237 (. T238 ([]))))))) T231)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T231"], "free": [], "exprvars": [] } }, "154": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "111": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "112": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "233": { "goal": [{ "clause": 1, "scope": 8, "term": "(reverse T232 (. T233 (. T234 (. T235 (. T236 (. T237 (. T238 ([]))))))) T231)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T231"], "free": [], "exprvars": [] } }, "234": { "goal": [{ "clause": 2, "scope": 8, "term": "(reverse T232 (. T233 (. T234 (. T235 (. T236 (. T237 (. T238 ([]))))))) T231)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T231"], "free": [], "exprvars": [] } }, "159": { "goal": [ { "clause": 1, "scope": 4, "term": "(reverse T38 (. T39 (. T40 ([]))) T37)" }, { "clause": 2, "scope": 4, "term": "(reverse T38 (. T39 (. T40 ([]))) T37)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T37"], "free": [], "exprvars": [] } }, "238": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "239": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "51": { "goal": [{ "clause": 0, "scope": 1, "term": "(reverse T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "99": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T7 ([]) T6)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "160": { "goal": [{ "clause": 1, "scope": 4, "term": "(reverse T38 (. T39 (. T40 ([]))) T37)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T37"], "free": [], "exprvars": [] } }, "161": { "goal": [{ "clause": 2, "scope": 4, "term": "(reverse T38 (. T39 (. T40 ([]))) T37)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T37"], "free": [], "exprvars": [] } }, "162": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "163": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "240": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "284": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T450 (. T451 (. T452 T453)) T449)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T449"], "free": [], "exprvars": [] } }, "164": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "285": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "165": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T70 (. T71 (. T72 (. T73 ([])))) T69)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T69"], "free": [], "exprvars": [] } }, "166": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "167": { "goal": [ { "clause": 1, "scope": 5, "term": "(reverse T70 (. T71 (. T72 (. T73 ([])))) T69)" }, { "clause": 2, "scope": 5, "term": "(reverse T70 (. T71 (. T72 (. T73 ([])))) T69)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T69"], "free": [], "exprvars": [] } }, "168": { "goal": [{ "clause": 1, "scope": 5, "term": "(reverse T70 (. T71 (. T72 (. T73 ([])))) T69)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T69"], "free": [], "exprvars": [] } }, "169": { "goal": [{ "clause": 2, "scope": 5, "term": "(reverse T70 (. T71 (. T72 (. T73 ([])))) T69)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T69"], "free": [], "exprvars": [] } }, "246": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T308 (. T309 (. T310 (. T311 (. T312 (. T313 (. T314 (. T315 ([])))))))) T307)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T307"], "free": [], "exprvars": [] } }, "247": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "129": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T17 (. T18 ([])) T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "170": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "171": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "172": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "173": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T113 (. T114 (. T115 (. T116 (. T117 ([]))))) T112)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T112"], "free": [], "exprvars": [] } }, "130": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "174": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "131": { "goal": [ { "clause": 1, "scope": 3, "term": "(reverse T17 (. T18 ([])) T16)" }, { "clause": 2, "scope": 3, "term": "(reverse T17 (. T18 ([])) T16)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "132": { "goal": [{ "clause": 1, "scope": 3, "term": "(reverse T17 (. T18 ([])) T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "253": { "goal": [ { "clause": 1, "scope": 9, "term": "(reverse T308 (. T309 (. T310 (. T311 (. T312 (. T313 (. T314 (. T315 ([])))))))) T307)" }, { "clause": 2, "scope": 9, "term": "(reverse T308 (. T309 (. T310 (. T311 (. T312 (. T313 (. T314 (. T315 ([])))))))) T307)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T307"], "free": [], "exprvars": [] } }, "133": { "goal": [{ "clause": 2, "scope": 3, "term": "(reverse T17 (. T18 ([])) T16)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "210": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T167 (. T168 (. T169 (. T170 (. T171 (. T172 ([])))))) T166)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T166"], "free": [], "exprvars": [] } }, "211": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "257": { "goal": [{ "clause": 1, "scope": 9, "term": "(reverse T308 (. T309 (. T310 (. T311 (. T312 (. T313 (. T314 (. T315 ([])))))))) T307)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T307"], "free": [], "exprvars": [] } }, "258": { "goal": [{ "clause": 2, "scope": 9, "term": "(reverse T308 (. T309 (. T310 (. T311 (. T312 (. T313 (. T314 (. T315 ([])))))))) T307)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T307"], "free": [], "exprvars": [] } }, "138": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "215": { "goal": [ { "clause": 1, "scope": 7, "term": "(reverse T167 (. T168 (. T169 (. T170 (. T171 (. T172 ([])))))) T166)" }, { "clause": 2, "scope": 7, "term": "(reverse T167 (. T168 (. T169 (. T170 (. T171 (. T172 ([])))))) T166)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T166"], "free": [], "exprvars": [] } }, "259": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "139": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "218": { "goal": [{ "clause": 1, "scope": 7, "term": "(reverse T167 (. T168 (. T169 (. T170 (. T171 (. T172 ([])))))) T166)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T166"], "free": [], "exprvars": [] } }, "219": { "goal": [{ "clause": 2, "scope": 7, "term": "(reverse T167 (. T168 (. T169 (. T170 (. T171 (. T172 ([])))))) T166)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T166"], "free": [], "exprvars": [] } }, "35": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "180": { "goal": [ { "clause": 1, "scope": 6, "term": "(reverse T113 (. T114 (. T115 (. T116 (. T117 ([]))))) T112)" }, { "clause": 2, "scope": 6, "term": "(reverse T113 (. T114 (. T115 (. T116 (. T117 ([]))))) T112)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T112"], "free": [], "exprvars": [] } }, "140": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "261": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "186": { "goal": [{ "clause": 1, "scope": 6, "term": "(reverse T113 (. T114 (. T115 (. T116 (. T117 ([]))))) T112)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T112"], "free": [], "exprvars": [] } }, "263": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "187": { "goal": [{ "clause": 2, "scope": 6, "term": "(reverse T113 (. T114 (. T115 (. T116 (. T117 ([]))))) T112)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T112"], "free": [], "exprvars": [] } }, "264": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T395 (. T396 (. T397 (. T398 (. T399 (. T400 (. T401 (. T402 (. T403 ([]))))))))) T394)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T394"], "free": [], "exprvars": [] } }, "100": { "goal": [ { "clause": 1, "scope": 2, "term": "(reverse T7 ([]) T6)" }, { "clause": 2, "scope": 2, "term": "(reverse T7 ([]) T6)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "221": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "265": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "101": { "goal": [{ "clause": 1, "scope": 2, "term": "(reverse T7 ([]) T6)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "222": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "266": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T395 (. T396 T420) T394)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T394"], "free": [], "exprvars": [] } }, "223": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "267": { "goal": [ { "clause": 1, "scope": 10, "term": "(reverse T395 (. T396 T420) T394)" }, { "clause": 2, "scope": 10, "term": "(reverse T395 (. T396 T420) T394)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T394"], "free": [], "exprvars": [] } }, "103": { "goal": [{ "clause": 2, "scope": 2, "term": "(reverse T7 ([]) T6)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "269": { "goal": [{ "clause": 1, "scope": 10, "term": "(reverse T395 (. T396 T420) T394)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T394"], "free": [], "exprvars": [] } }, "228": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T232 (. T233 (. T234 (. T235 (. T236 (. T237 (. T238 ([]))))))) T231)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T231"], "free": [], "exprvars": [] } }, "229": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "109": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 35, "to": 51, "label": "CASE" }, { "from": 51, "to": 99, "label": "ONLY EVAL with clause\nreverse(X3, X4) :- reverse(X3, [], X4).\nand substitutionT1 -> T7,\nX3 -> T7,\nT2 -> T6,\nX4 -> T6,\nT5 -> T7" }, { "from": 99, "to": 100, "label": "CASE" }, { "from": 100, "to": 101, "label": "PARALLEL" }, { "from": 100, "to": 103, "label": "PARALLEL" }, { "from": 101, "to": 109, "label": "EVAL with clause\nreverse([], X9, X9).\nand substitutionT7 -> [],\nX9 -> [],\nT6 -> []" }, { "from": 101, "to": 111, "label": "EVAL-BACKTRACK" }, { "from": 103, "to": 129, "label": "EVAL with clause\nreverse(.(X18, X19), X20, X21) :- reverse(X19, .(X18, X20), X21).\nand substitutionX18 -> T18,\nX19 -> T17,\nT7 -> .(T18, T17),\nX20 -> [],\nT6 -> T16,\nX21 -> T16,\nT15 -> T17,\nT14 -> T18" }, { "from": 103, "to": 130, "label": "EVAL-BACKTRACK" }, { "from": 109, "to": 112, "label": "SUCCESS" }, { "from": 129, "to": 131, "label": "CASE" }, { "from": 131, "to": 132, "label": "PARALLEL" }, { "from": 131, "to": 133, "label": "PARALLEL" }, { "from": 132, "to": 138, "label": "EVAL with clause\nreverse([], X28, X28).\nand substitutionT17 -> [],\nT18 -> T25,\nX28 -> .(T25, []),\nT16 -> .(T25, [])" }, { "from": 132, "to": 139, "label": "EVAL-BACKTRACK" }, { "from": 133, "to": 153, "label": "EVAL with clause\nreverse(.(X37, X38), X39, X40) :- reverse(X38, .(X37, X39), X40).\nand substitutionX37 -> T39,\nX38 -> T38,\nT17 -> .(T39, T38),\nT18 -> T40,\nX39 -> .(T40, []),\nT16 -> T37,\nX40 -> T37,\nT35 -> T38,\nT34 -> T39,\nT36 -> T40" }, { "from": 133, "to": 154, "label": "EVAL-BACKTRACK" }, { "from": 138, "to": 140, "label": "SUCCESS" }, { "from": 153, "to": 159, "label": "CASE" }, { "from": 159, "to": 160, "label": "PARALLEL" }, { "from": 159, "to": 161, "label": "PARALLEL" }, { "from": 160, "to": 162, "label": "EVAL with clause\nreverse([], X47, X47).\nand substitutionT38 -> [],\nT39 -> T53,\nT40 -> T54,\nX47 -> .(T53, .(T54, [])),\nT37 -> .(T53, .(T54, []))" }, { "from": 160, "to": 163, "label": "EVAL-BACKTRACK" }, { "from": 161, "to": 165, "label": "EVAL with clause\nreverse(.(X56, X57), X58, X59) :- reverse(X57, .(X56, X58), X59).\nand substitutionX56 -> T71,\nX57 -> T70,\nT38 -> .(T71, T70),\nT39 -> T72,\nT40 -> T73,\nX58 -> .(T72, .(T73, [])),\nT37 -> T69,\nX59 -> T69,\nT66 -> T70,\nT65 -> T71,\nT67 -> T72,\nT68 -> T73" }, { "from": 161, "to": 166, "label": "EVAL-BACKTRACK" }, { "from": 162, "to": 164, "label": "SUCCESS" }, { "from": 165, "to": 167, "label": "CASE" }, { "from": 167, "to": 168, "label": "PARALLEL" }, { "from": 167, "to": 169, "label": "PARALLEL" }, { "from": 168, "to": 170, "label": "EVAL with clause\nreverse([], X66, X66).\nand substitutionT70 -> [],\nT71 -> T92,\nT72 -> T93,\nT73 -> T94,\nX66 -> .(T92, .(T93, .(T94, []))),\nT69 -> .(T92, .(T93, .(T94, [])))" }, { "from": 168, "to": 171, "label": "EVAL-BACKTRACK" }, { "from": 169, "to": 173, "label": "EVAL with clause\nreverse(.(X75, X76), X77, X78) :- reverse(X76, .(X75, X77), X78).\nand substitutionX75 -> T114,\nX76 -> T113,\nT70 -> .(T114, T113),\nT71 -> T115,\nT72 -> T116,\nT73 -> T117,\nX77 -> .(T115, .(T116, .(T117, []))),\nT69 -> T112,\nX78 -> T112,\nT108 -> T113,\nT107 -> T114,\nT109 -> T115,\nT110 -> T116,\nT111 -> T117" }, { "from": 169, "to": 174, "label": "EVAL-BACKTRACK" }, { "from": 170, "to": 172, "label": "SUCCESS" }, { "from": 173, "to": 180, "label": "CASE" }, { "from": 180, "to": 186, "label": "PARALLEL" }, { "from": 180, "to": 187, "label": "PARALLEL" }, { "from": 186, "to": 194, "label": "EVAL with clause\nreverse([], X85, X85).\nand substitutionT113 -> [],\nT114 -> T142,\nT115 -> T143,\nT116 -> T144,\nT117 -> T145,\nX85 -> .(T142, .(T143, .(T144, .(T145, [])))),\nT112 -> .(T142, .(T143, .(T144, .(T145, []))))" }, { "from": 186, "to": 195, "label": "EVAL-BACKTRACK" }, { "from": 187, "to": 210, "label": "EVAL with clause\nreverse(.(X94, X95), X96, X97) :- reverse(X95, .(X94, X96), X97).\nand substitutionX94 -> T168,\nX95 -> T167,\nT113 -> .(T168, T167),\nT114 -> T169,\nT115 -> T170,\nT116 -> T171,\nT117 -> T172,\nX96 -> .(T169, .(T170, .(T171, .(T172, [])))),\nT112 -> T166,\nX97 -> T166,\nT161 -> T167,\nT160 -> T168,\nT162 -> T169,\nT163 -> T170,\nT164 -> T171,\nT165 -> T172" }, { "from": 187, "to": 211, "label": "EVAL-BACKTRACK" }, { "from": 194, "to": 196, "label": "SUCCESS" }, { "from": 210, "to": 215, "label": "CASE" }, { "from": 215, "to": 218, "label": "PARALLEL" }, { "from": 215, "to": 219, "label": "PARALLEL" }, { "from": 218, "to": 221, "label": "EVAL with clause\nreverse([], X104, X104).\nand substitutionT167 -> [],\nT168 -> T203,\nT169 -> T204,\nT170 -> T205,\nT171 -> T206,\nT172 -> T207,\nX104 -> .(T203, .(T204, .(T205, .(T206, .(T207, []))))),\nT166 -> .(T203, .(T204, .(T205, .(T206, .(T207, [])))))" }, { "from": 218, "to": 222, "label": "EVAL-BACKTRACK" }, { "from": 219, "to": 228, "label": "EVAL with clause\nreverse(.(X113, X114), X115, X116) :- reverse(X114, .(X113, X115), X116).\nand substitutionX113 -> T233,\nX114 -> T232,\nT167 -> .(T233, T232),\nT168 -> T234,\nT169 -> T235,\nT170 -> T236,\nT171 -> T237,\nT172 -> T238,\nX115 -> .(T234, .(T235, .(T236, .(T237, .(T238, []))))),\nT166 -> T231,\nX116 -> T231,\nT225 -> T232,\nT224 -> T233,\nT226 -> T234,\nT227 -> T235,\nT228 -> T236,\nT229 -> T237,\nT230 -> T238" }, { "from": 219, "to": 229, "label": "EVAL-BACKTRACK" }, { "from": 221, "to": 223, "label": "SUCCESS" }, { "from": 228, "to": 230, "label": "CASE" }, { "from": 230, "to": 233, "label": "PARALLEL" }, { "from": 230, "to": 234, "label": "PARALLEL" }, { "from": 233, "to": 238, "label": "EVAL with clause\nreverse([], X123, X123).\nand substitutionT232 -> [],\nT233 -> T275,\nT234 -> T276,\nT235 -> T277,\nT236 -> T278,\nT237 -> T279,\nT238 -> T280,\nX123 -> .(T275, .(T276, .(T277, .(T278, .(T279, .(T280, [])))))),\nT231 -> .(T275, .(T276, .(T277, .(T278, .(T279, .(T280, []))))))" }, { "from": 233, "to": 239, "label": "EVAL-BACKTRACK" }, { "from": 234, "to": 246, "label": "EVAL with clause\nreverse(.(X132, X133), X134, X135) :- reverse(X133, .(X132, X134), X135).\nand substitutionX132 -> T309,\nX133 -> T308,\nT232 -> .(T309, T308),\nT233 -> T310,\nT234 -> T311,\nT235 -> T312,\nT236 -> T313,\nT237 -> T314,\nT238 -> T315,\nX134 -> .(T310, .(T311, .(T312, .(T313, .(T314, .(T315, [])))))),\nT231 -> T307,\nX135 -> T307,\nT300 -> T308,\nT299 -> T309,\nT301 -> T310,\nT302 -> T311,\nT303 -> T312,\nT304 -> T313,\nT305 -> T314,\nT306 -> T315" }, { "from": 234, "to": 247, "label": "EVAL-BACKTRACK" }, { "from": 238, "to": 240, "label": "SUCCESS" }, { "from": 246, "to": 253, "label": "CASE" }, { "from": 253, "to": 257, "label": "PARALLEL" }, { "from": 253, "to": 258, "label": "PARALLEL" }, { "from": 257, "to": 259, "label": "EVAL with clause\nreverse([], X142, X142).\nand substitutionT308 -> [],\nT309 -> T358,\nT310 -> T359,\nT311 -> T360,\nT312 -> T361,\nT313 -> T362,\nT314 -> T363,\nT315 -> T364,\nX142 -> .(T358, .(T359, .(T360, .(T361, .(T362, .(T363, .(T364, []))))))),\nT307 -> .(T358, .(T359, .(T360, .(T361, .(T362, .(T363, .(T364, [])))))))" }, { "from": 257, "to": 261, "label": "EVAL-BACKTRACK" }, { "from": 258, "to": 264, "label": "EVAL with clause\nreverse(.(X151, X152), X153, X154) :- reverse(X152, .(X151, X153), X154).\nand substitutionX151 -> T396,\nX152 -> T395,\nT308 -> .(T396, T395),\nT309 -> T397,\nT310 -> T398,\nT311 -> T399,\nT312 -> T400,\nT313 -> T401,\nT314 -> T402,\nT315 -> T403,\nX153 -> .(T397, .(T398, .(T399, .(T400, .(T401, .(T402, .(T403, []))))))),\nT307 -> T394,\nX154 -> T394,\nT386 -> T395,\nT385 -> T396,\nT387 -> T397,\nT388 -> T398,\nT389 -> T399,\nT390 -> T400,\nT391 -> T401,\nT392 -> T402,\nT393 -> T403" }, { "from": 258, "to": 265, "label": "EVAL-BACKTRACK" }, { "from": 259, "to": 263, "label": "SUCCESS" }, { "from": 264, "to": 266, "label": "GENERALIZATION\nT420 <-- .(T397, .(T398, .(T399, .(T400, .(T401, .(T402, .(T403, [])))))))" }, { "from": 266, "to": 267, "label": "CASE" }, { "from": 267, "to": 269, "label": "PARALLEL" }, { "from": 267, "to": 270, "label": "PARALLEL" }, { "from": 269, "to": 271, "label": "EVAL with clause\nreverse([], X163, X163).\nand substitutionT395 -> [],\nT396 -> T433,\nT420 -> T434,\nX163 -> .(T433, T434),\nT394 -> .(T433, T434)" }, { "from": 269, "to": 272, "label": "EVAL-BACKTRACK" }, { "from": 270, "to": 284, "label": "EVAL with clause\nreverse(.(X172, X173), X174, X175) :- reverse(X173, .(X172, X174), X175).\nand substitutionX172 -> T451,\nX173 -> T450,\nT395 -> .(T451, T450),\nT396 -> T452,\nT420 -> T453,\nX174 -> .(T452, T453),\nT394 -> T449,\nX175 -> T449,\nT446 -> T450,\nT445 -> T451,\nT447 -> T452,\nT448 -> T453" }, { "from": 270, "to": 285, "label": "EVAL-BACKTRACK" }, { "from": 271, "to": 273, "label": "SUCCESS" }, { "from": 284, "to": 266, "label": "INSTANCE with matching:\nT395 -> T450\nT396 -> T451\nT420 -> .(T452, T453)\nT394 -> T449" } ], "type": "Graph" } } ---------------------------------------- (34) Obligation: Triples: reverseA(.(X1, X2), X3, X4, X5) :- reverseA(X2, X1, .(X3, X4), X5). reverseB(.(X1, .(X2, .(X3, .(X4, .(X5, .(X6, .(X7, .(X8, X9)))))))), X10) :- reverseA(X9, X8, .(X7, .(X6, .(X5, .(X4, .(X3, .(X2, .(X1, []))))))), X10). Clauses: reversecA([], X1, X2, .(X1, X2)). reversecA(.(X1, X2), X3, X4, X5) :- reversecA(X2, X1, .(X3, X4), X5). Afs: reverseB(x1, x2) = reverseB(x2) ---------------------------------------- (35) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: reverseB_in_2: (f,b) reverseA_in_4: (f,f,b,b) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: REVERSEB_IN_AG(.(X1, .(X2, .(X3, .(X4, .(X5, .(X6, .(X7, .(X8, X9)))))))), X10) -> U2_AG(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, reverseA_in_aagg(X9, X8, .(X7, .(X6, .(X5, .(X4, .(X3, .(X2, .(X1, []))))))), X10)) REVERSEB_IN_AG(.(X1, .(X2, .(X3, .(X4, .(X5, .(X6, .(X7, .(X8, X9)))))))), X10) -> REVERSEA_IN_AAGG(X9, X8, .(X7, .(X6, .(X5, .(X4, .(X3, .(X2, .(X1, []))))))), X10) REVERSEA_IN_AAGG(.(X1, X2), X3, X4, X5) -> U1_AAGG(X1, X2, X3, X4, X5, reverseA_in_aagg(X2, X1, .(X3, X4), X5)) REVERSEA_IN_AAGG(.(X1, X2), X3, X4, X5) -> REVERSEA_IN_AAGG(X2, X1, .(X3, X4), X5) R is empty. The argument filtering Pi contains the following mapping: reverseA_in_aagg(x1, x2, x3, x4) = reverseA_in_aagg(x3, x4) .(x1, x2) = .(x2) [] = [] REVERSEB_IN_AG(x1, x2) = REVERSEB_IN_AG(x2) U2_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U2_AG(x10, x11) REVERSEA_IN_AAGG(x1, x2, x3, x4) = REVERSEA_IN_AAGG(x3, x4) U1_AAGG(x1, x2, x3, x4, x5, x6) = U1_AAGG(x4, x5, x6) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (36) Obligation: Pi DP problem: The TRS P consists of the following rules: REVERSEB_IN_AG(.(X1, .(X2, .(X3, .(X4, .(X5, .(X6, .(X7, .(X8, X9)))))))), X10) -> U2_AG(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, reverseA_in_aagg(X9, X8, .(X7, .(X6, .(X5, .(X4, .(X3, .(X2, .(X1, []))))))), X10)) REVERSEB_IN_AG(.(X1, .(X2, .(X3, .(X4, .(X5, .(X6, .(X7, .(X8, X9)))))))), X10) -> REVERSEA_IN_AAGG(X9, X8, .(X7, .(X6, .(X5, .(X4, .(X3, .(X2, .(X1, []))))))), X10) REVERSEA_IN_AAGG(.(X1, X2), X3, X4, X5) -> U1_AAGG(X1, X2, X3, X4, X5, reverseA_in_aagg(X2, X1, .(X3, X4), X5)) REVERSEA_IN_AAGG(.(X1, X2), X3, X4, X5) -> REVERSEA_IN_AAGG(X2, X1, .(X3, X4), X5) R is empty. The argument filtering Pi contains the following mapping: reverseA_in_aagg(x1, x2, x3, x4) = reverseA_in_aagg(x3, x4) .(x1, x2) = .(x2) [] = [] REVERSEB_IN_AG(x1, x2) = REVERSEB_IN_AG(x2) U2_AG(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U2_AG(x10, x11) REVERSEA_IN_AAGG(x1, x2, x3, x4) = REVERSEA_IN_AAGG(x3, x4) U1_AAGG(x1, x2, x3, x4, x5, x6) = U1_AAGG(x4, x5, x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (37) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. ---------------------------------------- (38) Obligation: Pi DP problem: The TRS P consists of the following rules: REVERSEA_IN_AAGG(.(X1, X2), X3, X4, X5) -> REVERSEA_IN_AAGG(X2, X1, .(X3, X4), X5) R is empty. The argument filtering Pi contains the following mapping: .(x1, x2) = .(x2) REVERSEA_IN_AAGG(x1, x2, x3, x4) = REVERSEA_IN_AAGG(x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (39) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSEA_IN_AAGG(X4, X5) -> REVERSEA_IN_AAGG(.(X4), X5) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (41) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule REVERSEA_IN_AAGG(X4, X5) -> REVERSEA_IN_AAGG(.(X4), X5) we obtained the following new rules [LPAR04]: (REVERSEA_IN_AAGG(.(z0), z1) -> REVERSEA_IN_AAGG(.(.(z0)), z1),REVERSEA_IN_AAGG(.(z0), z1) -> REVERSEA_IN_AAGG(.(.(z0)), z1)) ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSEA_IN_AAGG(.(z0), z1) -> REVERSEA_IN_AAGG(.(.(z0)), z1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (43) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule REVERSEA_IN_AAGG(X4, X5) -> REVERSEA_IN_AAGG(.(X4), X5) we obtained the following new rules [LPAR04]: (REVERSEA_IN_AAGG(.(z0), z1) -> REVERSEA_IN_AAGG(.(.(z0)), z1),REVERSEA_IN_AAGG(.(z0), z1) -> REVERSEA_IN_AAGG(.(.(z0)), z1)) ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSEA_IN_AAGG(.(z0), z1) -> REVERSEA_IN_AAGG(.(.(z0)), z1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (45) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule REVERSEA_IN_AAGG(.(z0), z1) -> REVERSEA_IN_AAGG(.(.(z0)), z1) we obtained the following new rules [LPAR04]: (REVERSEA_IN_AAGG(.(.(z0)), z1) -> REVERSEA_IN_AAGG(.(.(.(z0))), z1),REVERSEA_IN_AAGG(.(.(z0)), z1) -> REVERSEA_IN_AAGG(.(.(.(z0))), z1)) ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: REVERSEA_IN_AAGG(.(.(z0)), z1) -> REVERSEA_IN_AAGG(.(.(.(z0))), z1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (47) PrologToTRSTransformerProof (SOUND) Transformed Prolog program to TRS. { "root": 102, "program": { "directives": [], "clauses": [ [ "(reverse X1s X2s)", "(reverse X1s ([]) X2s)" ], [ "(reverse ([]) Xs Xs)", null ], [ "(reverse (. X X1s) X2s Ys)", "(reverse X1s (. X X2s) Ys)" ] ] }, "graph": { "nodes": { "191": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "192": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "193": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes", "199": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T73 (. T74 (. T75 (. T76 ([])))) T72)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T72"], "free": [], "exprvars": [] } }, "276": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "277": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "278": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "115": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T10 ([]) T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "314": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T398 (. T399 (. T400 (. T401 (. T402 (. T403 (. T404 (. T405 (. T406 ([]))))))))) T397)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T397"], "free": [], "exprvars": [] } }, "117": { "goal": [ { "clause": 1, "scope": 2, "term": "(reverse T10 ([]) T9)" }, { "clause": 2, "scope": 2, "term": "(reverse T10 ([]) T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "118": { "goal": [{ "clause": 1, "scope": 2, "term": "(reverse T10 ([]) T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "316": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "119": { "goal": [{ "clause": 2, "scope": 2, "term": "(reverse T10 ([]) T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "282": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T235 (. T236 (. T237 (. T238 (. T239 (. T240 (. T241 ([]))))))) T234)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T234"], "free": [], "exprvars": [] } }, "283": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "120": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "241": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T116 (. T117 (. T118 (. T119 (. T120 ([]))))) T115)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T115"], "free": [], "exprvars": [] } }, "121": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "242": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "122": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "243": { "goal": [ { "clause": 1, "scope": 6, "term": "(reverse T116 (. T117 (. T118 (. T119 (. T120 ([]))))) T115)" }, { "clause": 2, "scope": 6, "term": "(reverse T116 (. T117 (. T118 (. T119 (. T120 ([]))))) T115)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T115"], "free": [], "exprvars": [] } }, "200": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "244": { "goal": [{ "clause": 1, "scope": 6, "term": "(reverse T116 (. T117 (. T118 (. T119 (. T120 ([]))))) T115)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T115"], "free": [], "exprvars": [] } }, "288": { "goal": [ { "clause": 1, "scope": 8, "term": "(reverse T235 (. T236 (. T237 (. T238 (. T239 (. T240 (. T241 ([]))))))) T234)" }, { "clause": 2, "scope": 8, "term": "(reverse T235 (. T236 (. T237 (. T238 (. T239 (. T240 (. T241 ([]))))))) T234)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T234"], "free": [], "exprvars": [] } }, "245": { "goal": [{ "clause": 2, "scope": 6, "term": "(reverse T116 (. T117 (. T118 (. T119 (. T120 ([]))))) T115)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T115"], "free": [], "exprvars": [] } }, "202": { "goal": [ { "clause": 1, "scope": 5, "term": "(reverse T73 (. T74 (. T75 (. T76 ([])))) T72)" }, { "clause": 2, "scope": 5, "term": "(reverse T73 (. T74 (. T75 (. T76 ([])))) T72)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T72"], "free": [], "exprvars": [] } }, "248": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "205": { "goal": [{ "clause": 1, "scope": 5, "term": "(reverse T73 (. T74 (. T75 (. T76 ([])))) T72)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T72"], "free": [], "exprvars": [] } }, "249": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "206": { "goal": [{ "clause": 2, "scope": 5, "term": "(reverse T73 (. T74 (. T75 (. T76 ([])))) T72)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T72"], "free": [], "exprvars": [] } }, "329": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T398 (. T399 T423) T397)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T397"], "free": [], "exprvars": [] } }, "250": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "251": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T170 (. T171 (. T172 (. T173 (. T174 (. T175 ([])))))) T169)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T169"], "free": [], "exprvars": [] } }, "252": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "297": { "goal": [{ "clause": 1, "scope": 8, "term": "(reverse T235 (. T236 (. T237 (. T238 (. T239 (. T240 (. T241 ([]))))))) T234)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T234"], "free": [], "exprvars": [] } }, "330": { "goal": [ { "clause": 1, "scope": 10, "term": "(reverse T398 (. T399 T423) T397)" }, { "clause": 2, "scope": 10, "term": "(reverse T398 (. T399 T423) T397)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T397"], "free": [], "exprvars": [] } }, "177": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T41 (. T42 (. T43 ([]))) T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [], "exprvars": [] } }, "254": { "goal": [ { "clause": 1, "scope": 7, "term": "(reverse T170 (. T171 (. T172 (. T173 (. T174 (. T175 ([])))))) T169)" }, { "clause": 2, "scope": 7, "term": "(reverse T170 (. T171 (. T172 (. T173 (. T174 (. T175 ([])))))) T169)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T169"], "free": [], "exprvars": [] } }, "298": { "goal": [{ "clause": 2, "scope": 8, "term": "(reverse T235 (. T236 (. T237 (. T238 (. T239 (. T240 (. T241 ([]))))))) T234)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T234"], "free": [], "exprvars": [] } }, "331": { "goal": [{ "clause": 1, "scope": 10, "term": "(reverse T398 (. T399 T423) T397)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T397"], "free": [], "exprvars": [] } }, "134": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T20 (. T21 ([])) T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "178": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "255": { "goal": [{ "clause": 1, "scope": 7, "term": "(reverse T170 (. T171 (. T172 (. T173 (. T174 (. T175 ([])))))) T169)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T169"], "free": [], "exprvars": [] } }, "299": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "332": { "goal": [{ "clause": 2, "scope": 10, "term": "(reverse T398 (. T399 T423) T397)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T397"], "free": [], "exprvars": [] } }, "135": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "212": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "256": { "goal": [{ "clause": 2, "scope": 7, "term": "(reverse T170 (. T171 (. T172 (. T173 (. T174 (. T175 ([])))))) T169)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T169"], "free": [], "exprvars": [] } }, "213": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "334": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "214": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "335": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "336": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "183": { "goal": [ { "clause": 1, "scope": 4, "term": "(reverse T41 (. T42 (. T43 ([]))) T40)" }, { "clause": 2, "scope": 4, "term": "(reverse T41 (. T42 (. T43 ([]))) T40)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [], "exprvars": [] } }, "184": { "goal": [{ "clause": 1, "scope": 4, "term": "(reverse T41 (. T42 (. T43 ([]))) T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [], "exprvars": [] } }, "185": { "goal": [{ "clause": 2, "scope": 4, "term": "(reverse T41 (. T42 (. T43 ([]))) T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [], "exprvars": [] } }, "142": { "goal": [ { "clause": 1, "scope": 3, "term": "(reverse T20 (. T21 ([])) T19)" }, { "clause": 2, "scope": 3, "term": "(reverse T20 (. T21 ([])) T19)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "143": { "goal": [{ "clause": 1, "scope": 3, "term": "(reverse T20 (. T21 ([])) T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "144": { "goal": [{ "clause": 2, "scope": 3, "term": "(reverse T20 (. T21 ([])) T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "145": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "343": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T453 (. T454 (. T455 T456)) T452)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T452"], "free": [], "exprvars": [] } }, "102": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "146": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "300": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "344": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "147": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "301": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "104": { "goal": [{ "clause": 0, "scope": 1, "term": "(reverse T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "302": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T311 (. T312 (. T313 (. T314 (. T315 (. T316 (. T317 (. T318 ([])))))))) T310)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T310"], "free": [], "exprvars": [] } }, "303": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "304": { "goal": [ { "clause": 1, "scope": 9, "term": "(reverse T311 (. T312 (. T313 (. T314 (. T315 (. T316 (. T317 (. T318 ([])))))))) T310)" }, { "clause": 2, "scope": 9, "term": "(reverse T311 (. T312 (. T313 (. T314 (. T315 (. T316 (. T317 (. T318 ([])))))))) T310)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T310"], "free": [], "exprvars": [] } }, "305": { "goal": [{ "clause": 1, "scope": 9, "term": "(reverse T311 (. T312 (. T313 (. T314 (. T315 (. T316 (. T317 (. T318 ([])))))))) T310)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T310"], "free": [], "exprvars": [] } }, "306": { "goal": [{ "clause": 2, "scope": 9, "term": "(reverse T311 (. T312 (. T313 (. T314 (. T315 (. T316 (. T317 (. T318 ([])))))))) T310)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T310"], "free": [], "exprvars": [] } }, "307": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "308": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "309": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 102, "to": 104, "label": "CASE" }, { "from": 104, "to": 115, "label": "ONLY EVAL with clause\nreverse(X7, X8) :- reverse(X7, [], X8).\nand substitutionT1 -> T10,\nX7 -> T10,\nT2 -> T9,\nX8 -> T9,\nT8 -> T10" }, { "from": 115, "to": 117, "label": "CASE" }, { "from": 117, "to": 118, "label": "PARALLEL" }, { "from": 117, "to": 119, "label": "PARALLEL" }, { "from": 118, "to": 120, "label": "EVAL with clause\nreverse([], X15, X15).\nand substitutionT10 -> [],\nX15 -> [],\nT9 -> []" }, { "from": 118, "to": 121, "label": "EVAL-BACKTRACK" }, { "from": 119, "to": 134, "label": "EVAL with clause\nreverse(.(X24, X25), X26, X27) :- reverse(X25, .(X24, X26), X27).\nand substitutionX24 -> T21,\nX25 -> T20,\nT10 -> .(T21, T20),\nX26 -> [],\nT9 -> T19,\nX27 -> T19,\nT18 -> T20,\nT17 -> T21" }, { "from": 119, "to": 135, "label": "EVAL-BACKTRACK" }, { "from": 120, "to": 122, "label": "SUCCESS" }, { "from": 134, "to": 142, "label": "CASE" }, { "from": 142, "to": 143, "label": "PARALLEL" }, { "from": 142, "to": 144, "label": "PARALLEL" }, { "from": 143, "to": 145, "label": "EVAL with clause\nreverse([], X34, X34).\nand substitutionT20 -> [],\nT21 -> T28,\nX34 -> .(T28, []),\nT19 -> .(T28, [])" }, { "from": 143, "to": 146, "label": "EVAL-BACKTRACK" }, { "from": 144, "to": 177, "label": "EVAL with clause\nreverse(.(X43, X44), X45, X46) :- reverse(X44, .(X43, X45), X46).\nand substitutionX43 -> T42,\nX44 -> T41,\nT20 -> .(T42, T41),\nT21 -> T43,\nX45 -> .(T43, []),\nT19 -> T40,\nX46 -> T40,\nT38 -> T41,\nT37 -> T42,\nT39 -> T43" }, { "from": 144, "to": 178, "label": "EVAL-BACKTRACK" }, { "from": 145, "to": 147, "label": "SUCCESS" }, { "from": 177, "to": 183, "label": "CASE" }, { "from": 183, "to": 184, "label": "PARALLEL" }, { "from": 183, "to": 185, "label": "PARALLEL" }, { "from": 184, "to": 191, "label": "EVAL with clause\nreverse([], X53, X53).\nand substitutionT41 -> [],\nT42 -> T56,\nT43 -> T57,\nX53 -> .(T56, .(T57, [])),\nT40 -> .(T56, .(T57, []))" }, { "from": 184, "to": 192, "label": "EVAL-BACKTRACK" }, { "from": 185, "to": 199, "label": "EVAL with clause\nreverse(.(X62, X63), X64, X65) :- reverse(X63, .(X62, X64), X65).\nand substitutionX62 -> T74,\nX63 -> T73,\nT41 -> .(T74, T73),\nT42 -> T75,\nT43 -> T76,\nX64 -> .(T75, .(T76, [])),\nT40 -> T72,\nX65 -> T72,\nT69 -> T73,\nT68 -> T74,\nT70 -> T75,\nT71 -> T76" }, { "from": 185, "to": 200, "label": "EVAL-BACKTRACK" }, { "from": 191, "to": 193, "label": "SUCCESS" }, { "from": 199, "to": 202, "label": "CASE" }, { "from": 202, "to": 205, "label": "PARALLEL" }, { "from": 202, "to": 206, "label": "PARALLEL" }, { "from": 205, "to": 212, "label": "EVAL with clause\nreverse([], X72, X72).\nand substitutionT73 -> [],\nT74 -> T95,\nT75 -> T96,\nT76 -> T97,\nX72 -> .(T95, .(T96, .(T97, []))),\nT72 -> .(T95, .(T96, .(T97, [])))" }, { "from": 205, "to": 213, "label": "EVAL-BACKTRACK" }, { "from": 206, "to": 241, "label": "EVAL with clause\nreverse(.(X81, X82), X83, X84) :- reverse(X82, .(X81, X83), X84).\nand substitutionX81 -> T117,\nX82 -> T116,\nT73 -> .(T117, T116),\nT74 -> T118,\nT75 -> T119,\nT76 -> T120,\nX83 -> .(T118, .(T119, .(T120, []))),\nT72 -> T115,\nX84 -> T115,\nT111 -> T116,\nT110 -> T117,\nT112 -> T118,\nT113 -> T119,\nT114 -> T120" }, { "from": 206, "to": 242, "label": "EVAL-BACKTRACK" }, { "from": 212, "to": 214, "label": "SUCCESS" }, { "from": 241, "to": 243, "label": "CASE" }, { "from": 243, "to": 244, "label": "PARALLEL" }, { "from": 243, "to": 245, "label": "PARALLEL" }, { "from": 244, "to": 248, "label": "EVAL with clause\nreverse([], X91, X91).\nand substitutionT116 -> [],\nT117 -> T145,\nT118 -> T146,\nT119 -> T147,\nT120 -> T148,\nX91 -> .(T145, .(T146, .(T147, .(T148, [])))),\nT115 -> .(T145, .(T146, .(T147, .(T148, []))))" }, { "from": 244, "to": 249, "label": "EVAL-BACKTRACK" }, { "from": 245, "to": 251, "label": "EVAL with clause\nreverse(.(X100, X101), X102, X103) :- reverse(X101, .(X100, X102), X103).\nand substitutionX100 -> T171,\nX101 -> T170,\nT116 -> .(T171, T170),\nT117 -> T172,\nT118 -> T173,\nT119 -> T174,\nT120 -> T175,\nX102 -> .(T172, .(T173, .(T174, .(T175, [])))),\nT115 -> T169,\nX103 -> T169,\nT164 -> T170,\nT163 -> T171,\nT165 -> T172,\nT166 -> T173,\nT167 -> T174,\nT168 -> T175" }, { "from": 245, "to": 252, "label": "EVAL-BACKTRACK" }, { "from": 248, "to": 250, "label": "SUCCESS" }, { "from": 251, "to": 254, "label": "CASE" }, { "from": 254, "to": 255, "label": "PARALLEL" }, { "from": 254, "to": 256, "label": "PARALLEL" }, { "from": 255, "to": 276, "label": "EVAL with clause\nreverse([], X110, X110).\nand substitutionT170 -> [],\nT171 -> T206,\nT172 -> T207,\nT173 -> T208,\nT174 -> T209,\nT175 -> T210,\nX110 -> .(T206, .(T207, .(T208, .(T209, .(T210, []))))),\nT169 -> .(T206, .(T207, .(T208, .(T209, .(T210, [])))))" }, { "from": 255, "to": 277, "label": "EVAL-BACKTRACK" }, { "from": 256, "to": 282, "label": "EVAL with clause\nreverse(.(X119, X120), X121, X122) :- reverse(X120, .(X119, X121), X122).\nand substitutionX119 -> T236,\nX120 -> T235,\nT170 -> .(T236, T235),\nT171 -> T237,\nT172 -> T238,\nT173 -> T239,\nT174 -> T240,\nT175 -> T241,\nX121 -> .(T237, .(T238, .(T239, .(T240, .(T241, []))))),\nT169 -> T234,\nX122 -> T234,\nT228 -> T235,\nT227 -> T236,\nT229 -> T237,\nT230 -> T238,\nT231 -> T239,\nT232 -> T240,\nT233 -> T241" }, { "from": 256, "to": 283, "label": "EVAL-BACKTRACK" }, { "from": 276, "to": 278, "label": "SUCCESS" }, { "from": 282, "to": 288, "label": "CASE" }, { "from": 288, "to": 297, "label": "PARALLEL" }, { "from": 288, "to": 298, "label": "PARALLEL" }, { "from": 297, "to": 299, "label": "EVAL with clause\nreverse([], X129, X129).\nand substitutionT235 -> [],\nT236 -> T278,\nT237 -> T279,\nT238 -> T280,\nT239 -> T281,\nT240 -> T282,\nT241 -> T283,\nX129 -> .(T278, .(T279, .(T280, .(T281, .(T282, .(T283, [])))))),\nT234 -> .(T278, .(T279, .(T280, .(T281, .(T282, .(T283, []))))))" }, { "from": 297, "to": 300, "label": "EVAL-BACKTRACK" }, { "from": 298, "to": 302, "label": "EVAL with clause\nreverse(.(X138, X139), X140, X141) :- reverse(X139, .(X138, X140), X141).\nand substitutionX138 -> T312,\nX139 -> T311,\nT235 -> .(T312, T311),\nT236 -> T313,\nT237 -> T314,\nT238 -> T315,\nT239 -> T316,\nT240 -> T317,\nT241 -> T318,\nX140 -> .(T313, .(T314, .(T315, .(T316, .(T317, .(T318, [])))))),\nT234 -> T310,\nX141 -> T310,\nT303 -> T311,\nT302 -> T312,\nT304 -> T313,\nT305 -> T314,\nT306 -> T315,\nT307 -> T316,\nT308 -> T317,\nT309 -> T318" }, { "from": 298, "to": 303, "label": "EVAL-BACKTRACK" }, { "from": 299, "to": 301, "label": "SUCCESS" }, { "from": 302, "to": 304, "label": "CASE" }, { "from": 304, "to": 305, "label": "PARALLEL" }, { "from": 304, "to": 306, "label": "PARALLEL" }, { "from": 305, "to": 307, "label": "EVAL with clause\nreverse([], X148, X148).\nand substitutionT311 -> [],\nT312 -> T361,\nT313 -> T362,\nT314 -> T363,\nT315 -> T364,\nT316 -> T365,\nT317 -> T366,\nT318 -> T367,\nX148 -> .(T361, .(T362, .(T363, .(T364, .(T365, .(T366, .(T367, []))))))),\nT310 -> .(T361, .(T362, .(T363, .(T364, .(T365, .(T366, .(T367, [])))))))" }, { "from": 305, "to": 308, "label": "EVAL-BACKTRACK" }, { "from": 306, "to": 314, "label": "EVAL with clause\nreverse(.(X157, X158), X159, X160) :- reverse(X158, .(X157, X159), X160).\nand substitutionX157 -> T399,\nX158 -> T398,\nT311 -> .(T399, T398),\nT312 -> T400,\nT313 -> T401,\nT314 -> T402,\nT315 -> T403,\nT316 -> T404,\nT317 -> T405,\nT318 -> T406,\nX159 -> .(T400, .(T401, .(T402, .(T403, .(T404, .(T405, .(T406, []))))))),\nT310 -> T397,\nX160 -> T397,\nT389 -> T398,\nT388 -> T399,\nT390 -> T400,\nT391 -> T401,\nT392 -> T402,\nT393 -> T403,\nT394 -> T404,\nT395 -> T405,\nT396 -> T406" }, { "from": 306, "to": 316, "label": "EVAL-BACKTRACK" }, { "from": 307, "to": 309, "label": "SUCCESS" }, { "from": 314, "to": 329, "label": "GENERALIZATION\nT423 <-- .(T400, .(T401, .(T402, .(T403, .(T404, .(T405, .(T406, [])))))))" }, { "from": 329, "to": 330, "label": "CASE" }, { "from": 330, "to": 331, "label": "PARALLEL" }, { "from": 330, "to": 332, "label": "PARALLEL" }, { "from": 331, "to": 334, "label": "EVAL with clause\nreverse([], X169, X169).\nand substitutionT398 -> [],\nT399 -> T436,\nT423 -> T437,\nX169 -> .(T436, T437),\nT397 -> .(T436, T437)" }, { "from": 331, "to": 335, "label": "EVAL-BACKTRACK" }, { "from": 332, "to": 343, "label": "EVAL with clause\nreverse(.(X178, X179), X180, X181) :- reverse(X179, .(X178, X180), X181).\nand substitutionX178 -> T454,\nX179 -> T453,\nT398 -> .(T454, T453),\nT399 -> T455,\nT423 -> T456,\nX180 -> .(T455, T456),\nT397 -> T452,\nX181 -> T452,\nT449 -> T453,\nT448 -> T454,\nT450 -> T455,\nT451 -> T456" }, { "from": 332, "to": 344, "label": "EVAL-BACKTRACK" }, { "from": 334, "to": 336, "label": "SUCCESS" }, { "from": 343, "to": 329, "label": "INSTANCE with matching:\nT398 -> T453\nT399 -> T454\nT423 -> .(T455, T456)\nT397 -> T452" } ], "type": "Graph" } } ---------------------------------------- (48) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f102_in([]) -> f102_out1([]) f102_in(.(T28, [])) -> f102_out1(.(T28, [])) f102_in(.(T56, .(T57, []))) -> f102_out1(.(T57, .(T56, []))) f102_in(.(T95, .(T96, .(T97, [])))) -> f102_out1(.(T97, .(T96, .(T95, [])))) f102_in(.(T145, .(T146, .(T147, .(T148, []))))) -> f102_out1(.(T148, .(T147, .(T146, .(T145, []))))) f102_in(.(T206, .(T207, .(T208, .(T209, .(T210, [])))))) -> f102_out1(.(T210, .(T209, .(T208, .(T207, .(T206, [])))))) f102_in(.(T278, .(T279, .(T280, .(T281, .(T282, .(T283, []))))))) -> f102_out1(.(T283, .(T282, .(T281, .(T280, .(T279, .(T278, []))))))) f102_in(.(T361, .(T362, .(T363, .(T364, .(T365, .(T366, .(T367, [])))))))) -> f102_out1(.(T367, .(T366, .(T365, .(T364, .(T363, .(T362, .(T361, [])))))))) f102_in(T397) -> U1(f329_in(T397), T397) U1(f329_out1(T398, T399, .(T400, .(T401, .(T402, .(T403, .(T404, .(T405, .(T406, [])))))))), T397) -> f102_out1(.(T406, .(T405, .(T404, .(T403, .(T402, .(T401, .(T400, .(T399, T398))))))))) f329_in(.(T436, T437)) -> f329_out1([], T436, T437) f329_in(T452) -> U2(f329_in(T452), T452) U2(f329_out1(T453, T454, .(T455, T456)), T452) -> f329_out1(.(T454, T453), T455, T456) Q is empty. ---------------------------------------- (49) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 113, "program": { "directives": [], "clauses": [ [ "(reverse X1s X2s)", "(reverse X1s ([]) X2s)" ], [ "(reverse ([]) Xs Xs)", null ], [ "(reverse (. X X1s) X2s Ys)", "(reverse X1s (. X X2s) Ys)" ] ] }, "graph": { "nodes": { "190": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes", "150": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "151": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "152": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "197": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T73 (. T74 (. T75 (. T76 ([])))) T72)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T72"], "free": [], "exprvars": [] } }, "274": { "goal": [{ "clause": 1, "scope": 7, "term": "(reverse T170 (. T171 (. T172 (. T173 (. T174 (. T175 ([])))))) T169)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T169"], "free": [], "exprvars": [] } }, "198": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "231": { "goal": [{ "clause": 1, "scope": 6, "term": "(reverse T116 (. T117 (. T118 (. T119 (. T120 ([]))))) T115)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T115"], "free": [], "exprvars": [] } }, "275": { "goal": [{ "clause": 2, "scope": 7, "term": "(reverse T170 (. T171 (. T172 (. T173 (. T174 (. T175 ([])))))) T169)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T169"], "free": [], "exprvars": [] } }, "232": { "goal": [{ "clause": 2, "scope": 6, "term": "(reverse T116 (. T117 (. T118 (. T119 (. T120 ([]))))) T115)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T115"], "free": [], "exprvars": [] } }, "310": { "goal": [ { "clause": 1, "scope": 9, "term": "(reverse T311 (. T312 (. T313 (. T314 (. T315 (. T316 (. T317 (. T318 ([])))))))) T310)" }, { "clause": 2, "scope": 9, "term": "(reverse T311 (. T312 (. T313 (. T314 (. T315 (. T316 (. T317 (. T318 ([])))))))) T310)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T310"], "free": [], "exprvars": [] } }, "113": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "311": { "goal": [{ "clause": 1, "scope": 9, "term": "(reverse T311 (. T312 (. T313 (. T314 (. T315 (. T316 (. T317 (. T318 ([])))))))) T310)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T310"], "free": [], "exprvars": [] } }, "114": { "goal": [{ "clause": 0, "scope": 1, "term": "(reverse T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T2"], "free": [], "exprvars": [] } }, "235": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "279": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "312": { "goal": [{ "clause": 2, "scope": 9, "term": "(reverse T311 (. T312 (. T313 (. T314 (. T315 (. T316 (. T317 (. T318 ([])))))))) T310)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T310"], "free": [], "exprvars": [] } }, "236": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "313": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "116": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T10 ([]) T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "237": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "315": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "317": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "280": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "281": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "286": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T235 (. T236 (. T237 (. T238 (. T239 (. T240 (. T241 ([]))))))) T234)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T234"], "free": [], "exprvars": [] } }, "287": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "123": { "goal": [ { "clause": 1, "scope": 2, "term": "(reverse T10 ([]) T9)" }, { "clause": 2, "scope": 2, "term": "(reverse T10 ([]) T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "124": { "goal": [{ "clause": 1, "scope": 2, "term": "(reverse T10 ([]) T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "201": { "goal": [ { "clause": 1, "scope": 5, "term": "(reverse T73 (. T74 (. T75 (. T76 ([])))) T72)" }, { "clause": 2, "scope": 5, "term": "(reverse T73 (. T74 (. T75 (. T76 ([])))) T72)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T72"], "free": [], "exprvars": [] } }, "289": { "goal": [ { "clause": 1, "scope": 8, "term": "(reverse T235 (. T236 (. T237 (. T238 (. T239 (. T240 (. T241 ([]))))))) T234)" }, { "clause": 2, "scope": 8, "term": "(reverse T235 (. T236 (. T237 (. T238 (. T239 (. T240 (. T241 ([]))))))) T234)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T234"], "free": [], "exprvars": [] } }, "125": { "goal": [{ "clause": 2, "scope": 2, "term": "(reverse T10 ([]) T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "126": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "203": { "goal": [{ "clause": 1, "scope": 5, "term": "(reverse T73 (. T74 (. T75 (. T76 ([])))) T72)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T72"], "free": [], "exprvars": [] } }, "127": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "204": { "goal": [{ "clause": 2, "scope": 5, "term": "(reverse T73 (. T74 (. T75 (. T76 ([])))) T72)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T72"], "free": [], "exprvars": [] } }, "128": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "327": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T398 (. T399 (. T400 (. T401 (. T402 (. T403 (. T404 (. T405 (. T406 ([]))))))))) T397)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T397"], "free": [], "exprvars": [] } }, "207": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "328": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "208": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "209": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "290": { "goal": [{ "clause": 1, "scope": 8, "term": "(reverse T235 (. T236 (. T237 (. T238 (. T239 (. T240 (. T241 ([]))))))) T234)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T234"], "free": [], "exprvars": [] } }, "291": { "goal": [{ "clause": 2, "scope": 8, "term": "(reverse T235 (. T236 (. T237 (. T238 (. T239 (. T240 (. T241 ([]))))))) T234)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T234"], "free": [], "exprvars": [] } }, "292": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "293": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "294": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "295": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T311 (. T312 (. T313 (. T314 (. T315 (. T316 (. T317 (. T318 ([])))))))) T310)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T310"], "free": [], "exprvars": [] } }, "175": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T41 (. T42 (. T43 ([]))) T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [], "exprvars": [] } }, "296": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "176": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "179": { "goal": [ { "clause": 1, "scope": 4, "term": "(reverse T41 (. T42 (. T43 ([]))) T40)" }, { "clause": 2, "scope": 4, "term": "(reverse T41 (. T42 (. T43 ([]))) T40)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [], "exprvars": [] } }, "333": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T398 (. T399 T423) T397)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T397"], "free": [], "exprvars": [] } }, "136": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T20 (. T21 ([])) T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "137": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "216": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T116 (. T117 (. T118 (. T119 (. T120 ([]))))) T115)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T115"], "free": [], "exprvars": [] } }, "337": { "goal": [ { "clause": 1, "scope": 10, "term": "(reverse T398 (. T399 T423) T397)" }, { "clause": 2, "scope": 10, "term": "(reverse T398 (. T399 T423) T397)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T397"], "free": [], "exprvars": [] } }, "217": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "338": { "goal": [{ "clause": 1, "scope": 10, "term": "(reverse T398 (. T399 T423) T397)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T397"], "free": [], "exprvars": [] } }, "339": { "goal": [{ "clause": 2, "scope": 10, "term": "(reverse T398 (. T399 T423) T397)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T397"], "free": [], "exprvars": [] } }, "181": { "goal": [{ "clause": 1, "scope": 4, "term": "(reverse T41 (. T42 (. T43 ([]))) T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [], "exprvars": [] } }, "182": { "goal": [{ "clause": 2, "scope": 4, "term": "(reverse T41 (. T42 (. T43 ([]))) T40)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [], "exprvars": [] } }, "260": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T170 (. T171 (. T172 (. T173 (. T174 (. T175 ([])))))) T169)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T169"], "free": [], "exprvars": [] } }, "141": { "goal": [ { "clause": 1, "scope": 3, "term": "(reverse T20 (. T21 ([])) T19)" }, { "clause": 2, "scope": 3, "term": "(reverse T20 (. T21 ([])) T19)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "262": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "340": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "220": { "goal": [ { "clause": 1, "scope": 6, "term": "(reverse T116 (. T117 (. T118 (. T119 (. T120 ([]))))) T115)" }, { "clause": 2, "scope": 6, "term": "(reverse T116 (. T117 (. T118 (. T119 (. T120 ([]))))) T115)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T115"], "free": [], "exprvars": [] } }, "341": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "188": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "342": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "189": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "268": { "goal": [ { "clause": 1, "scope": 7, "term": "(reverse T170 (. T171 (. T172 (. T173 (. T174 (. T175 ([])))))) T169)" }, { "clause": 2, "scope": 7, "term": "(reverse T170 (. T171 (. T172 (. T173 (. T174 (. T175 ([])))))) T169)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T169"], "free": [], "exprvars": [] } }, "345": { "goal": [{ "clause": -1, "scope": -1, "term": "(reverse T453 (. T454 (. T455 T456)) T452)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T452"], "free": [], "exprvars": [] } }, "148": { "goal": [{ "clause": 1, "scope": 3, "term": "(reverse T20 (. T21 ([])) T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } }, "346": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "149": { "goal": [{ "clause": 2, "scope": 3, "term": "(reverse T20 (. T21 ([])) T19)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": [], "exprvars": [] } } }, "edges": [ { "from": 113, "to": 114, "label": "CASE" }, { "from": 114, "to": 116, "label": "ONLY EVAL with clause\nreverse(X7, X8) :- reverse(X7, [], X8).\nand substitutionT1 -> T10,\nX7 -> T10,\nT2 -> T9,\nX8 -> T9,\nT8 -> T10" }, { "from": 116, "to": 123, "label": "CASE" }, { "from": 123, "to": 124, "label": "PARALLEL" }, { "from": 123, "to": 125, "label": "PARALLEL" }, { "from": 124, "to": 126, "label": "EVAL with clause\nreverse([], X15, X15).\nand substitutionT10 -> [],\nX15 -> [],\nT9 -> []" }, { "from": 124, "to": 127, "label": "EVAL-BACKTRACK" }, { "from": 125, "to": 136, "label": "EVAL with clause\nreverse(.(X24, X25), X26, X27) :- reverse(X25, .(X24, X26), X27).\nand substitutionX24 -> T21,\nX25 -> T20,\nT10 -> .(T21, T20),\nX26 -> [],\nT9 -> T19,\nX27 -> T19,\nT18 -> T20,\nT17 -> T21" }, { "from": 125, "to": 137, "label": "EVAL-BACKTRACK" }, { "from": 126, "to": 128, "label": "SUCCESS" }, { "from": 136, "to": 141, "label": "CASE" }, { "from": 141, "to": 148, "label": "PARALLEL" }, { "from": 141, "to": 149, "label": "PARALLEL" }, { "from": 148, "to": 150, "label": "EVAL with clause\nreverse([], X34, X34).\nand substitutionT20 -> [],\nT21 -> T28,\nX34 -> .(T28, []),\nT19 -> .(T28, [])" }, { "from": 148, "to": 151, "label": "EVAL-BACKTRACK" }, { "from": 149, "to": 175, "label": "EVAL with clause\nreverse(.(X43, X44), X45, X46) :- reverse(X44, .(X43, X45), X46).\nand substitutionX43 -> T42,\nX44 -> T41,\nT20 -> .(T42, T41),\nT21 -> T43,\nX45 -> .(T43, []),\nT19 -> T40,\nX46 -> T40,\nT38 -> T41,\nT37 -> T42,\nT39 -> T43" }, { "from": 149, "to": 176, "label": "EVAL-BACKTRACK" }, { "from": 150, "to": 152, "label": "SUCCESS" }, { "from": 175, "to": 179, "label": "CASE" }, { "from": 179, "to": 181, "label": "PARALLEL" }, { "from": 179, "to": 182, "label": "PARALLEL" }, { "from": 181, "to": 188, "label": "EVAL with clause\nreverse([], X53, X53).\nand substitutionT41 -> [],\nT42 -> T56,\nT43 -> T57,\nX53 -> .(T56, .(T57, [])),\nT40 -> .(T56, .(T57, []))" }, { "from": 181, "to": 189, "label": "EVAL-BACKTRACK" }, { "from": 182, "to": 197, "label": "EVAL with clause\nreverse(.(X62, X63), X64, X65) :- reverse(X63, .(X62, X64), X65).\nand substitutionX62 -> T74,\nX63 -> T73,\nT41 -> .(T74, T73),\nT42 -> T75,\nT43 -> T76,\nX64 -> .(T75, .(T76, [])),\nT40 -> T72,\nX65 -> T72,\nT69 -> T73,\nT68 -> T74,\nT70 -> T75,\nT71 -> T76" }, { "from": 182, "to": 198, "label": "EVAL-BACKTRACK" }, { "from": 188, "to": 190, "label": "SUCCESS" }, { "from": 197, "to": 201, "label": "CASE" }, { "from": 201, "to": 203, "label": "PARALLEL" }, { "from": 201, "to": 204, "label": "PARALLEL" }, { "from": 203, "to": 207, "label": "EVAL with clause\nreverse([], X72, X72).\nand substitutionT73 -> [],\nT74 -> T95,\nT75 -> T96,\nT76 -> T97,\nX72 -> .(T95, .(T96, .(T97, []))),\nT72 -> .(T95, .(T96, .(T97, [])))" }, { "from": 203, "to": 208, "label": "EVAL-BACKTRACK" }, { "from": 204, "to": 216, "label": "EVAL with clause\nreverse(.(X81, X82), X83, X84) :- reverse(X82, .(X81, X83), X84).\nand substitutionX81 -> T117,\nX82 -> T116,\nT73 -> .(T117, T116),\nT74 -> T118,\nT75 -> T119,\nT76 -> T120,\nX83 -> .(T118, .(T119, .(T120, []))),\nT72 -> T115,\nX84 -> T115,\nT111 -> T116,\nT110 -> T117,\nT112 -> T118,\nT113 -> T119,\nT114 -> T120" }, { "from": 204, "to": 217, "label": "EVAL-BACKTRACK" }, { "from": 207, "to": 209, "label": "SUCCESS" }, { "from": 216, "to": 220, "label": "CASE" }, { "from": 220, "to": 231, "label": "PARALLEL" }, { "from": 220, "to": 232, "label": "PARALLEL" }, { "from": 231, "to": 235, "label": "EVAL with clause\nreverse([], X91, X91).\nand substitutionT116 -> [],\nT117 -> T145,\nT118 -> T146,\nT119 -> T147,\nT120 -> T148,\nX91 -> .(T145, .(T146, .(T147, .(T148, [])))),\nT115 -> .(T145, .(T146, .(T147, .(T148, []))))" }, { "from": 231, "to": 236, "label": "EVAL-BACKTRACK" }, { "from": 232, "to": 260, "label": "EVAL with clause\nreverse(.(X100, X101), X102, X103) :- reverse(X101, .(X100, X102), X103).\nand substitutionX100 -> T171,\nX101 -> T170,\nT116 -> .(T171, T170),\nT117 -> T172,\nT118 -> T173,\nT119 -> T174,\nT120 -> T175,\nX102 -> .(T172, .(T173, .(T174, .(T175, [])))),\nT115 -> T169,\nX103 -> T169,\nT164 -> T170,\nT163 -> T171,\nT165 -> T172,\nT166 -> T173,\nT167 -> T174,\nT168 -> T175" }, { "from": 232, "to": 262, "label": "EVAL-BACKTRACK" }, { "from": 235, "to": 237, "label": "SUCCESS" }, { "from": 260, "to": 268, "label": "CASE" }, { "from": 268, "to": 274, "label": "PARALLEL" }, { "from": 268, "to": 275, "label": "PARALLEL" }, { "from": 274, "to": 279, "label": "EVAL with clause\nreverse([], X110, X110).\nand substitutionT170 -> [],\nT171 -> T206,\nT172 -> T207,\nT173 -> T208,\nT174 -> T209,\nT175 -> T210,\nX110 -> .(T206, .(T207, .(T208, .(T209, .(T210, []))))),\nT169 -> .(T206, .(T207, .(T208, .(T209, .(T210, [])))))" }, { "from": 274, "to": 280, "label": "EVAL-BACKTRACK" }, { "from": 275, "to": 286, "label": "EVAL with clause\nreverse(.(X119, X120), X121, X122) :- reverse(X120, .(X119, X121), X122).\nand substitutionX119 -> T236,\nX120 -> T235,\nT170 -> .(T236, T235),\nT171 -> T237,\nT172 -> T238,\nT173 -> T239,\nT174 -> T240,\nT175 -> T241,\nX121 -> .(T237, .(T238, .(T239, .(T240, .(T241, []))))),\nT169 -> T234,\nX122 -> T234,\nT228 -> T235,\nT227 -> T236,\nT229 -> T237,\nT230 -> T238,\nT231 -> T239,\nT232 -> T240,\nT233 -> T241" }, { "from": 275, "to": 287, "label": "EVAL-BACKTRACK" }, { "from": 279, "to": 281, "label": "SUCCESS" }, { "from": 286, "to": 289, "label": "CASE" }, { "from": 289, "to": 290, "label": "PARALLEL" }, { "from": 289, "to": 291, "label": "PARALLEL" }, { "from": 290, "to": 292, "label": "EVAL with clause\nreverse([], X129, X129).\nand substitutionT235 -> [],\nT236 -> T278,\nT237 -> T279,\nT238 -> T280,\nT239 -> T281,\nT240 -> T282,\nT241 -> T283,\nX129 -> .(T278, .(T279, .(T280, .(T281, .(T282, .(T283, [])))))),\nT234 -> .(T278, .(T279, .(T280, .(T281, .(T282, .(T283, []))))))" }, { "from": 290, "to": 293, "label": "EVAL-BACKTRACK" }, { "from": 291, "to": 295, "label": "EVAL with clause\nreverse(.(X138, X139), X140, X141) :- reverse(X139, .(X138, X140), X141).\nand substitutionX138 -> T312,\nX139 -> T311,\nT235 -> .(T312, T311),\nT236 -> T313,\nT237 -> T314,\nT238 -> T315,\nT239 -> T316,\nT240 -> T317,\nT241 -> T318,\nX140 -> .(T313, .(T314, .(T315, .(T316, .(T317, .(T318, [])))))),\nT234 -> T310,\nX141 -> T310,\nT303 -> T311,\nT302 -> T312,\nT304 -> T313,\nT305 -> T314,\nT306 -> T315,\nT307 -> T316,\nT308 -> T317,\nT309 -> T318" }, { "from": 291, "to": 296, "label": "EVAL-BACKTRACK" }, { "from": 292, "to": 294, "label": "SUCCESS" }, { "from": 295, "to": 310, "label": "CASE" }, { "from": 310, "to": 311, "label": "PARALLEL" }, { "from": 310, "to": 312, "label": "PARALLEL" }, { "from": 311, "to": 313, "label": "EVAL with clause\nreverse([], X148, X148).\nand substitutionT311 -> [],\nT312 -> T361,\nT313 -> T362,\nT314 -> T363,\nT315 -> T364,\nT316 -> T365,\nT317 -> T366,\nT318 -> T367,\nX148 -> .(T361, .(T362, .(T363, .(T364, .(T365, .(T366, .(T367, []))))))),\nT310 -> .(T361, .(T362, .(T363, .(T364, .(T365, .(T366, .(T367, [])))))))" }, { "from": 311, "to": 315, "label": "EVAL-BACKTRACK" }, { "from": 312, "to": 327, "label": "EVAL with clause\nreverse(.(X157, X158), X159, X160) :- reverse(X158, .(X157, X159), X160).\nand substitutionX157 -> T399,\nX158 -> T398,\nT311 -> .(T399, T398),\nT312 -> T400,\nT313 -> T401,\nT314 -> T402,\nT315 -> T403,\nT316 -> T404,\nT317 -> T405,\nT318 -> T406,\nX159 -> .(T400, .(T401, .(T402, .(T403, .(T404, .(T405, .(T406, []))))))),\nT310 -> T397,\nX160 -> T397,\nT389 -> T398,\nT388 -> T399,\nT390 -> T400,\nT391 -> T401,\nT392 -> T402,\nT393 -> T403,\nT394 -> T404,\nT395 -> T405,\nT396 -> T406" }, { "from": 312, "to": 328, "label": "EVAL-BACKTRACK" }, { "from": 313, "to": 317, "label": "SUCCESS" }, { "from": 327, "to": 333, "label": "GENERALIZATION\nT423 <-- .(T400, .(T401, .(T402, .(T403, .(T404, .(T405, .(T406, [])))))))" }, { "from": 333, "to": 337, "label": "CASE" }, { "from": 337, "to": 338, "label": "PARALLEL" }, { "from": 337, "to": 339, "label": "PARALLEL" }, { "from": 338, "to": 340, "label": "EVAL with clause\nreverse([], X169, X169).\nand substitutionT398 -> [],\nT399 -> T436,\nT423 -> T437,\nX169 -> .(T436, T437),\nT397 -> .(T436, T437)" }, { "from": 338, "to": 341, "label": "EVAL-BACKTRACK" }, { "from": 339, "to": 345, "label": "EVAL with clause\nreverse(.(X178, X179), X180, X181) :- reverse(X179, .(X178, X180), X181).\nand substitutionX178 -> T454,\nX179 -> T453,\nT398 -> .(T454, T453),\nT399 -> T455,\nT423 -> T456,\nX180 -> .(T455, T456),\nT397 -> T452,\nX181 -> T452,\nT449 -> T453,\nT448 -> T454,\nT450 -> T455,\nT451 -> T456" }, { "from": 339, "to": 346, "label": "EVAL-BACKTRACK" }, { "from": 340, "to": 342, "label": "SUCCESS" }, { "from": 345, "to": 333, "label": "INSTANCE with matching:\nT398 -> T453\nT399 -> T454\nT423 -> .(T455, T456)\nT397 -> T452" } ], "type": "Graph" } } ---------------------------------------- (50) Obligation: Rules: f337_in(T397) -> f338_in(T397) :|: TRUE f338_out(x) -> f337_out(x) :|: TRUE f339_out(x1) -> f337_out(x1) :|: TRUE f337_in(x2) -> f339_in(x2) :|: TRUE f339_in(x3) -> f346_in :|: TRUE f345_out(T452) -> f339_out(T452) :|: TRUE f346_out -> f339_out(x4) :|: TRUE f339_in(x5) -> f345_in(x5) :|: TRUE f337_out(x6) -> f333_out(x6) :|: TRUE f333_in(x7) -> f337_in(x7) :|: TRUE f345_in(x8) -> f333_in(x8) :|: TRUE f333_out(x9) -> f345_out(x9) :|: TRUE f114_out(T2) -> f113_out(T2) :|: TRUE f113_in(x10) -> f114_in(x10) :|: TRUE f116_out(T9) -> f114_out(T9) :|: TRUE f114_in(x11) -> f116_in(x11) :|: TRUE f116_in(x12) -> f123_in(x12) :|: TRUE f123_out(x13) -> f116_out(x13) :|: TRUE f124_out(x14) -> f123_out(x14) :|: TRUE f125_out(x15) -> f123_out(x15) :|: TRUE f123_in(x16) -> f125_in(x16) :|: TRUE f123_in(x17) -> f124_in(x17) :|: TRUE f137_out -> f125_out(x18) :|: TRUE f125_in(x19) -> f137_in :|: TRUE f136_out(T19) -> f125_out(T19) :|: TRUE f125_in(x20) -> f136_in(x20) :|: TRUE f136_in(x21) -> f141_in(x21) :|: TRUE f141_out(x22) -> f136_out(x22) :|: TRUE f148_out(x23) -> f141_out(x23) :|: TRUE f149_out(x24) -> f141_out(x24) :|: TRUE f141_in(x25) -> f149_in(x25) :|: TRUE f141_in(x26) -> f148_in(x26) :|: TRUE f175_out(T40) -> f149_out(T40) :|: TRUE f149_in(x27) -> f176_in :|: TRUE f176_out -> f149_out(x28) :|: TRUE f149_in(x29) -> f175_in(x29) :|: TRUE f179_out(x30) -> f175_out(x30) :|: TRUE f175_in(x31) -> f179_in(x31) :|: TRUE f179_in(x32) -> f181_in(x32) :|: TRUE f179_in(x33) -> f182_in(x33) :|: TRUE f182_out(x34) -> f179_out(x34) :|: TRUE f181_out(x35) -> f179_out(x35) :|: TRUE f182_in(T72) -> f197_in(T72) :|: TRUE f182_in(x36) -> f198_in :|: TRUE f198_out -> f182_out(x37) :|: TRUE f197_out(x38) -> f182_out(x38) :|: TRUE f201_out(x39) -> f197_out(x39) :|: TRUE f197_in(x40) -> f201_in(x40) :|: TRUE f201_in(x41) -> f204_in(x41) :|: TRUE f203_out(x42) -> f201_out(x42) :|: TRUE f201_in(x43) -> f203_in(x43) :|: TRUE f204_out(x44) -> f201_out(x44) :|: TRUE f204_in(x45) -> f217_in :|: TRUE f217_out -> f204_out(x46) :|: TRUE f204_in(T115) -> f216_in(T115) :|: TRUE f216_out(x47) -> f204_out(x47) :|: TRUE f220_out(x48) -> f216_out(x48) :|: TRUE f216_in(x49) -> f220_in(x49) :|: TRUE f220_in(x50) -> f232_in(x50) :|: TRUE f220_in(x51) -> f231_in(x51) :|: TRUE f232_out(x52) -> f220_out(x52) :|: TRUE f231_out(x53) -> f220_out(x53) :|: TRUE f232_in(x54) -> f262_in :|: TRUE f262_out -> f232_out(x55) :|: TRUE f260_out(T169) -> f232_out(T169) :|: TRUE f232_in(x56) -> f260_in(x56) :|: TRUE f268_out(x57) -> f260_out(x57) :|: TRUE f260_in(x58) -> f268_in(x58) :|: TRUE f268_in(x59) -> f274_in(x59) :|: TRUE f274_out(x60) -> f268_out(x60) :|: TRUE f268_in(x61) -> f275_in(x61) :|: TRUE f275_out(x62) -> f268_out(x62) :|: TRUE f275_in(x63) -> f287_in :|: TRUE f275_in(T234) -> f286_in(T234) :|: TRUE f286_out(x64) -> f275_out(x64) :|: TRUE f287_out -> f275_out(x65) :|: TRUE f289_out(x66) -> f286_out(x66) :|: TRUE f286_in(x67) -> f289_in(x67) :|: TRUE f289_in(x68) -> f290_in(x68) :|: TRUE f291_out(x69) -> f289_out(x69) :|: TRUE f290_out(x70) -> f289_out(x70) :|: TRUE f289_in(x71) -> f291_in(x71) :|: TRUE f291_in(x72) -> f296_in :|: TRUE f296_out -> f291_out(x73) :|: TRUE f295_out(T310) -> f291_out(T310) :|: TRUE f291_in(x74) -> f295_in(x74) :|: TRUE f295_in(x75) -> f310_in(x75) :|: TRUE f310_out(x76) -> f295_out(x76) :|: TRUE f312_out(x77) -> f310_out(x77) :|: TRUE f310_in(x78) -> f311_in(x78) :|: TRUE f310_in(x79) -> f312_in(x79) :|: TRUE f311_out(x80) -> f310_out(x80) :|: TRUE f312_in(x81) -> f328_in :|: TRUE f312_in(x82) -> f327_in(x82) :|: TRUE f328_out -> f312_out(x83) :|: TRUE f327_out(x84) -> f312_out(x84) :|: TRUE f333_out(x85) -> f327_out(x85) :|: TRUE f327_in(x86) -> f333_in(x86) :|: TRUE Start term: f113_in(T2) ---------------------------------------- (51) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f337_in(x2) -> f339_in(x2) :|: TRUE f339_in(x5) -> f345_in(x5) :|: TRUE f333_in(x7) -> f337_in(x7) :|: TRUE f345_in(x8) -> f333_in(x8) :|: TRUE ---------------------------------------- (52) Obligation: Rules: f337_in(x2) -> f339_in(x2) :|: TRUE f339_in(x5) -> f345_in(x5) :|: TRUE f333_in(x7) -> f337_in(x7) :|: TRUE f345_in(x8) -> f333_in(x8) :|: TRUE ---------------------------------------- (53) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (54) Obligation: Rules: f333_in(x7:0) -> f333_in(x7:0) :|: TRUE ---------------------------------------- (55) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (56) Obligation: Rules: f333_in(x7:0) -> f333_in(x7:0) :|: TRUE ---------------------------------------- (57) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f333_in(x7:0) -> f333_in(x7:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (58) Obligation: Termination digraph: Nodes: (1) f333_in(x7:0) -> f333_in(x7:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (59) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f333_in(VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (60) Obligation: Rules: f333_in(x7:0) -> f333_in(x7:0) :|: TRUE ---------------------------------------- (61) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x7:0) -> f(1, x7:0) :|: pc = 1 && TRUE Witness term starting non-terminating reduction: f(1, -8) ---------------------------------------- (62) NO