9.50/3.41 MAYBE 9.50/3.43 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 9.50/3.43 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 9.50/3.43 9.50/3.43 9.50/3.43 Left Termination of the query pattern 9.50/3.43 9.50/3.43 subset(a,g) 9.50/3.43 9.50/3.43 w.r.t. the given Prolog program could not be shown: 9.50/3.43 9.50/3.43 (0) Prolog 9.50/3.43 (1) PrologToPiTRSProof [SOUND, 0 ms] 9.50/3.43 (2) PiTRS 9.50/3.43 (3) DependencyPairsProof [EQUIVALENT, 0 ms] 9.50/3.43 (4) PiDP 9.50/3.43 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 9.50/3.43 (6) AND 9.50/3.43 (7) PiDP 9.50/3.43 (8) UsableRulesProof [EQUIVALENT, 0 ms] 9.50/3.43 (9) PiDP 9.50/3.43 (10) PiDPToQDPProof [SOUND, 0 ms] 9.50/3.43 (11) QDP 9.50/3.43 (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] 9.50/3.43 (13) YES 9.50/3.43 (14) PiDP 9.50/3.43 (15) UsableRulesProof [EQUIVALENT, 0 ms] 9.50/3.43 (16) PiDP 9.50/3.43 (17) PiDPToQDPProof [SOUND, 1 ms] 9.50/3.43 (18) QDP 9.50/3.43 (19) TransformationProof [SOUND, 0 ms] 9.50/3.43 (20) QDP 9.50/3.43 (21) TransformationProof [EQUIVALENT, 0 ms] 9.50/3.43 (22) QDP 9.50/3.43 (23) PrologToPiTRSProof [SOUND, 0 ms] 9.50/3.43 (24) PiTRS 9.50/3.43 (25) DependencyPairsProof [EQUIVALENT, 0 ms] 9.50/3.43 (26) PiDP 9.50/3.43 (27) DependencyGraphProof [EQUIVALENT, 0 ms] 9.50/3.43 (28) AND 9.50/3.43 (29) PiDP 9.50/3.43 (30) UsableRulesProof [EQUIVALENT, 0 ms] 9.50/3.43 (31) PiDP 9.50/3.43 (32) PiDPToQDPProof [SOUND, 0 ms] 9.50/3.43 (33) QDP 9.50/3.43 (34) QDPSizeChangeProof [EQUIVALENT, 0 ms] 9.50/3.43 (35) YES 9.50/3.43 (36) PiDP 9.50/3.43 (37) UsableRulesProof [EQUIVALENT, 0 ms] 9.50/3.43 (38) PiDP 9.50/3.43 (39) PiDPToQDPProof [SOUND, 1 ms] 9.50/3.43 (40) QDP 9.50/3.43 (41) TransformationProof [SOUND, 0 ms] 9.50/3.43 (42) QDP 9.50/3.43 (43) TransformationProof [EQUIVALENT, 0 ms] 9.50/3.43 (44) QDP 9.50/3.43 (45) PrologToDTProblemTransformerProof [SOUND, 0 ms] 9.50/3.43 (46) TRIPLES 9.50/3.43 (47) TriplesToPiDPProof [SOUND, 0 ms] 9.50/3.43 (48) PiDP 9.50/3.43 (49) DependencyGraphProof [EQUIVALENT, 0 ms] 9.50/3.43 (50) AND 9.50/3.43 (51) PiDP 9.50/3.43 (52) UsableRulesProof [EQUIVALENT, 0 ms] 9.50/3.43 (53) PiDP 9.50/3.43 (54) PiDPToQDPProof [SOUND, 0 ms] 9.50/3.43 (55) QDP 9.50/3.43 (56) QDPSizeChangeProof [EQUIVALENT, 0 ms] 9.50/3.43 (57) YES 9.50/3.43 (58) PiDP 9.50/3.43 (59) PiDPToQDPProof [SOUND, 0 ms] 9.50/3.43 (60) QDP 9.50/3.43 (61) TransformationProof [SOUND, 0 ms] 9.50/3.43 (62) QDP 9.50/3.43 (63) TransformationProof [EQUIVALENT, 0 ms] 9.50/3.43 (64) QDP 9.50/3.43 (65) TransformationProof [EQUIVALENT, 0 ms] 9.50/3.43 (66) QDP 9.50/3.43 (67) PrologToTRSTransformerProof [SOUND, 0 ms] 9.50/3.43 (68) QTRS 9.50/3.43 (69) DependencyPairsProof [EQUIVALENT, 0 ms] 9.50/3.43 (70) QDP 9.50/3.43 (71) DependencyGraphProof [EQUIVALENT, 0 ms] 9.50/3.43 (72) AND 9.50/3.43 (73) QDP 9.50/3.43 (74) UsableRulesProof [EQUIVALENT, 0 ms] 9.50/3.43 (75) QDP 9.50/3.43 (76) QDPSizeChangeProof [EQUIVALENT, 0 ms] 9.50/3.43 (77) YES 9.50/3.43 (78) QDP 9.50/3.43 (79) NonTerminationLoopProof [COMPLETE, 11 ms] 9.50/3.43 (80) NO 9.50/3.43 (81) PrologToIRSwTTransformerProof [SOUND, 0 ms] 9.50/3.43 (82) AND 9.50/3.43 (83) IRSwT 9.50/3.43 (84) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 9.50/3.43 (85) IRSwT 9.50/3.43 (86) IntTRSCompressionProof [EQUIVALENT, 42 ms] 9.50/3.43 (87) IRSwT 9.50/3.43 (88) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 9.50/3.43 (89) IRSwT 9.50/3.43 (90) IRSwTTerminationDigraphProof [EQUIVALENT, 6 ms] 9.50/3.43 (91) IRSwT 9.50/3.43 (92) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 34 ms] 9.50/3.43 (93) IRSwT 9.50/3.43 (94) TempFilterProof [SOUND, 2 ms] 9.50/3.43 (95) IRSwT 9.50/3.43 (96) IRSwTToQDPProof [SOUND, 0 ms] 9.50/3.43 (97) QDP 9.50/3.43 (98) QDPSizeChangeProof [EQUIVALENT, 0 ms] 9.50/3.43 (99) YES 9.50/3.43 (100) IRSwT 9.50/3.43 (101) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 9.50/3.43 (102) IRSwT 9.50/3.43 (103) IntTRSCompressionProof [EQUIVALENT, 9 ms] 9.50/3.43 (104) IRSwT 9.50/3.43 (105) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 9.50/3.43 (106) IRSwT 9.50/3.43 (107) IRSwTTerminationDigraphProof [EQUIVALENT, 9 ms] 9.50/3.43 (108) IRSwT 9.50/3.43 9.50/3.43 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (0) 9.50/3.43 Obligation: 9.50/3.43 Clauses: 9.50/3.43 9.50/3.43 subset([], X1). 9.50/3.43 subset(.(X, Xs), Ys) :- ','(member(X, Ys), subset(Xs, Ys)). 9.50/3.43 member(X, .(X, X2)). 9.50/3.43 member(X, .(X3, Xs)) :- member(X, Xs). 9.50/3.43 9.50/3.43 9.50/3.43 Query: subset(a,g) 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (1) PrologToPiTRSProof (SOUND) 9.50/3.43 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 9.50/3.43 9.50/3.43 subset_in_2: (f,b) 9.50/3.43 9.50/3.43 member_in_2: (f,b) 9.50/3.43 9.50/3.43 Transforming Prolog into the following Term Rewriting System: 9.50/3.43 9.50/3.43 Pi-finite rewrite system: 9.50/3.43 The TRS R consists of the following rules: 9.50/3.43 9.50/3.43 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.43 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.43 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.43 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.43 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.43 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.43 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.43 9.50/3.43 The argument filtering Pi contains the following mapping: 9.50/3.43 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.43 9.50/3.43 subset_out_ag(x1, x2) = subset_out_ag(x1) 9.50/3.43 9.50/3.43 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.43 9.50/3.43 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.43 9.50/3.43 .(x1, x2) = .(x1, x2) 9.50/3.43 9.50/3.43 member_out_ag(x1, x2) = member_out_ag(x1) 9.50/3.43 9.50/3.43 U3_ag(x1, x2, x3, x4) = U3_ag(x4) 9.50/3.43 9.50/3.43 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x4) 9.50/3.43 9.50/3.43 9.50/3.43 9.50/3.43 9.50/3.43 9.50/3.43 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 9.50/3.43 9.50/3.43 9.50/3.43 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (2) 9.50/3.43 Obligation: 9.50/3.43 Pi-finite rewrite system: 9.50/3.43 The TRS R consists of the following rules: 9.50/3.43 9.50/3.43 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.43 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.43 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.43 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.43 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.43 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.43 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.43 9.50/3.43 The argument filtering Pi contains the following mapping: 9.50/3.43 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.43 9.50/3.43 subset_out_ag(x1, x2) = subset_out_ag(x1) 9.50/3.43 9.50/3.43 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.43 9.50/3.43 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.43 9.50/3.43 .(x1, x2) = .(x1, x2) 9.50/3.43 9.50/3.43 member_out_ag(x1, x2) = member_out_ag(x1) 9.50/3.43 9.50/3.43 U3_ag(x1, x2, x3, x4) = U3_ag(x4) 9.50/3.43 9.50/3.43 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x4) 9.50/3.43 9.50/3.43 9.50/3.43 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (3) DependencyPairsProof (EQUIVALENT) 9.50/3.43 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 9.50/3.43 Pi DP problem: 9.50/3.43 The TRS P consists of the following rules: 9.50/3.43 9.50/3.43 SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.43 SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys) 9.50/3.43 MEMBER_IN_AG(X, .(X3, Xs)) -> U3_AG(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.43 MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs) 9.50/3.43 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_AG(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.43 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys) 9.50/3.43 9.50/3.43 The TRS R consists of the following rules: 9.50/3.43 9.50/3.43 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.43 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.43 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.43 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.43 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.43 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.43 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.43 9.50/3.43 The argument filtering Pi contains the following mapping: 9.50/3.43 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.43 9.50/3.43 subset_out_ag(x1, x2) = subset_out_ag(x1) 9.50/3.43 9.50/3.43 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.43 9.50/3.43 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.43 9.50/3.43 .(x1, x2) = .(x1, x2) 9.50/3.43 9.50/3.43 member_out_ag(x1, x2) = member_out_ag(x1) 9.50/3.43 9.50/3.43 U3_ag(x1, x2, x3, x4) = U3_ag(x4) 9.50/3.43 9.50/3.43 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x4) 9.50/3.43 9.50/3.43 SUBSET_IN_AG(x1, x2) = SUBSET_IN_AG(x2) 9.50/3.43 9.50/3.43 U1_AG(x1, x2, x3, x4) = U1_AG(x3, x4) 9.50/3.43 9.50/3.43 MEMBER_IN_AG(x1, x2) = MEMBER_IN_AG(x2) 9.50/3.43 9.50/3.43 U3_AG(x1, x2, x3, x4) = U3_AG(x4) 9.50/3.43 9.50/3.43 U2_AG(x1, x2, x3, x4) = U2_AG(x1, x4) 9.50/3.43 9.50/3.43 9.50/3.43 We have to consider all (P,R,Pi)-chains 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (4) 9.50/3.43 Obligation: 9.50/3.43 Pi DP problem: 9.50/3.43 The TRS P consists of the following rules: 9.50/3.43 9.50/3.43 SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.43 SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys) 9.50/3.43 MEMBER_IN_AG(X, .(X3, Xs)) -> U3_AG(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.43 MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs) 9.50/3.43 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_AG(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.43 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys) 9.50/3.43 9.50/3.43 The TRS R consists of the following rules: 9.50/3.43 9.50/3.43 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.43 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.43 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.43 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.43 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.43 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.43 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.43 9.50/3.43 The argument filtering Pi contains the following mapping: 9.50/3.43 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.43 9.50/3.43 subset_out_ag(x1, x2) = subset_out_ag(x1) 9.50/3.43 9.50/3.43 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.43 9.50/3.43 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.43 9.50/3.43 .(x1, x2) = .(x1, x2) 9.50/3.43 9.50/3.43 member_out_ag(x1, x2) = member_out_ag(x1) 9.50/3.43 9.50/3.43 U3_ag(x1, x2, x3, x4) = U3_ag(x4) 9.50/3.43 9.50/3.43 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x4) 9.50/3.43 9.50/3.43 SUBSET_IN_AG(x1, x2) = SUBSET_IN_AG(x2) 9.50/3.43 9.50/3.43 U1_AG(x1, x2, x3, x4) = U1_AG(x3, x4) 9.50/3.43 9.50/3.43 MEMBER_IN_AG(x1, x2) = MEMBER_IN_AG(x2) 9.50/3.43 9.50/3.43 U3_AG(x1, x2, x3, x4) = U3_AG(x4) 9.50/3.43 9.50/3.43 U2_AG(x1, x2, x3, x4) = U2_AG(x1, x4) 9.50/3.43 9.50/3.43 9.50/3.43 We have to consider all (P,R,Pi)-chains 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (5) DependencyGraphProof (EQUIVALENT) 9.50/3.43 The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 3 less nodes. 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (6) 9.50/3.43 Complex Obligation (AND) 9.50/3.43 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (7) 9.50/3.43 Obligation: 9.50/3.43 Pi DP problem: 9.50/3.43 The TRS P consists of the following rules: 9.50/3.43 9.50/3.43 MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs) 9.50/3.43 9.50/3.43 The TRS R consists of the following rules: 9.50/3.43 9.50/3.43 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.43 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.43 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.43 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.43 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.43 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.43 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.43 9.50/3.43 The argument filtering Pi contains the following mapping: 9.50/3.43 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.43 9.50/3.43 subset_out_ag(x1, x2) = subset_out_ag(x1) 9.50/3.43 9.50/3.43 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.43 9.50/3.43 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.43 9.50/3.43 .(x1, x2) = .(x1, x2) 9.50/3.43 9.50/3.43 member_out_ag(x1, x2) = member_out_ag(x1) 9.50/3.43 9.50/3.43 U3_ag(x1, x2, x3, x4) = U3_ag(x4) 9.50/3.43 9.50/3.43 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x4) 9.50/3.43 9.50/3.43 MEMBER_IN_AG(x1, x2) = MEMBER_IN_AG(x2) 9.50/3.43 9.50/3.43 9.50/3.43 We have to consider all (P,R,Pi)-chains 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (8) UsableRulesProof (EQUIVALENT) 9.50/3.43 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (9) 9.50/3.43 Obligation: 9.50/3.43 Pi DP problem: 9.50/3.43 The TRS P consists of the following rules: 9.50/3.43 9.50/3.43 MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs) 9.50/3.43 9.50/3.43 R is empty. 9.50/3.43 The argument filtering Pi contains the following mapping: 9.50/3.43 .(x1, x2) = .(x1, x2) 9.50/3.43 9.50/3.43 MEMBER_IN_AG(x1, x2) = MEMBER_IN_AG(x2) 9.50/3.43 9.50/3.43 9.50/3.43 We have to consider all (P,R,Pi)-chains 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (10) PiDPToQDPProof (SOUND) 9.50/3.43 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (11) 9.50/3.43 Obligation: 9.50/3.43 Q DP problem: 9.50/3.43 The TRS P consists of the following rules: 9.50/3.43 9.50/3.43 MEMBER_IN_AG(.(X3, Xs)) -> MEMBER_IN_AG(Xs) 9.50/3.43 9.50/3.43 R is empty. 9.50/3.43 Q is empty. 9.50/3.43 We have to consider all (P,Q,R)-chains. 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (12) QDPSizeChangeProof (EQUIVALENT) 9.50/3.43 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 9.50/3.43 9.50/3.43 From the DPs we obtained the following set of size-change graphs: 9.50/3.43 *MEMBER_IN_AG(.(X3, Xs)) -> MEMBER_IN_AG(Xs) 9.50/3.43 The graph contains the following edges 1 > 1 9.50/3.43 9.50/3.43 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (13) 9.50/3.43 YES 9.50/3.43 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (14) 9.50/3.43 Obligation: 9.50/3.43 Pi DP problem: 9.50/3.43 The TRS P consists of the following rules: 9.50/3.43 9.50/3.43 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys) 9.50/3.43 SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.43 9.50/3.43 The TRS R consists of the following rules: 9.50/3.43 9.50/3.43 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.43 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.43 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.43 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.43 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.43 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.43 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.43 9.50/3.43 The argument filtering Pi contains the following mapping: 9.50/3.43 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.43 9.50/3.43 subset_out_ag(x1, x2) = subset_out_ag(x1) 9.50/3.43 9.50/3.43 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.43 9.50/3.43 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.43 9.50/3.43 .(x1, x2) = .(x1, x2) 9.50/3.43 9.50/3.43 member_out_ag(x1, x2) = member_out_ag(x1) 9.50/3.43 9.50/3.43 U3_ag(x1, x2, x3, x4) = U3_ag(x4) 9.50/3.43 9.50/3.43 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x4) 9.50/3.43 9.50/3.43 SUBSET_IN_AG(x1, x2) = SUBSET_IN_AG(x2) 9.50/3.43 9.50/3.43 U1_AG(x1, x2, x3, x4) = U1_AG(x3, x4) 9.50/3.43 9.50/3.43 9.50/3.43 We have to consider all (P,R,Pi)-chains 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (15) UsableRulesProof (EQUIVALENT) 9.50/3.43 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (16) 9.50/3.43 Obligation: 9.50/3.43 Pi DP problem: 9.50/3.43 The TRS P consists of the following rules: 9.50/3.43 9.50/3.43 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys) 9.50/3.43 SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.43 9.50/3.43 The TRS R consists of the following rules: 9.50/3.43 9.50/3.43 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.43 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.43 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.43 9.50/3.43 The argument filtering Pi contains the following mapping: 9.50/3.43 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.43 9.50/3.43 .(x1, x2) = .(x1, x2) 9.50/3.43 9.50/3.43 member_out_ag(x1, x2) = member_out_ag(x1) 9.50/3.43 9.50/3.43 U3_ag(x1, x2, x3, x4) = U3_ag(x4) 9.50/3.43 9.50/3.43 SUBSET_IN_AG(x1, x2) = SUBSET_IN_AG(x2) 9.50/3.43 9.50/3.43 U1_AG(x1, x2, x3, x4) = U1_AG(x3, x4) 9.50/3.43 9.50/3.43 9.50/3.43 We have to consider all (P,R,Pi)-chains 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (17) PiDPToQDPProof (SOUND) 9.50/3.43 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (18) 9.50/3.43 Obligation: 9.50/3.43 Q DP problem: 9.50/3.43 The TRS P consists of the following rules: 9.50/3.43 9.50/3.43 U1_AG(Ys, member_out_ag(X)) -> SUBSET_IN_AG(Ys) 9.50/3.43 SUBSET_IN_AG(Ys) -> U1_AG(Ys, member_in_ag(Ys)) 9.50/3.43 9.50/3.43 The TRS R consists of the following rules: 9.50/3.43 9.50/3.43 member_in_ag(.(X, X2)) -> member_out_ag(X) 9.50/3.43 member_in_ag(.(X3, Xs)) -> U3_ag(member_in_ag(Xs)) 9.50/3.43 U3_ag(member_out_ag(X)) -> member_out_ag(X) 9.50/3.43 9.50/3.43 The set Q consists of the following terms: 9.50/3.43 9.50/3.43 member_in_ag(x0) 9.50/3.43 U3_ag(x0) 9.50/3.43 9.50/3.43 We have to consider all (P,Q,R)-chains. 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (19) TransformationProof (SOUND) 9.50/3.43 By narrowing [LPAR04] the rule SUBSET_IN_AG(Ys) -> U1_AG(Ys, member_in_ag(Ys)) at position [1] we obtained the following new rules [LPAR04]: 9.50/3.43 9.50/3.43 (SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0)),SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0))) 9.50/3.43 (SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(member_in_ag(x1))),SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(member_in_ag(x1)))) 9.50/3.43 9.50/3.43 9.50/3.43 ---------------------------------------- 9.50/3.43 9.50/3.43 (20) 9.50/3.43 Obligation: 9.50/3.43 Q DP problem: 9.50/3.43 The TRS P consists of the following rules: 9.50/3.43 9.50/3.43 U1_AG(Ys, member_out_ag(X)) -> SUBSET_IN_AG(Ys) 9.50/3.43 SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0)) 9.50/3.45 SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(member_in_ag(x1))) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 member_in_ag(.(X, X2)) -> member_out_ag(X) 9.50/3.45 member_in_ag(.(X3, Xs)) -> U3_ag(member_in_ag(Xs)) 9.50/3.45 U3_ag(member_out_ag(X)) -> member_out_ag(X) 9.50/3.45 9.50/3.45 The set Q consists of the following terms: 9.50/3.45 9.50/3.45 member_in_ag(x0) 9.50/3.45 U3_ag(x0) 9.50/3.45 9.50/3.45 We have to consider all (P,Q,R)-chains. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (21) TransformationProof (EQUIVALENT) 9.50/3.45 By instantiating [LPAR04] the rule U1_AG(Ys, member_out_ag(X)) -> SUBSET_IN_AG(Ys) we obtained the following new rules [LPAR04]: 9.50/3.45 9.50/3.45 (U1_AG(.(z0, z1), member_out_ag(z0)) -> SUBSET_IN_AG(.(z0, z1)),U1_AG(.(z0, z1), member_out_ag(z0)) -> SUBSET_IN_AG(.(z0, z1))) 9.50/3.45 (U1_AG(.(z0, z1), member_out_ag(x1)) -> SUBSET_IN_AG(.(z0, z1)),U1_AG(.(z0, z1), member_out_ag(x1)) -> SUBSET_IN_AG(.(z0, z1))) 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (22) 9.50/3.45 Obligation: 9.50/3.45 Q DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0)) 9.50/3.45 SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(member_in_ag(x1))) 9.50/3.45 U1_AG(.(z0, z1), member_out_ag(z0)) -> SUBSET_IN_AG(.(z0, z1)) 9.50/3.45 U1_AG(.(z0, z1), member_out_ag(x1)) -> SUBSET_IN_AG(.(z0, z1)) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 member_in_ag(.(X, X2)) -> member_out_ag(X) 9.50/3.45 member_in_ag(.(X3, Xs)) -> U3_ag(member_in_ag(Xs)) 9.50/3.45 U3_ag(member_out_ag(X)) -> member_out_ag(X) 9.50/3.45 9.50/3.45 The set Q consists of the following terms: 9.50/3.45 9.50/3.45 member_in_ag(x0) 9.50/3.45 U3_ag(x0) 9.50/3.45 9.50/3.45 We have to consider all (P,Q,R)-chains. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (23) PrologToPiTRSProof (SOUND) 9.50/3.45 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 9.50/3.45 9.50/3.45 subset_in_2: (f,b) 9.50/3.45 9.50/3.45 member_in_2: (f,b) 9.50/3.45 9.50/3.45 Transforming Prolog into the following Term Rewriting System: 9.50/3.45 9.50/3.45 Pi-finite rewrite system: 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.45 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.45 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.45 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.45 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.45 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.45 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.45 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.45 9.50/3.45 subset_out_ag(x1, x2) = subset_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.45 9.50/3.45 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.45 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 member_out_ag(x1, x2) = member_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 9.50/3.45 9.50/3.45 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x3, x4) 9.50/3.45 9.50/3.45 9.50/3.45 9.50/3.45 9.50/3.45 9.50/3.45 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 9.50/3.45 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (24) 9.50/3.45 Obligation: 9.50/3.45 Pi-finite rewrite system: 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.45 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.45 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.45 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.45 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.45 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.45 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.45 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.45 9.50/3.45 subset_out_ag(x1, x2) = subset_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.45 9.50/3.45 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.45 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 member_out_ag(x1, x2) = member_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 9.50/3.45 9.50/3.45 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x3, x4) 9.50/3.45 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (25) DependencyPairsProof (EQUIVALENT) 9.50/3.45 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 9.50/3.45 Pi DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.45 SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys) 9.50/3.45 MEMBER_IN_AG(X, .(X3, Xs)) -> U3_AG(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.45 MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs) 9.50/3.45 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_AG(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.45 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.45 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.45 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.45 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.45 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.45 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.45 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.45 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.45 9.50/3.45 subset_out_ag(x1, x2) = subset_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.45 9.50/3.45 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.45 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 member_out_ag(x1, x2) = member_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 9.50/3.45 9.50/3.45 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x3, x4) 9.50/3.45 9.50/3.45 SUBSET_IN_AG(x1, x2) = SUBSET_IN_AG(x2) 9.50/3.45 9.50/3.45 U1_AG(x1, x2, x3, x4) = U1_AG(x3, x4) 9.50/3.45 9.50/3.45 MEMBER_IN_AG(x1, x2) = MEMBER_IN_AG(x2) 9.50/3.45 9.50/3.45 U3_AG(x1, x2, x3, x4) = U3_AG(x2, x3, x4) 9.50/3.45 9.50/3.45 U2_AG(x1, x2, x3, x4) = U2_AG(x1, x3, x4) 9.50/3.45 9.50/3.45 9.50/3.45 We have to consider all (P,R,Pi)-chains 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (26) 9.50/3.45 Obligation: 9.50/3.45 Pi DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.45 SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys) 9.50/3.45 MEMBER_IN_AG(X, .(X3, Xs)) -> U3_AG(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.45 MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs) 9.50/3.45 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_AG(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.45 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.45 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.45 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.45 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.45 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.45 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.45 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.45 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.45 9.50/3.45 subset_out_ag(x1, x2) = subset_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.45 9.50/3.45 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.45 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 member_out_ag(x1, x2) = member_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 9.50/3.45 9.50/3.45 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x3, x4) 9.50/3.45 9.50/3.45 SUBSET_IN_AG(x1, x2) = SUBSET_IN_AG(x2) 9.50/3.45 9.50/3.45 U1_AG(x1, x2, x3, x4) = U1_AG(x3, x4) 9.50/3.45 9.50/3.45 MEMBER_IN_AG(x1, x2) = MEMBER_IN_AG(x2) 9.50/3.45 9.50/3.45 U3_AG(x1, x2, x3, x4) = U3_AG(x2, x3, x4) 9.50/3.45 9.50/3.45 U2_AG(x1, x2, x3, x4) = U2_AG(x1, x3, x4) 9.50/3.45 9.50/3.45 9.50/3.45 We have to consider all (P,R,Pi)-chains 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (27) DependencyGraphProof (EQUIVALENT) 9.50/3.45 The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 3 less nodes. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (28) 9.50/3.45 Complex Obligation (AND) 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (29) 9.50/3.45 Obligation: 9.50/3.45 Pi DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.45 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.45 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.45 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.45 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.45 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.45 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.45 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.45 9.50/3.45 subset_out_ag(x1, x2) = subset_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.45 9.50/3.45 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.45 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 member_out_ag(x1, x2) = member_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 9.50/3.45 9.50/3.45 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x3, x4) 9.50/3.45 9.50/3.45 MEMBER_IN_AG(x1, x2) = MEMBER_IN_AG(x2) 9.50/3.45 9.50/3.45 9.50/3.45 We have to consider all (P,R,Pi)-chains 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (30) UsableRulesProof (EQUIVALENT) 9.50/3.45 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (31) 9.50/3.45 Obligation: 9.50/3.45 Pi DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs) 9.50/3.45 9.50/3.45 R is empty. 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 MEMBER_IN_AG(x1, x2) = MEMBER_IN_AG(x2) 9.50/3.45 9.50/3.45 9.50/3.45 We have to consider all (P,R,Pi)-chains 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (32) PiDPToQDPProof (SOUND) 9.50/3.45 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (33) 9.50/3.45 Obligation: 9.50/3.45 Q DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 MEMBER_IN_AG(.(X3, Xs)) -> MEMBER_IN_AG(Xs) 9.50/3.45 9.50/3.45 R is empty. 9.50/3.45 Q is empty. 9.50/3.45 We have to consider all (P,Q,R)-chains. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (34) QDPSizeChangeProof (EQUIVALENT) 9.50/3.45 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 9.50/3.45 9.50/3.45 From the DPs we obtained the following set of size-change graphs: 9.50/3.45 *MEMBER_IN_AG(.(X3, Xs)) -> MEMBER_IN_AG(Xs) 9.50/3.45 The graph contains the following edges 1 > 1 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (35) 9.50/3.45 YES 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (36) 9.50/3.45 Obligation: 9.50/3.45 Pi DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys) 9.50/3.45 SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 subset_in_ag([], X1) -> subset_out_ag([], X1) 9.50/3.45 subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.45 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.45 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.45 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.45 U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys)) 9.50/3.45 U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys) 9.50/3.45 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 subset_in_ag(x1, x2) = subset_in_ag(x2) 9.50/3.45 9.50/3.45 subset_out_ag(x1, x2) = subset_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U1_ag(x1, x2, x3, x4) = U1_ag(x3, x4) 9.50/3.45 9.50/3.45 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.45 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 member_out_ag(x1, x2) = member_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 9.50/3.45 9.50/3.45 U2_ag(x1, x2, x3, x4) = U2_ag(x1, x3, x4) 9.50/3.45 9.50/3.45 SUBSET_IN_AG(x1, x2) = SUBSET_IN_AG(x2) 9.50/3.45 9.50/3.45 U1_AG(x1, x2, x3, x4) = U1_AG(x3, x4) 9.50/3.45 9.50/3.45 9.50/3.45 We have to consider all (P,R,Pi)-chains 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (37) UsableRulesProof (EQUIVALENT) 9.50/3.45 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (38) 9.50/3.45 Obligation: 9.50/3.45 Pi DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys) 9.50/3.45 SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys)) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.45 member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs)) 9.50/3.45 U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.45 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 member_in_ag(x1, x2) = member_in_ag(x2) 9.50/3.45 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 member_out_ag(x1, x2) = member_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 9.50/3.45 9.50/3.45 SUBSET_IN_AG(x1, x2) = SUBSET_IN_AG(x2) 9.50/3.45 9.50/3.45 U1_AG(x1, x2, x3, x4) = U1_AG(x3, x4) 9.50/3.45 9.50/3.45 9.50/3.45 We have to consider all (P,R,Pi)-chains 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (39) PiDPToQDPProof (SOUND) 9.50/3.45 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (40) 9.50/3.45 Obligation: 9.50/3.45 Q DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 U1_AG(Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Ys) 9.50/3.45 SUBSET_IN_AG(Ys) -> U1_AG(Ys, member_in_ag(Ys)) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 member_in_ag(.(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.45 member_in_ag(.(X3, Xs)) -> U3_ag(X3, Xs, member_in_ag(Xs)) 9.50/3.45 U3_ag(X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.45 9.50/3.45 The set Q consists of the following terms: 9.50/3.45 9.50/3.45 member_in_ag(x0) 9.50/3.45 U3_ag(x0, x1, x2) 9.50/3.45 9.50/3.45 We have to consider all (P,Q,R)-chains. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (41) TransformationProof (SOUND) 9.50/3.45 By narrowing [LPAR04] the rule SUBSET_IN_AG(Ys) -> U1_AG(Ys, member_in_ag(Ys)) at position [1] we obtained the following new rules [LPAR04]: 9.50/3.45 9.50/3.45 (SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0, .(x0, x1))),SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))) 9.50/3.45 (SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(x0, x1, member_in_ag(x1))),SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(x0, x1, member_in_ag(x1)))) 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (42) 9.50/3.45 Obligation: 9.50/3.45 Q DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 U1_AG(Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Ys) 9.50/3.45 SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0, .(x0, x1))) 9.50/3.45 SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(x0, x1, member_in_ag(x1))) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 member_in_ag(.(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.45 member_in_ag(.(X3, Xs)) -> U3_ag(X3, Xs, member_in_ag(Xs)) 9.50/3.45 U3_ag(X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.45 9.50/3.45 The set Q consists of the following terms: 9.50/3.45 9.50/3.45 member_in_ag(x0) 9.50/3.45 U3_ag(x0, x1, x2) 9.50/3.45 9.50/3.45 We have to consider all (P,Q,R)-chains. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (43) TransformationProof (EQUIVALENT) 9.50/3.45 By instantiating [LPAR04] the rule U1_AG(Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Ys) we obtained the following new rules [LPAR04]: 9.50/3.45 9.50/3.45 (U1_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)),U1_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1))) 9.50/3.45 (U1_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)),U1_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1))) 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (44) 9.50/3.45 Obligation: 9.50/3.45 Q DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0, .(x0, x1))) 9.50/3.45 SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(x0, x1, member_in_ag(x1))) 9.50/3.45 U1_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)) 9.50/3.45 U1_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 member_in_ag(.(X, X2)) -> member_out_ag(X, .(X, X2)) 9.50/3.45 member_in_ag(.(X3, Xs)) -> U3_ag(X3, Xs, member_in_ag(Xs)) 9.50/3.45 U3_ag(X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs)) 9.50/3.45 9.50/3.45 The set Q consists of the following terms: 9.50/3.45 9.50/3.45 member_in_ag(x0) 9.50/3.45 U3_ag(x0, x1, x2) 9.50/3.45 9.50/3.45 We have to consider all (P,Q,R)-chains. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (45) PrologToDTProblemTransformerProof (SOUND) 9.50/3.45 Built DT problem from termination graph DT10. 9.50/3.45 9.50/3.45 { 9.50/3.45 "root": 10, 9.50/3.45 "program": { 9.50/3.45 "directives": [], 9.50/3.45 "clauses": [ 9.50/3.45 [ 9.50/3.45 "(subset ([]) X1)", 9.50/3.45 null 9.50/3.45 ], 9.50/3.45 [ 9.50/3.45 "(subset (. X Xs) Ys)", 9.50/3.45 "(',' (member X Ys) (subset Xs Ys))" 9.50/3.45 ], 9.50/3.45 [ 9.50/3.45 "(member X (. X X2))", 9.50/3.45 null 9.50/3.45 ], 9.50/3.45 [ 9.50/3.45 "(member X (. X3 Xs))", 9.50/3.45 "(member X Xs)" 9.50/3.45 ] 9.50/3.45 ] 9.50/3.45 }, 9.50/3.45 "graph": { 9.50/3.45 "nodes": { 9.50/3.45 "170": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(true)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "171": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "type": "Nodes", 9.50/3.45 "172": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "152": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 1, 9.50/3.45 "scope": 1, 9.50/3.45 "term": "(subset T1 T4)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T4"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "153": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(',' (member T11 T10) (subset T12 T10))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T10"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "154": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "155": { 9.50/3.45 "goal": [ 9.50/3.45 { 9.50/3.45 "clause": 2, 9.50/3.45 "scope": 2, 9.50/3.45 "term": "(',' (member T11 T10) (subset T12 T10))" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "clause": 3, 9.50/3.45 "scope": 2, 9.50/3.45 "term": "(',' (member T11 T10) (subset T12 T10))" 9.50/3.45 } 9.50/3.45 ], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T10"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "210": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "156": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 2, 9.50/3.45 "scope": 2, 9.50/3.45 "term": "(',' (member T11 T10) (subset T12 T10))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T10"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "211": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(',' (member T108 T107) (subset T109 (. T106 T107)))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [[ 9.50/3.45 "(subset T1 (. T106 T107))", 9.50/3.45 "(subset ([]) X5)" 9.50/3.45 ]], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [ 9.50/3.45 "T106", 9.50/3.45 "T107" 9.50/3.45 ], 9.50/3.45 "free": ["X5"], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "157": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 3, 9.50/3.45 "scope": 2, 9.50/3.45 "term": "(',' (member T11 T10) (subset T12 T10))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T10"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "179": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(member T67 T66)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T66"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "212": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "158": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(subset T23 (. T21 T22))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [ 9.50/3.45 "T21", 9.50/3.45 "T22" 9.50/3.45 ], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "159": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "10": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(subset T1 T2)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T2"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "180": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "181": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(',' (member T82 T81) (subset T83 T81))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [[ 9.50/3.45 "(subset T1 T81)", 9.50/3.45 "(subset ([]) X5)" 9.50/3.45 ]], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T81"], 9.50/3.45 "free": ["X5"], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "182": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "183": { 9.50/3.45 "goal": [ 9.50/3.45 { 9.50/3.45 "clause": 2, 9.50/3.45 "scope": 4, 9.50/3.45 "term": "(',' (member T82 T81) (subset T83 T81))" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "clause": 3, 9.50/3.45 "scope": 4, 9.50/3.45 "term": "(',' (member T82 T81) (subset T83 T81))" 9.50/3.45 } 9.50/3.45 ], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [[ 9.50/3.45 "(subset T1 T81)", 9.50/3.45 "(subset ([]) X5)" 9.50/3.45 ]], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T81"], 9.50/3.45 "free": ["X5"], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "184": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 2, 9.50/3.45 "scope": 4, 9.50/3.45 "term": "(',' (member T82 T81) (subset T83 T81))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [[ 9.50/3.45 "(subset T1 T81)", 9.50/3.45 "(subset ([]) X5)" 9.50/3.45 ]], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T81"], 9.50/3.45 "free": ["X5"], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "141": { 9.50/3.45 "goal": [ 9.50/3.45 { 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(true)" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "clause": 1, 9.50/3.45 "scope": 1, 9.50/3.45 "term": "(subset T1 T4)" 9.50/3.45 } 9.50/3.45 ], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T4"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "163": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(',' (member T37 T36) (subset T38 (. T35 T36)))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [ 9.50/3.45 "T35", 9.50/3.45 "T36" 9.50/3.45 ], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "185": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 3, 9.50/3.45 "scope": 4, 9.50/3.45 "term": "(',' (member T82 T81) (subset T83 T81))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [[ 9.50/3.45 "(subset T1 T81)", 9.50/3.45 "(subset ([]) X5)" 9.50/3.45 ]], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T81"], 9.50/3.45 "free": ["X5"], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "164": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "143": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 1, 9.50/3.45 "scope": 1, 9.50/3.45 "term": "(subset T1 T2)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [[ 9.50/3.45 "(subset T1 T2)", 9.50/3.45 "(subset ([]) X5)" 9.50/3.45 ]], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T2"], 9.50/3.45 "free": ["X5"], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "165": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(member T37 T36)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T36"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "166": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(subset T43 (. T35 T36))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [ 9.50/3.45 "T35", 9.50/3.45 "T36" 9.50/3.45 ], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "188": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(subset T94 (. T92 T93))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [[ 9.50/3.45 "(subset T1 (. T92 T93))", 9.50/3.45 "(subset ([]) X5)" 9.50/3.45 ]], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [ 9.50/3.45 "T92", 9.50/3.45 "T93" 9.50/3.45 ], 9.50/3.45 "free": ["X5"], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "167": { 9.50/3.45 "goal": [ 9.50/3.45 { 9.50/3.45 "clause": 2, 9.50/3.45 "scope": 3, 9.50/3.45 "term": "(member T37 T36)" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "clause": 3, 9.50/3.45 "scope": 3, 9.50/3.45 "term": "(member T37 T36)" 9.50/3.45 } 9.50/3.45 ], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T36"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "168": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 2, 9.50/3.45 "scope": 3, 9.50/3.45 "term": "(member T37 T36)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T36"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "169": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 3, 9.50/3.45 "scope": 3, 9.50/3.45 "term": "(member T37 T36)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T36"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "21": { 9.50/3.45 "goal": [ 9.50/3.45 { 9.50/3.45 "clause": 0, 9.50/3.45 "scope": 1, 9.50/3.45 "term": "(subset T1 T2)" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "clause": 1, 9.50/3.45 "scope": 1, 9.50/3.45 "term": "(subset T1 T2)" 9.50/3.45 } 9.50/3.45 ], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T2"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "edges": [ 9.50/3.45 { 9.50/3.45 "from": 10, 9.50/3.45 "to": 21, 9.50/3.45 "label": "CASE" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 21, 9.50/3.45 "to": 141, 9.50/3.45 "label": "EVAL with clause\nsubset([], X5).\nand substitutionT1 -> [],\nT2 -> T4,\nX5 -> T4" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 21, 9.50/3.45 "to": 143, 9.50/3.45 "label": "EVAL-BACKTRACK" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 141, 9.50/3.45 "to": 152, 9.50/3.45 "label": "SUCCESS" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 143, 9.50/3.45 "to": 181, 9.50/3.45 "label": "EVAL with clause\nsubset(.(X69, X70), X71) :- ','(member(X69, X71), subset(X70, X71)).\nand substitutionX69 -> T82,\nX70 -> T83,\nT1 -> .(T82, T83),\nT2 -> T81,\nX71 -> T81,\nT79 -> T82,\nT80 -> T83" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 143, 9.50/3.45 "to": 182, 9.50/3.45 "label": "EVAL-BACKTRACK" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 152, 9.50/3.45 "to": 153, 9.50/3.45 "label": "EVAL with clause\nsubset(.(X9, X10), X11) :- ','(member(X9, X11), subset(X10, X11)).\nand substitutionX9 -> T11,\nX10 -> T12,\nT1 -> .(T11, T12),\nT4 -> T10,\nX11 -> T10,\nT8 -> T11,\nT9 -> T12" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 152, 9.50/3.45 "to": 154, 9.50/3.45 "label": "EVAL-BACKTRACK" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 153, 9.50/3.45 "to": 155, 9.50/3.45 "label": "CASE" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 155, 9.50/3.45 "to": 156, 9.50/3.45 "label": "PARALLEL" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 155, 9.50/3.45 "to": 157, 9.50/3.45 "label": "PARALLEL" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 156, 9.50/3.45 "to": 158, 9.50/3.45 "label": "EVAL with clause\nmember(X20, .(X20, X21)).\nand substitutionT11 -> T21,\nX20 -> T21,\nX21 -> T22,\nT10 -> .(T21, T22),\nT12 -> T23" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 156, 9.50/3.45 "to": 159, 9.50/3.45 "label": "EVAL-BACKTRACK" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 157, 9.50/3.45 "to": 163, 9.50/3.45 "label": "EVAL with clause\nmember(X30, .(X31, X32)) :- member(X30, X32).\nand substitutionT11 -> T37,\nX30 -> T37,\nX31 -> T35,\nX32 -> T36,\nT10 -> .(T35, T36),\nT34 -> T37,\nT12 -> T38" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 157, 9.50/3.45 "to": 164, 9.50/3.45 "label": "EVAL-BACKTRACK" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 158, 9.50/3.45 "to": 10, 9.50/3.45 "label": "INSTANCE with matching:\nT1 -> T23\nT2 -> .(T21, T22)" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 163, 9.50/3.45 "to": 165, 9.50/3.45 "label": "SPLIT 1" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 163, 9.50/3.45 "to": 166, 9.50/3.45 "label": "SPLIT 2\nnew knowledge:\nT37 is ground\nT36 is ground\nreplacements:T38 -> T43" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 165, 9.50/3.45 "to": 167, 9.50/3.45 "label": "CASE" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 166, 9.50/3.45 "to": 10, 9.50/3.45 "label": "INSTANCE with matching:\nT1 -> T43\nT2 -> .(T35, T36)" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 167, 9.50/3.45 "to": 168, 9.50/3.45 "label": "PARALLEL" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 167, 9.50/3.45 "to": 169, 9.50/3.45 "label": "PARALLEL" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 168, 9.50/3.45 "to": 170, 9.50/3.45 "label": "EVAL with clause\nmember(X49, .(X49, X50)).\nand substitutionT37 -> T56,\nX49 -> T56,\nX50 -> T57,\nT36 -> .(T56, T57)" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 168, 9.50/3.45 "to": 171, 9.50/3.45 "label": "EVAL-BACKTRACK" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 169, 9.50/3.45 "to": 179, 9.50/3.45 "label": "EVAL with clause\nmember(X57, .(X58, X59)) :- member(X57, X59).\nand substitutionT37 -> T67,\nX57 -> T67,\nX58 -> T65,\nX59 -> T66,\nT36 -> .(T65, T66),\nT64 -> T67" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 169, 9.50/3.45 "to": 180, 9.50/3.45 "label": "EVAL-BACKTRACK" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 170, 9.50/3.45 "to": 172, 9.50/3.45 "label": "SUCCESS" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 179, 9.50/3.45 "to": 165, 9.50/3.45 "label": "INSTANCE with matching:\nT37 -> T67\nT36 -> T66" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 181, 9.50/3.45 "to": 183, 9.50/3.45 "label": "CASE" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 183, 9.50/3.45 "to": 184, 9.50/3.45 "label": "PARALLEL" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 183, 9.50/3.45 "to": 185, 9.50/3.45 "label": "PARALLEL" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 184, 9.50/3.45 "to": 188, 9.50/3.45 "label": "EVAL with clause\nmember(X80, .(X80, X81)).\nand substitutionT82 -> T92,\nX80 -> T92,\nX81 -> T93,\nT81 -> .(T92, T93),\nT83 -> T94" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 184, 9.50/3.45 "to": 210, 9.50/3.45 "label": "EVAL-BACKTRACK" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 185, 9.50/3.45 "to": 211, 9.50/3.45 "label": "EVAL with clause\nmember(X90, .(X91, X92)) :- member(X90, X92).\nand substitutionT82 -> T108,\nX90 -> T108,\nX91 -> T106,\nX92 -> T107,\nT81 -> .(T106, T107),\nT105 -> T108,\nT83 -> T109" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 185, 9.50/3.45 "to": 212, 9.50/3.45 "label": "EVAL-BACKTRACK" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 188, 9.50/3.45 "to": 10, 9.50/3.45 "label": "INSTANCE with matching:\nT1 -> T94\nT2 -> .(T92, T93)" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "from": 211, 9.50/3.45 "to": 163, 9.50/3.45 "label": "INSTANCE with matching:\nT37 -> T108\nT36 -> T107\nT38 -> T109\nT35 -> T106" 9.50/3.45 } 9.50/3.45 ], 9.50/3.45 "type": "Graph" 9.50/3.45 } 9.50/3.45 } 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (46) 9.50/3.45 Obligation: 9.50/3.45 Triples: 9.50/3.45 9.50/3.45 memberC(X1, .(X2, X3)) :- memberC(X1, X3). 9.50/3.45 pB(X1, X2, X3, X4) :- memberC(X1, X2). 9.50/3.45 pB(X1, X2, X3, X4) :- ','(membercC(X1, X2), subsetA(X3, .(X4, X2))). 9.50/3.45 subsetA(.(X1, X2), .(X1, X3)) :- subsetA(X2, .(X1, X3)). 9.50/3.45 subsetA(.(X1, X2), .(X3, X4)) :- pB(X1, X4, X2, X3). 9.50/3.45 subsetA(.(X1, X2), .(X1, X3)) :- subsetA(X2, .(X1, X3)). 9.50/3.45 subsetA(.(X1, X2), .(X3, X4)) :- pB(X1, X4, X2, X3). 9.50/3.45 9.50/3.45 Clauses: 9.50/3.45 9.50/3.45 subsetcA([], X1). 9.50/3.45 subsetcA(.(X1, X2), .(X1, X3)) :- subsetcA(X2, .(X1, X3)). 9.50/3.45 subsetcA(.(X1, X2), .(X3, X4)) :- qcB(X1, X4, X2, X3). 9.50/3.45 subsetcA(.(X1, X2), .(X1, X3)) :- subsetcA(X2, .(X1, X3)). 9.50/3.45 subsetcA(.(X1, X2), .(X3, X4)) :- qcB(X1, X4, X2, X3). 9.50/3.45 membercC(X1, .(X1, X2)). 9.50/3.45 membercC(X1, .(X2, X3)) :- membercC(X1, X3). 9.50/3.45 qcB(X1, X2, X3, X4) :- ','(membercC(X1, X2), subsetcA(X3, .(X4, X2))). 9.50/3.45 9.50/3.45 Afs: 9.50/3.45 9.50/3.45 subsetA(x1, x2) = subsetA(x2) 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (47) TriplesToPiDPProof (SOUND) 9.50/3.45 We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: 9.50/3.45 9.50/3.45 subsetA_in_2: (f,b) 9.50/3.45 9.50/3.45 pB_in_4: (f,b,f,b) 9.50/3.45 9.50/3.45 memberC_in_2: (f,b) 9.50/3.45 9.50/3.45 membercC_in_2: (f,b) 9.50/3.45 9.50/3.45 Transforming TRIPLES into the following Term Rewriting System: 9.50/3.45 9.50/3.45 Pi DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> U5_AG(X1, X2, X3, subsetA_in_ag(X2, .(X1, X3))) 9.50/3.45 SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> SUBSETA_IN_AG(X2, .(X1, X3)) 9.50/3.45 SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> U6_AG(X1, X2, X3, X4, pB_in_agag(X1, X4, X2, X3)) 9.50/3.45 SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> PB_IN_AGAG(X1, X4, X2, X3) 9.50/3.45 PB_IN_AGAG(X1, X2, X3, X4) -> U2_AGAG(X1, X2, X3, X4, memberC_in_ag(X1, X2)) 9.50/3.45 PB_IN_AGAG(X1, X2, X3, X4) -> MEMBERC_IN_AG(X1, X2) 9.50/3.45 MEMBERC_IN_AG(X1, .(X2, X3)) -> U1_AG(X1, X2, X3, memberC_in_ag(X1, X3)) 9.50/3.45 MEMBERC_IN_AG(X1, .(X2, X3)) -> MEMBERC_IN_AG(X1, X3) 9.50/3.45 PB_IN_AGAG(X1, X2, X3, X4) -> U3_AGAG(X1, X2, X3, X4, membercC_in_ag(X1, X2)) 9.50/3.45 U3_AGAG(X1, X2, X3, X4, membercC_out_ag(X1, X2)) -> U4_AGAG(X1, X2, X3, X4, subsetA_in_ag(X3, .(X4, X2))) 9.50/3.45 U3_AGAG(X1, X2, X3, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(X3, .(X4, X2)) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 membercC_in_ag(X1, .(X1, X2)) -> membercC_out_ag(X1, .(X1, X2)) 9.50/3.45 membercC_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercC_in_ag(X1, X3)) 9.50/3.45 U10_ag(X1, X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3)) 9.50/3.45 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 subsetA_in_ag(x1, x2) = subsetA_in_ag(x2) 9.50/3.45 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 pB_in_agag(x1, x2, x3, x4) = pB_in_agag(x2, x4) 9.50/3.45 9.50/3.45 memberC_in_ag(x1, x2) = memberC_in_ag(x2) 9.50/3.45 9.50/3.45 membercC_in_ag(x1, x2) = membercC_in_ag(x2) 9.50/3.45 9.50/3.45 membercC_out_ag(x1, x2) = membercC_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U10_ag(x1, x2, x3, x4) = U10_ag(x2, x3, x4) 9.50/3.45 9.50/3.45 SUBSETA_IN_AG(x1, x2) = SUBSETA_IN_AG(x2) 9.50/3.45 9.50/3.45 U5_AG(x1, x2, x3, x4) = U5_AG(x1, x3, x4) 9.50/3.45 9.50/3.45 U6_AG(x1, x2, x3, x4, x5) = U6_AG(x3, x4, x5) 9.50/3.45 9.50/3.45 PB_IN_AGAG(x1, x2, x3, x4) = PB_IN_AGAG(x2, x4) 9.50/3.45 9.50/3.45 U2_AGAG(x1, x2, x3, x4, x5) = U2_AGAG(x2, x4, x5) 9.50/3.45 9.50/3.45 MEMBERC_IN_AG(x1, x2) = MEMBERC_IN_AG(x2) 9.50/3.45 9.50/3.45 U1_AG(x1, x2, x3, x4) = U1_AG(x2, x3, x4) 9.50/3.45 9.50/3.45 U3_AGAG(x1, x2, x3, x4, x5) = U3_AGAG(x2, x4, x5) 9.50/3.45 9.50/3.45 U4_AGAG(x1, x2, x3, x4, x5) = U4_AGAG(x1, x2, x4, x5) 9.50/3.45 9.50/3.45 9.50/3.45 We have to consider all (P,R,Pi)-chains 9.50/3.45 9.50/3.45 9.50/3.45 Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES 9.50/3.45 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (48) 9.50/3.45 Obligation: 9.50/3.45 Pi DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> U5_AG(X1, X2, X3, subsetA_in_ag(X2, .(X1, X3))) 9.50/3.45 SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> SUBSETA_IN_AG(X2, .(X1, X3)) 9.50/3.45 SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> U6_AG(X1, X2, X3, X4, pB_in_agag(X1, X4, X2, X3)) 9.50/3.45 SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> PB_IN_AGAG(X1, X4, X2, X3) 9.50/3.45 PB_IN_AGAG(X1, X2, X3, X4) -> U2_AGAG(X1, X2, X3, X4, memberC_in_ag(X1, X2)) 9.50/3.45 PB_IN_AGAG(X1, X2, X3, X4) -> MEMBERC_IN_AG(X1, X2) 9.50/3.45 MEMBERC_IN_AG(X1, .(X2, X3)) -> U1_AG(X1, X2, X3, memberC_in_ag(X1, X3)) 9.50/3.45 MEMBERC_IN_AG(X1, .(X2, X3)) -> MEMBERC_IN_AG(X1, X3) 9.50/3.45 PB_IN_AGAG(X1, X2, X3, X4) -> U3_AGAG(X1, X2, X3, X4, membercC_in_ag(X1, X2)) 9.50/3.45 U3_AGAG(X1, X2, X3, X4, membercC_out_ag(X1, X2)) -> U4_AGAG(X1, X2, X3, X4, subsetA_in_ag(X3, .(X4, X2))) 9.50/3.45 U3_AGAG(X1, X2, X3, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(X3, .(X4, X2)) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 membercC_in_ag(X1, .(X1, X2)) -> membercC_out_ag(X1, .(X1, X2)) 9.50/3.45 membercC_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercC_in_ag(X1, X3)) 9.50/3.45 U10_ag(X1, X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3)) 9.50/3.45 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 subsetA_in_ag(x1, x2) = subsetA_in_ag(x2) 9.50/3.45 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 pB_in_agag(x1, x2, x3, x4) = pB_in_agag(x2, x4) 9.50/3.45 9.50/3.45 memberC_in_ag(x1, x2) = memberC_in_ag(x2) 9.50/3.45 9.50/3.45 membercC_in_ag(x1, x2) = membercC_in_ag(x2) 9.50/3.45 9.50/3.45 membercC_out_ag(x1, x2) = membercC_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U10_ag(x1, x2, x3, x4) = U10_ag(x2, x3, x4) 9.50/3.45 9.50/3.45 SUBSETA_IN_AG(x1, x2) = SUBSETA_IN_AG(x2) 9.50/3.45 9.50/3.45 U5_AG(x1, x2, x3, x4) = U5_AG(x1, x3, x4) 9.50/3.45 9.50/3.45 U6_AG(x1, x2, x3, x4, x5) = U6_AG(x3, x4, x5) 9.50/3.45 9.50/3.45 PB_IN_AGAG(x1, x2, x3, x4) = PB_IN_AGAG(x2, x4) 9.50/3.45 9.50/3.45 U2_AGAG(x1, x2, x3, x4, x5) = U2_AGAG(x2, x4, x5) 9.50/3.45 9.50/3.45 MEMBERC_IN_AG(x1, x2) = MEMBERC_IN_AG(x2) 9.50/3.45 9.50/3.45 U1_AG(x1, x2, x3, x4) = U1_AG(x2, x3, x4) 9.50/3.45 9.50/3.45 U3_AGAG(x1, x2, x3, x4, x5) = U3_AGAG(x2, x4, x5) 9.50/3.45 9.50/3.45 U4_AGAG(x1, x2, x3, x4, x5) = U4_AGAG(x1, x2, x4, x5) 9.50/3.45 9.50/3.45 9.50/3.45 We have to consider all (P,R,Pi)-chains 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (49) DependencyGraphProof (EQUIVALENT) 9.50/3.45 The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 6 less nodes. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (50) 9.50/3.45 Complex Obligation (AND) 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (51) 9.50/3.45 Obligation: 9.50/3.45 Pi DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 MEMBERC_IN_AG(X1, .(X2, X3)) -> MEMBERC_IN_AG(X1, X3) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 membercC_in_ag(X1, .(X1, X2)) -> membercC_out_ag(X1, .(X1, X2)) 9.50/3.45 membercC_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercC_in_ag(X1, X3)) 9.50/3.45 U10_ag(X1, X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3)) 9.50/3.45 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 membercC_in_ag(x1, x2) = membercC_in_ag(x2) 9.50/3.45 9.50/3.45 membercC_out_ag(x1, x2) = membercC_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U10_ag(x1, x2, x3, x4) = U10_ag(x2, x3, x4) 9.50/3.45 9.50/3.45 MEMBERC_IN_AG(x1, x2) = MEMBERC_IN_AG(x2) 9.50/3.45 9.50/3.45 9.50/3.45 We have to consider all (P,R,Pi)-chains 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (52) UsableRulesProof (EQUIVALENT) 9.50/3.45 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (53) 9.50/3.45 Obligation: 9.50/3.45 Pi DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 MEMBERC_IN_AG(X1, .(X2, X3)) -> MEMBERC_IN_AG(X1, X3) 9.50/3.45 9.50/3.45 R is empty. 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 MEMBERC_IN_AG(x1, x2) = MEMBERC_IN_AG(x2) 9.50/3.45 9.50/3.45 9.50/3.45 We have to consider all (P,R,Pi)-chains 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (54) PiDPToQDPProof (SOUND) 9.50/3.45 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (55) 9.50/3.45 Obligation: 9.50/3.45 Q DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 MEMBERC_IN_AG(.(X2, X3)) -> MEMBERC_IN_AG(X3) 9.50/3.45 9.50/3.45 R is empty. 9.50/3.45 Q is empty. 9.50/3.45 We have to consider all (P,Q,R)-chains. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (56) QDPSizeChangeProof (EQUIVALENT) 9.50/3.45 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 9.50/3.45 9.50/3.45 From the DPs we obtained the following set of size-change graphs: 9.50/3.45 *MEMBERC_IN_AG(.(X2, X3)) -> MEMBERC_IN_AG(X3) 9.50/3.45 The graph contains the following edges 1 > 1 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (57) 9.50/3.45 YES 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (58) 9.50/3.45 Obligation: 9.50/3.45 Pi DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> PB_IN_AGAG(X1, X4, X2, X3) 9.50/3.45 PB_IN_AGAG(X1, X2, X3, X4) -> U3_AGAG(X1, X2, X3, X4, membercC_in_ag(X1, X2)) 9.50/3.45 U3_AGAG(X1, X2, X3, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(X3, .(X4, X2)) 9.50/3.45 SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> SUBSETA_IN_AG(X2, .(X1, X3)) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 membercC_in_ag(X1, .(X1, X2)) -> membercC_out_ag(X1, .(X1, X2)) 9.50/3.45 membercC_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercC_in_ag(X1, X3)) 9.50/3.45 U10_ag(X1, X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3)) 9.50/3.45 9.50/3.45 The argument filtering Pi contains the following mapping: 9.50/3.45 .(x1, x2) = .(x1, x2) 9.50/3.45 9.50/3.45 membercC_in_ag(x1, x2) = membercC_in_ag(x2) 9.50/3.45 9.50/3.45 membercC_out_ag(x1, x2) = membercC_out_ag(x1, x2) 9.50/3.45 9.50/3.45 U10_ag(x1, x2, x3, x4) = U10_ag(x2, x3, x4) 9.50/3.45 9.50/3.45 SUBSETA_IN_AG(x1, x2) = SUBSETA_IN_AG(x2) 9.50/3.45 9.50/3.45 PB_IN_AGAG(x1, x2, x3, x4) = PB_IN_AGAG(x2, x4) 9.50/3.45 9.50/3.45 U3_AGAG(x1, x2, x3, x4, x5) = U3_AGAG(x2, x4, x5) 9.50/3.45 9.50/3.45 9.50/3.45 We have to consider all (P,R,Pi)-chains 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (59) PiDPToQDPProof (SOUND) 9.50/3.45 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (60) 9.50/3.45 Obligation: 9.50/3.45 Q DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 SUBSETA_IN_AG(.(X3, X4)) -> PB_IN_AGAG(X4, X3) 9.50/3.45 PB_IN_AGAG(X2, X4) -> U3_AGAG(X2, X4, membercC_in_ag(X2)) 9.50/3.45 U3_AGAG(X2, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(.(X4, X2)) 9.50/3.45 SUBSETA_IN_AG(.(X1, X3)) -> SUBSETA_IN_AG(.(X1, X3)) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 membercC_in_ag(.(X1, X2)) -> membercC_out_ag(X1, .(X1, X2)) 9.50/3.45 membercC_in_ag(.(X2, X3)) -> U10_ag(X2, X3, membercC_in_ag(X3)) 9.50/3.45 U10_ag(X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3)) 9.50/3.45 9.50/3.45 The set Q consists of the following terms: 9.50/3.45 9.50/3.45 membercC_in_ag(x0) 9.50/3.45 U10_ag(x0, x1, x2) 9.50/3.45 9.50/3.45 We have to consider all (P,Q,R)-chains. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (61) TransformationProof (SOUND) 9.50/3.45 By narrowing [LPAR04] the rule PB_IN_AGAG(X2, X4) -> U3_AGAG(X2, X4, membercC_in_ag(X2)) at position [2] we obtained the following new rules [LPAR04]: 9.50/3.45 9.50/3.45 (PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, membercC_out_ag(x0, .(x0, x1))),PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, membercC_out_ag(x0, .(x0, x1)))) 9.50/3.45 (PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, U10_ag(x0, x1, membercC_in_ag(x1))),PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, U10_ag(x0, x1, membercC_in_ag(x1)))) 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (62) 9.50/3.45 Obligation: 9.50/3.45 Q DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 SUBSETA_IN_AG(.(X3, X4)) -> PB_IN_AGAG(X4, X3) 9.50/3.45 U3_AGAG(X2, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(.(X4, X2)) 9.50/3.45 SUBSETA_IN_AG(.(X1, X3)) -> SUBSETA_IN_AG(.(X1, X3)) 9.50/3.45 PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, membercC_out_ag(x0, .(x0, x1))) 9.50/3.45 PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, U10_ag(x0, x1, membercC_in_ag(x1))) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 membercC_in_ag(.(X1, X2)) -> membercC_out_ag(X1, .(X1, X2)) 9.50/3.45 membercC_in_ag(.(X2, X3)) -> U10_ag(X2, X3, membercC_in_ag(X3)) 9.50/3.45 U10_ag(X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3)) 9.50/3.45 9.50/3.45 The set Q consists of the following terms: 9.50/3.45 9.50/3.45 membercC_in_ag(x0) 9.50/3.45 U10_ag(x0, x1, x2) 9.50/3.45 9.50/3.45 We have to consider all (P,Q,R)-chains. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (63) TransformationProof (EQUIVALENT) 9.50/3.45 By instantiating [LPAR04] the rule U3_AGAG(X2, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(.(X4, X2)) we obtained the following new rules [LPAR04]: 9.50/3.45 9.50/3.45 (U3_AGAG(.(z0, z1), z2, membercC_out_ag(z0, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1))),U3_AGAG(.(z0, z1), z2, membercC_out_ag(z0, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1)))) 9.50/3.45 (U3_AGAG(.(z0, z1), z2, membercC_out_ag(x2, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1))),U3_AGAG(.(z0, z1), z2, membercC_out_ag(x2, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1)))) 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (64) 9.50/3.45 Obligation: 9.50/3.45 Q DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 SUBSETA_IN_AG(.(X3, X4)) -> PB_IN_AGAG(X4, X3) 9.50/3.45 SUBSETA_IN_AG(.(X1, X3)) -> SUBSETA_IN_AG(.(X1, X3)) 9.50/3.45 PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, membercC_out_ag(x0, .(x0, x1))) 9.50/3.45 PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, U10_ag(x0, x1, membercC_in_ag(x1))) 9.50/3.45 U3_AGAG(.(z0, z1), z2, membercC_out_ag(z0, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1))) 9.50/3.45 U3_AGAG(.(z0, z1), z2, membercC_out_ag(x2, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1))) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 membercC_in_ag(.(X1, X2)) -> membercC_out_ag(X1, .(X1, X2)) 9.50/3.45 membercC_in_ag(.(X2, X3)) -> U10_ag(X2, X3, membercC_in_ag(X3)) 9.50/3.45 U10_ag(X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3)) 9.50/3.45 9.50/3.45 The set Q consists of the following terms: 9.50/3.45 9.50/3.45 membercC_in_ag(x0) 9.50/3.45 U10_ag(x0, x1, x2) 9.50/3.45 9.50/3.45 We have to consider all (P,Q,R)-chains. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (65) TransformationProof (EQUIVALENT) 9.50/3.45 By forward instantiating [JAR06] the rule SUBSETA_IN_AG(.(X3, X4)) -> PB_IN_AGAG(X4, X3) we obtained the following new rules [LPAR04]: 9.50/3.45 9.50/3.45 (SUBSETA_IN_AG(.(x0, .(y_0, y_1))) -> PB_IN_AGAG(.(y_0, y_1), x0),SUBSETA_IN_AG(.(x0, .(y_0, y_1))) -> PB_IN_AGAG(.(y_0, y_1), x0)) 9.50/3.45 9.50/3.45 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (66) 9.50/3.45 Obligation: 9.50/3.45 Q DP problem: 9.50/3.45 The TRS P consists of the following rules: 9.50/3.45 9.50/3.45 SUBSETA_IN_AG(.(X1, X3)) -> SUBSETA_IN_AG(.(X1, X3)) 9.50/3.45 PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, membercC_out_ag(x0, .(x0, x1))) 9.50/3.45 PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, U10_ag(x0, x1, membercC_in_ag(x1))) 9.50/3.45 U3_AGAG(.(z0, z1), z2, membercC_out_ag(z0, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1))) 9.50/3.45 U3_AGAG(.(z0, z1), z2, membercC_out_ag(x2, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1))) 9.50/3.45 SUBSETA_IN_AG(.(x0, .(y_0, y_1))) -> PB_IN_AGAG(.(y_0, y_1), x0) 9.50/3.45 9.50/3.45 The TRS R consists of the following rules: 9.50/3.45 9.50/3.45 membercC_in_ag(.(X1, X2)) -> membercC_out_ag(X1, .(X1, X2)) 9.50/3.45 membercC_in_ag(.(X2, X3)) -> U10_ag(X2, X3, membercC_in_ag(X3)) 9.50/3.45 U10_ag(X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3)) 9.50/3.45 9.50/3.45 The set Q consists of the following terms: 9.50/3.45 9.50/3.45 membercC_in_ag(x0) 9.50/3.45 U10_ag(x0, x1, x2) 9.50/3.45 9.50/3.45 We have to consider all (P,Q,R)-chains. 9.50/3.45 ---------------------------------------- 9.50/3.45 9.50/3.45 (67) PrologToTRSTransformerProof (SOUND) 9.50/3.45 Transformed Prolog program to TRS. 9.50/3.45 9.50/3.45 { 9.50/3.45 "root": 9, 9.50/3.45 "program": { 9.50/3.45 "directives": [], 9.50/3.45 "clauses": [ 9.50/3.45 [ 9.50/3.45 "(subset ([]) X1)", 9.50/3.45 null 9.50/3.45 ], 9.50/3.45 [ 9.50/3.45 "(subset (. X Xs) Ys)", 9.50/3.45 "(',' (member X Ys) (subset Xs Ys))" 9.50/3.45 ], 9.50/3.45 [ 9.50/3.45 "(member X (. X X2))", 9.50/3.45 null 9.50/3.45 ], 9.50/3.45 [ 9.50/3.45 "(member X (. X3 Xs))", 9.50/3.45 "(member X Xs)" 9.50/3.45 ] 9.50/3.45 ] 9.50/3.45 }, 9.50/3.45 "graph": { 9.50/3.45 "nodes": { 9.50/3.45 "24": { 9.50/3.45 "goal": [ 9.50/3.45 { 9.50/3.45 "clause": 0, 9.50/3.45 "scope": 1, 9.50/3.45 "term": "(subset T1 T2)" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "clause": 1, 9.50/3.45 "scope": 1, 9.50/3.45 "term": "(subset T1 T2)" 9.50/3.45 } 9.50/3.45 ], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T2"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "25": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 0, 9.50/3.45 "scope": 1, 9.50/3.45 "term": "(subset T1 T2)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T2"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "26": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 1, 9.50/3.45 "scope": 1, 9.50/3.45 "term": "(subset T1 T2)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T2"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "type": "Nodes", 9.50/3.45 "150": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(',' (member T17 T16) (subset T18 T16))" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T16"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "140": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(true)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "151": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "142": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "200": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(member T17 T16)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T16"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "201": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": -1, 9.50/3.45 "scope": -1, 9.50/3.45 "term": "(subset T23 T16)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T16"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "147": { 9.50/3.45 "goal": [], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": [], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "202": { 9.50/3.45 "goal": [ 9.50/3.45 { 9.50/3.45 "clause": 2, 9.50/3.45 "scope": 2, 9.50/3.45 "term": "(member T17 T16)" 9.50/3.45 }, 9.50/3.45 { 9.50/3.45 "clause": 3, 9.50/3.45 "scope": 2, 9.50/3.45 "term": "(member T17 T16)" 9.50/3.45 } 9.50/3.45 ], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T16"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "203": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 2, 9.50/3.45 "scope": 2, 9.50/3.45 "term": "(member T17 T16)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.45 "relations": [] 9.50/3.45 }, 9.50/3.45 "ground": ["T16"], 9.50/3.45 "free": [], 9.50/3.45 "exprvars": [] 9.50/3.45 } 9.50/3.45 }, 9.50/3.45 "204": { 9.50/3.45 "goal": [{ 9.50/3.45 "clause": 3, 9.50/3.45 "scope": 2, 9.50/3.45 "term": "(member T17 T16)" 9.50/3.45 }], 9.50/3.45 "kb": { 9.50/3.45 "nonunifying": [], 9.50/3.45 "intvars": {}, 9.50/3.45 "arithmetic": { 9.50/3.45 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T16"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "205": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": -1, 9.50/3.46 "scope": -1, 9.50/3.46 "term": "(true)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "206": { 9.50/3.46 "goal": [], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "9": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": -1, 9.50/3.46 "scope": -1, 9.50/3.46 "term": "(subset T1 T2)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T2"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "207": { 9.50/3.46 "goal": [], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "208": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": -1, 9.50/3.46 "scope": -1, 9.50/3.46 "term": "(member T47 T46)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T46"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "209": { 9.50/3.46 "goal": [], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "edges": [ 9.50/3.46 { 9.50/3.46 "from": 9, 9.50/3.46 "to": 24, 9.50/3.46 "label": "CASE" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 24, 9.50/3.46 "to": 25, 9.50/3.46 "label": "PARALLEL" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 24, 9.50/3.46 "to": 26, 9.50/3.46 "label": "PARALLEL" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 25, 9.50/3.46 "to": 140, 9.50/3.46 "label": "EVAL with clause\nsubset([], X8).\nand substitutionT1 -> [],\nT2 -> T7,\nX8 -> T7" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 25, 9.50/3.46 "to": 142, 9.50/3.46 "label": "EVAL-BACKTRACK" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 26, 9.50/3.46 "to": 150, 9.50/3.46 "label": "EVAL with clause\nsubset(.(X15, X16), X17) :- ','(member(X15, X17), subset(X16, X17)).\nand substitutionX15 -> T17,\nX16 -> T18,\nT1 -> .(T17, T18),\nT2 -> T16,\nX17 -> T16,\nT14 -> T17,\nT15 -> T18" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 26, 9.50/3.46 "to": 151, 9.50/3.46 "label": "EVAL-BACKTRACK" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 140, 9.50/3.46 "to": 147, 9.50/3.46 "label": "SUCCESS" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 150, 9.50/3.46 "to": 200, 9.50/3.46 "label": "SPLIT 1" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 150, 9.50/3.46 "to": 201, 9.50/3.46 "label": "SPLIT 2\nnew knowledge:\nT17 is ground\nT16 is ground\nreplacements:T18 -> T23" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 200, 9.50/3.46 "to": 202, 9.50/3.46 "label": "CASE" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 201, 9.50/3.46 "to": 9, 9.50/3.46 "label": "INSTANCE with matching:\nT1 -> T23\nT2 -> T16" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 202, 9.50/3.46 "to": 203, 9.50/3.46 "label": "PARALLEL" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 202, 9.50/3.46 "to": 204, 9.50/3.46 "label": "PARALLEL" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 203, 9.50/3.46 "to": 205, 9.50/3.46 "label": "EVAL with clause\nmember(X34, .(X34, X35)).\nand substitutionT17 -> T36,\nX34 -> T36,\nX35 -> T37,\nT16 -> .(T36, T37)" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 203, 9.50/3.46 "to": 206, 9.50/3.46 "label": "EVAL-BACKTRACK" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 204, 9.50/3.46 "to": 208, 9.50/3.46 "label": "EVAL with clause\nmember(X42, .(X43, X44)) :- member(X42, X44).\nand substitutionT17 -> T47,\nX42 -> T47,\nX43 -> T45,\nX44 -> T46,\nT16 -> .(T45, T46),\nT44 -> T47" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 204, 9.50/3.46 "to": 209, 9.50/3.46 "label": "EVAL-BACKTRACK" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 205, 9.50/3.46 "to": 207, 9.50/3.46 "label": "SUCCESS" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 208, 9.50/3.46 "to": 200, 9.50/3.46 "label": "INSTANCE with matching:\nT17 -> T47\nT16 -> T46" 9.50/3.46 } 9.50/3.46 ], 9.50/3.46 "type": "Graph" 9.50/3.46 } 9.50/3.46 } 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (68) 9.50/3.46 Obligation: 9.50/3.46 Q restricted rewrite system: 9.50/3.46 The TRS R consists of the following rules: 9.50/3.46 9.50/3.46 f9_in(T7) -> f9_out1([]) 9.50/3.46 f9_in(T16) -> U1(f150_in(T16), T16) 9.50/3.46 U1(f150_out1(T17, T18), T16) -> f9_out1(.(T17, T18)) 9.50/3.46 f200_in(.(T36, T37)) -> f200_out1(T36) 9.50/3.46 f200_in(.(T45, T46)) -> U2(f200_in(T46), .(T45, T46)) 9.50/3.46 U2(f200_out1(T47), .(T45, T46)) -> f200_out1(T47) 9.50/3.46 f150_in(T16) -> U3(f200_in(T16), T16) 9.50/3.46 U3(f200_out1(T17), T16) -> U4(f9_in(T16), T16, T17) 9.50/3.46 U4(f9_out1(T23), T16, T17) -> f150_out1(T17, T23) 9.50/3.46 9.50/3.46 Q is empty. 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (69) DependencyPairsProof (EQUIVALENT) 9.50/3.46 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (70) 9.50/3.46 Obligation: 9.50/3.46 Q DP problem: 9.50/3.46 The TRS P consists of the following rules: 9.50/3.46 9.50/3.46 F9_IN(T16) -> U1^1(f150_in(T16), T16) 9.50/3.46 F9_IN(T16) -> F150_IN(T16) 9.50/3.46 F200_IN(.(T45, T46)) -> U2^1(f200_in(T46), .(T45, T46)) 9.50/3.46 F200_IN(.(T45, T46)) -> F200_IN(T46) 9.50/3.46 F150_IN(T16) -> U3^1(f200_in(T16), T16) 9.50/3.46 F150_IN(T16) -> F200_IN(T16) 9.50/3.46 U3^1(f200_out1(T17), T16) -> U4^1(f9_in(T16), T16, T17) 9.50/3.46 U3^1(f200_out1(T17), T16) -> F9_IN(T16) 9.50/3.46 9.50/3.46 The TRS R consists of the following rules: 9.50/3.46 9.50/3.46 f9_in(T7) -> f9_out1([]) 9.50/3.46 f9_in(T16) -> U1(f150_in(T16), T16) 9.50/3.46 U1(f150_out1(T17, T18), T16) -> f9_out1(.(T17, T18)) 9.50/3.46 f200_in(.(T36, T37)) -> f200_out1(T36) 9.50/3.46 f200_in(.(T45, T46)) -> U2(f200_in(T46), .(T45, T46)) 9.50/3.46 U2(f200_out1(T47), .(T45, T46)) -> f200_out1(T47) 9.50/3.46 f150_in(T16) -> U3(f200_in(T16), T16) 9.50/3.46 U3(f200_out1(T17), T16) -> U4(f9_in(T16), T16, T17) 9.50/3.46 U4(f9_out1(T23), T16, T17) -> f150_out1(T17, T23) 9.50/3.46 9.50/3.46 Q is empty. 9.50/3.46 We have to consider all minimal (P,Q,R)-chains. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (71) DependencyGraphProof (EQUIVALENT) 9.50/3.46 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 4 less nodes. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (72) 9.50/3.46 Complex Obligation (AND) 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (73) 9.50/3.46 Obligation: 9.50/3.46 Q DP problem: 9.50/3.46 The TRS P consists of the following rules: 9.50/3.46 9.50/3.46 F200_IN(.(T45, T46)) -> F200_IN(T46) 9.50/3.46 9.50/3.46 The TRS R consists of the following rules: 9.50/3.46 9.50/3.46 f9_in(T7) -> f9_out1([]) 9.50/3.46 f9_in(T16) -> U1(f150_in(T16), T16) 9.50/3.46 U1(f150_out1(T17, T18), T16) -> f9_out1(.(T17, T18)) 9.50/3.46 f200_in(.(T36, T37)) -> f200_out1(T36) 9.50/3.46 f200_in(.(T45, T46)) -> U2(f200_in(T46), .(T45, T46)) 9.50/3.46 U2(f200_out1(T47), .(T45, T46)) -> f200_out1(T47) 9.50/3.46 f150_in(T16) -> U3(f200_in(T16), T16) 9.50/3.46 U3(f200_out1(T17), T16) -> U4(f9_in(T16), T16, T17) 9.50/3.46 U4(f9_out1(T23), T16, T17) -> f150_out1(T17, T23) 9.50/3.46 9.50/3.46 Q is empty. 9.50/3.46 We have to consider all minimal (P,Q,R)-chains. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (74) UsableRulesProof (EQUIVALENT) 9.50/3.46 We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (75) 9.50/3.46 Obligation: 9.50/3.46 Q DP problem: 9.50/3.46 The TRS P consists of the following rules: 9.50/3.46 9.50/3.46 F200_IN(.(T45, T46)) -> F200_IN(T46) 9.50/3.46 9.50/3.46 R is empty. 9.50/3.46 Q is empty. 9.50/3.46 We have to consider all minimal (P,Q,R)-chains. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (76) QDPSizeChangeProof (EQUIVALENT) 9.50/3.46 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 9.50/3.46 9.50/3.46 From the DPs we obtained the following set of size-change graphs: 9.50/3.46 *F200_IN(.(T45, T46)) -> F200_IN(T46) 9.50/3.46 The graph contains the following edges 1 > 1 9.50/3.46 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (77) 9.50/3.46 YES 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (78) 9.50/3.46 Obligation: 9.50/3.46 Q DP problem: 9.50/3.46 The TRS P consists of the following rules: 9.50/3.46 9.50/3.46 F9_IN(T16) -> F150_IN(T16) 9.50/3.46 F150_IN(T16) -> U3^1(f200_in(T16), T16) 9.50/3.46 U3^1(f200_out1(T17), T16) -> F9_IN(T16) 9.50/3.46 9.50/3.46 The TRS R consists of the following rules: 9.50/3.46 9.50/3.46 f9_in(T7) -> f9_out1([]) 9.50/3.46 f9_in(T16) -> U1(f150_in(T16), T16) 9.50/3.46 U1(f150_out1(T17, T18), T16) -> f9_out1(.(T17, T18)) 9.50/3.46 f200_in(.(T36, T37)) -> f200_out1(T36) 9.50/3.46 f200_in(.(T45, T46)) -> U2(f200_in(T46), .(T45, T46)) 9.50/3.46 U2(f200_out1(T47), .(T45, T46)) -> f200_out1(T47) 9.50/3.46 f150_in(T16) -> U3(f200_in(T16), T16) 9.50/3.46 U3(f200_out1(T17), T16) -> U4(f9_in(T16), T16, T17) 9.50/3.46 U4(f9_out1(T23), T16, T17) -> f150_out1(T17, T23) 9.50/3.46 9.50/3.46 Q is empty. 9.50/3.46 We have to consider all minimal (P,Q,R)-chains. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (79) NonTerminationLoopProof (COMPLETE) 9.50/3.46 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 9.50/3.46 Found a loop by narrowing to the left: 9.50/3.46 9.50/3.46 s = F150_IN(.(T36, T37)) evaluates to t =F150_IN(.(T36, T37)) 9.50/3.46 9.50/3.46 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 9.50/3.46 * Matcher: [ ] 9.50/3.46 * Semiunifier: [ ] 9.50/3.46 9.50/3.46 -------------------------------------------------------------------------------- 9.50/3.46 Rewriting sequence 9.50/3.46 9.50/3.46 F150_IN(.(T36, T37)) -> U3^1(f200_in(.(T36, T37)), .(T36, T37)) 9.50/3.46 with rule F150_IN(T16) -> U3^1(f200_in(T16), T16) at position [] and matcher [T16 / .(T36, T37)] 9.50/3.46 9.50/3.46 U3^1(f200_in(.(T36, T37)), .(T36, T37)) -> U3^1(f200_out1(T36), .(T36, T37)) 9.50/3.46 with rule f200_in(.(T36', T37')) -> f200_out1(T36') at position [0] and matcher [T36' / T36, T37' / T37] 9.50/3.46 9.50/3.46 U3^1(f200_out1(T36), .(T36, T37)) -> F9_IN(.(T36, T37)) 9.50/3.46 with rule U3^1(f200_out1(T17), T16') -> F9_IN(T16') at position [] and matcher [T17 / T36, T16' / .(T36, T37)] 9.50/3.46 9.50/3.46 F9_IN(.(T36, T37)) -> F150_IN(.(T36, T37)) 9.50/3.46 with rule F9_IN(T16) -> F150_IN(T16) 9.50/3.46 9.50/3.46 Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence 9.50/3.46 9.50/3.46 9.50/3.46 All these steps are and every following step will be a correct step w.r.t to Q. 9.50/3.46 9.50/3.46 9.50/3.46 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (80) 9.50/3.46 NO 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (81) PrologToIRSwTTransformerProof (SOUND) 9.50/3.46 Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert 9.50/3.46 9.50/3.46 { 9.50/3.46 "root": 11, 9.50/3.46 "program": { 9.50/3.46 "directives": [], 9.50/3.46 "clauses": [ 9.50/3.46 [ 9.50/3.46 "(subset ([]) X1)", 9.50/3.46 null 9.50/3.46 ], 9.50/3.46 [ 9.50/3.46 "(subset (. X Xs) Ys)", 9.50/3.46 "(',' (member X Ys) (subset Xs Ys))" 9.50/3.46 ], 9.50/3.46 [ 9.50/3.46 "(member X (. X X2))", 9.50/3.46 null 9.50/3.46 ], 9.50/3.46 [ 9.50/3.46 "(member X (. X3 Xs))", 9.50/3.46 "(member X Xs)" 9.50/3.46 ] 9.50/3.46 ] 9.50/3.46 }, 9.50/3.46 "graph": { 9.50/3.46 "nodes": { 9.50/3.46 "11": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": -1, 9.50/3.46 "scope": -1, 9.50/3.46 "term": "(subset T1 T2)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T2"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "22": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": 0, 9.50/3.46 "scope": 1, 9.50/3.46 "term": "(subset T1 T2)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T2"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "23": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": 1, 9.50/3.46 "scope": 1, 9.50/3.46 "term": "(subset T1 T2)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T2"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "19": { 9.50/3.46 "goal": [ 9.50/3.46 { 9.50/3.46 "clause": 0, 9.50/3.46 "scope": 1, 9.50/3.46 "term": "(subset T1 T2)" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "clause": 1, 9.50/3.46 "scope": 1, 9.50/3.46 "term": "(subset T1 T2)" 9.50/3.46 } 9.50/3.46 ], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T2"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "190": { 9.50/3.46 "goal": [], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "191": { 9.50/3.46 "goal": [], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "192": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": -1, 9.50/3.46 "scope": -1, 9.50/3.46 "term": "(member T47 T46)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T46"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "160": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": -1, 9.50/3.46 "scope": -1, 9.50/3.46 "term": "(member T17 T16)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T16"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "193": { 9.50/3.46 "goal": [], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "type": "Nodes", 9.50/3.46 "161": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": -1, 9.50/3.46 "scope": -1, 9.50/3.46 "term": "(subset T23 T16)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T16"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "162": { 9.50/3.46 "goal": [ 9.50/3.46 { 9.50/3.46 "clause": 2, 9.50/3.46 "scope": 2, 9.50/3.46 "term": "(member T17 T16)" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "clause": 3, 9.50/3.46 "scope": 2, 9.50/3.46 "term": "(member T17 T16)" 9.50/3.46 } 9.50/3.46 ], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T16"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "186": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": 2, 9.50/3.46 "scope": 2, 9.50/3.46 "term": "(member T17 T16)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T16"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "187": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": 3, 9.50/3.46 "scope": 2, 9.50/3.46 "term": "(member T17 T16)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T16"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "144": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": -1, 9.50/3.46 "scope": -1, 9.50/3.46 "term": "(true)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "145": { 9.50/3.46 "goal": [], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "189": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": -1, 9.50/3.46 "scope": -1, 9.50/3.46 "term": "(true)" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "146": { 9.50/3.46 "goal": [], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "148": { 9.50/3.46 "goal": [{ 9.50/3.46 "clause": -1, 9.50/3.46 "scope": -1, 9.50/3.46 "term": "(',' (member T17 T16) (subset T18 T16))" 9.50/3.46 }], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": ["T16"], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "149": { 9.50/3.46 "goal": [], 9.50/3.46 "kb": { 9.50/3.46 "nonunifying": [], 9.50/3.46 "intvars": {}, 9.50/3.46 "arithmetic": { 9.50/3.46 "type": "PlainIntegerRelationState", 9.50/3.46 "relations": [] 9.50/3.46 }, 9.50/3.46 "ground": [], 9.50/3.46 "free": [], 9.50/3.46 "exprvars": [] 9.50/3.46 } 9.50/3.46 } 9.50/3.46 }, 9.50/3.46 "edges": [ 9.50/3.46 { 9.50/3.46 "from": 11, 9.50/3.46 "to": 19, 9.50/3.46 "label": "CASE" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 19, 9.50/3.46 "to": 22, 9.50/3.46 "label": "PARALLEL" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 19, 9.50/3.46 "to": 23, 9.50/3.46 "label": "PARALLEL" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 22, 9.50/3.46 "to": 144, 9.50/3.46 "label": "EVAL with clause\nsubset([], X8).\nand substitutionT1 -> [],\nT2 -> T7,\nX8 -> T7" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 22, 9.50/3.46 "to": 145, 9.50/3.46 "label": "EVAL-BACKTRACK" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 23, 9.50/3.46 "to": 148, 9.50/3.46 "label": "EVAL with clause\nsubset(.(X15, X16), X17) :- ','(member(X15, X17), subset(X16, X17)).\nand substitutionX15 -> T17,\nX16 -> T18,\nT1 -> .(T17, T18),\nT2 -> T16,\nX17 -> T16,\nT14 -> T17,\nT15 -> T18" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 23, 9.50/3.46 "to": 149, 9.50/3.46 "label": "EVAL-BACKTRACK" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 144, 9.50/3.46 "to": 146, 9.50/3.46 "label": "SUCCESS" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 148, 9.50/3.46 "to": 160, 9.50/3.46 "label": "SPLIT 1" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 148, 9.50/3.46 "to": 161, 9.50/3.46 "label": "SPLIT 2\nnew knowledge:\nT17 is ground\nT16 is ground\nreplacements:T18 -> T23" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 160, 9.50/3.46 "to": 162, 9.50/3.46 "label": "CASE" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 161, 9.50/3.46 "to": 11, 9.50/3.46 "label": "INSTANCE with matching:\nT1 -> T23\nT2 -> T16" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 162, 9.50/3.46 "to": 186, 9.50/3.46 "label": "PARALLEL" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 162, 9.50/3.46 "to": 187, 9.50/3.46 "label": "PARALLEL" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 186, 9.50/3.46 "to": 189, 9.50/3.46 "label": "EVAL with clause\nmember(X34, .(X34, X35)).\nand substitutionT17 -> T36,\nX34 -> T36,\nX35 -> T37,\nT16 -> .(T36, T37)" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 186, 9.50/3.46 "to": 190, 9.50/3.46 "label": "EVAL-BACKTRACK" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 187, 9.50/3.46 "to": 192, 9.50/3.46 "label": "EVAL with clause\nmember(X42, .(X43, X44)) :- member(X42, X44).\nand substitutionT17 -> T47,\nX42 -> T47,\nX43 -> T45,\nX44 -> T46,\nT16 -> .(T45, T46),\nT44 -> T47" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 187, 9.50/3.46 "to": 193, 9.50/3.46 "label": "EVAL-BACKTRACK" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 189, 9.50/3.46 "to": 191, 9.50/3.46 "label": "SUCCESS" 9.50/3.46 }, 9.50/3.46 { 9.50/3.46 "from": 192, 9.50/3.46 "to": 160, 9.50/3.46 "label": "INSTANCE with matching:\nT17 -> T47\nT16 -> T46" 9.50/3.46 } 9.50/3.46 ], 9.50/3.46 "type": "Graph" 9.50/3.46 } 9.50/3.46 } 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (82) 9.50/3.46 Complex Obligation (AND) 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (83) 9.50/3.46 Obligation: 9.50/3.46 Rules: 9.50/3.46 f186_out(T16) -> f162_out(T16) :|: TRUE 9.50/3.46 f162_in(x) -> f187_in(x) :|: TRUE 9.50/3.46 f187_out(x1) -> f162_out(x1) :|: TRUE 9.50/3.46 f162_in(x2) -> f186_in(x2) :|: TRUE 9.50/3.46 f160_out(T46) -> f192_out(T46) :|: TRUE 9.50/3.46 f192_in(x3) -> f160_in(x3) :|: TRUE 9.50/3.46 f193_out -> f187_out(x4) :|: TRUE 9.50/3.46 f187_in(x5) -> f193_in :|: TRUE 9.50/3.46 f192_out(x6) -> f187_out(.(x7, x6)) :|: TRUE 9.50/3.46 f187_in(.(x8, x9)) -> f192_in(x9) :|: TRUE 9.50/3.46 f162_out(x10) -> f160_out(x10) :|: TRUE 9.50/3.46 f160_in(x11) -> f162_in(x11) :|: TRUE 9.50/3.46 f11_in(T2) -> f19_in(T2) :|: TRUE 9.50/3.46 f19_out(x12) -> f11_out(x12) :|: TRUE 9.50/3.46 f19_in(x13) -> f23_in(x13) :|: TRUE 9.50/3.46 f22_out(x14) -> f19_out(x14) :|: TRUE 9.50/3.46 f19_in(x15) -> f22_in(x15) :|: TRUE 9.50/3.46 f23_out(x16) -> f19_out(x16) :|: TRUE 9.50/3.46 f149_out -> f23_out(x17) :|: TRUE 9.50/3.46 f148_out(x18) -> f23_out(x18) :|: TRUE 9.50/3.46 f23_in(x19) -> f149_in :|: TRUE 9.50/3.46 f23_in(x20) -> f148_in(x20) :|: TRUE 9.50/3.46 f161_out(x21) -> f148_out(x21) :|: TRUE 9.50/3.46 f160_out(x22) -> f161_in(x22) :|: TRUE 9.50/3.46 f148_in(x23) -> f160_in(x23) :|: TRUE 9.50/3.46 Start term: f11_in(T2) 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (84) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 9.50/3.46 Constructed simple dependency graph. 9.50/3.46 9.50/3.46 Simplified to the following IRSwTs: 9.50/3.46 9.50/3.46 intTRSProblem: 9.50/3.46 f162_in(x) -> f187_in(x) :|: TRUE 9.50/3.46 f192_in(x3) -> f160_in(x3) :|: TRUE 9.50/3.46 f187_in(.(x8, x9)) -> f192_in(x9) :|: TRUE 9.50/3.46 f160_in(x11) -> f162_in(x11) :|: TRUE 9.50/3.46 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (85) 9.50/3.46 Obligation: 9.50/3.46 Rules: 9.50/3.46 f162_in(x) -> f187_in(x) :|: TRUE 9.50/3.46 f192_in(x3) -> f160_in(x3) :|: TRUE 9.50/3.46 f187_in(.(x8, x9)) -> f192_in(x9) :|: TRUE 9.50/3.46 f160_in(x11) -> f162_in(x11) :|: TRUE 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (86) IntTRSCompressionProof (EQUIVALENT) 9.50/3.46 Compressed rules. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (87) 9.50/3.46 Obligation: 9.50/3.46 Rules: 9.50/3.46 f162_in(.(x8:0, x9:0)) -> f162_in(x9:0) :|: TRUE 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (88) IRSFormatTransformerProof (EQUIVALENT) 9.50/3.46 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (89) 9.50/3.46 Obligation: 9.50/3.46 Rules: 9.50/3.46 f162_in(.(x8:0, x9:0)) -> f162_in(x9:0) :|: TRUE 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (90) IRSwTTerminationDigraphProof (EQUIVALENT) 9.50/3.46 Constructed termination digraph! 9.50/3.46 Nodes: 9.50/3.46 (1) f162_in(.(x8:0, x9:0)) -> f162_in(x9:0) :|: TRUE 9.50/3.46 9.50/3.46 Arcs: 9.50/3.46 (1) -> (1) 9.50/3.46 9.50/3.46 This digraph is fully evaluated! 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (91) 9.50/3.46 Obligation: 9.50/3.46 9.50/3.46 Termination digraph: 9.50/3.46 Nodes: 9.50/3.46 (1) f162_in(.(x8:0, x9:0)) -> f162_in(x9:0) :|: TRUE 9.50/3.46 9.50/3.46 Arcs: 9.50/3.46 (1) -> (1) 9.50/3.46 9.50/3.46 This digraph is fully evaluated! 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (92) IntTRSUnneededArgumentFilterProof (EQUIVALENT) 9.50/3.46 Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: 9.50/3.46 9.50/3.46 .(x1, x2) -> .(x2) 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (93) 9.50/3.46 Obligation: 9.50/3.46 Rules: 9.50/3.46 f162_in(.(x9:0)) -> f162_in(x9:0) :|: TRUE 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (94) TempFilterProof (SOUND) 9.50/3.46 Used the following sort dictionary for filtering: 9.50/3.46 f162_in(VARIABLE) 9.50/3.46 .(VARIABLE) 9.50/3.46 Removed predefined arithmetic. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (95) 9.50/3.46 Obligation: 9.50/3.46 Rules: 9.50/3.46 f162_in(.(x9:0)) -> f162_in(x9:0) 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (96) IRSwTToQDPProof (SOUND) 9.50/3.46 Removed the integers and created a QDP-Problem. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (97) 9.50/3.46 Obligation: 9.50/3.46 Q DP problem: 9.50/3.46 The TRS P consists of the following rules: 9.50/3.46 9.50/3.46 f162_in(.(x9:0)) -> f162_in(x9:0) 9.50/3.46 9.50/3.46 R is empty. 9.50/3.46 Q is empty. 9.50/3.46 We have to consider all (P,Q,R)-chains. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (98) QDPSizeChangeProof (EQUIVALENT) 9.50/3.46 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 9.50/3.46 9.50/3.46 From the DPs we obtained the following set of size-change graphs: 9.50/3.46 *f162_in(.(x9:0)) -> f162_in(x9:0) 9.50/3.46 The graph contains the following edges 1 > 1 9.50/3.46 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (99) 9.50/3.46 YES 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (100) 9.50/3.46 Obligation: 9.50/3.46 Rules: 9.50/3.46 f161_out(T16) -> f148_out(T16) :|: TRUE 9.50/3.46 f160_out(x) -> f161_in(x) :|: TRUE 9.50/3.46 f148_in(x1) -> f160_in(x1) :|: TRUE 9.50/3.46 f189_in -> f189_out :|: TRUE 9.50/3.46 f186_in(x2) -> f190_in :|: TRUE 9.50/3.46 f189_out -> f186_out(.(T36, T37)) :|: TRUE 9.50/3.46 f186_in(.(x3, x4)) -> f189_in :|: TRUE 9.50/3.46 f190_out -> f186_out(x5) :|: TRUE 9.50/3.46 f19_in(T2) -> f23_in(T2) :|: TRUE 9.50/3.46 f22_out(x6) -> f19_out(x6) :|: TRUE 9.50/3.46 f19_in(x7) -> f22_in(x7) :|: TRUE 9.50/3.46 f23_out(x8) -> f19_out(x8) :|: TRUE 9.50/3.46 f11_in(x9) -> f19_in(x9) :|: TRUE 9.50/3.46 f19_out(x10) -> f11_out(x10) :|: TRUE 9.50/3.46 f11_out(x11) -> f161_out(x11) :|: TRUE 9.50/3.46 f161_in(x12) -> f11_in(x12) :|: TRUE 9.50/3.46 f149_out -> f23_out(x13) :|: TRUE 9.50/3.46 f148_out(x14) -> f23_out(x14) :|: TRUE 9.50/3.46 f23_in(x15) -> f149_in :|: TRUE 9.50/3.46 f23_in(x16) -> f148_in(x16) :|: TRUE 9.50/3.46 f186_out(x17) -> f162_out(x17) :|: TRUE 9.50/3.46 f162_in(x18) -> f187_in(x18) :|: TRUE 9.50/3.46 f187_out(x19) -> f162_out(x19) :|: TRUE 9.50/3.46 f162_in(x20) -> f186_in(x20) :|: TRUE 9.50/3.46 f160_out(T46) -> f192_out(T46) :|: TRUE 9.50/3.46 f192_in(x21) -> f160_in(x21) :|: TRUE 9.50/3.46 f193_out -> f187_out(x22) :|: TRUE 9.50/3.46 f187_in(x23) -> f193_in :|: TRUE 9.50/3.46 f192_out(x24) -> f187_out(.(x25, x24)) :|: TRUE 9.50/3.46 f187_in(.(x26, x27)) -> f192_in(x27) :|: TRUE 9.50/3.46 f162_out(x28) -> f160_out(x28) :|: TRUE 9.50/3.46 f160_in(x29) -> f162_in(x29) :|: TRUE 9.50/3.46 Start term: f11_in(T2) 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (101) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 9.50/3.46 Constructed simple dependency graph. 9.50/3.46 9.50/3.46 Simplified to the following IRSwTs: 9.50/3.46 9.50/3.46 intTRSProblem: 9.50/3.46 f160_out(x) -> f161_in(x) :|: TRUE 9.50/3.46 f148_in(x1) -> f160_in(x1) :|: TRUE 9.50/3.46 f189_in -> f189_out :|: TRUE 9.50/3.46 f189_out -> f186_out(.(T36, T37)) :|: TRUE 9.50/3.46 f186_in(.(x3, x4)) -> f189_in :|: TRUE 9.50/3.46 f19_in(T2) -> f23_in(T2) :|: TRUE 9.50/3.46 f11_in(x9) -> f19_in(x9) :|: TRUE 9.50/3.46 f161_in(x12) -> f11_in(x12) :|: TRUE 9.50/3.46 f23_in(x16) -> f148_in(x16) :|: TRUE 9.50/3.46 f186_out(x17) -> f162_out(x17) :|: TRUE 9.50/3.46 f162_in(x18) -> f187_in(x18) :|: TRUE 9.50/3.46 f187_out(x19) -> f162_out(x19) :|: TRUE 9.50/3.46 f162_in(x20) -> f186_in(x20) :|: TRUE 9.50/3.46 f160_out(T46) -> f192_out(T46) :|: TRUE 9.50/3.46 f192_in(x21) -> f160_in(x21) :|: TRUE 9.50/3.46 f192_out(x24) -> f187_out(.(x25, x24)) :|: TRUE 9.50/3.46 f187_in(.(x26, x27)) -> f192_in(x27) :|: TRUE 9.50/3.46 f162_out(x28) -> f160_out(x28) :|: TRUE 9.50/3.46 f160_in(x29) -> f162_in(x29) :|: TRUE 9.50/3.46 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (102) 9.50/3.46 Obligation: 9.50/3.46 Rules: 9.50/3.46 f160_out(x) -> f161_in(x) :|: TRUE 9.50/3.46 f148_in(x1) -> f160_in(x1) :|: TRUE 9.50/3.46 f189_in -> f189_out :|: TRUE 9.50/3.46 f189_out -> f186_out(.(T36, T37)) :|: TRUE 9.50/3.46 f186_in(.(x3, x4)) -> f189_in :|: TRUE 9.50/3.46 f19_in(T2) -> f23_in(T2) :|: TRUE 9.50/3.46 f11_in(x9) -> f19_in(x9) :|: TRUE 9.50/3.46 f161_in(x12) -> f11_in(x12) :|: TRUE 9.50/3.46 f23_in(x16) -> f148_in(x16) :|: TRUE 9.50/3.46 f186_out(x17) -> f162_out(x17) :|: TRUE 9.50/3.46 f162_in(x18) -> f187_in(x18) :|: TRUE 9.50/3.46 f187_out(x19) -> f162_out(x19) :|: TRUE 9.50/3.46 f162_in(x20) -> f186_in(x20) :|: TRUE 9.50/3.46 f160_out(T46) -> f192_out(T46) :|: TRUE 9.50/3.46 f192_in(x21) -> f160_in(x21) :|: TRUE 9.50/3.46 f192_out(x24) -> f187_out(.(x25, x24)) :|: TRUE 9.50/3.46 f187_in(.(x26, x27)) -> f192_in(x27) :|: TRUE 9.50/3.46 f162_out(x28) -> f160_out(x28) :|: TRUE 9.50/3.46 f160_in(x29) -> f162_in(x29) :|: TRUE 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (103) IntTRSCompressionProof (EQUIVALENT) 9.50/3.46 Compressed rules. 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (104) 9.50/3.46 Obligation: 9.50/3.46 Rules: 9.50/3.46 f160_out(T46:0) -> f160_out(.(x25:0, T46:0)) :|: TRUE 9.50/3.46 f160_out(x:0) -> f162_in(x:0) :|: TRUE 9.50/3.46 f162_in(.(x3:0, x4:0)) -> f160_out(.(T36:0, T37:0)) :|: TRUE 9.50/3.46 f162_in(.(x26:0, x27:0)) -> f162_in(x27:0) :|: TRUE 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (105) IRSFormatTransformerProof (EQUIVALENT) 9.50/3.46 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (106) 9.50/3.46 Obligation: 9.50/3.46 Rules: 9.50/3.46 f160_out(T46:0) -> f160_out(.(x25:0, T46:0)) :|: TRUE 9.50/3.46 f160_out(x:0) -> f162_in(x:0) :|: TRUE 9.50/3.46 f162_in(.(x3:0, x4:0)) -> f160_out(.(T36:0, T37:0)) :|: TRUE 9.50/3.46 f162_in(.(x26:0, x27:0)) -> f162_in(x27:0) :|: TRUE 9.50/3.46 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (107) IRSwTTerminationDigraphProof (EQUIVALENT) 9.50/3.46 Constructed termination digraph! 9.50/3.46 Nodes: 9.50/3.46 (1) f160_out(T46:0) -> f160_out(.(x25:0, T46:0)) :|: TRUE 9.50/3.46 (2) f160_out(x:0) -> f162_in(x:0) :|: TRUE 9.50/3.46 (3) f162_in(.(x3:0, x4:0)) -> f160_out(.(T36:0, T37:0)) :|: TRUE 9.50/3.46 (4) f162_in(.(x26:0, x27:0)) -> f162_in(x27:0) :|: TRUE 9.50/3.46 9.50/3.46 Arcs: 9.50/3.46 (1) -> (1), (2) 9.50/3.46 (2) -> (3), (4) 9.50/3.46 (3) -> (1), (2) 9.50/3.46 (4) -> (3), (4) 9.50/3.46 9.50/3.46 This digraph is fully evaluated! 9.50/3.46 ---------------------------------------- 9.50/3.46 9.50/3.46 (108) 9.50/3.46 Obligation: 9.50/3.46 9.50/3.46 Termination digraph: 9.50/3.46 Nodes: 9.50/3.46 (1) f160_out(T46:0) -> f160_out(.(x25:0, T46:0)) :|: TRUE 9.50/3.46 (2) f162_in(.(x3:0, x4:0)) -> f160_out(.(T36:0, T37:0)) :|: TRUE 9.50/3.46 (3) f162_in(.(x26:0, x27:0)) -> f162_in(x27:0) :|: TRUE 9.50/3.46 (4) f160_out(x:0) -> f162_in(x:0) :|: TRUE 9.50/3.46 9.50/3.46 Arcs: 9.50/3.46 (1) -> (1), (4) 9.50/3.46 (2) -> (1), (4) 9.50/3.46 (3) -> (2), (3) 9.50/3.46 (4) -> (2), (3) 9.50/3.46 9.50/3.46 This digraph is fully evaluated! 9.79/3.50 EOF