6.00/2.42 MAYBE 6.00/2.45 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 6.00/2.45 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.00/2.45 6.00/2.45 6.00/2.45 Left Termination of the query pattern 6.00/2.45 6.00/2.45 suffix(g,a) 6.00/2.45 6.00/2.45 w.r.t. the given Prolog program could not be shown: 6.00/2.45 6.00/2.45 (0) Prolog 6.00/2.45 (1) PrologToPiTRSProof [SOUND, 0 ms] 6.00/2.45 (2) PiTRS 6.00/2.45 (3) DependencyPairsProof [EQUIVALENT, 0 ms] 6.00/2.45 (4) PiDP 6.00/2.45 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 6.00/2.45 (6) PiDP 6.00/2.45 (7) UsableRulesProof [EQUIVALENT, 0 ms] 6.00/2.45 (8) PiDP 6.00/2.45 (9) PiDPToQDPProof [SOUND, 0 ms] 6.00/2.45 (10) QDP 6.00/2.45 (11) PrologToPiTRSProof [SOUND, 0 ms] 6.00/2.45 (12) PiTRS 6.00/2.45 (13) DependencyPairsProof [EQUIVALENT, 0 ms] 6.00/2.45 (14) PiDP 6.00/2.45 (15) DependencyGraphProof [EQUIVALENT, 0 ms] 6.00/2.45 (16) PiDP 6.00/2.45 (17) UsableRulesProof [EQUIVALENT, 0 ms] 6.00/2.45 (18) PiDP 6.00/2.45 (19) PiDPToQDPProof [SOUND, 0 ms] 6.00/2.45 (20) QDP 6.00/2.45 (21) PrologToTRSTransformerProof [SOUND, 0 ms] 6.00/2.45 (22) QTRS 6.00/2.45 (23) DependencyPairsProof [EQUIVALENT, 0 ms] 6.00/2.45 (24) QDP 6.00/2.45 (25) DependencyGraphProof [EQUIVALENT, 0 ms] 6.00/2.45 (26) QDP 6.00/2.45 (27) MNOCProof [EQUIVALENT, 0 ms] 6.00/2.45 (28) QDP 6.00/2.45 (29) UsableRulesProof [EQUIVALENT, 0 ms] 6.00/2.45 (30) QDP 6.00/2.45 (31) QReductionProof [EQUIVALENT, 0 ms] 6.00/2.45 (32) QDP 6.00/2.45 (33) PrologToDTProblemTransformerProof [SOUND, 0 ms] 6.00/2.45 (34) TRIPLES 6.00/2.45 (35) TriplesToPiDPProof [SOUND, 0 ms] 6.00/2.45 (36) PiDP 6.00/2.45 (37) DependencyGraphProof [EQUIVALENT, 0 ms] 6.00/2.45 (38) PiDP 6.00/2.45 (39) PiDPToQDPProof [SOUND, 0 ms] 6.00/2.45 (40) QDP 6.00/2.45 (41) PrologToIRSwTTransformerProof [SOUND, 0 ms] 6.00/2.45 (42) IRSwT 6.00/2.45 (43) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 6.00/2.45 (44) IRSwT 6.00/2.45 (45) IntTRSCompressionProof [EQUIVALENT, 1 ms] 6.00/2.45 (46) IRSwT 6.00/2.45 (47) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 6.00/2.45 (48) IRSwT 6.00/2.45 (49) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 6.00/2.45 (50) IRSwT 6.00/2.45 (51) FilterProof [EQUIVALENT, 0 ms] 6.00/2.45 (52) IntTRS 6.00/2.45 (53) IntTRSPeriodicNontermProof [COMPLETE, 0 ms] 6.00/2.45 (54) NO 6.00/2.45 6.00/2.45 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (0) 6.00/2.45 Obligation: 6.00/2.45 Clauses: 6.00/2.45 6.00/2.45 suffix(Xs, Ys) :- app(X1, Xs, Ys). 6.00/2.45 app([], X, X). 6.00/2.45 app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs). 6.00/2.45 6.00/2.45 6.00/2.45 Query: suffix(g,a) 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (1) PrologToPiTRSProof (SOUND) 6.00/2.45 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.00/2.45 6.00/2.45 suffix_in_2: (b,f) 6.00/2.45 6.00/2.45 app_in_3: (f,b,f) 6.00/2.45 6.00/2.45 Transforming Prolog into the following Term Rewriting System: 6.00/2.45 6.00/2.45 Pi-finite rewrite system: 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 suffix_in_ga(Xs, Ys) -> U1_ga(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 app_in_aga([], X, X) -> app_out_aga([], X, X) 6.00/2.45 app_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U2_aga(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 U2_aga(X, Xs, Ys, Zs, app_out_aga(Xs, Ys, Zs)) -> app_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.00/2.45 U1_ga(Xs, Ys, app_out_aga(X1, Xs, Ys)) -> suffix_out_ga(Xs, Ys) 6.00/2.45 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 suffix_in_ga(x1, x2) = suffix_in_ga(x1) 6.00/2.45 6.00/2.45 U1_ga(x1, x2, x3) = U1_ga(x3) 6.00/2.45 6.00/2.45 app_in_aga(x1, x2, x3) = app_in_aga(x2) 6.00/2.45 6.00/2.45 app_out_aga(x1, x2, x3) = app_out_aga(x1, x3) 6.00/2.45 6.00/2.45 U2_aga(x1, x2, x3, x4, x5) = U2_aga(x5) 6.00/2.45 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 suffix_out_ga(x1, x2) = suffix_out_ga(x2) 6.00/2.45 6.00/2.45 6.00/2.45 6.00/2.45 6.00/2.45 6.00/2.45 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 6.00/2.45 6.00/2.45 6.00/2.45 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (2) 6.00/2.45 Obligation: 6.00/2.45 Pi-finite rewrite system: 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 suffix_in_ga(Xs, Ys) -> U1_ga(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 app_in_aga([], X, X) -> app_out_aga([], X, X) 6.00/2.45 app_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U2_aga(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 U2_aga(X, Xs, Ys, Zs, app_out_aga(Xs, Ys, Zs)) -> app_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.00/2.45 U1_ga(Xs, Ys, app_out_aga(X1, Xs, Ys)) -> suffix_out_ga(Xs, Ys) 6.00/2.45 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 suffix_in_ga(x1, x2) = suffix_in_ga(x1) 6.00/2.45 6.00/2.45 U1_ga(x1, x2, x3) = U1_ga(x3) 6.00/2.45 6.00/2.45 app_in_aga(x1, x2, x3) = app_in_aga(x2) 6.00/2.45 6.00/2.45 app_out_aga(x1, x2, x3) = app_out_aga(x1, x3) 6.00/2.45 6.00/2.45 U2_aga(x1, x2, x3, x4, x5) = U2_aga(x5) 6.00/2.45 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 suffix_out_ga(x1, x2) = suffix_out_ga(x2) 6.00/2.45 6.00/2.45 6.00/2.45 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (3) DependencyPairsProof (EQUIVALENT) 6.00/2.45 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 6.00/2.45 Pi DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 SUFFIX_IN_GA(Xs, Ys) -> U1_GA(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 SUFFIX_IN_GA(Xs, Ys) -> APP_IN_AGA(X1, Xs, Ys) 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> U2_AGA(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AGA(Xs, Ys, Zs) 6.00/2.45 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 suffix_in_ga(Xs, Ys) -> U1_ga(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 app_in_aga([], X, X) -> app_out_aga([], X, X) 6.00/2.45 app_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U2_aga(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 U2_aga(X, Xs, Ys, Zs, app_out_aga(Xs, Ys, Zs)) -> app_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.00/2.45 U1_ga(Xs, Ys, app_out_aga(X1, Xs, Ys)) -> suffix_out_ga(Xs, Ys) 6.00/2.45 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 suffix_in_ga(x1, x2) = suffix_in_ga(x1) 6.00/2.45 6.00/2.45 U1_ga(x1, x2, x3) = U1_ga(x3) 6.00/2.45 6.00/2.45 app_in_aga(x1, x2, x3) = app_in_aga(x2) 6.00/2.45 6.00/2.45 app_out_aga(x1, x2, x3) = app_out_aga(x1, x3) 6.00/2.45 6.00/2.45 U2_aga(x1, x2, x3, x4, x5) = U2_aga(x5) 6.00/2.45 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 suffix_out_ga(x1, x2) = suffix_out_ga(x2) 6.00/2.45 6.00/2.45 SUFFIX_IN_GA(x1, x2) = SUFFIX_IN_GA(x1) 6.00/2.45 6.00/2.45 U1_GA(x1, x2, x3) = U1_GA(x3) 6.00/2.45 6.00/2.45 APP_IN_AGA(x1, x2, x3) = APP_IN_AGA(x2) 6.00/2.45 6.00/2.45 U2_AGA(x1, x2, x3, x4, x5) = U2_AGA(x5) 6.00/2.45 6.00/2.45 6.00/2.45 We have to consider all (P,R,Pi)-chains 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (4) 6.00/2.45 Obligation: 6.00/2.45 Pi DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 SUFFIX_IN_GA(Xs, Ys) -> U1_GA(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 SUFFIX_IN_GA(Xs, Ys) -> APP_IN_AGA(X1, Xs, Ys) 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> U2_AGA(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AGA(Xs, Ys, Zs) 6.00/2.45 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 suffix_in_ga(Xs, Ys) -> U1_ga(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 app_in_aga([], X, X) -> app_out_aga([], X, X) 6.00/2.45 app_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U2_aga(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 U2_aga(X, Xs, Ys, Zs, app_out_aga(Xs, Ys, Zs)) -> app_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.00/2.45 U1_ga(Xs, Ys, app_out_aga(X1, Xs, Ys)) -> suffix_out_ga(Xs, Ys) 6.00/2.45 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 suffix_in_ga(x1, x2) = suffix_in_ga(x1) 6.00/2.45 6.00/2.45 U1_ga(x1, x2, x3) = U1_ga(x3) 6.00/2.45 6.00/2.45 app_in_aga(x1, x2, x3) = app_in_aga(x2) 6.00/2.45 6.00/2.45 app_out_aga(x1, x2, x3) = app_out_aga(x1, x3) 6.00/2.45 6.00/2.45 U2_aga(x1, x2, x3, x4, x5) = U2_aga(x5) 6.00/2.45 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 suffix_out_ga(x1, x2) = suffix_out_ga(x2) 6.00/2.45 6.00/2.45 SUFFIX_IN_GA(x1, x2) = SUFFIX_IN_GA(x1) 6.00/2.45 6.00/2.45 U1_GA(x1, x2, x3) = U1_GA(x3) 6.00/2.45 6.00/2.45 APP_IN_AGA(x1, x2, x3) = APP_IN_AGA(x2) 6.00/2.45 6.00/2.45 U2_AGA(x1, x2, x3, x4, x5) = U2_AGA(x5) 6.00/2.45 6.00/2.45 6.00/2.45 We have to consider all (P,R,Pi)-chains 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (5) DependencyGraphProof (EQUIVALENT) 6.00/2.45 The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (6) 6.00/2.45 Obligation: 6.00/2.45 Pi DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AGA(Xs, Ys, Zs) 6.00/2.45 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 suffix_in_ga(Xs, Ys) -> U1_ga(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 app_in_aga([], X, X) -> app_out_aga([], X, X) 6.00/2.45 app_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U2_aga(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 U2_aga(X, Xs, Ys, Zs, app_out_aga(Xs, Ys, Zs)) -> app_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.00/2.45 U1_ga(Xs, Ys, app_out_aga(X1, Xs, Ys)) -> suffix_out_ga(Xs, Ys) 6.00/2.45 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 suffix_in_ga(x1, x2) = suffix_in_ga(x1) 6.00/2.45 6.00/2.45 U1_ga(x1, x2, x3) = U1_ga(x3) 6.00/2.45 6.00/2.45 app_in_aga(x1, x2, x3) = app_in_aga(x2) 6.00/2.45 6.00/2.45 app_out_aga(x1, x2, x3) = app_out_aga(x1, x3) 6.00/2.45 6.00/2.45 U2_aga(x1, x2, x3, x4, x5) = U2_aga(x5) 6.00/2.45 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 suffix_out_ga(x1, x2) = suffix_out_ga(x2) 6.00/2.45 6.00/2.45 APP_IN_AGA(x1, x2, x3) = APP_IN_AGA(x2) 6.00/2.45 6.00/2.45 6.00/2.45 We have to consider all (P,R,Pi)-chains 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (7) UsableRulesProof (EQUIVALENT) 6.00/2.45 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (8) 6.00/2.45 Obligation: 6.00/2.45 Pi DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AGA(Xs, Ys, Zs) 6.00/2.45 6.00/2.45 R is empty. 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 APP_IN_AGA(x1, x2, x3) = APP_IN_AGA(x2) 6.00/2.45 6.00/2.45 6.00/2.45 We have to consider all (P,R,Pi)-chains 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (9) PiDPToQDPProof (SOUND) 6.00/2.45 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (10) 6.00/2.45 Obligation: 6.00/2.45 Q DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 APP_IN_AGA(Ys) -> APP_IN_AGA(Ys) 6.00/2.45 6.00/2.45 R is empty. 6.00/2.45 Q is empty. 6.00/2.45 We have to consider all (P,Q,R)-chains. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (11) PrologToPiTRSProof (SOUND) 6.00/2.45 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.00/2.45 6.00/2.45 suffix_in_2: (b,f) 6.00/2.45 6.00/2.45 app_in_3: (f,b,f) 6.00/2.45 6.00/2.45 Transforming Prolog into the following Term Rewriting System: 6.00/2.45 6.00/2.45 Pi-finite rewrite system: 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 suffix_in_ga(Xs, Ys) -> U1_ga(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 app_in_aga([], X, X) -> app_out_aga([], X, X) 6.00/2.45 app_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U2_aga(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 U2_aga(X, Xs, Ys, Zs, app_out_aga(Xs, Ys, Zs)) -> app_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.00/2.45 U1_ga(Xs, Ys, app_out_aga(X1, Xs, Ys)) -> suffix_out_ga(Xs, Ys) 6.00/2.45 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 suffix_in_ga(x1, x2) = suffix_in_ga(x1) 6.00/2.45 6.00/2.45 U1_ga(x1, x2, x3) = U1_ga(x1, x3) 6.00/2.45 6.00/2.45 app_in_aga(x1, x2, x3) = app_in_aga(x2) 6.00/2.45 6.00/2.45 app_out_aga(x1, x2, x3) = app_out_aga(x1, x2, x3) 6.00/2.45 6.00/2.45 U2_aga(x1, x2, x3, x4, x5) = U2_aga(x3, x5) 6.00/2.45 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 suffix_out_ga(x1, x2) = suffix_out_ga(x1, x2) 6.00/2.45 6.00/2.45 6.00/2.45 6.00/2.45 6.00/2.45 6.00/2.45 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 6.00/2.45 6.00/2.45 6.00/2.45 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (12) 6.00/2.45 Obligation: 6.00/2.45 Pi-finite rewrite system: 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 suffix_in_ga(Xs, Ys) -> U1_ga(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 app_in_aga([], X, X) -> app_out_aga([], X, X) 6.00/2.45 app_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U2_aga(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 U2_aga(X, Xs, Ys, Zs, app_out_aga(Xs, Ys, Zs)) -> app_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.00/2.45 U1_ga(Xs, Ys, app_out_aga(X1, Xs, Ys)) -> suffix_out_ga(Xs, Ys) 6.00/2.45 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 suffix_in_ga(x1, x2) = suffix_in_ga(x1) 6.00/2.45 6.00/2.45 U1_ga(x1, x2, x3) = U1_ga(x1, x3) 6.00/2.45 6.00/2.45 app_in_aga(x1, x2, x3) = app_in_aga(x2) 6.00/2.45 6.00/2.45 app_out_aga(x1, x2, x3) = app_out_aga(x1, x2, x3) 6.00/2.45 6.00/2.45 U2_aga(x1, x2, x3, x4, x5) = U2_aga(x3, x5) 6.00/2.45 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 suffix_out_ga(x1, x2) = suffix_out_ga(x1, x2) 6.00/2.45 6.00/2.45 6.00/2.45 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (13) DependencyPairsProof (EQUIVALENT) 6.00/2.45 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 6.00/2.45 Pi DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 SUFFIX_IN_GA(Xs, Ys) -> U1_GA(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 SUFFIX_IN_GA(Xs, Ys) -> APP_IN_AGA(X1, Xs, Ys) 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> U2_AGA(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AGA(Xs, Ys, Zs) 6.00/2.45 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 suffix_in_ga(Xs, Ys) -> U1_ga(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 app_in_aga([], X, X) -> app_out_aga([], X, X) 6.00/2.45 app_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U2_aga(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 U2_aga(X, Xs, Ys, Zs, app_out_aga(Xs, Ys, Zs)) -> app_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.00/2.45 U1_ga(Xs, Ys, app_out_aga(X1, Xs, Ys)) -> suffix_out_ga(Xs, Ys) 6.00/2.45 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 suffix_in_ga(x1, x2) = suffix_in_ga(x1) 6.00/2.45 6.00/2.45 U1_ga(x1, x2, x3) = U1_ga(x1, x3) 6.00/2.45 6.00/2.45 app_in_aga(x1, x2, x3) = app_in_aga(x2) 6.00/2.45 6.00/2.45 app_out_aga(x1, x2, x3) = app_out_aga(x1, x2, x3) 6.00/2.45 6.00/2.45 U2_aga(x1, x2, x3, x4, x5) = U2_aga(x3, x5) 6.00/2.45 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 suffix_out_ga(x1, x2) = suffix_out_ga(x1, x2) 6.00/2.45 6.00/2.45 SUFFIX_IN_GA(x1, x2) = SUFFIX_IN_GA(x1) 6.00/2.45 6.00/2.45 U1_GA(x1, x2, x3) = U1_GA(x1, x3) 6.00/2.45 6.00/2.45 APP_IN_AGA(x1, x2, x3) = APP_IN_AGA(x2) 6.00/2.45 6.00/2.45 U2_AGA(x1, x2, x3, x4, x5) = U2_AGA(x3, x5) 6.00/2.45 6.00/2.45 6.00/2.45 We have to consider all (P,R,Pi)-chains 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (14) 6.00/2.45 Obligation: 6.00/2.45 Pi DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 SUFFIX_IN_GA(Xs, Ys) -> U1_GA(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 SUFFIX_IN_GA(Xs, Ys) -> APP_IN_AGA(X1, Xs, Ys) 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> U2_AGA(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AGA(Xs, Ys, Zs) 6.00/2.45 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 suffix_in_ga(Xs, Ys) -> U1_ga(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 app_in_aga([], X, X) -> app_out_aga([], X, X) 6.00/2.45 app_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U2_aga(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 U2_aga(X, Xs, Ys, Zs, app_out_aga(Xs, Ys, Zs)) -> app_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.00/2.45 U1_ga(Xs, Ys, app_out_aga(X1, Xs, Ys)) -> suffix_out_ga(Xs, Ys) 6.00/2.45 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 suffix_in_ga(x1, x2) = suffix_in_ga(x1) 6.00/2.45 6.00/2.45 U1_ga(x1, x2, x3) = U1_ga(x1, x3) 6.00/2.45 6.00/2.45 app_in_aga(x1, x2, x3) = app_in_aga(x2) 6.00/2.45 6.00/2.45 app_out_aga(x1, x2, x3) = app_out_aga(x1, x2, x3) 6.00/2.45 6.00/2.45 U2_aga(x1, x2, x3, x4, x5) = U2_aga(x3, x5) 6.00/2.45 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 suffix_out_ga(x1, x2) = suffix_out_ga(x1, x2) 6.00/2.45 6.00/2.45 SUFFIX_IN_GA(x1, x2) = SUFFIX_IN_GA(x1) 6.00/2.45 6.00/2.45 U1_GA(x1, x2, x3) = U1_GA(x1, x3) 6.00/2.45 6.00/2.45 APP_IN_AGA(x1, x2, x3) = APP_IN_AGA(x2) 6.00/2.45 6.00/2.45 U2_AGA(x1, x2, x3, x4, x5) = U2_AGA(x3, x5) 6.00/2.45 6.00/2.45 6.00/2.45 We have to consider all (P,R,Pi)-chains 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (15) DependencyGraphProof (EQUIVALENT) 6.00/2.45 The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (16) 6.00/2.45 Obligation: 6.00/2.45 Pi DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AGA(Xs, Ys, Zs) 6.00/2.45 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 suffix_in_ga(Xs, Ys) -> U1_ga(Xs, Ys, app_in_aga(X1, Xs, Ys)) 6.00/2.45 app_in_aga([], X, X) -> app_out_aga([], X, X) 6.00/2.45 app_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U2_aga(X, Xs, Ys, Zs, app_in_aga(Xs, Ys, Zs)) 6.00/2.45 U2_aga(X, Xs, Ys, Zs, app_out_aga(Xs, Ys, Zs)) -> app_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.00/2.45 U1_ga(Xs, Ys, app_out_aga(X1, Xs, Ys)) -> suffix_out_ga(Xs, Ys) 6.00/2.45 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 suffix_in_ga(x1, x2) = suffix_in_ga(x1) 6.00/2.45 6.00/2.45 U1_ga(x1, x2, x3) = U1_ga(x1, x3) 6.00/2.45 6.00/2.45 app_in_aga(x1, x2, x3) = app_in_aga(x2) 6.00/2.45 6.00/2.45 app_out_aga(x1, x2, x3) = app_out_aga(x1, x2, x3) 6.00/2.45 6.00/2.45 U2_aga(x1, x2, x3, x4, x5) = U2_aga(x3, x5) 6.00/2.45 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 suffix_out_ga(x1, x2) = suffix_out_ga(x1, x2) 6.00/2.45 6.00/2.45 APP_IN_AGA(x1, x2, x3) = APP_IN_AGA(x2) 6.00/2.45 6.00/2.45 6.00/2.45 We have to consider all (P,R,Pi)-chains 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (17) UsableRulesProof (EQUIVALENT) 6.00/2.45 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (18) 6.00/2.45 Obligation: 6.00/2.45 Pi DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 APP_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_AGA(Xs, Ys, Zs) 6.00/2.45 6.00/2.45 R is empty. 6.00/2.45 The argument filtering Pi contains the following mapping: 6.00/2.45 .(x1, x2) = .(x2) 6.00/2.45 6.00/2.45 APP_IN_AGA(x1, x2, x3) = APP_IN_AGA(x2) 6.00/2.45 6.00/2.45 6.00/2.45 We have to consider all (P,R,Pi)-chains 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (19) PiDPToQDPProof (SOUND) 6.00/2.45 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (20) 6.00/2.45 Obligation: 6.00/2.45 Q DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 APP_IN_AGA(Ys) -> APP_IN_AGA(Ys) 6.00/2.45 6.00/2.45 R is empty. 6.00/2.45 Q is empty. 6.00/2.45 We have to consider all (P,Q,R)-chains. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (21) PrologToTRSTransformerProof (SOUND) 6.00/2.45 Transformed Prolog program to TRS. 6.00/2.45 6.00/2.45 { 6.00/2.45 "root": 6, 6.00/2.45 "program": { 6.00/2.45 "directives": [], 6.00/2.45 "clauses": [ 6.00/2.45 [ 6.00/2.45 "(suffix Xs Ys)", 6.00/2.45 "(app X1 Xs Ys)" 6.00/2.45 ], 6.00/2.45 [ 6.00/2.45 "(app ([]) X X)", 6.00/2.45 null 6.00/2.45 ], 6.00/2.45 [ 6.00/2.45 "(app (. X Xs) Ys (. X Zs))", 6.00/2.45 "(app Xs Ys Zs)" 6.00/2.45 ] 6.00/2.45 ] 6.00/2.45 }, 6.00/2.45 "graph": { 6.00/2.45 "nodes": { 6.00/2.45 "122": { 6.00/2.45 "goal": [ 6.00/2.45 { 6.00/2.45 "clause": 1, 6.00/2.45 "scope": 2, 6.00/2.45 "term": "(app X11 T10 T12)" 6.00/2.45 }, 6.00/2.45 { 6.00/2.45 "clause": 2, 6.00/2.45 "scope": 2, 6.00/2.45 "term": "(app X11 T10 T12)" 6.00/2.45 } 6.00/2.45 ], 6.00/2.45 "kb": { 6.00/2.45 "nonunifying": [], 6.00/2.45 "intvars": {}, 6.00/2.45 "arithmetic": { 6.00/2.45 "type": "PlainIntegerRelationState", 6.00/2.45 "relations": [] 6.00/2.45 }, 6.00/2.45 "ground": ["T10"], 6.00/2.45 "free": ["X11"], 6.00/2.45 "exprvars": [] 6.00/2.45 } 6.00/2.45 }, 6.00/2.45 "124": { 6.00/2.45 "goal": [{ 6.00/2.45 "clause": 1, 6.00/2.45 "scope": 2, 6.00/2.45 "term": "(app X11 T10 T12)" 6.00/2.45 }], 6.00/2.45 "kb": { 6.00/2.45 "nonunifying": [], 6.00/2.45 "intvars": {}, 6.00/2.45 "arithmetic": { 6.00/2.45 "type": "PlainIntegerRelationState", 6.00/2.45 "relations": [] 6.00/2.45 }, 6.00/2.45 "ground": ["T10"], 6.00/2.45 "free": ["X11"], 6.00/2.45 "exprvars": [] 6.00/2.45 } 6.00/2.45 }, 6.00/2.45 "125": { 6.00/2.45 "goal": [{ 6.00/2.45 "clause": 2, 6.00/2.45 "scope": 2, 6.00/2.45 "term": "(app X11 T10 T12)" 6.00/2.45 }], 6.00/2.45 "kb": { 6.00/2.45 "nonunifying": [], 6.00/2.45 "intvars": {}, 6.00/2.45 "arithmetic": { 6.00/2.45 "type": "PlainIntegerRelationState", 6.00/2.45 "relations": [] 6.00/2.45 }, 6.00/2.45 "ground": ["T10"], 6.00/2.45 "free": ["X11"], 6.00/2.45 "exprvars": [] 6.00/2.45 } 6.00/2.45 }, 6.00/2.45 "49": { 6.00/2.45 "goal": [{ 6.00/2.45 "clause": 0, 6.00/2.45 "scope": 1, 6.00/2.45 "term": "(suffix T1 T2)" 6.00/2.45 }], 6.00/2.45 "kb": { 6.00/2.45 "nonunifying": [], 6.00/2.45 "intvars": {}, 6.00/2.45 "arithmetic": { 6.00/2.45 "type": "PlainIntegerRelationState", 6.00/2.45 "relations": [] 6.00/2.45 }, 6.00/2.45 "ground": ["T1"], 6.00/2.45 "free": [], 6.00/2.45 "exprvars": [] 6.00/2.45 } 6.00/2.45 }, 6.00/2.45 "126": { 6.00/2.45 "goal": [{ 6.00/2.45 "clause": -1, 6.00/2.45 "scope": -1, 6.00/2.45 "term": "(true)" 6.00/2.45 }], 6.00/2.45 "kb": { 6.00/2.45 "nonunifying": [], 6.00/2.45 "intvars": {}, 6.00/2.45 "arithmetic": { 6.00/2.45 "type": "PlainIntegerRelationState", 6.00/2.45 "relations": [] 6.00/2.45 }, 6.00/2.45 "ground": [], 6.00/2.45 "free": [], 6.00/2.45 "exprvars": [] 6.00/2.45 } 6.00/2.45 }, 6.00/2.45 "6": { 6.00/2.45 "goal": [{ 6.00/2.45 "clause": -1, 6.00/2.45 "scope": -1, 6.00/2.45 "term": "(suffix T1 T2)" 6.00/2.45 }], 6.00/2.45 "kb": { 6.00/2.45 "nonunifying": [], 6.00/2.45 "intvars": {}, 6.00/2.45 "arithmetic": { 6.00/2.45 "type": "PlainIntegerRelationState", 6.00/2.45 "relations": [] 6.00/2.45 }, 6.00/2.45 "ground": ["T1"], 6.00/2.45 "free": [], 6.00/2.45 "exprvars": [] 6.00/2.45 } 6.00/2.45 }, 6.00/2.45 "127": { 6.00/2.45 "goal": [], 6.00/2.45 "kb": { 6.00/2.45 "nonunifying": [], 6.00/2.45 "intvars": {}, 6.00/2.45 "arithmetic": { 6.00/2.45 "type": "PlainIntegerRelationState", 6.00/2.45 "relations": [] 6.00/2.45 }, 6.00/2.45 "ground": [], 6.00/2.45 "free": [], 6.00/2.45 "exprvars": [] 6.00/2.45 } 6.00/2.45 }, 6.00/2.45 "128": { 6.00/2.45 "goal": [], 6.00/2.45 "kb": { 6.00/2.45 "nonunifying": [], 6.00/2.45 "intvars": {}, 6.00/2.45 "arithmetic": { 6.00/2.45 "type": "PlainIntegerRelationState", 6.00/2.45 "relations": [] 6.00/2.45 }, 6.00/2.45 "ground": [], 6.00/2.45 "free": [], 6.00/2.45 "exprvars": [] 6.00/2.45 } 6.00/2.45 }, 6.00/2.45 "129": { 6.00/2.45 "goal": [{ 6.00/2.45 "clause": -1, 6.00/2.45 "scope": -1, 6.00/2.45 "term": "(app X36 T26 T29)" 6.00/2.45 }], 6.00/2.45 "kb": { 6.00/2.45 "nonunifying": [], 6.00/2.45 "intvars": {}, 6.00/2.45 "arithmetic": { 6.00/2.45 "type": "PlainIntegerRelationState", 6.00/2.45 "relations": [] 6.00/2.45 }, 6.00/2.45 "ground": ["T26"], 6.00/2.45 "free": ["X36"], 6.00/2.45 "exprvars": [] 6.00/2.45 } 6.00/2.45 }, 6.00/2.45 "type": "Nodes", 6.00/2.45 "130": { 6.00/2.45 "goal": [], 6.00/2.45 "kb": { 6.00/2.45 "nonunifying": [], 6.00/2.45 "intvars": {}, 6.00/2.45 "arithmetic": { 6.00/2.45 "type": "PlainIntegerRelationState", 6.00/2.45 "relations": [] 6.00/2.45 }, 6.00/2.45 "ground": [], 6.00/2.45 "free": [], 6.00/2.45 "exprvars": [] 6.00/2.45 } 6.00/2.45 }, 6.00/2.45 "120": { 6.00/2.45 "goal": [{ 6.00/2.45 "clause": -1, 6.00/2.45 "scope": -1, 6.00/2.45 "term": "(app X11 T10 T12)" 6.00/2.45 }], 6.00/2.45 "kb": { 6.00/2.45 "nonunifying": [], 6.00/2.45 "intvars": {}, 6.00/2.45 "arithmetic": { 6.00/2.45 "type": "PlainIntegerRelationState", 6.00/2.45 "relations": [] 6.00/2.45 }, 6.00/2.45 "ground": ["T10"], 6.00/2.45 "free": ["X11"], 6.00/2.45 "exprvars": [] 6.00/2.45 } 6.00/2.45 } 6.00/2.45 }, 6.00/2.45 "edges": [ 6.00/2.45 { 6.00/2.45 "from": 6, 6.00/2.45 "to": 49, 6.00/2.45 "label": "CASE" 6.00/2.45 }, 6.00/2.45 { 6.00/2.45 "from": 49, 6.00/2.45 "to": 120, 6.00/2.45 "label": "ONLY EVAL with clause\nsuffix(X9, X10) :- app(X11, X9, X10).\nand substitutionT1 -> T10,\nX9 -> T10,\nT2 -> T12,\nX10 -> T12,\nT11 -> T12" 6.00/2.45 }, 6.00/2.45 { 6.00/2.45 "from": 120, 6.00/2.45 "to": 122, 6.00/2.45 "label": "CASE" 6.00/2.45 }, 6.00/2.45 { 6.00/2.45 "from": 122, 6.00/2.45 "to": 124, 6.00/2.45 "label": "PARALLEL" 6.00/2.45 }, 6.00/2.45 { 6.00/2.45 "from": 122, 6.00/2.45 "to": 125, 6.00/2.45 "label": "PARALLEL" 6.00/2.45 }, 6.00/2.45 { 6.00/2.45 "from": 124, 6.00/2.45 "to": 126, 6.00/2.45 "label": "EVAL with clause\napp([], X18, X18).\nand substitutionX11 -> [],\nT10 -> T19,\nX18 -> T19,\nT12 -> T19" 6.00/2.45 }, 6.00/2.45 { 6.00/2.45 "from": 124, 6.00/2.45 "to": 127, 6.00/2.45 "label": "EVAL-BACKTRACK" 6.00/2.45 }, 6.00/2.45 { 6.00/2.45 "from": 125, 6.00/2.45 "to": 129, 6.00/2.45 "label": "EVAL with clause\napp(.(X31, X32), X33, .(X31, X34)) :- app(X32, X33, X34).\nand substitutionX31 -> T27,\nX32 -> X36,\nX11 -> .(T27, X36),\nT10 -> T26,\nX33 -> T26,\nX35 -> T27,\nX34 -> T29,\nT12 -> .(T27, T29),\nT28 -> T29" 6.00/2.45 }, 6.00/2.45 { 6.00/2.45 "from": 125, 6.00/2.45 "to": 130, 6.00/2.45 "label": "EVAL-BACKTRACK" 6.00/2.45 }, 6.00/2.45 { 6.00/2.45 "from": 126, 6.00/2.45 "to": 128, 6.00/2.45 "label": "SUCCESS" 6.00/2.45 }, 6.00/2.45 { 6.00/2.45 "from": 129, 6.00/2.45 "to": 120, 6.00/2.45 "label": "INSTANCE with matching:\nX11 -> X36\nT10 -> T26\nT12 -> T29" 6.00/2.45 } 6.00/2.45 ], 6.00/2.45 "type": "Graph" 6.00/2.45 } 6.00/2.45 } 6.00/2.45 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (22) 6.00/2.45 Obligation: 6.00/2.45 Q restricted rewrite system: 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 f6_in(T10) -> U1(f120_in(T10), T10) 6.00/2.45 U1(f120_out1, T10) -> f6_out1 6.00/2.45 f120_in(T19) -> f120_out1 6.00/2.45 f120_in(T26) -> U2(f120_in(T26), T26) 6.00/2.45 U2(f120_out1, T26) -> f120_out1 6.00/2.45 6.00/2.45 Q is empty. 6.00/2.45 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (23) DependencyPairsProof (EQUIVALENT) 6.00/2.45 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (24) 6.00/2.45 Obligation: 6.00/2.45 Q DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 F6_IN(T10) -> U1^1(f120_in(T10), T10) 6.00/2.45 F6_IN(T10) -> F120_IN(T10) 6.00/2.45 F120_IN(T26) -> U2^1(f120_in(T26), T26) 6.00/2.45 F120_IN(T26) -> F120_IN(T26) 6.00/2.45 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 f6_in(T10) -> U1(f120_in(T10), T10) 6.00/2.45 U1(f120_out1, T10) -> f6_out1 6.00/2.45 f120_in(T19) -> f120_out1 6.00/2.45 f120_in(T26) -> U2(f120_in(T26), T26) 6.00/2.45 U2(f120_out1, T26) -> f120_out1 6.00/2.45 6.00/2.45 Q is empty. 6.00/2.45 We have to consider all minimal (P,Q,R)-chains. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (25) DependencyGraphProof (EQUIVALENT) 6.00/2.45 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (26) 6.00/2.45 Obligation: 6.00/2.45 Q DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 F120_IN(T26) -> F120_IN(T26) 6.00/2.45 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 f6_in(T10) -> U1(f120_in(T10), T10) 6.00/2.45 U1(f120_out1, T10) -> f6_out1 6.00/2.45 f120_in(T19) -> f120_out1 6.00/2.45 f120_in(T26) -> U2(f120_in(T26), T26) 6.00/2.45 U2(f120_out1, T26) -> f120_out1 6.00/2.45 6.00/2.45 Q is empty. 6.00/2.45 We have to consider all minimal (P,Q,R)-chains. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (27) MNOCProof (EQUIVALENT) 6.00/2.45 We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (28) 6.00/2.45 Obligation: 6.00/2.45 Q DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 F120_IN(T26) -> F120_IN(T26) 6.00/2.45 6.00/2.45 The TRS R consists of the following rules: 6.00/2.45 6.00/2.45 f6_in(T10) -> U1(f120_in(T10), T10) 6.00/2.45 U1(f120_out1, T10) -> f6_out1 6.00/2.45 f120_in(T19) -> f120_out1 6.00/2.45 f120_in(T26) -> U2(f120_in(T26), T26) 6.00/2.45 U2(f120_out1, T26) -> f120_out1 6.00/2.45 6.00/2.45 The set Q consists of the following terms: 6.00/2.45 6.00/2.45 f6_in(x0) 6.00/2.45 U1(f120_out1, x0) 6.00/2.45 f120_in(x0) 6.00/2.45 U2(f120_out1, x0) 6.00/2.45 6.00/2.45 We have to consider all minimal (P,Q,R)-chains. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (29) UsableRulesProof (EQUIVALENT) 6.00/2.45 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (30) 6.00/2.45 Obligation: 6.00/2.45 Q DP problem: 6.00/2.45 The TRS P consists of the following rules: 6.00/2.45 6.00/2.45 F120_IN(T26) -> F120_IN(T26) 6.00/2.45 6.00/2.45 R is empty. 6.00/2.45 The set Q consists of the following terms: 6.00/2.45 6.00/2.45 f6_in(x0) 6.00/2.45 U1(f120_out1, x0) 6.00/2.45 f120_in(x0) 6.00/2.45 U2(f120_out1, x0) 6.00/2.45 6.00/2.45 We have to consider all minimal (P,Q,R)-chains. 6.00/2.45 ---------------------------------------- 6.00/2.45 6.00/2.45 (31) QReductionProof (EQUIVALENT) 6.00/2.45 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.00/2.45 6.00/2.45 f6_in(x0) 6.00/2.45 U1(f120_out1, x0) 6.00/2.45 f120_in(x0) 6.00/2.46 U2(f120_out1, x0) 6.00/2.46 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (32) 6.00/2.46 Obligation: 6.00/2.46 Q DP problem: 6.00/2.46 The TRS P consists of the following rules: 6.00/2.46 6.00/2.46 F120_IN(T26) -> F120_IN(T26) 6.00/2.46 6.00/2.46 R is empty. 6.00/2.46 Q is empty. 6.00/2.46 We have to consider all minimal (P,Q,R)-chains. 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (33) PrologToDTProblemTransformerProof (SOUND) 6.00/2.46 Built DT problem from termination graph DT10. 6.00/2.46 6.00/2.46 { 6.00/2.46 "root": 2, 6.00/2.46 "program": { 6.00/2.46 "directives": [], 6.00/2.46 "clauses": [ 6.00/2.46 [ 6.00/2.46 "(suffix Xs Ys)", 6.00/2.46 "(app X1 Xs Ys)" 6.00/2.46 ], 6.00/2.46 [ 6.00/2.46 "(app ([]) X X)", 6.00/2.46 null 6.00/2.46 ], 6.00/2.46 [ 6.00/2.46 "(app (. X Xs) Ys (. X Zs))", 6.00/2.46 "(app Xs Ys Zs)" 6.00/2.46 ] 6.00/2.46 ] 6.00/2.46 }, 6.00/2.46 "graph": { 6.00/2.46 "nodes": { 6.00/2.46 "121": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": -1, 6.00/2.46 "scope": -1, 6.00/2.46 "term": "(app X29 T19 T22)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T19"], 6.00/2.46 "free": ["X29"], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "2": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": -1, 6.00/2.46 "scope": -1, 6.00/2.46 "term": "(suffix T1 T2)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T1"], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "112": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": 1, 6.00/2.46 "scope": 2, 6.00/2.46 "term": "(app X6 T5 T7)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T5"], 6.00/2.46 "free": ["X6"], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "123": { 6.00/2.46 "goal": [], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": [], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "103": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": -1, 6.00/2.46 "scope": -1, 6.00/2.46 "term": "(app X6 T5 T7)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T5"], 6.00/2.46 "free": ["X6"], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "114": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": 2, 6.00/2.46 "scope": 2, 6.00/2.46 "term": "(app X6 T5 T7)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T5"], 6.00/2.46 "free": ["X6"], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "16": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": 0, 6.00/2.46 "scope": 1, 6.00/2.46 "term": "(suffix T1 T2)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T1"], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "116": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": -1, 6.00/2.46 "scope": -1, 6.00/2.46 "term": "(true)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": [], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "117": { 6.00/2.46 "goal": [], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": [], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "107": { 6.00/2.46 "goal": [ 6.00/2.46 { 6.00/2.46 "clause": 1, 6.00/2.46 "scope": 2, 6.00/2.46 "term": "(app X6 T5 T7)" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "clause": 2, 6.00/2.46 "scope": 2, 6.00/2.46 "term": "(app X6 T5 T7)" 6.00/2.46 } 6.00/2.46 ], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T5"], 6.00/2.46 "free": ["X6"], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "118": { 6.00/2.46 "goal": [], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": [], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "type": "Nodes" 6.00/2.46 }, 6.00/2.46 "edges": [ 6.00/2.46 { 6.00/2.46 "from": 2, 6.00/2.46 "to": 16, 6.00/2.46 "label": "CASE" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 16, 6.00/2.46 "to": 103, 6.00/2.46 "label": "ONLY EVAL with clause\nsuffix(X4, X5) :- app(X6, X4, X5).\nand substitutionT1 -> T5,\nX4 -> T5,\nT2 -> T7,\nX5 -> T7,\nT6 -> T7" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 103, 6.00/2.46 "to": 107, 6.00/2.46 "label": "CASE" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 107, 6.00/2.46 "to": 112, 6.00/2.46 "label": "PARALLEL" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 107, 6.00/2.46 "to": 114, 6.00/2.46 "label": "PARALLEL" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 112, 6.00/2.46 "to": 116, 6.00/2.46 "label": "EVAL with clause\napp([], X11, X11).\nand substitutionX6 -> [],\nT5 -> T12,\nX11 -> T12,\nT7 -> T12" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 112, 6.00/2.46 "to": 117, 6.00/2.46 "label": "EVAL-BACKTRACK" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 114, 6.00/2.46 "to": 121, 6.00/2.46 "label": "EVAL with clause\napp(.(X24, X25), X26, .(X24, X27)) :- app(X25, X26, X27).\nand substitutionX24 -> T20,\nX25 -> X29,\nX6 -> .(T20, X29),\nT5 -> T19,\nX26 -> T19,\nX28 -> T20,\nX27 -> T22,\nT7 -> .(T20, T22),\nT21 -> T22" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 114, 6.00/2.46 "to": 123, 6.00/2.46 "label": "EVAL-BACKTRACK" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 116, 6.00/2.46 "to": 118, 6.00/2.46 "label": "SUCCESS" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 121, 6.00/2.46 "to": 103, 6.00/2.46 "label": "INSTANCE with matching:\nX6 -> X29\nT5 -> T19\nT7 -> T22" 6.00/2.46 } 6.00/2.46 ], 6.00/2.46 "type": "Graph" 6.00/2.46 } 6.00/2.46 } 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (34) 6.00/2.46 Obligation: 6.00/2.46 Triples: 6.00/2.46 6.00/2.46 appA(.(X1, X2), X3, .(X1, X4)) :- appA(X2, X3, X4). 6.00/2.46 suffixB(X1, X2) :- appA(X3, X1, X2). 6.00/2.46 6.00/2.46 Clauses: 6.00/2.46 6.00/2.46 appcA([], X1, X1). 6.00/2.46 appcA(.(X1, X2), X3, .(X1, X4)) :- appcA(X2, X3, X4). 6.00/2.46 6.00/2.46 Afs: 6.00/2.46 6.00/2.46 suffixB(x1, x2) = suffixB(x1) 6.00/2.46 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (35) TriplesToPiDPProof (SOUND) 6.00/2.46 We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.00/2.46 6.00/2.46 suffixB_in_2: (b,f) 6.00/2.46 6.00/2.46 appA_in_3: (f,b,f) 6.00/2.46 6.00/2.46 Transforming TRIPLES into the following Term Rewriting System: 6.00/2.46 6.00/2.46 Pi DP problem: 6.00/2.46 The TRS P consists of the following rules: 6.00/2.46 6.00/2.46 SUFFIXB_IN_GA(X1, X2) -> U2_GA(X1, X2, appA_in_aga(X3, X1, X2)) 6.00/2.46 SUFFIXB_IN_GA(X1, X2) -> APPA_IN_AGA(X3, X1, X2) 6.00/2.46 APPA_IN_AGA(.(X1, X2), X3, .(X1, X4)) -> U1_AGA(X1, X2, X3, X4, appA_in_aga(X2, X3, X4)) 6.00/2.46 APPA_IN_AGA(.(X1, X2), X3, .(X1, X4)) -> APPA_IN_AGA(X2, X3, X4) 6.00/2.46 6.00/2.46 R is empty. 6.00/2.46 The argument filtering Pi contains the following mapping: 6.00/2.46 appA_in_aga(x1, x2, x3) = appA_in_aga(x2) 6.00/2.46 6.00/2.46 .(x1, x2) = .(x2) 6.00/2.46 6.00/2.46 SUFFIXB_IN_GA(x1, x2) = SUFFIXB_IN_GA(x1) 6.00/2.46 6.00/2.46 U2_GA(x1, x2, x3) = U2_GA(x1, x3) 6.00/2.46 6.00/2.46 APPA_IN_AGA(x1, x2, x3) = APPA_IN_AGA(x2) 6.00/2.46 6.00/2.46 U1_AGA(x1, x2, x3, x4, x5) = U1_AGA(x3, x5) 6.00/2.46 6.00/2.46 6.00/2.46 We have to consider all (P,R,Pi)-chains 6.00/2.46 6.00/2.46 6.00/2.46 Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES 6.00/2.46 6.00/2.46 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (36) 6.00/2.46 Obligation: 6.00/2.46 Pi DP problem: 6.00/2.46 The TRS P consists of the following rules: 6.00/2.46 6.00/2.46 SUFFIXB_IN_GA(X1, X2) -> U2_GA(X1, X2, appA_in_aga(X3, X1, X2)) 6.00/2.46 SUFFIXB_IN_GA(X1, X2) -> APPA_IN_AGA(X3, X1, X2) 6.00/2.46 APPA_IN_AGA(.(X1, X2), X3, .(X1, X4)) -> U1_AGA(X1, X2, X3, X4, appA_in_aga(X2, X3, X4)) 6.00/2.46 APPA_IN_AGA(.(X1, X2), X3, .(X1, X4)) -> APPA_IN_AGA(X2, X3, X4) 6.00/2.46 6.00/2.46 R is empty. 6.00/2.46 The argument filtering Pi contains the following mapping: 6.00/2.46 appA_in_aga(x1, x2, x3) = appA_in_aga(x2) 6.00/2.46 6.00/2.46 .(x1, x2) = .(x2) 6.00/2.46 6.00/2.46 SUFFIXB_IN_GA(x1, x2) = SUFFIXB_IN_GA(x1) 6.00/2.46 6.00/2.46 U2_GA(x1, x2, x3) = U2_GA(x1, x3) 6.00/2.46 6.00/2.46 APPA_IN_AGA(x1, x2, x3) = APPA_IN_AGA(x2) 6.00/2.46 6.00/2.46 U1_AGA(x1, x2, x3, x4, x5) = U1_AGA(x3, x5) 6.00/2.46 6.00/2.46 6.00/2.46 We have to consider all (P,R,Pi)-chains 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (37) DependencyGraphProof (EQUIVALENT) 6.00/2.46 The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (38) 6.00/2.46 Obligation: 6.00/2.46 Pi DP problem: 6.00/2.46 The TRS P consists of the following rules: 6.00/2.46 6.00/2.46 APPA_IN_AGA(.(X1, X2), X3, .(X1, X4)) -> APPA_IN_AGA(X2, X3, X4) 6.00/2.46 6.00/2.46 R is empty. 6.00/2.46 The argument filtering Pi contains the following mapping: 6.00/2.46 .(x1, x2) = .(x2) 6.00/2.46 6.00/2.46 APPA_IN_AGA(x1, x2, x3) = APPA_IN_AGA(x2) 6.00/2.46 6.00/2.46 6.00/2.46 We have to consider all (P,R,Pi)-chains 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (39) PiDPToQDPProof (SOUND) 6.00/2.46 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (40) 6.00/2.46 Obligation: 6.00/2.46 Q DP problem: 6.00/2.46 The TRS P consists of the following rules: 6.00/2.46 6.00/2.46 APPA_IN_AGA(X3) -> APPA_IN_AGA(X3) 6.00/2.46 6.00/2.46 R is empty. 6.00/2.46 Q is empty. 6.00/2.46 We have to consider all (P,Q,R)-chains. 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (41) PrologToIRSwTTransformerProof (SOUND) 6.00/2.46 Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert 6.00/2.46 6.00/2.46 { 6.00/2.46 "root": 15, 6.00/2.46 "program": { 6.00/2.46 "directives": [], 6.00/2.46 "clauses": [ 6.00/2.46 [ 6.00/2.46 "(suffix Xs Ys)", 6.00/2.46 "(app X1 Xs Ys)" 6.00/2.46 ], 6.00/2.46 [ 6.00/2.46 "(app ([]) X X)", 6.00/2.46 null 6.00/2.46 ], 6.00/2.46 [ 6.00/2.46 "(app (. X Xs) Ys (. X Zs))", 6.00/2.46 "(app Xs Ys Zs)" 6.00/2.46 ] 6.00/2.46 ] 6.00/2.46 }, 6.00/2.46 "graph": { 6.00/2.46 "nodes": { 6.00/2.46 "132": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": 1, 6.00/2.46 "scope": 2, 6.00/2.46 "term": "(app X11 T10 T12)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T10"], 6.00/2.46 "free": ["X11"], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "133": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": 2, 6.00/2.46 "scope": 2, 6.00/2.46 "term": "(app X11 T10 T12)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T10"], 6.00/2.46 "free": ["X11"], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "134": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": -1, 6.00/2.46 "scope": -1, 6.00/2.46 "term": "(true)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": [], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "135": { 6.00/2.46 "goal": [], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": [], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "15": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": -1, 6.00/2.46 "scope": -1, 6.00/2.46 "term": "(suffix T1 T2)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T1"], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "136": { 6.00/2.46 "goal": [], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": [], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "137": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": -1, 6.00/2.46 "scope": -1, 6.00/2.46 "term": "(app X36 T26 T29)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T26"], 6.00/2.46 "free": ["X36"], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "17": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": 0, 6.00/2.46 "scope": 1, 6.00/2.46 "term": "(suffix T1 T2)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T1"], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "138": { 6.00/2.46 "goal": [], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": [], 6.00/2.46 "free": [], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "119": { 6.00/2.46 "goal": [{ 6.00/2.46 "clause": -1, 6.00/2.46 "scope": -1, 6.00/2.46 "term": "(app X11 T10 T12)" 6.00/2.46 }], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T10"], 6.00/2.46 "free": ["X11"], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "type": "Nodes", 6.00/2.46 "131": { 6.00/2.46 "goal": [ 6.00/2.46 { 6.00/2.46 "clause": 1, 6.00/2.46 "scope": 2, 6.00/2.46 "term": "(app X11 T10 T12)" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "clause": 2, 6.00/2.46 "scope": 2, 6.00/2.46 "term": "(app X11 T10 T12)" 6.00/2.46 } 6.00/2.46 ], 6.00/2.46 "kb": { 6.00/2.46 "nonunifying": [], 6.00/2.46 "intvars": {}, 6.00/2.46 "arithmetic": { 6.00/2.46 "type": "PlainIntegerRelationState", 6.00/2.46 "relations": [] 6.00/2.46 }, 6.00/2.46 "ground": ["T10"], 6.00/2.46 "free": ["X11"], 6.00/2.46 "exprvars": [] 6.00/2.46 } 6.00/2.46 } 6.00/2.46 }, 6.00/2.46 "edges": [ 6.00/2.46 { 6.00/2.46 "from": 15, 6.00/2.46 "to": 17, 6.00/2.46 "label": "CASE" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 17, 6.00/2.46 "to": 119, 6.00/2.46 "label": "ONLY EVAL with clause\nsuffix(X9, X10) :- app(X11, X9, X10).\nand substitutionT1 -> T10,\nX9 -> T10,\nT2 -> T12,\nX10 -> T12,\nT11 -> T12" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 119, 6.00/2.46 "to": 131, 6.00/2.46 "label": "CASE" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 131, 6.00/2.46 "to": 132, 6.00/2.46 "label": "PARALLEL" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 131, 6.00/2.46 "to": 133, 6.00/2.46 "label": "PARALLEL" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 132, 6.00/2.46 "to": 134, 6.00/2.46 "label": "EVAL with clause\napp([], X18, X18).\nand substitutionX11 -> [],\nT10 -> T19,\nX18 -> T19,\nT12 -> T19" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 132, 6.00/2.46 "to": 135, 6.00/2.46 "label": "EVAL-BACKTRACK" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 133, 6.00/2.46 "to": 137, 6.00/2.46 "label": "EVAL with clause\napp(.(X31, X32), X33, .(X31, X34)) :- app(X32, X33, X34).\nand substitutionX31 -> T27,\nX32 -> X36,\nX11 -> .(T27, X36),\nT10 -> T26,\nX33 -> T26,\nX35 -> T27,\nX34 -> T29,\nT12 -> .(T27, T29),\nT28 -> T29" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 133, 6.00/2.46 "to": 138, 6.00/2.46 "label": "EVAL-BACKTRACK" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 134, 6.00/2.46 "to": 136, 6.00/2.46 "label": "SUCCESS" 6.00/2.46 }, 6.00/2.46 { 6.00/2.46 "from": 137, 6.00/2.46 "to": 119, 6.00/2.46 "label": "INSTANCE with matching:\nX11 -> X36\nT10 -> T26\nT12 -> T29" 6.00/2.46 } 6.00/2.46 ], 6.00/2.46 "type": "Graph" 6.00/2.46 } 6.00/2.46 } 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (42) 6.00/2.46 Obligation: 6.00/2.46 Rules: 6.00/2.46 f131_in(T10) -> f133_in(T10) :|: TRUE 6.00/2.46 f133_out(x) -> f131_out(x) :|: TRUE 6.00/2.46 f131_in(x1) -> f132_in(x1) :|: TRUE 6.00/2.46 f132_out(x2) -> f131_out(x2) :|: TRUE 6.00/2.46 f119_in(x3) -> f131_in(x3) :|: TRUE 6.00/2.46 f131_out(x4) -> f119_out(x4) :|: TRUE 6.00/2.46 f138_out -> f133_out(x5) :|: TRUE 6.00/2.46 f133_in(T26) -> f137_in(T26) :|: TRUE 6.00/2.46 f137_out(x6) -> f133_out(x6) :|: TRUE 6.00/2.46 f133_in(x7) -> f138_in :|: TRUE 6.00/2.46 f119_out(x8) -> f137_out(x8) :|: TRUE 6.00/2.46 f137_in(x9) -> f119_in(x9) :|: TRUE 6.00/2.46 f17_out(T1) -> f15_out(T1) :|: TRUE 6.00/2.46 f15_in(x10) -> f17_in(x10) :|: TRUE 6.00/2.46 f17_in(x11) -> f119_in(x11) :|: TRUE 6.00/2.46 f119_out(x12) -> f17_out(x12) :|: TRUE 6.00/2.46 Start term: f15_in(T1) 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (43) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 6.00/2.46 Constructed simple dependency graph. 6.00/2.46 6.00/2.46 Simplified to the following IRSwTs: 6.00/2.46 6.00/2.46 intTRSProblem: 6.00/2.46 f131_in(T10) -> f133_in(T10) :|: TRUE 6.00/2.46 f119_in(x3) -> f131_in(x3) :|: TRUE 6.00/2.46 f133_in(T26) -> f137_in(T26) :|: TRUE 6.00/2.46 f137_in(x9) -> f119_in(x9) :|: TRUE 6.00/2.46 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (44) 6.00/2.46 Obligation: 6.00/2.46 Rules: 6.00/2.46 f131_in(T10) -> f133_in(T10) :|: TRUE 6.00/2.46 f119_in(x3) -> f131_in(x3) :|: TRUE 6.00/2.46 f133_in(T26) -> f137_in(T26) :|: TRUE 6.00/2.46 f137_in(x9) -> f119_in(x9) :|: TRUE 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (45) IntTRSCompressionProof (EQUIVALENT) 6.00/2.46 Compressed rules. 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (46) 6.00/2.46 Obligation: 6.00/2.46 Rules: 6.00/2.46 f119_in(x3:0) -> f119_in(x3:0) :|: TRUE 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (47) IRSFormatTransformerProof (EQUIVALENT) 6.00/2.46 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (48) 6.00/2.46 Obligation: 6.00/2.46 Rules: 6.00/2.46 f119_in(x3:0) -> f119_in(x3:0) :|: TRUE 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (49) IRSwTTerminationDigraphProof (EQUIVALENT) 6.00/2.46 Constructed termination digraph! 6.00/2.46 Nodes: 6.00/2.46 (1) f119_in(x3:0) -> f119_in(x3:0) :|: TRUE 6.00/2.46 6.00/2.46 Arcs: 6.00/2.46 (1) -> (1) 6.00/2.46 6.00/2.46 This digraph is fully evaluated! 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (50) 6.00/2.46 Obligation: 6.00/2.46 6.00/2.46 Termination digraph: 6.00/2.46 Nodes: 6.00/2.46 (1) f119_in(x3:0) -> f119_in(x3:0) :|: TRUE 6.00/2.46 6.00/2.46 Arcs: 6.00/2.46 (1) -> (1) 6.00/2.46 6.00/2.46 This digraph is fully evaluated! 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (51) FilterProof (EQUIVALENT) 6.00/2.46 Used the following sort dictionary for filtering: 6.00/2.46 f119_in(VARIABLE) 6.00/2.46 Replaced non-predefined constructor symbols by 0. 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (52) 6.00/2.46 Obligation: 6.00/2.46 Rules: 6.00/2.46 f119_in(x3:0) -> f119_in(x3:0) :|: TRUE 6.00/2.46 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (53) IntTRSPeriodicNontermProof (COMPLETE) 6.00/2.46 Normalized system to the following form: 6.00/2.46 f(pc, x3:0) -> f(1, x3:0) :|: pc = 1 && TRUE 6.00/2.46 Witness term starting non-terminating reduction: f(1, -8) 6.00/2.46 ---------------------------------------- 6.00/2.46 6.00/2.46 (54) 6.00/2.46 NO 6.32/2.47 EOF