6.14/2.40 MAYBE 6.14/2.43 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 6.14/2.43 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.14/2.43 6.14/2.43 6.14/2.43 Left Termination of the query pattern 6.14/2.43 6.14/2.43 goal(g) 6.14/2.43 6.14/2.43 w.r.t. the given Prolog program could not be shown: 6.14/2.43 6.14/2.43 (0) Prolog 6.14/2.43 (1) PrologToPiTRSProof [SOUND, 0 ms] 6.14/2.43 (2) PiTRS 6.14/2.43 (3) DependencyPairsProof [EQUIVALENT, 0 ms] 6.14/2.43 (4) PiDP 6.14/2.43 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 6.14/2.43 (6) PiDP 6.14/2.43 (7) UsableRulesProof [EQUIVALENT, 0 ms] 6.14/2.43 (8) PiDP 6.14/2.43 (9) PiDPToQDPProof [SOUND, 0 ms] 6.14/2.43 (10) QDP 6.14/2.43 (11) PrologToTRSTransformerProof [SOUND, 0 ms] 6.14/2.43 (12) QTRS 6.14/2.43 (13) QTRSRRRProof [EQUIVALENT, 96 ms] 6.14/2.43 (14) QTRS 6.14/2.43 (15) QTRSRRRProof [EQUIVALENT, 3 ms] 6.14/2.43 (16) QTRS 6.14/2.43 (17) QTRSRRRProof [EQUIVALENT, 5 ms] 6.14/2.43 (18) QTRS 6.14/2.43 (19) Overlay + Local Confluence [EQUIVALENT, 0 ms] 6.14/2.43 (20) QTRS 6.14/2.43 (21) DependencyPairsProof [EQUIVALENT, 0 ms] 6.14/2.43 (22) QDP 6.14/2.43 (23) UsableRulesProof [EQUIVALENT, 0 ms] 6.14/2.43 (24) QDP 6.14/2.43 (25) QReductionProof [EQUIVALENT, 0 ms] 6.14/2.43 (26) QDP 6.14/2.43 (27) PrologToPiTRSProof [SOUND, 0 ms] 6.14/2.43 (28) PiTRS 6.14/2.43 (29) DependencyPairsProof [EQUIVALENT, 0 ms] 6.14/2.43 (30) PiDP 6.14/2.43 (31) DependencyGraphProof [EQUIVALENT, 0 ms] 6.14/2.43 (32) PiDP 6.14/2.43 (33) UsableRulesProof [EQUIVALENT, 0 ms] 6.14/2.43 (34) PiDP 6.14/2.43 (35) PiDPToQDPProof [SOUND, 0 ms] 6.14/2.43 (36) QDP 6.14/2.43 (37) PrologToDTProblemTransformerProof [SOUND, 0 ms] 6.14/2.43 (38) TRIPLES 6.14/2.43 (39) TriplesToPiDPProof [SOUND, 9 ms] 6.14/2.43 (40) PiDP 6.14/2.43 (41) DependencyGraphProof [EQUIVALENT, 0 ms] 6.14/2.43 (42) PiDP 6.14/2.43 (43) PiDPToQDPProof [SOUND, 0 ms] 6.14/2.43 (44) QDP 6.14/2.43 (45) PrologToIRSwTTransformerProof [SOUND, 0 ms] 6.14/2.43 (46) IRSwT 6.14/2.43 (47) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 6.14/2.43 (48) IRSwT 6.14/2.43 (49) IntTRSCompressionProof [EQUIVALENT, 20 ms] 6.14/2.43 (50) IRSwT 6.14/2.43 (51) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 6.14/2.43 (52) IRSwT 6.14/2.43 (53) IRSwTTerminationDigraphProof [EQUIVALENT, 6 ms] 6.14/2.43 (54) IRSwT 6.14/2.43 (55) FilterProof [EQUIVALENT, 0 ms] 6.14/2.43 (56) IntTRS 6.14/2.43 (57) IntTRSPeriodicNontermProof [COMPLETE, 0 ms] 6.14/2.43 (58) NO 6.14/2.43 6.14/2.43 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (0) 6.14/2.43 Obligation: 6.14/2.43 Clauses: 6.14/2.43 6.14/2.43 p(a). 6.14/2.43 p(X) :- p(Y). 6.14/2.43 q(b). 6.14/2.43 goal(X) :- ','(p(X), q(X)). 6.14/2.43 6.14/2.43 6.14/2.43 Query: goal(g) 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (1) PrologToPiTRSProof (SOUND) 6.14/2.43 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.14/2.43 6.14/2.43 goal_in_1: (b) 6.14/2.43 6.14/2.43 p_in_1: (b) (f) 6.14/2.43 6.14/2.43 Transforming Prolog into the following Term Rewriting System: 6.14/2.43 6.14/2.43 Pi-finite rewrite system: 6.14/2.43 The TRS R consists of the following rules: 6.14/2.43 6.14/2.43 goal_in_g(X) -> U2_g(X, p_in_g(X)) 6.14/2.43 p_in_g(a) -> p_out_g(a) 6.14/2.43 p_in_g(X) -> U1_g(X, p_in_a(Y)) 6.14/2.43 p_in_a(a) -> p_out_a(a) 6.14/2.43 p_in_a(X) -> U1_a(X, p_in_a(Y)) 6.14/2.43 U1_a(X, p_out_a(Y)) -> p_out_a(X) 6.14/2.43 U1_g(X, p_out_a(Y)) -> p_out_g(X) 6.14/2.43 U2_g(X, p_out_g(X)) -> U3_g(X, q_in_g(X)) 6.14/2.43 q_in_g(b) -> q_out_g(b) 6.14/2.43 U3_g(X, q_out_g(X)) -> goal_out_g(X) 6.14/2.43 6.14/2.43 The argument filtering Pi contains the following mapping: 6.14/2.43 goal_in_g(x1) = goal_in_g(x1) 6.14/2.43 6.14/2.43 U2_g(x1, x2) = U2_g(x1, x2) 6.14/2.43 6.14/2.43 p_in_g(x1) = p_in_g(x1) 6.14/2.43 6.14/2.43 a = a 6.14/2.43 6.14/2.43 p_out_g(x1) = p_out_g 6.14/2.43 6.14/2.43 U1_g(x1, x2) = U1_g(x2) 6.14/2.43 6.14/2.43 p_in_a(x1) = p_in_a 6.14/2.43 6.14/2.43 p_out_a(x1) = p_out_a 6.14/2.43 6.14/2.43 U1_a(x1, x2) = U1_a(x2) 6.14/2.43 6.14/2.43 U3_g(x1, x2) = U3_g(x2) 6.14/2.43 6.14/2.43 q_in_g(x1) = q_in_g(x1) 6.14/2.43 6.14/2.43 b = b 6.14/2.43 6.14/2.43 q_out_g(x1) = q_out_g 6.14/2.43 6.14/2.43 goal_out_g(x1) = goal_out_g 6.14/2.43 6.14/2.43 6.14/2.43 6.14/2.43 6.14/2.43 6.14/2.43 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 6.14/2.43 6.14/2.43 6.14/2.43 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (2) 6.14/2.43 Obligation: 6.14/2.43 Pi-finite rewrite system: 6.14/2.43 The TRS R consists of the following rules: 6.14/2.43 6.14/2.43 goal_in_g(X) -> U2_g(X, p_in_g(X)) 6.14/2.43 p_in_g(a) -> p_out_g(a) 6.14/2.43 p_in_g(X) -> U1_g(X, p_in_a(Y)) 6.14/2.43 p_in_a(a) -> p_out_a(a) 6.14/2.43 p_in_a(X) -> U1_a(X, p_in_a(Y)) 6.14/2.43 U1_a(X, p_out_a(Y)) -> p_out_a(X) 6.14/2.43 U1_g(X, p_out_a(Y)) -> p_out_g(X) 6.14/2.43 U2_g(X, p_out_g(X)) -> U3_g(X, q_in_g(X)) 6.14/2.43 q_in_g(b) -> q_out_g(b) 6.14/2.43 U3_g(X, q_out_g(X)) -> goal_out_g(X) 6.14/2.43 6.14/2.43 The argument filtering Pi contains the following mapping: 6.14/2.43 goal_in_g(x1) = goal_in_g(x1) 6.14/2.43 6.14/2.43 U2_g(x1, x2) = U2_g(x1, x2) 6.14/2.43 6.14/2.43 p_in_g(x1) = p_in_g(x1) 6.14/2.43 6.14/2.43 a = a 6.14/2.43 6.14/2.43 p_out_g(x1) = p_out_g 6.14/2.43 6.14/2.43 U1_g(x1, x2) = U1_g(x2) 6.14/2.43 6.14/2.43 p_in_a(x1) = p_in_a 6.14/2.43 6.14/2.43 p_out_a(x1) = p_out_a 6.14/2.43 6.14/2.43 U1_a(x1, x2) = U1_a(x2) 6.14/2.43 6.14/2.43 U3_g(x1, x2) = U3_g(x2) 6.14/2.43 6.14/2.43 q_in_g(x1) = q_in_g(x1) 6.14/2.43 6.14/2.43 b = b 6.14/2.43 6.14/2.43 q_out_g(x1) = q_out_g 6.14/2.43 6.14/2.43 goal_out_g(x1) = goal_out_g 6.14/2.43 6.14/2.43 6.14/2.43 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (3) DependencyPairsProof (EQUIVALENT) 6.14/2.43 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 6.14/2.43 Pi DP problem: 6.14/2.43 The TRS P consists of the following rules: 6.14/2.43 6.14/2.43 GOAL_IN_G(X) -> U2_G(X, p_in_g(X)) 6.14/2.43 GOAL_IN_G(X) -> P_IN_G(X) 6.14/2.43 P_IN_G(X) -> U1_G(X, p_in_a(Y)) 6.14/2.43 P_IN_G(X) -> P_IN_A(Y) 6.14/2.43 P_IN_A(X) -> U1_A(X, p_in_a(Y)) 6.14/2.43 P_IN_A(X) -> P_IN_A(Y) 6.14/2.43 U2_G(X, p_out_g(X)) -> U3_G(X, q_in_g(X)) 6.14/2.43 U2_G(X, p_out_g(X)) -> Q_IN_G(X) 6.14/2.43 6.14/2.43 The TRS R consists of the following rules: 6.14/2.43 6.14/2.43 goal_in_g(X) -> U2_g(X, p_in_g(X)) 6.14/2.43 p_in_g(a) -> p_out_g(a) 6.14/2.43 p_in_g(X) -> U1_g(X, p_in_a(Y)) 6.14/2.43 p_in_a(a) -> p_out_a(a) 6.14/2.43 p_in_a(X) -> U1_a(X, p_in_a(Y)) 6.14/2.43 U1_a(X, p_out_a(Y)) -> p_out_a(X) 6.14/2.43 U1_g(X, p_out_a(Y)) -> p_out_g(X) 6.14/2.43 U2_g(X, p_out_g(X)) -> U3_g(X, q_in_g(X)) 6.14/2.43 q_in_g(b) -> q_out_g(b) 6.14/2.43 U3_g(X, q_out_g(X)) -> goal_out_g(X) 6.14/2.43 6.14/2.43 The argument filtering Pi contains the following mapping: 6.14/2.43 goal_in_g(x1) = goal_in_g(x1) 6.14/2.43 6.14/2.43 U2_g(x1, x2) = U2_g(x1, x2) 6.14/2.43 6.14/2.43 p_in_g(x1) = p_in_g(x1) 6.14/2.43 6.14/2.43 a = a 6.14/2.43 6.14/2.43 p_out_g(x1) = p_out_g 6.14/2.43 6.14/2.43 U1_g(x1, x2) = U1_g(x2) 6.14/2.43 6.14/2.43 p_in_a(x1) = p_in_a 6.14/2.43 6.14/2.43 p_out_a(x1) = p_out_a 6.14/2.43 6.14/2.43 U1_a(x1, x2) = U1_a(x2) 6.14/2.43 6.14/2.43 U3_g(x1, x2) = U3_g(x2) 6.14/2.43 6.14/2.43 q_in_g(x1) = q_in_g(x1) 6.14/2.43 6.14/2.43 b = b 6.14/2.43 6.14/2.43 q_out_g(x1) = q_out_g 6.14/2.43 6.14/2.43 goal_out_g(x1) = goal_out_g 6.14/2.43 6.14/2.43 GOAL_IN_G(x1) = GOAL_IN_G(x1) 6.14/2.43 6.14/2.43 U2_G(x1, x2) = U2_G(x1, x2) 6.14/2.43 6.14/2.43 P_IN_G(x1) = P_IN_G(x1) 6.14/2.43 6.14/2.43 U1_G(x1, x2) = U1_G(x2) 6.14/2.43 6.14/2.43 P_IN_A(x1) = P_IN_A 6.14/2.43 6.14/2.43 U1_A(x1, x2) = U1_A(x2) 6.14/2.43 6.14/2.43 U3_G(x1, x2) = U3_G(x2) 6.14/2.43 6.14/2.43 Q_IN_G(x1) = Q_IN_G(x1) 6.14/2.43 6.14/2.43 6.14/2.43 We have to consider all (P,R,Pi)-chains 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (4) 6.14/2.43 Obligation: 6.14/2.43 Pi DP problem: 6.14/2.43 The TRS P consists of the following rules: 6.14/2.43 6.14/2.43 GOAL_IN_G(X) -> U2_G(X, p_in_g(X)) 6.14/2.43 GOAL_IN_G(X) -> P_IN_G(X) 6.14/2.43 P_IN_G(X) -> U1_G(X, p_in_a(Y)) 6.14/2.43 P_IN_G(X) -> P_IN_A(Y) 6.14/2.43 P_IN_A(X) -> U1_A(X, p_in_a(Y)) 6.14/2.43 P_IN_A(X) -> P_IN_A(Y) 6.14/2.43 U2_G(X, p_out_g(X)) -> U3_G(X, q_in_g(X)) 6.14/2.43 U2_G(X, p_out_g(X)) -> Q_IN_G(X) 6.14/2.43 6.14/2.43 The TRS R consists of the following rules: 6.14/2.43 6.14/2.43 goal_in_g(X) -> U2_g(X, p_in_g(X)) 6.14/2.43 p_in_g(a) -> p_out_g(a) 6.14/2.43 p_in_g(X) -> U1_g(X, p_in_a(Y)) 6.14/2.43 p_in_a(a) -> p_out_a(a) 6.14/2.43 p_in_a(X) -> U1_a(X, p_in_a(Y)) 6.14/2.43 U1_a(X, p_out_a(Y)) -> p_out_a(X) 6.14/2.43 U1_g(X, p_out_a(Y)) -> p_out_g(X) 6.14/2.43 U2_g(X, p_out_g(X)) -> U3_g(X, q_in_g(X)) 6.14/2.43 q_in_g(b) -> q_out_g(b) 6.14/2.43 U3_g(X, q_out_g(X)) -> goal_out_g(X) 6.14/2.43 6.14/2.43 The argument filtering Pi contains the following mapping: 6.14/2.43 goal_in_g(x1) = goal_in_g(x1) 6.14/2.43 6.14/2.43 U2_g(x1, x2) = U2_g(x1, x2) 6.14/2.43 6.14/2.43 p_in_g(x1) = p_in_g(x1) 6.14/2.43 6.14/2.43 a = a 6.14/2.43 6.14/2.43 p_out_g(x1) = p_out_g 6.14/2.43 6.14/2.43 U1_g(x1, x2) = U1_g(x2) 6.14/2.43 6.14/2.43 p_in_a(x1) = p_in_a 6.14/2.43 6.14/2.43 p_out_a(x1) = p_out_a 6.14/2.43 6.14/2.43 U1_a(x1, x2) = U1_a(x2) 6.14/2.43 6.14/2.43 U3_g(x1, x2) = U3_g(x2) 6.14/2.43 6.14/2.43 q_in_g(x1) = q_in_g(x1) 6.14/2.43 6.14/2.43 b = b 6.14/2.43 6.14/2.43 q_out_g(x1) = q_out_g 6.14/2.43 6.14/2.43 goal_out_g(x1) = goal_out_g 6.14/2.43 6.14/2.43 GOAL_IN_G(x1) = GOAL_IN_G(x1) 6.14/2.43 6.14/2.43 U2_G(x1, x2) = U2_G(x1, x2) 6.14/2.43 6.14/2.43 P_IN_G(x1) = P_IN_G(x1) 6.14/2.43 6.14/2.43 U1_G(x1, x2) = U1_G(x2) 6.14/2.43 6.14/2.43 P_IN_A(x1) = P_IN_A 6.14/2.43 6.14/2.43 U1_A(x1, x2) = U1_A(x2) 6.14/2.43 6.14/2.43 U3_G(x1, x2) = U3_G(x2) 6.14/2.43 6.14/2.43 Q_IN_G(x1) = Q_IN_G(x1) 6.14/2.43 6.14/2.43 6.14/2.43 We have to consider all (P,R,Pi)-chains 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (5) DependencyGraphProof (EQUIVALENT) 6.14/2.43 The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 7 less nodes. 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (6) 6.14/2.43 Obligation: 6.14/2.43 Pi DP problem: 6.14/2.43 The TRS P consists of the following rules: 6.14/2.43 6.14/2.43 P_IN_A(X) -> P_IN_A(Y) 6.14/2.43 6.14/2.43 The TRS R consists of the following rules: 6.14/2.43 6.14/2.43 goal_in_g(X) -> U2_g(X, p_in_g(X)) 6.14/2.43 p_in_g(a) -> p_out_g(a) 6.14/2.43 p_in_g(X) -> U1_g(X, p_in_a(Y)) 6.14/2.43 p_in_a(a) -> p_out_a(a) 6.14/2.43 p_in_a(X) -> U1_a(X, p_in_a(Y)) 6.14/2.43 U1_a(X, p_out_a(Y)) -> p_out_a(X) 6.14/2.43 U1_g(X, p_out_a(Y)) -> p_out_g(X) 6.14/2.43 U2_g(X, p_out_g(X)) -> U3_g(X, q_in_g(X)) 6.14/2.43 q_in_g(b) -> q_out_g(b) 6.14/2.43 U3_g(X, q_out_g(X)) -> goal_out_g(X) 6.14/2.43 6.14/2.43 The argument filtering Pi contains the following mapping: 6.14/2.43 goal_in_g(x1) = goal_in_g(x1) 6.14/2.43 6.14/2.43 U2_g(x1, x2) = U2_g(x1, x2) 6.14/2.43 6.14/2.43 p_in_g(x1) = p_in_g(x1) 6.14/2.43 6.14/2.43 a = a 6.14/2.43 6.14/2.43 p_out_g(x1) = p_out_g 6.14/2.43 6.14/2.43 U1_g(x1, x2) = U1_g(x2) 6.14/2.43 6.14/2.43 p_in_a(x1) = p_in_a 6.14/2.43 6.14/2.43 p_out_a(x1) = p_out_a 6.14/2.43 6.14/2.43 U1_a(x1, x2) = U1_a(x2) 6.14/2.43 6.14/2.43 U3_g(x1, x2) = U3_g(x2) 6.14/2.43 6.14/2.43 q_in_g(x1) = q_in_g(x1) 6.14/2.43 6.14/2.43 b = b 6.14/2.43 6.14/2.43 q_out_g(x1) = q_out_g 6.14/2.43 6.14/2.43 goal_out_g(x1) = goal_out_g 6.14/2.43 6.14/2.43 P_IN_A(x1) = P_IN_A 6.14/2.43 6.14/2.43 6.14/2.43 We have to consider all (P,R,Pi)-chains 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (7) UsableRulesProof (EQUIVALENT) 6.14/2.43 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (8) 6.14/2.43 Obligation: 6.14/2.43 Pi DP problem: 6.14/2.43 The TRS P consists of the following rules: 6.14/2.43 6.14/2.43 P_IN_A(X) -> P_IN_A(Y) 6.14/2.43 6.14/2.43 R is empty. 6.14/2.43 The argument filtering Pi contains the following mapping: 6.14/2.43 P_IN_A(x1) = P_IN_A 6.14/2.43 6.14/2.43 6.14/2.43 We have to consider all (P,R,Pi)-chains 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (9) PiDPToQDPProof (SOUND) 6.14/2.43 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (10) 6.14/2.43 Obligation: 6.14/2.43 Q DP problem: 6.14/2.43 The TRS P consists of the following rules: 6.14/2.43 6.14/2.43 P_IN_A -> P_IN_A 6.14/2.43 6.14/2.43 R is empty. 6.14/2.43 Q is empty. 6.14/2.43 We have to consider all (P,Q,R)-chains. 6.14/2.43 ---------------------------------------- 6.14/2.43 6.14/2.43 (11) PrologToTRSTransformerProof (SOUND) 6.14/2.43 Transformed Prolog program to TRS. 6.14/2.43 6.14/2.43 { 6.14/2.43 "root": 3, 6.14/2.43 "program": { 6.14/2.43 "directives": [], 6.14/2.43 "clauses": [ 6.14/2.43 [ 6.14/2.43 "(p (a))", 6.14/2.43 null 6.14/2.43 ], 6.14/2.43 [ 6.14/2.43 "(p X)", 6.14/2.43 "(p Y)" 6.14/2.43 ], 6.14/2.43 [ 6.14/2.43 "(q (b))", 6.14/2.43 null 6.14/2.43 ], 6.14/2.43 [ 6.14/2.43 "(goal X)", 6.14/2.43 "(',' (p X) (q X))" 6.14/2.43 ] 6.14/2.43 ] 6.14/2.43 }, 6.14/2.43 "graph": { 6.14/2.43 "nodes": { 6.14/2.43 "55": { 6.14/2.43 "goal": [], 6.14/2.43 "kb": { 6.14/2.43 "nonunifying": [], 6.14/2.43 "intvars": {}, 6.14/2.43 "arithmetic": { 6.14/2.43 "type": "PlainIntegerRelationState", 6.14/2.43 "relations": [] 6.14/2.43 }, 6.14/2.43 "ground": [], 6.14/2.43 "free": [], 6.14/2.43 "exprvars": [] 6.14/2.43 } 6.14/2.43 }, 6.14/2.43 "77": { 6.14/2.43 "goal": [{ 6.14/2.43 "clause": -1, 6.14/2.43 "scope": -1, 6.14/2.43 "term": "(true)" 6.14/2.43 }], 6.14/2.43 "kb": { 6.14/2.43 "nonunifying": [], 6.14/2.43 "intvars": {}, 6.14/2.43 "arithmetic": { 6.14/2.43 "type": "PlainIntegerRelationState", 6.14/2.43 "relations": [] 6.14/2.43 }, 6.14/2.43 "ground": [], 6.14/2.43 "free": [], 6.14/2.43 "exprvars": [] 6.14/2.43 } 6.14/2.43 }, 6.14/2.43 "56": { 6.14/2.43 "goal": [], 6.14/2.43 "kb": { 6.14/2.43 "nonunifying": [], 6.14/2.43 "intvars": {}, 6.14/2.43 "arithmetic": { 6.14/2.43 "type": "PlainIntegerRelationState", 6.14/2.43 "relations": [] 6.14/2.43 }, 6.14/2.43 "ground": [], 6.14/2.43 "free": [], 6.14/2.43 "exprvars": [] 6.14/2.43 } 6.14/2.43 }, 6.14/2.43 "78": { 6.14/2.43 "goal": [], 6.14/2.43 "kb": { 6.14/2.43 "nonunifying": [], 6.14/2.43 "intvars": {}, 6.14/2.43 "arithmetic": { 6.14/2.43 "type": "PlainIntegerRelationState", 6.14/2.43 "relations": [] 6.14/2.43 }, 6.14/2.43 "ground": [], 6.14/2.43 "free": [], 6.14/2.43 "exprvars": [] 6.14/2.43 } 6.14/2.43 }, 6.14/2.43 "57": { 6.14/2.43 "goal": [{ 6.14/2.43 "clause": -1, 6.14/2.43 "scope": -1, 6.14/2.43 "term": "(p X8)" 6.14/2.43 }], 6.14/2.43 "kb": { 6.14/2.43 "nonunifying": [], 6.14/2.43 "intvars": {}, 6.14/2.43 "arithmetic": { 6.14/2.43 "type": "PlainIntegerRelationState", 6.14/2.43 "relations": [] 6.14/2.43 }, 6.14/2.43 "ground": [], 6.14/2.43 "free": ["X8"], 6.14/2.43 "exprvars": [] 6.14/2.43 } 6.14/2.43 }, 6.14/2.43 "79": { 6.14/2.43 "goal": [], 6.14/2.43 "kb": { 6.14/2.43 "nonunifying": [], 6.14/2.43 "intvars": {}, 6.14/2.43 "arithmetic": { 6.14/2.43 "type": "PlainIntegerRelationState", 6.14/2.43 "relations": [] 6.14/2.43 }, 6.14/2.43 "ground": [], 6.14/2.43 "free": [], 6.14/2.43 "exprvars": [] 6.14/2.43 } 6.14/2.43 }, 6.14/2.43 "58": { 6.14/2.43 "goal": [ 6.14/2.43 { 6.14/2.43 "clause": 0, 6.14/2.43 "scope": 3, 6.14/2.43 "term": "(p X8)" 6.14/2.43 }, 6.14/2.43 { 6.14/2.43 "clause": 1, 6.14/2.43 "scope": 3, 6.14/2.43 "term": "(p X8)" 6.14/2.43 } 6.14/2.43 ], 6.14/2.43 "kb": { 6.14/2.43 "nonunifying": [], 6.14/2.43 "intvars": {}, 6.14/2.43 "arithmetic": { 6.14/2.43 "type": "PlainIntegerRelationState", 6.14/2.43 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X8"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "15": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(',' (p T4) (q T4))" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "59": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 0, 6.14/2.44 "scope": 3, 6.14/2.44 "term": "(p X8)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X8"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "49": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(p T4)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "type": "Nodes", 6.14/2.44 "3": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(goal T1)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T1"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "5": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 3, 6.14/2.44 "scope": 1, 6.14/2.44 "term": "(goal T1)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T1"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "60": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 1, 6.14/2.44 "scope": 3, 6.14/2.44 "term": "(p X8)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X8"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "50": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(q T4)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "61": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(true)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "51": { 6.14/2.44 "goal": [ 6.14/2.44 { 6.14/2.44 "clause": 0, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(p T4)" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "clause": 1, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(p T4)" 6.14/2.44 } 6.14/2.44 ], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "62": { 6.14/2.44 "goal": [], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "52": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 0, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(p T4)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "63": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(p X15)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X15"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "53": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 1, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(p T4)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "75": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 2, 6.14/2.44 "scope": 4, 6.14/2.44 "term": "(q T4)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "54": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(true)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "edges": [ 6.14/2.44 { 6.14/2.44 "from": 3, 6.14/2.44 "to": 5, 6.14/2.44 "label": "CASE" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 5, 6.14/2.44 "to": 15, 6.14/2.44 "label": "ONLY EVAL with clause\ngoal(X3) :- ','(p(X3), q(X3)).\nand substitutionT1 -> T4,\nX3 -> T4" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 15, 6.14/2.44 "to": 49, 6.14/2.44 "label": "SPLIT 1" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 15, 6.14/2.44 "to": 50, 6.14/2.44 "label": "SPLIT 2\nnew knowledge:\nT4 is ground" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 49, 6.14/2.44 "to": 51, 6.14/2.44 "label": "CASE" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 50, 6.14/2.44 "to": 75, 6.14/2.44 "label": "CASE" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 51, 6.14/2.44 "to": 52, 6.14/2.44 "label": "PARALLEL" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 51, 6.14/2.44 "to": 53, 6.14/2.44 "label": "PARALLEL" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 52, 6.14/2.44 "to": 54, 6.14/2.44 "label": "EVAL with clause\np(a).\nand substitutionT4 -> a" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 52, 6.14/2.44 "to": 55, 6.14/2.44 "label": "EVAL-BACKTRACK" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 53, 6.14/2.44 "to": 57, 6.14/2.44 "label": "ONLY EVAL with clause\np(X7) :- p(X8).\nand substitutionT4 -> T7,\nX7 -> T7" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 54, 6.14/2.44 "to": 56, 6.14/2.44 "label": "SUCCESS" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 57, 6.14/2.44 "to": 58, 6.14/2.44 "label": "CASE" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 58, 6.14/2.44 "to": 59, 6.14/2.44 "label": "PARALLEL" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 58, 6.14/2.44 "to": 60, 6.14/2.44 "label": "PARALLEL" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 59, 6.14/2.44 "to": 61, 6.14/2.44 "label": "ONLY EVAL with clause\np(a).\nand substitutionX8 -> a" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 60, 6.14/2.44 "to": 63, 6.14/2.44 "label": "ONLY EVAL with clause\np(X14) :- p(X15).\nand substitutionX8 -> X16,\nX14 -> X16" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 61, 6.14/2.44 "to": 62, 6.14/2.44 "label": "SUCCESS" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 63, 6.14/2.44 "to": 57, 6.14/2.44 "label": "INSTANCE with matching:\nX8 -> X15" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 75, 6.14/2.44 "to": 77, 6.14/2.44 "label": "EVAL with clause\nq(b).\nand substitutionT4 -> b" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 75, 6.14/2.44 "to": 78, 6.14/2.44 "label": "EVAL-BACKTRACK" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 77, 6.14/2.44 "to": 79, 6.14/2.44 "label": "SUCCESS" 6.14/2.44 } 6.14/2.44 ], 6.14/2.44 "type": "Graph" 6.14/2.44 } 6.14/2.44 } 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (12) 6.14/2.44 Obligation: 6.14/2.44 Q restricted rewrite system: 6.14/2.44 The TRS R consists of the following rules: 6.14/2.44 6.14/2.44 f3_in(T4) -> U1(f15_in(T4), T4) 6.14/2.44 U1(f15_out1, T4) -> f3_out1 6.14/2.44 f57_in -> f57_out1 6.14/2.44 f57_in -> U2(f57_in) 6.14/2.44 U2(f57_out1) -> f57_out1 6.14/2.44 f49_in(a) -> f49_out1 6.14/2.44 f49_in(T7) -> U3(f57_in, T7) 6.14/2.44 U3(f57_out1, T7) -> f49_out1 6.14/2.44 f50_in(b) -> f50_out1 6.14/2.44 f15_in(T4) -> U4(f49_in(T4), T4) 6.14/2.44 U4(f49_out1, T4) -> U5(f50_in(T4), T4) 6.14/2.44 U5(f50_out1, T4) -> f15_out1 6.14/2.44 6.14/2.44 Q is empty. 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (13) QTRSRRRProof (EQUIVALENT) 6.14/2.44 Used ordering: 6.14/2.44 f3_in/1(YES) 6.14/2.44 U1/2(YES,YES) 6.14/2.44 f15_in/1(YES) 6.14/2.44 f15_out1/0) 6.14/2.44 f3_out1/0) 6.14/2.44 f57_in/0) 6.14/2.44 f57_out1/0) 6.14/2.44 U2/1)YES( 6.14/2.44 f49_in/1(YES) 6.14/2.44 a/0) 6.14/2.44 f49_out1/0) 6.14/2.44 U3/2(YES,YES) 6.14/2.44 f50_in/1(YES) 6.14/2.44 b/0) 6.14/2.44 f50_out1/0) 6.14/2.44 U4/2(YES,YES) 6.14/2.44 U5/2(YES,YES) 6.14/2.44 6.14/2.44 Quasi precedence: 6.14/2.44 f3_in_1 > U1_2 > [f3_out1, a, f49_out1, f50_in_1] 6.14/2.44 f3_in_1 > f15_in_1 > f49_in_1 > [f57_in, f57_out1] > [f3_out1, a, f49_out1, f50_in_1] 6.14/2.44 f3_in_1 > f15_in_1 > f49_in_1 > U3_2 > [f3_out1, a, f49_out1, f50_in_1] 6.14/2.44 f3_in_1 > f15_in_1 > U4_2 > U5_2 > [f3_out1, a, f49_out1, f50_in_1] 6.14/2.44 b > f50_out1 > f15_out1 > [f3_out1, a, f49_out1, f50_in_1] 6.14/2.44 6.14/2.44 6.14/2.44 Status: 6.14/2.44 f3_in_1: multiset status 6.14/2.44 U1_2: multiset status 6.14/2.44 f15_in_1: [1] 6.14/2.44 f15_out1: multiset status 6.14/2.44 f3_out1: multiset status 6.14/2.44 f57_in: multiset status 6.14/2.44 f57_out1: multiset status 6.14/2.44 f49_in_1: multiset status 6.14/2.44 a: multiset status 6.14/2.44 f49_out1: multiset status 6.14/2.44 U3_2: multiset status 6.14/2.44 f50_in_1: multiset status 6.14/2.44 b: multiset status 6.14/2.44 f50_out1: multiset status 6.14/2.44 U4_2: multiset status 6.14/2.44 U5_2: multiset status 6.14/2.44 6.14/2.44 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 6.14/2.44 6.14/2.44 f3_in(T4) -> U1(f15_in(T4), T4) 6.14/2.44 U1(f15_out1, T4) -> f3_out1 6.14/2.44 f49_in(a) -> f49_out1 6.14/2.44 f49_in(T7) -> U3(f57_in, T7) 6.14/2.44 U3(f57_out1, T7) -> f49_out1 6.14/2.44 f50_in(b) -> f50_out1 6.14/2.44 f15_in(T4) -> U4(f49_in(T4), T4) 6.14/2.44 U4(f49_out1, T4) -> U5(f50_in(T4), T4) 6.14/2.44 U5(f50_out1, T4) -> f15_out1 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (14) 6.14/2.44 Obligation: 6.14/2.44 Q restricted rewrite system: 6.14/2.44 The TRS R consists of the following rules: 6.14/2.44 6.14/2.44 f57_in -> f57_out1 6.14/2.44 f57_in -> U2(f57_in) 6.14/2.44 U2(f57_out1) -> f57_out1 6.14/2.44 6.14/2.44 Q is empty. 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (15) QTRSRRRProof (EQUIVALENT) 6.14/2.44 Used ordering: 6.14/2.44 Polynomial interpretation [POLO]: 6.14/2.44 6.14/2.44 POL(U2(x_1)) = x_1 6.14/2.44 POL(f57_in) = 2 6.14/2.44 POL(f57_out1) = 0 6.14/2.44 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 6.14/2.44 6.14/2.44 f57_in -> f57_out1 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (16) 6.14/2.44 Obligation: 6.14/2.44 Q restricted rewrite system: 6.14/2.44 The TRS R consists of the following rules: 6.14/2.44 6.14/2.44 f57_in -> U2(f57_in) 6.14/2.44 U2(f57_out1) -> f57_out1 6.14/2.44 6.14/2.44 Q is empty. 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (17) QTRSRRRProof (EQUIVALENT) 6.14/2.44 Used ordering: 6.14/2.44 Polynomial interpretation [POLO]: 6.14/2.44 6.14/2.44 POL(U2(x_1)) = 2*x_1 6.14/2.44 POL(f57_in) = 0 6.14/2.44 POL(f57_out1) = 1 6.14/2.44 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 6.14/2.44 6.14/2.44 U2(f57_out1) -> f57_out1 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (18) 6.14/2.44 Obligation: 6.14/2.44 Q restricted rewrite system: 6.14/2.44 The TRS R consists of the following rules: 6.14/2.44 6.14/2.44 f57_in -> U2(f57_in) 6.14/2.44 6.14/2.44 Q is empty. 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (19) Overlay + Local Confluence (EQUIVALENT) 6.14/2.44 The TRS is overlay and locally confluent. By [NOC] we can switch to innermost. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (20) 6.14/2.44 Obligation: 6.14/2.44 Q restricted rewrite system: 6.14/2.44 The TRS R consists of the following rules: 6.14/2.44 6.14/2.44 f57_in -> U2(f57_in) 6.14/2.44 6.14/2.44 The set Q consists of the following terms: 6.14/2.44 6.14/2.44 f57_in 6.14/2.44 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (21) DependencyPairsProof (EQUIVALENT) 6.14/2.44 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (22) 6.14/2.44 Obligation: 6.14/2.44 Q DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 F57_IN -> F57_IN 6.14/2.44 6.14/2.44 The TRS R consists of the following rules: 6.14/2.44 6.14/2.44 f57_in -> U2(f57_in) 6.14/2.44 6.14/2.44 The set Q consists of the following terms: 6.14/2.44 6.14/2.44 f57_in 6.14/2.44 6.14/2.44 We have to consider all minimal (P,Q,R)-chains. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (23) UsableRulesProof (EQUIVALENT) 6.14/2.44 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.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (24) 6.14/2.44 Obligation: 6.14/2.44 Q DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 F57_IN -> F57_IN 6.14/2.44 6.14/2.44 R is empty. 6.14/2.44 The set Q consists of the following terms: 6.14/2.44 6.14/2.44 f57_in 6.14/2.44 6.14/2.44 We have to consider all minimal (P,Q,R)-chains. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (25) QReductionProof (EQUIVALENT) 6.14/2.44 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.14/2.44 6.14/2.44 f57_in 6.14/2.44 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (26) 6.14/2.44 Obligation: 6.14/2.44 Q DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 F57_IN -> F57_IN 6.14/2.44 6.14/2.44 R is empty. 6.14/2.44 Q is empty. 6.14/2.44 We have to consider all minimal (P,Q,R)-chains. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (27) PrologToPiTRSProof (SOUND) 6.14/2.44 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.14/2.44 6.14/2.44 goal_in_1: (b) 6.14/2.44 6.14/2.44 p_in_1: (b) (f) 6.14/2.44 6.14/2.44 Transforming Prolog into the following Term Rewriting System: 6.14/2.44 6.14/2.44 Pi-finite rewrite system: 6.14/2.44 The TRS R consists of the following rules: 6.14/2.44 6.14/2.44 goal_in_g(X) -> U2_g(X, p_in_g(X)) 6.14/2.44 p_in_g(a) -> p_out_g(a) 6.14/2.44 p_in_g(X) -> U1_g(X, p_in_a(Y)) 6.14/2.44 p_in_a(a) -> p_out_a(a) 6.14/2.44 p_in_a(X) -> U1_a(X, p_in_a(Y)) 6.14/2.44 U1_a(X, p_out_a(Y)) -> p_out_a(X) 6.14/2.44 U1_g(X, p_out_a(Y)) -> p_out_g(X) 6.14/2.44 U2_g(X, p_out_g(X)) -> U3_g(X, q_in_g(X)) 6.14/2.44 q_in_g(b) -> q_out_g(b) 6.14/2.44 U3_g(X, q_out_g(X)) -> goal_out_g(X) 6.14/2.44 6.14/2.44 The argument filtering Pi contains the following mapping: 6.14/2.44 goal_in_g(x1) = goal_in_g(x1) 6.14/2.44 6.14/2.44 U2_g(x1, x2) = U2_g(x1, x2) 6.14/2.44 6.14/2.44 p_in_g(x1) = p_in_g(x1) 6.14/2.44 6.14/2.44 a = a 6.14/2.44 6.14/2.44 p_out_g(x1) = p_out_g(x1) 6.14/2.44 6.14/2.44 U1_g(x1, x2) = U1_g(x1, x2) 6.14/2.44 6.14/2.44 p_in_a(x1) = p_in_a 6.14/2.44 6.14/2.44 p_out_a(x1) = p_out_a 6.14/2.44 6.14/2.44 U1_a(x1, x2) = U1_a(x2) 6.14/2.44 6.14/2.44 U3_g(x1, x2) = U3_g(x1, x2) 6.14/2.44 6.14/2.44 q_in_g(x1) = q_in_g(x1) 6.14/2.44 6.14/2.44 b = b 6.14/2.44 6.14/2.44 q_out_g(x1) = q_out_g(x1) 6.14/2.44 6.14/2.44 goal_out_g(x1) = goal_out_g(x1) 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (28) 6.14/2.44 Obligation: 6.14/2.44 Pi-finite rewrite system: 6.14/2.44 The TRS R consists of the following rules: 6.14/2.44 6.14/2.44 goal_in_g(X) -> U2_g(X, p_in_g(X)) 6.14/2.44 p_in_g(a) -> p_out_g(a) 6.14/2.44 p_in_g(X) -> U1_g(X, p_in_a(Y)) 6.14/2.44 p_in_a(a) -> p_out_a(a) 6.14/2.44 p_in_a(X) -> U1_a(X, p_in_a(Y)) 6.14/2.44 U1_a(X, p_out_a(Y)) -> p_out_a(X) 6.14/2.44 U1_g(X, p_out_a(Y)) -> p_out_g(X) 6.14/2.44 U2_g(X, p_out_g(X)) -> U3_g(X, q_in_g(X)) 6.14/2.44 q_in_g(b) -> q_out_g(b) 6.14/2.44 U3_g(X, q_out_g(X)) -> goal_out_g(X) 6.14/2.44 6.14/2.44 The argument filtering Pi contains the following mapping: 6.14/2.44 goal_in_g(x1) = goal_in_g(x1) 6.14/2.44 6.14/2.44 U2_g(x1, x2) = U2_g(x1, x2) 6.14/2.44 6.14/2.44 p_in_g(x1) = p_in_g(x1) 6.14/2.44 6.14/2.44 a = a 6.14/2.44 6.14/2.44 p_out_g(x1) = p_out_g(x1) 6.14/2.44 6.14/2.44 U1_g(x1, x2) = U1_g(x1, x2) 6.14/2.44 6.14/2.44 p_in_a(x1) = p_in_a 6.14/2.44 6.14/2.44 p_out_a(x1) = p_out_a 6.14/2.44 6.14/2.44 U1_a(x1, x2) = U1_a(x2) 6.14/2.44 6.14/2.44 U3_g(x1, x2) = U3_g(x1, x2) 6.14/2.44 6.14/2.44 q_in_g(x1) = q_in_g(x1) 6.14/2.44 6.14/2.44 b = b 6.14/2.44 6.14/2.44 q_out_g(x1) = q_out_g(x1) 6.14/2.44 6.14/2.44 goal_out_g(x1) = goal_out_g(x1) 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (29) DependencyPairsProof (EQUIVALENT) 6.14/2.44 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 6.14/2.44 Pi DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 GOAL_IN_G(X) -> U2_G(X, p_in_g(X)) 6.14/2.44 GOAL_IN_G(X) -> P_IN_G(X) 6.14/2.44 P_IN_G(X) -> U1_G(X, p_in_a(Y)) 6.14/2.44 P_IN_G(X) -> P_IN_A(Y) 6.14/2.44 P_IN_A(X) -> U1_A(X, p_in_a(Y)) 6.14/2.44 P_IN_A(X) -> P_IN_A(Y) 6.14/2.44 U2_G(X, p_out_g(X)) -> U3_G(X, q_in_g(X)) 6.14/2.44 U2_G(X, p_out_g(X)) -> Q_IN_G(X) 6.14/2.44 6.14/2.44 The TRS R consists of the following rules: 6.14/2.44 6.14/2.44 goal_in_g(X) -> U2_g(X, p_in_g(X)) 6.14/2.44 p_in_g(a) -> p_out_g(a) 6.14/2.44 p_in_g(X) -> U1_g(X, p_in_a(Y)) 6.14/2.44 p_in_a(a) -> p_out_a(a) 6.14/2.44 p_in_a(X) -> U1_a(X, p_in_a(Y)) 6.14/2.44 U1_a(X, p_out_a(Y)) -> p_out_a(X) 6.14/2.44 U1_g(X, p_out_a(Y)) -> p_out_g(X) 6.14/2.44 U2_g(X, p_out_g(X)) -> U3_g(X, q_in_g(X)) 6.14/2.44 q_in_g(b) -> q_out_g(b) 6.14/2.44 U3_g(X, q_out_g(X)) -> goal_out_g(X) 6.14/2.44 6.14/2.44 The argument filtering Pi contains the following mapping: 6.14/2.44 goal_in_g(x1) = goal_in_g(x1) 6.14/2.44 6.14/2.44 U2_g(x1, x2) = U2_g(x1, x2) 6.14/2.44 6.14/2.44 p_in_g(x1) = p_in_g(x1) 6.14/2.44 6.14/2.44 a = a 6.14/2.44 6.14/2.44 p_out_g(x1) = p_out_g(x1) 6.14/2.44 6.14/2.44 U1_g(x1, x2) = U1_g(x1, x2) 6.14/2.44 6.14/2.44 p_in_a(x1) = p_in_a 6.14/2.44 6.14/2.44 p_out_a(x1) = p_out_a 6.14/2.44 6.14/2.44 U1_a(x1, x2) = U1_a(x2) 6.14/2.44 6.14/2.44 U3_g(x1, x2) = U3_g(x1, x2) 6.14/2.44 6.14/2.44 q_in_g(x1) = q_in_g(x1) 6.14/2.44 6.14/2.44 b = b 6.14/2.44 6.14/2.44 q_out_g(x1) = q_out_g(x1) 6.14/2.44 6.14/2.44 goal_out_g(x1) = goal_out_g(x1) 6.14/2.44 6.14/2.44 GOAL_IN_G(x1) = GOAL_IN_G(x1) 6.14/2.44 6.14/2.44 U2_G(x1, x2) = U2_G(x1, x2) 6.14/2.44 6.14/2.44 P_IN_G(x1) = P_IN_G(x1) 6.14/2.44 6.14/2.44 U1_G(x1, x2) = U1_G(x1, x2) 6.14/2.44 6.14/2.44 P_IN_A(x1) = P_IN_A 6.14/2.44 6.14/2.44 U1_A(x1, x2) = U1_A(x2) 6.14/2.44 6.14/2.44 U3_G(x1, x2) = U3_G(x1, x2) 6.14/2.44 6.14/2.44 Q_IN_G(x1) = Q_IN_G(x1) 6.14/2.44 6.14/2.44 6.14/2.44 We have to consider all (P,R,Pi)-chains 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (30) 6.14/2.44 Obligation: 6.14/2.44 Pi DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 GOAL_IN_G(X) -> U2_G(X, p_in_g(X)) 6.14/2.44 GOAL_IN_G(X) -> P_IN_G(X) 6.14/2.44 P_IN_G(X) -> U1_G(X, p_in_a(Y)) 6.14/2.44 P_IN_G(X) -> P_IN_A(Y) 6.14/2.44 P_IN_A(X) -> U1_A(X, p_in_a(Y)) 6.14/2.44 P_IN_A(X) -> P_IN_A(Y) 6.14/2.44 U2_G(X, p_out_g(X)) -> U3_G(X, q_in_g(X)) 6.14/2.44 U2_G(X, p_out_g(X)) -> Q_IN_G(X) 6.14/2.44 6.14/2.44 The TRS R consists of the following rules: 6.14/2.44 6.14/2.44 goal_in_g(X) -> U2_g(X, p_in_g(X)) 6.14/2.44 p_in_g(a) -> p_out_g(a) 6.14/2.44 p_in_g(X) -> U1_g(X, p_in_a(Y)) 6.14/2.44 p_in_a(a) -> p_out_a(a) 6.14/2.44 p_in_a(X) -> U1_a(X, p_in_a(Y)) 6.14/2.44 U1_a(X, p_out_a(Y)) -> p_out_a(X) 6.14/2.44 U1_g(X, p_out_a(Y)) -> p_out_g(X) 6.14/2.44 U2_g(X, p_out_g(X)) -> U3_g(X, q_in_g(X)) 6.14/2.44 q_in_g(b) -> q_out_g(b) 6.14/2.44 U3_g(X, q_out_g(X)) -> goal_out_g(X) 6.14/2.44 6.14/2.44 The argument filtering Pi contains the following mapping: 6.14/2.44 goal_in_g(x1) = goal_in_g(x1) 6.14/2.44 6.14/2.44 U2_g(x1, x2) = U2_g(x1, x2) 6.14/2.44 6.14/2.44 p_in_g(x1) = p_in_g(x1) 6.14/2.44 6.14/2.44 a = a 6.14/2.44 6.14/2.44 p_out_g(x1) = p_out_g(x1) 6.14/2.44 6.14/2.44 U1_g(x1, x2) = U1_g(x1, x2) 6.14/2.44 6.14/2.44 p_in_a(x1) = p_in_a 6.14/2.44 6.14/2.44 p_out_a(x1) = p_out_a 6.14/2.44 6.14/2.44 U1_a(x1, x2) = U1_a(x2) 6.14/2.44 6.14/2.44 U3_g(x1, x2) = U3_g(x1, x2) 6.14/2.44 6.14/2.44 q_in_g(x1) = q_in_g(x1) 6.14/2.44 6.14/2.44 b = b 6.14/2.44 6.14/2.44 q_out_g(x1) = q_out_g(x1) 6.14/2.44 6.14/2.44 goal_out_g(x1) = goal_out_g(x1) 6.14/2.44 6.14/2.44 GOAL_IN_G(x1) = GOAL_IN_G(x1) 6.14/2.44 6.14/2.44 U2_G(x1, x2) = U2_G(x1, x2) 6.14/2.44 6.14/2.44 P_IN_G(x1) = P_IN_G(x1) 6.14/2.44 6.14/2.44 U1_G(x1, x2) = U1_G(x1, x2) 6.14/2.44 6.14/2.44 P_IN_A(x1) = P_IN_A 6.14/2.44 6.14/2.44 U1_A(x1, x2) = U1_A(x2) 6.14/2.44 6.14/2.44 U3_G(x1, x2) = U3_G(x1, x2) 6.14/2.44 6.14/2.44 Q_IN_G(x1) = Q_IN_G(x1) 6.14/2.44 6.14/2.44 6.14/2.44 We have to consider all (P,R,Pi)-chains 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (31) DependencyGraphProof (EQUIVALENT) 6.14/2.44 The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 7 less nodes. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (32) 6.14/2.44 Obligation: 6.14/2.44 Pi DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 P_IN_A(X) -> P_IN_A(Y) 6.14/2.44 6.14/2.44 The TRS R consists of the following rules: 6.14/2.44 6.14/2.44 goal_in_g(X) -> U2_g(X, p_in_g(X)) 6.14/2.44 p_in_g(a) -> p_out_g(a) 6.14/2.44 p_in_g(X) -> U1_g(X, p_in_a(Y)) 6.14/2.44 p_in_a(a) -> p_out_a(a) 6.14/2.44 p_in_a(X) -> U1_a(X, p_in_a(Y)) 6.14/2.44 U1_a(X, p_out_a(Y)) -> p_out_a(X) 6.14/2.44 U1_g(X, p_out_a(Y)) -> p_out_g(X) 6.14/2.44 U2_g(X, p_out_g(X)) -> U3_g(X, q_in_g(X)) 6.14/2.44 q_in_g(b) -> q_out_g(b) 6.14/2.44 U3_g(X, q_out_g(X)) -> goal_out_g(X) 6.14/2.44 6.14/2.44 The argument filtering Pi contains the following mapping: 6.14/2.44 goal_in_g(x1) = goal_in_g(x1) 6.14/2.44 6.14/2.44 U2_g(x1, x2) = U2_g(x1, x2) 6.14/2.44 6.14/2.44 p_in_g(x1) = p_in_g(x1) 6.14/2.44 6.14/2.44 a = a 6.14/2.44 6.14/2.44 p_out_g(x1) = p_out_g(x1) 6.14/2.44 6.14/2.44 U1_g(x1, x2) = U1_g(x1, x2) 6.14/2.44 6.14/2.44 p_in_a(x1) = p_in_a 6.14/2.44 6.14/2.44 p_out_a(x1) = p_out_a 6.14/2.44 6.14/2.44 U1_a(x1, x2) = U1_a(x2) 6.14/2.44 6.14/2.44 U3_g(x1, x2) = U3_g(x1, x2) 6.14/2.44 6.14/2.44 q_in_g(x1) = q_in_g(x1) 6.14/2.44 6.14/2.44 b = b 6.14/2.44 6.14/2.44 q_out_g(x1) = q_out_g(x1) 6.14/2.44 6.14/2.44 goal_out_g(x1) = goal_out_g(x1) 6.14/2.44 6.14/2.44 P_IN_A(x1) = P_IN_A 6.14/2.44 6.14/2.44 6.14/2.44 We have to consider all (P,R,Pi)-chains 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (33) UsableRulesProof (EQUIVALENT) 6.14/2.44 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (34) 6.14/2.44 Obligation: 6.14/2.44 Pi DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 P_IN_A(X) -> P_IN_A(Y) 6.14/2.44 6.14/2.44 R is empty. 6.14/2.44 The argument filtering Pi contains the following mapping: 6.14/2.44 P_IN_A(x1) = P_IN_A 6.14/2.44 6.14/2.44 6.14/2.44 We have to consider all (P,R,Pi)-chains 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (35) PiDPToQDPProof (SOUND) 6.14/2.44 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (36) 6.14/2.44 Obligation: 6.14/2.44 Q DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 P_IN_A -> P_IN_A 6.14/2.44 6.14/2.44 R is empty. 6.14/2.44 Q is empty. 6.14/2.44 We have to consider all (P,Q,R)-chains. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (37) PrologToDTProblemTransformerProof (SOUND) 6.14/2.44 Built DT problem from termination graph DT10. 6.14/2.44 6.14/2.44 { 6.14/2.44 "root": 2, 6.14/2.44 "program": { 6.14/2.44 "directives": [], 6.14/2.44 "clauses": [ 6.14/2.44 [ 6.14/2.44 "(p (a))", 6.14/2.44 null 6.14/2.44 ], 6.14/2.44 [ 6.14/2.44 "(p X)", 6.14/2.44 "(p Y)" 6.14/2.44 ], 6.14/2.44 [ 6.14/2.44 "(q (b))", 6.14/2.44 null 6.14/2.44 ], 6.14/2.44 [ 6.14/2.44 "(goal X)", 6.14/2.44 "(',' (p X) (q X))" 6.14/2.44 ] 6.14/2.44 ] 6.14/2.44 }, 6.14/2.44 "graph": { 6.14/2.44 "nodes": { 6.14/2.44 "22": { 6.14/2.44 "goal": [], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "34": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(p X7)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X7"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "45": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(true)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "35": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(q T6)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T6"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "46": { 6.14/2.44 "goal": [], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "25": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 2, 6.14/2.44 "scope": 3, 6.14/2.44 "term": "(q (a))" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "26": { 6.14/2.44 "goal": [], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "37": { 6.14/2.44 "goal": [ 6.14/2.44 { 6.14/2.44 "clause": 0, 6.14/2.44 "scope": 4, 6.14/2.44 "term": "(p X7)" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "clause": 1, 6.14/2.44 "scope": 4, 6.14/2.44 "term": "(p X7)" 6.14/2.44 } 6.14/2.44 ], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X7"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "48": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(p X14)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X14"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "38": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 0, 6.14/2.44 "scope": 4, 6.14/2.44 "term": "(p X7)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X7"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "17": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(',' (p T3) (q T3))" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T3"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "39": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 1, 6.14/2.44 "scope": 4, 6.14/2.44 "term": "(p X7)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X7"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "18": { 6.14/2.44 "goal": [ 6.14/2.44 { 6.14/2.44 "clause": 0, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(',' (p T3) (q T3))" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "clause": 1, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(',' (p T3) (q T3))" 6.14/2.44 } 6.14/2.44 ], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T3"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "19": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 0, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(',' (p T3) (q T3))" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T3"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "181": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(true)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "182": { 6.14/2.44 "goal": [], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "type": "Nodes", 6.14/2.44 "183": { 6.14/2.44 "goal": [], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "2": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(goal T1)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T1"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "6": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 3, 6.14/2.44 "scope": 1, 6.14/2.44 "term": "(goal T1)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T1"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "80": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 2, 6.14/2.44 "scope": 5, 6.14/2.44 "term": "(q T6)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T6"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "30": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(',' (p X7) (q T6))" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T6"], 6.14/2.44 "free": ["X7"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "20": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 1, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(',' (p T3) (q T3))" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T3"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "21": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(q (a))" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "edges": [ 6.14/2.44 { 6.14/2.44 "from": 2, 6.14/2.44 "to": 6, 6.14/2.44 "label": "CASE" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 6, 6.14/2.44 "to": 17, 6.14/2.44 "label": "ONLY EVAL with clause\ngoal(X2) :- ','(p(X2), q(X2)).\nand substitutionT1 -> T3,\nX2 -> T3" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 17, 6.14/2.44 "to": 18, 6.14/2.44 "label": "CASE" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 18, 6.14/2.44 "to": 19, 6.14/2.44 "label": "PARALLEL" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 18, 6.14/2.44 "to": 20, 6.14/2.44 "label": "PARALLEL" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 19, 6.14/2.44 "to": 21, 6.14/2.44 "label": "EVAL with clause\np(a).\nand substitutionT3 -> a" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 19, 6.14/2.44 "to": 22, 6.14/2.44 "label": "EVAL-BACKTRACK" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 20, 6.14/2.44 "to": 30, 6.14/2.44 "label": "ONLY EVAL with clause\np(X6) :- p(X7).\nand substitutionT3 -> T6,\nX6 -> T6" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 21, 6.14/2.44 "to": 25, 6.14/2.44 "label": "CASE" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 25, 6.14/2.44 "to": 26, 6.14/2.44 "label": "BACKTRACK\nfor clause: q(b)because of non-unification" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 30, 6.14/2.44 "to": 34, 6.14/2.44 "label": "SPLIT 1" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 30, 6.14/2.44 "to": 35, 6.14/2.44 "label": "SPLIT 2\nreplacements:X7 -> T7" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 34, 6.14/2.44 "to": 37, 6.14/2.44 "label": "CASE" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 35, 6.14/2.44 "to": 80, 6.14/2.44 "label": "CASE" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 37, 6.14/2.44 "to": 38, 6.14/2.44 "label": "PARALLEL" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 37, 6.14/2.44 "to": 39, 6.14/2.44 "label": "PARALLEL" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 38, 6.14/2.44 "to": 45, 6.14/2.44 "label": "ONLY EVAL with clause\np(a).\nand substitutionX7 -> a" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 39, 6.14/2.44 "to": 48, 6.14/2.44 "label": "ONLY EVAL with clause\np(X13) :- p(X14).\nand substitutionX7 -> X15,\nX13 -> X15" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 45, 6.14/2.44 "to": 46, 6.14/2.44 "label": "SUCCESS" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 48, 6.14/2.44 "to": 34, 6.14/2.44 "label": "INSTANCE with matching:\nX7 -> X14" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 80, 6.14/2.44 "to": 181, 6.14/2.44 "label": "EVAL with clause\nq(b).\nand substitutionT6 -> b" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 80, 6.14/2.44 "to": 182, 6.14/2.44 "label": "EVAL-BACKTRACK" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "from": 181, 6.14/2.44 "to": 183, 6.14/2.44 "label": "SUCCESS" 6.14/2.44 } 6.14/2.44 ], 6.14/2.44 "type": "Graph" 6.14/2.44 } 6.14/2.44 } 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (38) 6.14/2.44 Obligation: 6.14/2.44 Triples: 6.14/2.44 6.14/2.44 pA(X1) :- pA(X2). 6.14/2.44 goalB(X1) :- pA(X2). 6.14/2.44 6.14/2.44 Clauses: 6.14/2.44 6.14/2.44 pcA(a). 6.14/2.44 pcA(X1) :- pcA(X2). 6.14/2.44 6.14/2.44 Afs: 6.14/2.44 6.14/2.44 goalB(x1) = goalB(x1) 6.14/2.44 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (39) TriplesToPiDPProof (SOUND) 6.14/2.44 We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.14/2.44 6.14/2.44 goalB_in_1: (b) 6.14/2.44 6.14/2.44 pA_in_1: (f) 6.14/2.44 6.14/2.44 Transforming TRIPLES into the following Term Rewriting System: 6.14/2.44 6.14/2.44 Pi DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 GOALB_IN_G(X1) -> U2_G(X1, pA_in_a(X2)) 6.14/2.44 GOALB_IN_G(X1) -> PA_IN_A(X2) 6.14/2.44 PA_IN_A(X1) -> U1_A(X1, pA_in_a(X2)) 6.14/2.44 PA_IN_A(X1) -> PA_IN_A(X2) 6.14/2.44 6.14/2.44 R is empty. 6.14/2.44 The argument filtering Pi contains the following mapping: 6.14/2.44 pA_in_a(x1) = pA_in_a 6.14/2.44 6.14/2.44 GOALB_IN_G(x1) = GOALB_IN_G(x1) 6.14/2.44 6.14/2.44 U2_G(x1, x2) = U2_G(x1, x2) 6.14/2.44 6.14/2.44 PA_IN_A(x1) = PA_IN_A 6.14/2.44 6.14/2.44 U1_A(x1, x2) = U1_A(x2) 6.14/2.44 6.14/2.44 6.14/2.44 We have to consider all (P,R,Pi)-chains 6.14/2.44 6.14/2.44 6.14/2.44 Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES 6.14/2.44 6.14/2.44 6.14/2.44 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (40) 6.14/2.44 Obligation: 6.14/2.44 Pi DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 GOALB_IN_G(X1) -> U2_G(X1, pA_in_a(X2)) 6.14/2.44 GOALB_IN_G(X1) -> PA_IN_A(X2) 6.14/2.44 PA_IN_A(X1) -> U1_A(X1, pA_in_a(X2)) 6.14/2.44 PA_IN_A(X1) -> PA_IN_A(X2) 6.14/2.44 6.14/2.44 R is empty. 6.14/2.44 The argument filtering Pi contains the following mapping: 6.14/2.44 pA_in_a(x1) = pA_in_a 6.14/2.44 6.14/2.44 GOALB_IN_G(x1) = GOALB_IN_G(x1) 6.14/2.44 6.14/2.44 U2_G(x1, x2) = U2_G(x1, x2) 6.14/2.44 6.14/2.44 PA_IN_A(x1) = PA_IN_A 6.14/2.44 6.14/2.44 U1_A(x1, x2) = U1_A(x2) 6.14/2.44 6.14/2.44 6.14/2.44 We have to consider all (P,R,Pi)-chains 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (41) DependencyGraphProof (EQUIVALENT) 6.14/2.44 The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (42) 6.14/2.44 Obligation: 6.14/2.44 Pi DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 PA_IN_A(X1) -> PA_IN_A(X2) 6.14/2.44 6.14/2.44 R is empty. 6.14/2.44 The argument filtering Pi contains the following mapping: 6.14/2.44 PA_IN_A(x1) = PA_IN_A 6.14/2.44 6.14/2.44 6.14/2.44 We have to consider all (P,R,Pi)-chains 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (43) PiDPToQDPProof (SOUND) 6.14/2.44 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (44) 6.14/2.44 Obligation: 6.14/2.44 Q DP problem: 6.14/2.44 The TRS P consists of the following rules: 6.14/2.44 6.14/2.44 PA_IN_A -> PA_IN_A 6.14/2.44 6.14/2.44 R is empty. 6.14/2.44 Q is empty. 6.14/2.44 We have to consider all (P,Q,R)-chains. 6.14/2.44 ---------------------------------------- 6.14/2.44 6.14/2.44 (45) PrologToIRSwTTransformerProof (SOUND) 6.14/2.44 Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert 6.14/2.44 6.14/2.44 { 6.14/2.44 "root": 1, 6.14/2.44 "program": { 6.14/2.44 "directives": [], 6.14/2.44 "clauses": [ 6.14/2.44 [ 6.14/2.44 "(p (a))", 6.14/2.44 null 6.14/2.44 ], 6.14/2.44 [ 6.14/2.44 "(p X)", 6.14/2.44 "(p Y)" 6.14/2.44 ], 6.14/2.44 [ 6.14/2.44 "(q (b))", 6.14/2.44 null 6.14/2.44 ], 6.14/2.44 [ 6.14/2.44 "(goal X)", 6.14/2.44 "(',' (p X) (q X))" 6.14/2.44 ] 6.14/2.44 ] 6.14/2.44 }, 6.14/2.44 "graph": { 6.14/2.44 "nodes": { 6.14/2.44 "33": { 6.14/2.44 "goal": [], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "44": { 6.14/2.44 "goal": [], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "23": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(p T4)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "24": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(q T4)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "36": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(p X8)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X8"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "47": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(p X15)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X15"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "16": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(',' (p T4) (q T4))" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "27": { 6.14/2.44 "goal": [ 6.14/2.44 { 6.14/2.44 "clause": 0, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(p T4)" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "clause": 1, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(p T4)" 6.14/2.44 } 6.14/2.44 ], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "28": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 0, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(p T4)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "29": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 1, 6.14/2.44 "scope": 2, 6.14/2.44 "term": "(p T4)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "type": "Nodes", 6.14/2.44 "1": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(goal T1)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T1"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "4": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 3, 6.14/2.44 "scope": 1, 6.14/2.44 "term": "(goal T1)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T1"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "72": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 2, 6.14/2.44 "scope": 4, 6.14/2.44 "term": "(q T4)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": ["T4"], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "40": { 6.14/2.44 "goal": [ 6.14/2.44 { 6.14/2.44 "clause": 0, 6.14/2.44 "scope": 3, 6.14/2.44 "term": "(p X8)" 6.14/2.44 }, 6.14/2.44 { 6.14/2.44 "clause": 1, 6.14/2.44 "scope": 3, 6.14/2.44 "term": "(p X8)" 6.14/2.44 } 6.14/2.44 ], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X8"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "73": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(true)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "41": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 0, 6.14/2.44 "scope": 3, 6.14/2.44 "term": "(p X8)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": ["X8"], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "74": { 6.14/2.44 "goal": [], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "31": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": -1, 6.14/2.44 "scope": -1, 6.14/2.44 "term": "(true)" 6.14/2.44 }], 6.14/2.44 "kb": { 6.14/2.44 "nonunifying": [], 6.14/2.44 "intvars": {}, 6.14/2.44 "arithmetic": { 6.14/2.44 "type": "PlainIntegerRelationState", 6.14/2.44 "relations": [] 6.14/2.44 }, 6.14/2.44 "ground": [], 6.14/2.44 "free": [], 6.14/2.44 "exprvars": [] 6.14/2.44 } 6.14/2.44 }, 6.14/2.44 "42": { 6.14/2.44 "goal": [{ 6.14/2.44 "clause": 1, 6.14/2.44 "scope": 3, 6.14/2.45 "term": "(p X8)" 6.14/2.45 }], 6.14/2.45 "kb": { 6.14/2.45 "nonunifying": [], 6.14/2.45 "intvars": {}, 6.14/2.45 "arithmetic": { 6.14/2.45 "type": "PlainIntegerRelationState", 6.14/2.45 "relations": [] 6.14/2.45 }, 6.14/2.45 "ground": [], 6.14/2.45 "free": ["X8"], 6.14/2.45 "exprvars": [] 6.14/2.45 } 6.14/2.45 }, 6.14/2.45 "32": { 6.14/2.45 "goal": [], 6.14/2.45 "kb": { 6.14/2.45 "nonunifying": [], 6.14/2.45 "intvars": {}, 6.14/2.45 "arithmetic": { 6.14/2.45 "type": "PlainIntegerRelationState", 6.14/2.45 "relations": [] 6.14/2.45 }, 6.14/2.45 "ground": [], 6.14/2.45 "free": [], 6.14/2.45 "exprvars": [] 6.14/2.45 } 6.14/2.45 }, 6.14/2.45 "43": { 6.14/2.45 "goal": [{ 6.14/2.45 "clause": -1, 6.14/2.45 "scope": -1, 6.14/2.45 "term": "(true)" 6.14/2.45 }], 6.14/2.45 "kb": { 6.14/2.45 "nonunifying": [], 6.14/2.45 "intvars": {}, 6.14/2.45 "arithmetic": { 6.14/2.45 "type": "PlainIntegerRelationState", 6.14/2.45 "relations": [] 6.14/2.45 }, 6.14/2.45 "ground": [], 6.14/2.45 "free": [], 6.14/2.45 "exprvars": [] 6.14/2.45 } 6.14/2.45 }, 6.14/2.45 "76": { 6.14/2.45 "goal": [], 6.14/2.45 "kb": { 6.14/2.45 "nonunifying": [], 6.14/2.45 "intvars": {}, 6.14/2.45 "arithmetic": { 6.14/2.45 "type": "PlainIntegerRelationState", 6.14/2.45 "relations": [] 6.14/2.45 }, 6.14/2.45 "ground": [], 6.14/2.45 "free": [], 6.14/2.45 "exprvars": [] 6.14/2.45 } 6.14/2.45 } 6.14/2.45 }, 6.14/2.45 "edges": [ 6.14/2.45 { 6.14/2.45 "from": 1, 6.14/2.45 "to": 4, 6.14/2.45 "label": "CASE" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 4, 6.14/2.45 "to": 16, 6.14/2.45 "label": "ONLY EVAL with clause\ngoal(X3) :- ','(p(X3), q(X3)).\nand substitutionT1 -> T4,\nX3 -> T4" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 16, 6.14/2.45 "to": 23, 6.14/2.45 "label": "SPLIT 1" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 16, 6.14/2.45 "to": 24, 6.14/2.45 "label": "SPLIT 2\nnew knowledge:\nT4 is ground" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 23, 6.14/2.45 "to": 27, 6.14/2.45 "label": "CASE" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 24, 6.14/2.45 "to": 72, 6.14/2.45 "label": "CASE" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 27, 6.14/2.45 "to": 28, 6.14/2.45 "label": "PARALLEL" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 27, 6.14/2.45 "to": 29, 6.14/2.45 "label": "PARALLEL" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 28, 6.14/2.45 "to": 31, 6.14/2.45 "label": "EVAL with clause\np(a).\nand substitutionT4 -> a" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 28, 6.14/2.45 "to": 32, 6.14/2.45 "label": "EVAL-BACKTRACK" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 29, 6.14/2.45 "to": 36, 6.14/2.45 "label": "ONLY EVAL with clause\np(X7) :- p(X8).\nand substitutionT4 -> T7,\nX7 -> T7" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 31, 6.14/2.45 "to": 33, 6.14/2.45 "label": "SUCCESS" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 36, 6.14/2.45 "to": 40, 6.14/2.45 "label": "CASE" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 40, 6.14/2.45 "to": 41, 6.14/2.45 "label": "PARALLEL" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 40, 6.14/2.45 "to": 42, 6.14/2.45 "label": "PARALLEL" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 41, 6.14/2.45 "to": 43, 6.14/2.45 "label": "ONLY EVAL with clause\np(a).\nand substitutionX8 -> a" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 42, 6.14/2.45 "to": 47, 6.14/2.45 "label": "ONLY EVAL with clause\np(X14) :- p(X15).\nand substitutionX8 -> X16,\nX14 -> X16" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 43, 6.14/2.45 "to": 44, 6.14/2.45 "label": "SUCCESS" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 47, 6.14/2.45 "to": 36, 6.14/2.45 "label": "INSTANCE with matching:\nX8 -> X15" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 72, 6.14/2.45 "to": 73, 6.14/2.45 "label": "EVAL with clause\nq(b).\nand substitutionT4 -> b" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 72, 6.14/2.45 "to": 74, 6.14/2.45 "label": "EVAL-BACKTRACK" 6.14/2.45 }, 6.14/2.45 { 6.14/2.45 "from": 73, 6.14/2.45 "to": 76, 6.14/2.45 "label": "SUCCESS" 6.14/2.45 } 6.14/2.45 ], 6.14/2.45 "type": "Graph" 6.14/2.45 } 6.14/2.45 } 6.14/2.45 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (46) 6.14/2.45 Obligation: 6.14/2.45 Rules: 6.14/2.45 f42_in -> f47_in :|: TRUE 6.14/2.45 f47_out -> f42_out :|: TRUE 6.14/2.45 f40_in -> f41_in :|: TRUE 6.14/2.45 f41_out -> f40_out :|: TRUE 6.14/2.45 f42_out -> f40_out :|: TRUE 6.14/2.45 f40_in -> f42_in :|: TRUE 6.14/2.45 f36_in -> f40_in :|: TRUE 6.14/2.45 f40_out -> f36_out :|: TRUE 6.14/2.45 f36_out -> f47_out :|: TRUE 6.14/2.45 f47_in -> f36_in :|: TRUE 6.14/2.45 f4_out(T1) -> f1_out(T1) :|: TRUE 6.14/2.45 f1_in(x) -> f4_in(x) :|: TRUE 6.14/2.45 f4_in(T4) -> f16_in(T4) :|: TRUE 6.14/2.45 f16_out(x1) -> f4_out(x1) :|: TRUE 6.14/2.45 f16_in(x2) -> f23_in(x2) :|: TRUE 6.14/2.45 f24_out(x3) -> f16_out(x3) :|: TRUE 6.14/2.45 f23_out(x4) -> f24_in(x4) :|: TRUE 6.14/2.45 f23_in(x5) -> f27_in(x5) :|: TRUE 6.14/2.45 f27_out(x6) -> f23_out(x6) :|: TRUE 6.14/2.45 f28_out(x7) -> f27_out(x7) :|: TRUE 6.14/2.45 f27_in(x8) -> f28_in(x8) :|: TRUE 6.14/2.45 f27_in(x9) -> f29_in(x9) :|: TRUE 6.14/2.45 f29_out(x10) -> f27_out(x10) :|: TRUE 6.14/2.45 f29_in(T7) -> f36_in :|: TRUE 6.14/2.45 f36_out -> f29_out(x11) :|: TRUE 6.14/2.45 Start term: f1_in(T1) 6.14/2.45 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (47) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 6.14/2.45 Constructed simple dependency graph. 6.14/2.45 6.14/2.45 Simplified to the following IRSwTs: 6.14/2.45 6.14/2.45 intTRSProblem: 6.14/2.45 f42_in -> f47_in :|: TRUE 6.14/2.45 f40_in -> f42_in :|: TRUE 6.14/2.45 f36_in -> f40_in :|: TRUE 6.14/2.45 f47_in -> f36_in :|: TRUE 6.14/2.45 6.14/2.45 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (48) 6.14/2.45 Obligation: 6.14/2.45 Rules: 6.14/2.45 f42_in -> f47_in :|: TRUE 6.14/2.45 f40_in -> f42_in :|: TRUE 6.14/2.45 f36_in -> f40_in :|: TRUE 6.14/2.45 f47_in -> f36_in :|: TRUE 6.14/2.45 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (49) IntTRSCompressionProof (EQUIVALENT) 6.14/2.45 Compressed rules. 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (50) 6.14/2.45 Obligation: 6.14/2.45 Rules: 6.14/2.45 f36_in -> f36_in :|: TRUE 6.14/2.45 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (51) IRSFormatTransformerProof (EQUIVALENT) 6.14/2.45 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (52) 6.14/2.45 Obligation: 6.14/2.45 Rules: 6.14/2.45 f36_in -> f36_in :|: TRUE 6.14/2.45 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (53) IRSwTTerminationDigraphProof (EQUIVALENT) 6.14/2.45 Constructed termination digraph! 6.14/2.45 Nodes: 6.14/2.45 (1) f36_in -> f36_in :|: TRUE 6.14/2.45 6.14/2.45 Arcs: 6.14/2.45 (1) -> (1) 6.14/2.45 6.14/2.45 This digraph is fully evaluated! 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (54) 6.14/2.45 Obligation: 6.14/2.45 6.14/2.45 Termination digraph: 6.14/2.45 Nodes: 6.14/2.45 (1) f36_in -> f36_in :|: TRUE 6.14/2.45 6.14/2.45 Arcs: 6.14/2.45 (1) -> (1) 6.14/2.45 6.14/2.45 This digraph is fully evaluated! 6.14/2.45 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (55) FilterProof (EQUIVALENT) 6.14/2.45 Used the following sort dictionary for filtering: 6.14/2.45 f36_in() 6.14/2.45 Replaced non-predefined constructor symbols by 0. 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (56) 6.14/2.45 Obligation: 6.14/2.45 Rules: 6.14/2.45 f36_in -> f36_in :|: TRUE 6.14/2.45 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (57) IntTRSPeriodicNontermProof (COMPLETE) 6.14/2.45 Normalized system to the following form: 6.14/2.45 f(pc) -> f(1) :|: pc = 1 && TRUE 6.14/2.45 Witness term starting non-terminating reduction: f(1) 6.14/2.45 ---------------------------------------- 6.14/2.45 6.14/2.45 (58) 6.14/2.45 NO 6.39/2.49 EOF