6.03/2.37 MAYBE 6.03/2.40 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 6.03/2.40 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.03/2.40 6.03/2.40 6.03/2.40 Left Termination of the query pattern 6.03/2.40 6.03/2.40 p(g) 6.03/2.40 6.03/2.40 w.r.t. the given Prolog program could not be shown: 6.03/2.40 6.03/2.40 (0) Prolog 6.03/2.40 (1) PrologToPiTRSProof [SOUND, 0 ms] 6.03/2.40 (2) PiTRS 6.03/2.40 (3) DependencyPairsProof [EQUIVALENT, 0 ms] 6.03/2.40 (4) PiDP 6.03/2.40 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 6.03/2.40 (6) PiDP 6.03/2.40 (7) UsableRulesProof [EQUIVALENT, 0 ms] 6.03/2.40 (8) PiDP 6.03/2.40 (9) PiDPToQDPProof [SOUND, 0 ms] 6.03/2.40 (10) QDP 6.03/2.40 (11) PrologToPiTRSProof [SOUND, 0 ms] 6.03/2.40 (12) PiTRS 6.03/2.40 (13) DependencyPairsProof [EQUIVALENT, 0 ms] 6.03/2.40 (14) PiDP 6.03/2.40 (15) DependencyGraphProof [EQUIVALENT, 0 ms] 6.03/2.40 (16) PiDP 6.03/2.40 (17) UsableRulesProof [EQUIVALENT, 0 ms] 6.03/2.40 (18) PiDP 6.03/2.40 (19) PiDPToQDPProof [SOUND, 0 ms] 6.03/2.40 (20) QDP 6.03/2.40 (21) PrologToDTProblemTransformerProof [SOUND, 0 ms] 6.03/2.40 (22) TRIPLES 6.03/2.40 (23) TriplesToPiDPProof [SOUND, 0 ms] 6.03/2.40 (24) PiDP 6.03/2.40 (25) DependencyGraphProof [EQUIVALENT, 0 ms] 6.03/2.40 (26) PiDP 6.03/2.40 (27) PiDPToQDPProof [SOUND, 0 ms] 6.03/2.40 (28) QDP 6.03/2.40 (29) PrologToTRSTransformerProof [SOUND, 0 ms] 6.03/2.40 (30) QTRS 6.03/2.40 (31) QTRSRRRProof [EQUIVALENT, 52 ms] 6.03/2.40 (32) QTRS 6.03/2.40 (33) QTRSRRRProof [EQUIVALENT, 9 ms] 6.03/2.40 (34) QTRS 6.03/2.40 (35) QTRSRRRProof [EQUIVALENT, 6 ms] 6.03/2.40 (36) QTRS 6.03/2.40 (37) QTRSRRRProof [EQUIVALENT, 3 ms] 6.03/2.40 (38) QTRS 6.03/2.40 (39) Overlay + Local Confluence [EQUIVALENT, 1 ms] 6.03/2.40 (40) QTRS 6.03/2.40 (41) DependencyPairsProof [EQUIVALENT, 0 ms] 6.03/2.40 (42) QDP 6.03/2.40 (43) UsableRulesProof [EQUIVALENT, 0 ms] 6.03/2.40 (44) QDP 6.03/2.40 (45) PrologToIRSwTTransformerProof [SOUND, 0 ms] 6.03/2.40 (46) IRSwT 6.03/2.40 (47) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 6.03/2.40 (48) IRSwT 6.03/2.40 (49) IntTRSCompressionProof [EQUIVALENT, 22 ms] 6.03/2.40 (50) IRSwT 6.03/2.40 (51) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 6.03/2.40 (52) IRSwT 6.03/2.40 (53) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 6.03/2.40 (54) IRSwT 6.03/2.40 (55) FilterProof [EQUIVALENT, 0 ms] 6.03/2.40 (56) IntTRS 6.03/2.40 (57) IntTRSPeriodicNontermProof [COMPLETE, 0 ms] 6.03/2.40 (58) NO 6.03/2.40 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (0) 6.03/2.40 Obligation: 6.03/2.40 Clauses: 6.03/2.40 6.03/2.40 p(b). 6.03/2.40 p(a) :- p1(X). 6.03/2.40 p1(b). 6.03/2.40 p1(a) :- p1(X). 6.03/2.40 6.03/2.40 6.03/2.40 Query: p(g) 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (1) PrologToPiTRSProof (SOUND) 6.03/2.40 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.03/2.40 6.03/2.40 p_in_1: (b) 6.03/2.40 6.03/2.40 p1_in_1: (f) 6.03/2.40 6.03/2.40 Transforming Prolog into the following Term Rewriting System: 6.03/2.40 6.03/2.40 Pi-finite rewrite system: 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 p_in_g(b) -> p_out_g(b) 6.03/2.40 p_in_g(a) -> U1_g(p1_in_a(X)) 6.03/2.40 p1_in_a(b) -> p1_out_a(b) 6.03/2.40 p1_in_a(a) -> U2_a(p1_in_a(X)) 6.03/2.40 U2_a(p1_out_a(X)) -> p1_out_a(a) 6.03/2.40 U1_g(p1_out_a(X)) -> p_out_g(a) 6.03/2.40 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 p_in_g(x1) = p_in_g(x1) 6.03/2.40 6.03/2.40 b = b 6.03/2.40 6.03/2.40 p_out_g(x1) = p_out_g 6.03/2.40 6.03/2.40 a = a 6.03/2.40 6.03/2.40 U1_g(x1) = U1_g(x1) 6.03/2.40 6.03/2.40 p1_in_a(x1) = p1_in_a 6.03/2.40 6.03/2.40 p1_out_a(x1) = p1_out_a(x1) 6.03/2.40 6.03/2.40 U2_a(x1) = U2_a(x1) 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (2) 6.03/2.40 Obligation: 6.03/2.40 Pi-finite rewrite system: 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 p_in_g(b) -> p_out_g(b) 6.03/2.40 p_in_g(a) -> U1_g(p1_in_a(X)) 6.03/2.40 p1_in_a(b) -> p1_out_a(b) 6.03/2.40 p1_in_a(a) -> U2_a(p1_in_a(X)) 6.03/2.40 U2_a(p1_out_a(X)) -> p1_out_a(a) 6.03/2.40 U1_g(p1_out_a(X)) -> p_out_g(a) 6.03/2.40 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 p_in_g(x1) = p_in_g(x1) 6.03/2.40 6.03/2.40 b = b 6.03/2.40 6.03/2.40 p_out_g(x1) = p_out_g 6.03/2.40 6.03/2.40 a = a 6.03/2.40 6.03/2.40 U1_g(x1) = U1_g(x1) 6.03/2.40 6.03/2.40 p1_in_a(x1) = p1_in_a 6.03/2.40 6.03/2.40 p1_out_a(x1) = p1_out_a(x1) 6.03/2.40 6.03/2.40 U2_a(x1) = U2_a(x1) 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (3) DependencyPairsProof (EQUIVALENT) 6.03/2.40 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 6.03/2.40 Pi DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P_IN_G(a) -> U1_G(p1_in_a(X)) 6.03/2.40 P_IN_G(a) -> P1_IN_A(X) 6.03/2.40 P1_IN_A(a) -> U2_A(p1_in_a(X)) 6.03/2.40 P1_IN_A(a) -> P1_IN_A(X) 6.03/2.40 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 p_in_g(b) -> p_out_g(b) 6.03/2.40 p_in_g(a) -> U1_g(p1_in_a(X)) 6.03/2.40 p1_in_a(b) -> p1_out_a(b) 6.03/2.40 p1_in_a(a) -> U2_a(p1_in_a(X)) 6.03/2.40 U2_a(p1_out_a(X)) -> p1_out_a(a) 6.03/2.40 U1_g(p1_out_a(X)) -> p_out_g(a) 6.03/2.40 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 p_in_g(x1) = p_in_g(x1) 6.03/2.40 6.03/2.40 b = b 6.03/2.40 6.03/2.40 p_out_g(x1) = p_out_g 6.03/2.40 6.03/2.40 a = a 6.03/2.40 6.03/2.40 U1_g(x1) = U1_g(x1) 6.03/2.40 6.03/2.40 p1_in_a(x1) = p1_in_a 6.03/2.40 6.03/2.40 p1_out_a(x1) = p1_out_a(x1) 6.03/2.40 6.03/2.40 U2_a(x1) = U2_a(x1) 6.03/2.40 6.03/2.40 P_IN_G(x1) = P_IN_G(x1) 6.03/2.40 6.03/2.40 U1_G(x1) = U1_G(x1) 6.03/2.40 6.03/2.40 P1_IN_A(x1) = P1_IN_A 6.03/2.40 6.03/2.40 U2_A(x1) = U2_A(x1) 6.03/2.40 6.03/2.40 6.03/2.40 We have to consider all (P,R,Pi)-chains 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (4) 6.03/2.40 Obligation: 6.03/2.40 Pi DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P_IN_G(a) -> U1_G(p1_in_a(X)) 6.03/2.40 P_IN_G(a) -> P1_IN_A(X) 6.03/2.40 P1_IN_A(a) -> U2_A(p1_in_a(X)) 6.03/2.40 P1_IN_A(a) -> P1_IN_A(X) 6.03/2.40 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 p_in_g(b) -> p_out_g(b) 6.03/2.40 p_in_g(a) -> U1_g(p1_in_a(X)) 6.03/2.40 p1_in_a(b) -> p1_out_a(b) 6.03/2.40 p1_in_a(a) -> U2_a(p1_in_a(X)) 6.03/2.40 U2_a(p1_out_a(X)) -> p1_out_a(a) 6.03/2.40 U1_g(p1_out_a(X)) -> p_out_g(a) 6.03/2.40 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 p_in_g(x1) = p_in_g(x1) 6.03/2.40 6.03/2.40 b = b 6.03/2.40 6.03/2.40 p_out_g(x1) = p_out_g 6.03/2.40 6.03/2.40 a = a 6.03/2.40 6.03/2.40 U1_g(x1) = U1_g(x1) 6.03/2.40 6.03/2.40 p1_in_a(x1) = p1_in_a 6.03/2.40 6.03/2.40 p1_out_a(x1) = p1_out_a(x1) 6.03/2.40 6.03/2.40 U2_a(x1) = U2_a(x1) 6.03/2.40 6.03/2.40 P_IN_G(x1) = P_IN_G(x1) 6.03/2.40 6.03/2.40 U1_G(x1) = U1_G(x1) 6.03/2.40 6.03/2.40 P1_IN_A(x1) = P1_IN_A 6.03/2.40 6.03/2.40 U2_A(x1) = U2_A(x1) 6.03/2.40 6.03/2.40 6.03/2.40 We have to consider all (P,R,Pi)-chains 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (5) DependencyGraphProof (EQUIVALENT) 6.03/2.40 The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (6) 6.03/2.40 Obligation: 6.03/2.40 Pi DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P1_IN_A(a) -> P1_IN_A(X) 6.03/2.40 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 p_in_g(b) -> p_out_g(b) 6.03/2.40 p_in_g(a) -> U1_g(p1_in_a(X)) 6.03/2.40 p1_in_a(b) -> p1_out_a(b) 6.03/2.40 p1_in_a(a) -> U2_a(p1_in_a(X)) 6.03/2.40 U2_a(p1_out_a(X)) -> p1_out_a(a) 6.03/2.40 U1_g(p1_out_a(X)) -> p_out_g(a) 6.03/2.40 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 p_in_g(x1) = p_in_g(x1) 6.03/2.40 6.03/2.40 b = b 6.03/2.40 6.03/2.40 p_out_g(x1) = p_out_g 6.03/2.40 6.03/2.40 a = a 6.03/2.40 6.03/2.40 U1_g(x1) = U1_g(x1) 6.03/2.40 6.03/2.40 p1_in_a(x1) = p1_in_a 6.03/2.40 6.03/2.40 p1_out_a(x1) = p1_out_a(x1) 6.03/2.40 6.03/2.40 U2_a(x1) = U2_a(x1) 6.03/2.40 6.03/2.40 P1_IN_A(x1) = P1_IN_A 6.03/2.40 6.03/2.40 6.03/2.40 We have to consider all (P,R,Pi)-chains 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (7) UsableRulesProof (EQUIVALENT) 6.03/2.40 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (8) 6.03/2.40 Obligation: 6.03/2.40 Pi DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P1_IN_A(a) -> P1_IN_A(X) 6.03/2.40 6.03/2.40 R is empty. 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 a = a 6.03/2.40 6.03/2.40 P1_IN_A(x1) = P1_IN_A 6.03/2.40 6.03/2.40 6.03/2.40 We have to consider all (P,R,Pi)-chains 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (9) PiDPToQDPProof (SOUND) 6.03/2.40 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (10) 6.03/2.40 Obligation: 6.03/2.40 Q DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P1_IN_A -> P1_IN_A 6.03/2.40 6.03/2.40 R is empty. 6.03/2.40 Q is empty. 6.03/2.40 We have to consider all (P,Q,R)-chains. 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (11) PrologToPiTRSProof (SOUND) 6.03/2.40 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.03/2.40 6.03/2.40 p_in_1: (b) 6.03/2.40 6.03/2.40 p1_in_1: (f) 6.03/2.40 6.03/2.40 Transforming Prolog into the following Term Rewriting System: 6.03/2.40 6.03/2.40 Pi-finite rewrite system: 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 p_in_g(b) -> p_out_g(b) 6.03/2.40 p_in_g(a) -> U1_g(p1_in_a(X)) 6.03/2.40 p1_in_a(b) -> p1_out_a(b) 6.03/2.40 p1_in_a(a) -> U2_a(p1_in_a(X)) 6.03/2.40 U2_a(p1_out_a(X)) -> p1_out_a(a) 6.03/2.40 U1_g(p1_out_a(X)) -> p_out_g(a) 6.03/2.40 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 p_in_g(x1) = p_in_g(x1) 6.03/2.40 6.03/2.40 b = b 6.03/2.40 6.03/2.40 p_out_g(x1) = p_out_g(x1) 6.03/2.40 6.03/2.40 a = a 6.03/2.40 6.03/2.40 U1_g(x1) = U1_g(x1) 6.03/2.40 6.03/2.40 p1_in_a(x1) = p1_in_a 6.03/2.40 6.03/2.40 p1_out_a(x1) = p1_out_a(x1) 6.03/2.40 6.03/2.40 U2_a(x1) = U2_a(x1) 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (12) 6.03/2.40 Obligation: 6.03/2.40 Pi-finite rewrite system: 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 p_in_g(b) -> p_out_g(b) 6.03/2.40 p_in_g(a) -> U1_g(p1_in_a(X)) 6.03/2.40 p1_in_a(b) -> p1_out_a(b) 6.03/2.40 p1_in_a(a) -> U2_a(p1_in_a(X)) 6.03/2.40 U2_a(p1_out_a(X)) -> p1_out_a(a) 6.03/2.40 U1_g(p1_out_a(X)) -> p_out_g(a) 6.03/2.40 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 p_in_g(x1) = p_in_g(x1) 6.03/2.40 6.03/2.40 b = b 6.03/2.40 6.03/2.40 p_out_g(x1) = p_out_g(x1) 6.03/2.40 6.03/2.40 a = a 6.03/2.40 6.03/2.40 U1_g(x1) = U1_g(x1) 6.03/2.40 6.03/2.40 p1_in_a(x1) = p1_in_a 6.03/2.40 6.03/2.40 p1_out_a(x1) = p1_out_a(x1) 6.03/2.40 6.03/2.40 U2_a(x1) = U2_a(x1) 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (13) DependencyPairsProof (EQUIVALENT) 6.03/2.40 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 6.03/2.40 Pi DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P_IN_G(a) -> U1_G(p1_in_a(X)) 6.03/2.40 P_IN_G(a) -> P1_IN_A(X) 6.03/2.40 P1_IN_A(a) -> U2_A(p1_in_a(X)) 6.03/2.40 P1_IN_A(a) -> P1_IN_A(X) 6.03/2.40 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 p_in_g(b) -> p_out_g(b) 6.03/2.40 p_in_g(a) -> U1_g(p1_in_a(X)) 6.03/2.40 p1_in_a(b) -> p1_out_a(b) 6.03/2.40 p1_in_a(a) -> U2_a(p1_in_a(X)) 6.03/2.40 U2_a(p1_out_a(X)) -> p1_out_a(a) 6.03/2.40 U1_g(p1_out_a(X)) -> p_out_g(a) 6.03/2.40 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 p_in_g(x1) = p_in_g(x1) 6.03/2.40 6.03/2.40 b = b 6.03/2.40 6.03/2.40 p_out_g(x1) = p_out_g(x1) 6.03/2.40 6.03/2.40 a = a 6.03/2.40 6.03/2.40 U1_g(x1) = U1_g(x1) 6.03/2.40 6.03/2.40 p1_in_a(x1) = p1_in_a 6.03/2.40 6.03/2.40 p1_out_a(x1) = p1_out_a(x1) 6.03/2.40 6.03/2.40 U2_a(x1) = U2_a(x1) 6.03/2.40 6.03/2.40 P_IN_G(x1) = P_IN_G(x1) 6.03/2.40 6.03/2.40 U1_G(x1) = U1_G(x1) 6.03/2.40 6.03/2.40 P1_IN_A(x1) = P1_IN_A 6.03/2.40 6.03/2.40 U2_A(x1) = U2_A(x1) 6.03/2.40 6.03/2.40 6.03/2.40 We have to consider all (P,R,Pi)-chains 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (14) 6.03/2.40 Obligation: 6.03/2.40 Pi DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P_IN_G(a) -> U1_G(p1_in_a(X)) 6.03/2.40 P_IN_G(a) -> P1_IN_A(X) 6.03/2.40 P1_IN_A(a) -> U2_A(p1_in_a(X)) 6.03/2.40 P1_IN_A(a) -> P1_IN_A(X) 6.03/2.40 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 p_in_g(b) -> p_out_g(b) 6.03/2.40 p_in_g(a) -> U1_g(p1_in_a(X)) 6.03/2.40 p1_in_a(b) -> p1_out_a(b) 6.03/2.40 p1_in_a(a) -> U2_a(p1_in_a(X)) 6.03/2.40 U2_a(p1_out_a(X)) -> p1_out_a(a) 6.03/2.40 U1_g(p1_out_a(X)) -> p_out_g(a) 6.03/2.40 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 p_in_g(x1) = p_in_g(x1) 6.03/2.40 6.03/2.40 b = b 6.03/2.40 6.03/2.40 p_out_g(x1) = p_out_g(x1) 6.03/2.40 6.03/2.40 a = a 6.03/2.40 6.03/2.40 U1_g(x1) = U1_g(x1) 6.03/2.40 6.03/2.40 p1_in_a(x1) = p1_in_a 6.03/2.40 6.03/2.40 p1_out_a(x1) = p1_out_a(x1) 6.03/2.40 6.03/2.40 U2_a(x1) = U2_a(x1) 6.03/2.40 6.03/2.40 P_IN_G(x1) = P_IN_G(x1) 6.03/2.40 6.03/2.40 U1_G(x1) = U1_G(x1) 6.03/2.40 6.03/2.40 P1_IN_A(x1) = P1_IN_A 6.03/2.40 6.03/2.40 U2_A(x1) = U2_A(x1) 6.03/2.40 6.03/2.40 6.03/2.40 We have to consider all (P,R,Pi)-chains 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (15) DependencyGraphProof (EQUIVALENT) 6.03/2.40 The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (16) 6.03/2.40 Obligation: 6.03/2.40 Pi DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P1_IN_A(a) -> P1_IN_A(X) 6.03/2.40 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 p_in_g(b) -> p_out_g(b) 6.03/2.40 p_in_g(a) -> U1_g(p1_in_a(X)) 6.03/2.40 p1_in_a(b) -> p1_out_a(b) 6.03/2.40 p1_in_a(a) -> U2_a(p1_in_a(X)) 6.03/2.40 U2_a(p1_out_a(X)) -> p1_out_a(a) 6.03/2.40 U1_g(p1_out_a(X)) -> p_out_g(a) 6.03/2.40 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 p_in_g(x1) = p_in_g(x1) 6.03/2.40 6.03/2.40 b = b 6.03/2.40 6.03/2.40 p_out_g(x1) = p_out_g(x1) 6.03/2.40 6.03/2.40 a = a 6.03/2.40 6.03/2.40 U1_g(x1) = U1_g(x1) 6.03/2.40 6.03/2.40 p1_in_a(x1) = p1_in_a 6.03/2.40 6.03/2.40 p1_out_a(x1) = p1_out_a(x1) 6.03/2.40 6.03/2.40 U2_a(x1) = U2_a(x1) 6.03/2.40 6.03/2.40 P1_IN_A(x1) = P1_IN_A 6.03/2.40 6.03/2.40 6.03/2.40 We have to consider all (P,R,Pi)-chains 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (17) UsableRulesProof (EQUIVALENT) 6.03/2.40 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (18) 6.03/2.40 Obligation: 6.03/2.40 Pi DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P1_IN_A(a) -> P1_IN_A(X) 6.03/2.40 6.03/2.40 R is empty. 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 a = a 6.03/2.40 6.03/2.40 P1_IN_A(x1) = P1_IN_A 6.03/2.40 6.03/2.40 6.03/2.40 We have to consider all (P,R,Pi)-chains 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (19) PiDPToQDPProof (SOUND) 6.03/2.40 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (20) 6.03/2.40 Obligation: 6.03/2.40 Q DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P1_IN_A -> P1_IN_A 6.03/2.40 6.03/2.40 R is empty. 6.03/2.40 Q is empty. 6.03/2.40 We have to consider all (P,Q,R)-chains. 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (21) PrologToDTProblemTransformerProof (SOUND) 6.03/2.40 Built DT problem from termination graph DT10. 6.03/2.40 6.03/2.40 { 6.03/2.40 "root": 16, 6.03/2.40 "program": { 6.03/2.40 "directives": [], 6.03/2.40 "clauses": [ 6.03/2.40 [ 6.03/2.40 "(p (b))", 6.03/2.40 null 6.03/2.40 ], 6.03/2.40 [ 6.03/2.40 "(p (a))", 6.03/2.40 "(p1 X)" 6.03/2.40 ], 6.03/2.40 [ 6.03/2.40 "(p1 (b))", 6.03/2.40 null 6.03/2.40 ], 6.03/2.40 [ 6.03/2.40 "(p1 (a))", 6.03/2.40 "(p1 X)" 6.03/2.40 ] 6.03/2.40 ] 6.03/2.40 }, 6.03/2.40 "graph": { 6.03/2.40 "nodes": { 6.03/2.40 "66": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": 1, 6.03/2.40 "scope": 1, 6.03/2.40 "term": "(p (b))" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "67": { 6.03/2.40 "goal": [], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "78": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": -1, 6.03/2.40 "scope": -1, 6.03/2.40 "term": "(true)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "79": { 6.03/2.40 "goal": [], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "16": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": -1, 6.03/2.40 "scope": -1, 6.03/2.40 "term": "(p T1)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": ["T1"], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "17": { 6.03/2.40 "goal": [ 6.03/2.40 { 6.03/2.40 "clause": 0, 6.03/2.40 "scope": 1, 6.03/2.40 "term": "(p T1)" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "clause": 1, 6.03/2.40 "scope": 1, 6.03/2.40 "term": "(p T1)" 6.03/2.40 } 6.03/2.40 ], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": ["T1"], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "type": "Nodes", 6.03/2.40 "71": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": -1, 6.03/2.40 "scope": -1, 6.03/2.40 "term": "(p1 X1)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": ["X1"], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "82": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": -1, 6.03/2.40 "scope": -1, 6.03/2.40 "term": "(p1 X3)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": ["X3"], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "72": { 6.03/2.40 "goal": [], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "63": { 6.03/2.40 "goal": [ 6.03/2.40 { 6.03/2.40 "clause": -1, 6.03/2.40 "scope": -1, 6.03/2.40 "term": "(true)" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "clause": 1, 6.03/2.40 "scope": 1, 6.03/2.40 "term": "(p (b))" 6.03/2.40 } 6.03/2.40 ], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "74": { 6.03/2.40 "goal": [ 6.03/2.40 { 6.03/2.40 "clause": 2, 6.03/2.40 "scope": 2, 6.03/2.40 "term": "(p1 X1)" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "clause": 3, 6.03/2.40 "scope": 2, 6.03/2.40 "term": "(p1 X1)" 6.03/2.40 } 6.03/2.40 ], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": ["X1"], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "75": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": 2, 6.03/2.40 "scope": 2, 6.03/2.40 "term": "(p1 X1)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": ["X1"], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "65": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": 1, 6.03/2.40 "scope": 1, 6.03/2.40 "term": "(p T1)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [[ 6.03/2.40 "(p T1)", 6.03/2.40 "(p (b))" 6.03/2.40 ]], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": ["T1"], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "76": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": 3, 6.03/2.40 "scope": 2, 6.03/2.40 "term": "(p1 X1)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": ["X1"], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "edges": [ 6.03/2.40 { 6.03/2.40 "from": 16, 6.03/2.40 "to": 17, 6.03/2.40 "label": "CASE" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 17, 6.03/2.40 "to": 63, 6.03/2.40 "label": "EVAL with clause\np(b).\nand substitutionT1 -> b" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 17, 6.03/2.40 "to": 65, 6.03/2.40 "label": "EVAL-BACKTRACK" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 63, 6.03/2.40 "to": 66, 6.03/2.40 "label": "SUCCESS" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 65, 6.03/2.40 "to": 71, 6.03/2.40 "label": "EVAL with clause\np(a) :- p1(X1).\nand substitutionT1 -> a" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 65, 6.03/2.40 "to": 72, 6.03/2.40 "label": "EVAL-BACKTRACK" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 66, 6.03/2.40 "to": 67, 6.03/2.40 "label": "BACKTRACK\nfor clause: p(a) :- p1(X)because of non-unification" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 71, 6.03/2.40 "to": 74, 6.03/2.40 "label": "CASE" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 74, 6.03/2.40 "to": 75, 6.03/2.40 "label": "PARALLEL" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 74, 6.03/2.40 "to": 76, 6.03/2.40 "label": "PARALLEL" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 75, 6.03/2.40 "to": 78, 6.03/2.40 "label": "ONLY EVAL with clause\np1(b).\nand substitutionX1 -> b" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 76, 6.03/2.40 "to": 82, 6.03/2.40 "label": "ONLY EVAL with clause\np1(a) :- p1(X3).\nand substitutionX1 -> a" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 78, 6.03/2.40 "to": 79, 6.03/2.40 "label": "SUCCESS" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 82, 6.03/2.40 "to": 71, 6.03/2.40 "label": "INSTANCE with matching:\nX1 -> X3" 6.03/2.40 } 6.03/2.40 ], 6.03/2.40 "type": "Graph" 6.03/2.40 } 6.03/2.40 } 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (22) 6.03/2.40 Obligation: 6.03/2.40 Triples: 6.03/2.40 6.03/2.40 p1A(a) :- p1A(X1). 6.03/2.40 pB(a) :- p1A(X1). 6.03/2.40 6.03/2.40 Clauses: 6.03/2.40 6.03/2.40 p1cA(b). 6.03/2.40 p1cA(a) :- p1cA(X1). 6.03/2.40 6.03/2.40 Afs: 6.03/2.40 6.03/2.40 pB(x1) = pB(x1) 6.03/2.40 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (23) TriplesToPiDPProof (SOUND) 6.03/2.40 We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.03/2.40 6.03/2.40 pB_in_1: (b) 6.03/2.40 6.03/2.40 p1A_in_1: (f) 6.03/2.40 6.03/2.40 Transforming TRIPLES into the following Term Rewriting System: 6.03/2.40 6.03/2.40 Pi DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 PB_IN_G(a) -> U2_G(p1A_in_a(X1)) 6.03/2.40 PB_IN_G(a) -> P1A_IN_A(X1) 6.03/2.40 P1A_IN_A(a) -> U1_A(p1A_in_a(X1)) 6.03/2.40 P1A_IN_A(a) -> P1A_IN_A(X1) 6.03/2.40 6.03/2.40 R is empty. 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 a = a 6.03/2.40 6.03/2.40 p1A_in_a(x1) = p1A_in_a 6.03/2.40 6.03/2.40 PB_IN_G(x1) = PB_IN_G(x1) 6.03/2.40 6.03/2.40 U2_G(x1) = U2_G(x1) 6.03/2.40 6.03/2.40 P1A_IN_A(x1) = P1A_IN_A 6.03/2.40 6.03/2.40 U1_A(x1) = U1_A(x1) 6.03/2.40 6.03/2.40 6.03/2.40 We have to consider all (P,R,Pi)-chains 6.03/2.40 6.03/2.40 6.03/2.40 Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (24) 6.03/2.40 Obligation: 6.03/2.40 Pi DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 PB_IN_G(a) -> U2_G(p1A_in_a(X1)) 6.03/2.40 PB_IN_G(a) -> P1A_IN_A(X1) 6.03/2.40 P1A_IN_A(a) -> U1_A(p1A_in_a(X1)) 6.03/2.40 P1A_IN_A(a) -> P1A_IN_A(X1) 6.03/2.40 6.03/2.40 R is empty. 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 a = a 6.03/2.40 6.03/2.40 p1A_in_a(x1) = p1A_in_a 6.03/2.40 6.03/2.40 PB_IN_G(x1) = PB_IN_G(x1) 6.03/2.40 6.03/2.40 U2_G(x1) = U2_G(x1) 6.03/2.40 6.03/2.40 P1A_IN_A(x1) = P1A_IN_A 6.03/2.40 6.03/2.40 U1_A(x1) = U1_A(x1) 6.03/2.40 6.03/2.40 6.03/2.40 We have to consider all (P,R,Pi)-chains 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (25) DependencyGraphProof (EQUIVALENT) 6.03/2.40 The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (26) 6.03/2.40 Obligation: 6.03/2.40 Pi DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P1A_IN_A(a) -> P1A_IN_A(X1) 6.03/2.40 6.03/2.40 R is empty. 6.03/2.40 The argument filtering Pi contains the following mapping: 6.03/2.40 a = a 6.03/2.40 6.03/2.40 P1A_IN_A(x1) = P1A_IN_A 6.03/2.40 6.03/2.40 6.03/2.40 We have to consider all (P,R,Pi)-chains 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (27) PiDPToQDPProof (SOUND) 6.03/2.40 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (28) 6.03/2.40 Obligation: 6.03/2.40 Q DP problem: 6.03/2.40 The TRS P consists of the following rules: 6.03/2.40 6.03/2.40 P1A_IN_A -> P1A_IN_A 6.03/2.40 6.03/2.40 R is empty. 6.03/2.40 Q is empty. 6.03/2.40 We have to consider all (P,Q,R)-chains. 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (29) PrologToTRSTransformerProof (SOUND) 6.03/2.40 Transformed Prolog program to TRS. 6.03/2.40 6.03/2.40 { 6.03/2.40 "root": 10, 6.03/2.40 "program": { 6.03/2.40 "directives": [], 6.03/2.40 "clauses": [ 6.03/2.40 [ 6.03/2.40 "(p (b))", 6.03/2.40 null 6.03/2.40 ], 6.03/2.40 [ 6.03/2.40 "(p (a))", 6.03/2.40 "(p1 X)" 6.03/2.40 ], 6.03/2.40 [ 6.03/2.40 "(p1 (b))", 6.03/2.40 null 6.03/2.40 ], 6.03/2.40 [ 6.03/2.40 "(p1 (a))", 6.03/2.40 "(p1 X)" 6.03/2.40 ] 6.03/2.40 ] 6.03/2.40 }, 6.03/2.40 "graph": { 6.03/2.40 "nodes": { 6.03/2.40 "11": { 6.03/2.40 "goal": [ 6.03/2.40 { 6.03/2.40 "clause": 0, 6.03/2.40 "scope": 1, 6.03/2.40 "term": "(p T1)" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "clause": 1, 6.03/2.40 "scope": 1, 6.03/2.40 "term": "(p T1)" 6.03/2.40 } 6.03/2.40 ], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": ["T1"], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "34": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": -1, 6.03/2.40 "scope": -1, 6.03/2.40 "term": "(true)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "35": { 6.03/2.40 "goal": [], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "14": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": 0, 6.03/2.40 "scope": 1, 6.03/2.40 "term": "(p T1)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": ["T1"], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "15": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": 1, 6.03/2.40 "scope": 1, 6.03/2.40 "term": "(p T1)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": ["T1"], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "37": { 6.03/2.40 "goal": [], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "38": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": -1, 6.03/2.40 "scope": -1, 6.03/2.40 "term": "(p1 X2)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": ["X2"], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "39": { 6.03/2.40 "goal": [], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "type": "Nodes", 6.03/2.40 "93": { 6.03/2.40 "goal": [ 6.03/2.40 { 6.03/2.40 "clause": 2, 6.03/2.40 "scope": 2, 6.03/2.40 "term": "(p1 X2)" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "clause": 3, 6.03/2.40 "scope": 2, 6.03/2.40 "term": "(p1 X2)" 6.03/2.40 } 6.03/2.40 ], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": ["X2"], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "94": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": 2, 6.03/2.40 "scope": 2, 6.03/2.40 "term": "(p1 X2)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": ["X2"], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "95": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": 3, 6.03/2.40 "scope": 2, 6.03/2.40 "term": "(p1 X2)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": ["X2"], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "96": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": -1, 6.03/2.40 "scope": -1, 6.03/2.40 "term": "(true)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "97": { 6.03/2.40 "goal": [], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "10": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": -1, 6.03/2.40 "scope": -1, 6.03/2.40 "term": "(p T1)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": ["T1"], 6.03/2.40 "free": [], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "98": { 6.03/2.40 "goal": [{ 6.03/2.40 "clause": -1, 6.03/2.40 "scope": -1, 6.03/2.40 "term": "(p1 X4)" 6.03/2.40 }], 6.03/2.40 "kb": { 6.03/2.40 "nonunifying": [], 6.03/2.40 "intvars": {}, 6.03/2.40 "arithmetic": { 6.03/2.40 "type": "PlainIntegerRelationState", 6.03/2.40 "relations": [] 6.03/2.40 }, 6.03/2.40 "ground": [], 6.03/2.40 "free": ["X4"], 6.03/2.40 "exprvars": [] 6.03/2.40 } 6.03/2.40 } 6.03/2.40 }, 6.03/2.40 "edges": [ 6.03/2.40 { 6.03/2.40 "from": 10, 6.03/2.40 "to": 11, 6.03/2.40 "label": "CASE" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 11, 6.03/2.40 "to": 14, 6.03/2.40 "label": "PARALLEL" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 11, 6.03/2.40 "to": 15, 6.03/2.40 "label": "PARALLEL" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 14, 6.03/2.40 "to": 34, 6.03/2.40 "label": "EVAL with clause\np(b).\nand substitutionT1 -> b" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 14, 6.03/2.40 "to": 35, 6.03/2.40 "label": "EVAL-BACKTRACK" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 15, 6.03/2.40 "to": 38, 6.03/2.40 "label": "EVAL with clause\np(a) :- p1(X2).\nand substitutionT1 -> a" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 15, 6.03/2.40 "to": 39, 6.03/2.40 "label": "EVAL-BACKTRACK" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 34, 6.03/2.40 "to": 37, 6.03/2.40 "label": "SUCCESS" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 38, 6.03/2.40 "to": 93, 6.03/2.40 "label": "CASE" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 93, 6.03/2.40 "to": 94, 6.03/2.40 "label": "PARALLEL" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 93, 6.03/2.40 "to": 95, 6.03/2.40 "label": "PARALLEL" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 94, 6.03/2.40 "to": 96, 6.03/2.40 "label": "ONLY EVAL with clause\np1(b).\nand substitutionX2 -> b" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 95, 6.03/2.40 "to": 98, 6.03/2.40 "label": "ONLY EVAL with clause\np1(a) :- p1(X4).\nand substitutionX2 -> a" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 96, 6.03/2.40 "to": 97, 6.03/2.40 "label": "SUCCESS" 6.03/2.40 }, 6.03/2.40 { 6.03/2.40 "from": 98, 6.03/2.40 "to": 38, 6.03/2.40 "label": "INSTANCE with matching:\nX2 -> X4" 6.03/2.40 } 6.03/2.40 ], 6.03/2.40 "type": "Graph" 6.03/2.40 } 6.03/2.40 } 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (30) 6.03/2.40 Obligation: 6.03/2.40 Q restricted rewrite system: 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 f10_in(b) -> f10_out1 6.03/2.40 f10_in(a) -> U1(f38_in, a) 6.03/2.40 U1(f38_out1(X2), a) -> f10_out1 6.03/2.40 f38_in -> f38_out1(b) 6.03/2.40 f38_in -> U2(f38_in) 6.03/2.40 U2(f38_out1(X4)) -> f38_out1(a) 6.03/2.40 6.03/2.40 Q is empty. 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (31) QTRSRRRProof (EQUIVALENT) 6.03/2.40 Used ordering: 6.03/2.40 Polynomial interpretation [POLO]: 6.03/2.40 6.03/2.40 POL(U1(x_1, x_2)) = x_1 + 2*x_2 6.03/2.40 POL(U2(x_1)) = 2*x_1 6.03/2.40 POL(a) = 0 6.03/2.40 POL(b) = 0 6.03/2.40 POL(f10_in(x_1)) = 1 + 2*x_1 6.03/2.40 POL(f10_out1) = 0 6.03/2.40 POL(f38_in) = 0 6.03/2.40 POL(f38_out1(x_1)) = x_1 6.03/2.40 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 6.03/2.40 6.03/2.40 f10_in(b) -> f10_out1 6.03/2.40 f10_in(a) -> U1(f38_in, a) 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (32) 6.03/2.40 Obligation: 6.03/2.40 Q restricted rewrite system: 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 U1(f38_out1(X2), a) -> f10_out1 6.03/2.40 f38_in -> f38_out1(b) 6.03/2.40 f38_in -> U2(f38_in) 6.03/2.40 U2(f38_out1(X4)) -> f38_out1(a) 6.03/2.40 6.03/2.40 Q is empty. 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (33) QTRSRRRProof (EQUIVALENT) 6.03/2.40 Used ordering: 6.03/2.40 Polynomial interpretation [POLO]: 6.03/2.40 6.03/2.40 POL(U1(x_1, x_2)) = 2 + x_1 + 2*x_2 6.03/2.40 POL(U2(x_1)) = 2*x_1 6.03/2.40 POL(a) = 0 6.03/2.40 POL(b) = 0 6.03/2.40 POL(f10_out1) = 0 6.03/2.40 POL(f38_in) = 0 6.03/2.40 POL(f38_out1(x_1)) = 2*x_1 6.03/2.40 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 6.03/2.40 6.03/2.40 U1(f38_out1(X2), a) -> f10_out1 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (34) 6.03/2.40 Obligation: 6.03/2.40 Q restricted rewrite system: 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 f38_in -> f38_out1(b) 6.03/2.40 f38_in -> U2(f38_in) 6.03/2.40 U2(f38_out1(X4)) -> f38_out1(a) 6.03/2.40 6.03/2.40 Q is empty. 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (35) QTRSRRRProof (EQUIVALENT) 6.03/2.40 Used ordering: 6.03/2.40 Polynomial interpretation [POLO]: 6.03/2.40 6.03/2.40 POL(U2(x_1)) = x_1 6.03/2.40 POL(a) = 0 6.03/2.40 POL(b) = 0 6.03/2.40 POL(f38_in) = 1 6.03/2.40 POL(f38_out1(x_1)) = 2*x_1 6.03/2.40 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 6.03/2.40 6.03/2.40 f38_in -> f38_out1(b) 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (36) 6.03/2.40 Obligation: 6.03/2.40 Q restricted rewrite system: 6.03/2.40 The TRS R consists of the following rules: 6.03/2.40 6.03/2.40 f38_in -> U2(f38_in) 6.03/2.40 U2(f38_out1(X4)) -> f38_out1(a) 6.03/2.40 6.03/2.40 Q is empty. 6.03/2.40 6.03/2.40 ---------------------------------------- 6.03/2.40 6.03/2.40 (37) QTRSRRRProof (EQUIVALENT) 6.03/2.40 Used ordering: 6.03/2.40 Polynomial interpretation [POLO]: 6.03/2.40 6.03/2.40 POL(U2(x_1)) = 2*x_1 6.03/2.40 POL(a) = 0 6.03/2.40 POL(f38_in) = 0 6.03/2.41 POL(f38_out1(x_1)) = 1 + 2*x_1 6.03/2.41 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 6.03/2.41 6.03/2.41 U2(f38_out1(X4)) -> f38_out1(a) 6.03/2.41 6.03/2.41 6.03/2.41 6.03/2.41 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (38) 6.03/2.41 Obligation: 6.03/2.41 Q restricted rewrite system: 6.03/2.41 The TRS R consists of the following rules: 6.03/2.41 6.03/2.41 f38_in -> U2(f38_in) 6.03/2.41 6.03/2.41 Q is empty. 6.03/2.41 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (39) Overlay + Local Confluence (EQUIVALENT) 6.03/2.41 The TRS is overlay and locally confluent. By [NOC] we can switch to innermost. 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (40) 6.03/2.41 Obligation: 6.03/2.41 Q restricted rewrite system: 6.03/2.41 The TRS R consists of the following rules: 6.03/2.41 6.03/2.41 f38_in -> U2(f38_in) 6.03/2.41 6.03/2.41 The set Q consists of the following terms: 6.03/2.41 6.03/2.41 f38_in 6.03/2.41 6.03/2.41 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (41) DependencyPairsProof (EQUIVALENT) 6.03/2.41 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (42) 6.03/2.41 Obligation: 6.03/2.41 Q DP problem: 6.03/2.41 The TRS P consists of the following rules: 6.03/2.41 6.03/2.41 F38_IN -> F38_IN 6.03/2.41 6.03/2.41 The TRS R consists of the following rules: 6.03/2.41 6.03/2.41 f38_in -> U2(f38_in) 6.03/2.41 6.03/2.41 The set Q consists of the following terms: 6.03/2.41 6.03/2.41 f38_in 6.03/2.41 6.03/2.41 We have to consider all minimal (P,Q,R)-chains. 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (43) UsableRulesProof (EQUIVALENT) 6.03/2.41 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.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (44) 6.03/2.41 Obligation: 6.03/2.41 Q DP problem: 6.03/2.41 The TRS P consists of the following rules: 6.03/2.41 6.03/2.41 F38_IN -> F38_IN 6.03/2.41 6.03/2.41 R is empty. 6.03/2.41 The set Q consists of the following terms: 6.03/2.41 6.03/2.41 f38_in 6.03/2.41 6.03/2.41 We have to consider all minimal (P,Q,R)-chains. 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (45) PrologToIRSwTTransformerProof (SOUND) 6.03/2.41 Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert 6.03/2.41 6.03/2.41 { 6.03/2.41 "root": 3, 6.03/2.41 "program": { 6.03/2.41 "directives": [], 6.03/2.41 "clauses": [ 6.03/2.41 [ 6.03/2.41 "(p (b))", 6.03/2.41 null 6.03/2.41 ], 6.03/2.41 [ 6.03/2.41 "(p (a))", 6.03/2.41 "(p1 X)" 6.03/2.41 ], 6.03/2.41 [ 6.03/2.41 "(p1 (b))", 6.03/2.41 null 6.03/2.41 ], 6.03/2.41 [ 6.03/2.41 "(p1 (a))", 6.03/2.41 "(p1 X)" 6.03/2.41 ] 6.03/2.41 ] 6.03/2.41 }, 6.03/2.41 "graph": { 6.03/2.41 "nodes": { 6.03/2.41 "33": { 6.03/2.41 "goal": [], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": [], 6.03/2.41 "free": [], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "77": { 6.03/2.41 "goal": [{ 6.03/2.41 "clause": -1, 6.03/2.41 "scope": -1, 6.03/2.41 "term": "(p1 X4)" 6.03/2.41 }], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": [], 6.03/2.41 "free": ["X4"], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "12": { 6.03/2.41 "goal": [{ 6.03/2.41 "clause": 0, 6.03/2.41 "scope": 1, 6.03/2.41 "term": "(p T1)" 6.03/2.41 }], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": ["T1"], 6.03/2.41 "free": [], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "13": { 6.03/2.41 "goal": [{ 6.03/2.41 "clause": 1, 6.03/2.41 "scope": 1, 6.03/2.41 "term": "(p T1)" 6.03/2.41 }], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": ["T1"], 6.03/2.41 "free": [], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "68": { 6.03/2.41 "goal": [{ 6.03/2.41 "clause": 2, 6.03/2.41 "scope": 2, 6.03/2.41 "term": "(p1 X2)" 6.03/2.41 }], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": [], 6.03/2.41 "free": ["X2"], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "36": { 6.03/2.41 "goal": [], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": [], 6.03/2.41 "free": [], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "47": { 6.03/2.41 "goal": [{ 6.03/2.41 "clause": -1, 6.03/2.41 "scope": -1, 6.03/2.41 "term": "(p1 X2)" 6.03/2.41 }], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": [], 6.03/2.41 "free": ["X2"], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "69": { 6.03/2.41 "goal": [{ 6.03/2.41 "clause": 3, 6.03/2.41 "scope": 2, 6.03/2.41 "term": "(p1 X2)" 6.03/2.41 }], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": [], 6.03/2.41 "free": ["X2"], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "48": { 6.03/2.41 "goal": [], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": [], 6.03/2.41 "free": [], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "type": "Nodes", 6.03/2.41 "3": { 6.03/2.41 "goal": [{ 6.03/2.41 "clause": -1, 6.03/2.41 "scope": -1, 6.03/2.41 "term": "(p T1)" 6.03/2.41 }], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": ["T1"], 6.03/2.41 "free": [], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "9": { 6.03/2.41 "goal": [ 6.03/2.41 { 6.03/2.41 "clause": 0, 6.03/2.41 "scope": 1, 6.03/2.41 "term": "(p T1)" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "clause": 1, 6.03/2.41 "scope": 1, 6.03/2.41 "term": "(p T1)" 6.03/2.41 } 6.03/2.41 ], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": ["T1"], 6.03/2.41 "free": [], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "70": { 6.03/2.41 "goal": [{ 6.03/2.41 "clause": -1, 6.03/2.41 "scope": -1, 6.03/2.41 "term": "(true)" 6.03/2.41 }], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": [], 6.03/2.41 "free": [], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "73": { 6.03/2.41 "goal": [], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": [], 6.03/2.41 "free": [], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "64": { 6.03/2.41 "goal": [ 6.03/2.41 { 6.03/2.41 "clause": 2, 6.03/2.41 "scope": 2, 6.03/2.41 "term": "(p1 X2)" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "clause": 3, 6.03/2.41 "scope": 2, 6.03/2.41 "term": "(p1 X2)" 6.03/2.41 } 6.03/2.41 ], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": [], 6.03/2.41 "free": ["X2"], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "32": { 6.03/2.41 "goal": [{ 6.03/2.41 "clause": -1, 6.03/2.41 "scope": -1, 6.03/2.41 "term": "(true)" 6.03/2.41 }], 6.03/2.41 "kb": { 6.03/2.41 "nonunifying": [], 6.03/2.41 "intvars": {}, 6.03/2.41 "arithmetic": { 6.03/2.41 "type": "PlainIntegerRelationState", 6.03/2.41 "relations": [] 6.03/2.41 }, 6.03/2.41 "ground": [], 6.03/2.41 "free": [], 6.03/2.41 "exprvars": [] 6.03/2.41 } 6.03/2.41 } 6.03/2.41 }, 6.03/2.41 "edges": [ 6.03/2.41 { 6.03/2.41 "from": 3, 6.03/2.41 "to": 9, 6.03/2.41 "label": "CASE" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 9, 6.03/2.41 "to": 12, 6.03/2.41 "label": "PARALLEL" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 9, 6.03/2.41 "to": 13, 6.03/2.41 "label": "PARALLEL" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 12, 6.03/2.41 "to": 32, 6.03/2.41 "label": "EVAL with clause\np(b).\nand substitutionT1 -> b" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 12, 6.03/2.41 "to": 33, 6.03/2.41 "label": "EVAL-BACKTRACK" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 13, 6.03/2.41 "to": 47, 6.03/2.41 "label": "EVAL with clause\np(a) :- p1(X2).\nand substitutionT1 -> a" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 13, 6.03/2.41 "to": 48, 6.03/2.41 "label": "EVAL-BACKTRACK" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 32, 6.03/2.41 "to": 36, 6.03/2.41 "label": "SUCCESS" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 47, 6.03/2.41 "to": 64, 6.03/2.41 "label": "CASE" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 64, 6.03/2.41 "to": 68, 6.03/2.41 "label": "PARALLEL" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 64, 6.03/2.41 "to": 69, 6.03/2.41 "label": "PARALLEL" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 68, 6.03/2.41 "to": 70, 6.03/2.41 "label": "ONLY EVAL with clause\np1(b).\nand substitutionX2 -> b" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 69, 6.03/2.41 "to": 77, 6.03/2.41 "label": "ONLY EVAL with clause\np1(a) :- p1(X4).\nand substitutionX2 -> a" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 70, 6.03/2.41 "to": 73, 6.03/2.41 "label": "SUCCESS" 6.03/2.41 }, 6.03/2.41 { 6.03/2.41 "from": 77, 6.03/2.41 "to": 47, 6.03/2.41 "label": "INSTANCE with matching:\nX2 -> X4" 6.03/2.41 } 6.03/2.41 ], 6.03/2.41 "type": "Graph" 6.03/2.41 } 6.03/2.41 } 6.03/2.41 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (46) 6.03/2.41 Obligation: 6.03/2.41 Rules: 6.03/2.41 f69_out -> f64_out :|: TRUE 6.03/2.41 f68_out -> f64_out :|: TRUE 6.03/2.41 f64_in -> f68_in :|: TRUE 6.03/2.41 f64_in -> f69_in :|: TRUE 6.03/2.41 f64_out -> f47_out :|: TRUE 6.03/2.41 f47_in -> f64_in :|: TRUE 6.03/2.41 f77_in -> f47_in :|: TRUE 6.03/2.41 f47_out -> f77_out :|: TRUE 6.03/2.41 f69_in -> f77_in :|: TRUE 6.03/2.41 f77_out -> f69_out :|: TRUE 6.03/2.41 f9_out(T1) -> f3_out(T1) :|: TRUE 6.03/2.41 f3_in(x) -> f9_in(x) :|: TRUE 6.03/2.41 f9_in(x1) -> f12_in(x1) :|: TRUE 6.03/2.41 f9_in(x2) -> f13_in(x2) :|: TRUE 6.03/2.41 f13_out(x3) -> f9_out(x3) :|: TRUE 6.03/2.41 f12_out(x4) -> f9_out(x4) :|: TRUE 6.03/2.41 f48_out -> f13_out(x5) :|: TRUE 6.03/2.41 f13_in(a) -> f47_in :|: TRUE 6.03/2.41 f13_in(x6) -> f48_in :|: TRUE 6.03/2.41 f47_out -> f13_out(a) :|: TRUE 6.03/2.41 Start term: f3_in(T1) 6.03/2.41 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (47) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 6.03/2.41 Constructed simple dependency graph. 6.03/2.41 6.03/2.41 Simplified to the following IRSwTs: 6.03/2.41 6.03/2.41 intTRSProblem: 6.03/2.41 f64_in -> f69_in :|: TRUE 6.03/2.41 f47_in -> f64_in :|: TRUE 6.03/2.41 f77_in -> f47_in :|: TRUE 6.03/2.41 f69_in -> f77_in :|: TRUE 6.03/2.41 6.03/2.41 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (48) 6.03/2.41 Obligation: 6.03/2.41 Rules: 6.03/2.41 f64_in -> f69_in :|: TRUE 6.03/2.41 f47_in -> f64_in :|: TRUE 6.03/2.41 f77_in -> f47_in :|: TRUE 6.03/2.41 f69_in -> f77_in :|: TRUE 6.03/2.41 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (49) IntTRSCompressionProof (EQUIVALENT) 6.03/2.41 Compressed rules. 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (50) 6.03/2.41 Obligation: 6.03/2.41 Rules: 6.03/2.41 f77_in -> f77_in :|: TRUE 6.03/2.41 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (51) IRSFormatTransformerProof (EQUIVALENT) 6.03/2.41 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (52) 6.03/2.41 Obligation: 6.03/2.41 Rules: 6.03/2.41 f77_in -> f77_in :|: TRUE 6.03/2.41 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (53) IRSwTTerminationDigraphProof (EQUIVALENT) 6.03/2.41 Constructed termination digraph! 6.03/2.41 Nodes: 6.03/2.41 (1) f77_in -> f77_in :|: TRUE 6.03/2.41 6.03/2.41 Arcs: 6.03/2.41 (1) -> (1) 6.03/2.41 6.03/2.41 This digraph is fully evaluated! 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (54) 6.03/2.41 Obligation: 6.03/2.41 6.03/2.41 Termination digraph: 6.03/2.41 Nodes: 6.03/2.41 (1) f77_in -> f77_in :|: TRUE 6.03/2.41 6.03/2.41 Arcs: 6.03/2.41 (1) -> (1) 6.03/2.41 6.03/2.41 This digraph is fully evaluated! 6.03/2.41 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (55) FilterProof (EQUIVALENT) 6.03/2.41 Used the following sort dictionary for filtering: 6.03/2.41 f77_in() 6.03/2.41 Replaced non-predefined constructor symbols by 0. 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (56) 6.03/2.41 Obligation: 6.03/2.41 Rules: 6.03/2.41 f77_in -> f77_in :|: TRUE 6.03/2.41 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (57) IntTRSPeriodicNontermProof (COMPLETE) 6.03/2.41 Normalized system to the following form: 6.03/2.41 f(pc) -> f(1) :|: pc = 1 && TRUE 6.03/2.41 Witness term starting non-terminating reduction: f(1) 6.03/2.41 ---------------------------------------- 6.03/2.41 6.03/2.41 (58) 6.03/2.41 NO 6.33/2.47 EOF