6.98/2.63 MAYBE 6.98/2.64 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 6.98/2.64 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.98/2.64 6.98/2.64 6.98/2.64 Left Termination of the query pattern 6.98/2.64 6.98/2.64 sublist(g,g) 6.98/2.64 6.98/2.64 w.r.t. the given Prolog program could not be shown: 6.98/2.64 6.98/2.64 (0) Prolog 6.98/2.64 (1) PrologToPiTRSProof [SOUND, 0 ms] 6.98/2.64 (2) PiTRS 6.98/2.64 (3) DependencyPairsProof [EQUIVALENT, 0 ms] 6.98/2.64 (4) PiDP 6.98/2.64 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 6.98/2.64 (6) AND 6.98/2.64 (7) PiDP 6.98/2.64 (8) UsableRulesProof [EQUIVALENT, 0 ms] 6.98/2.64 (9) PiDP 6.98/2.64 (10) PiDPToQDPProof [SOUND, 0 ms] 6.98/2.64 (11) QDP 6.98/2.64 (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.98/2.64 (13) YES 6.98/2.64 (14) PiDP 6.98/2.64 (15) UsableRulesProof [EQUIVALENT, 0 ms] 6.98/2.64 (16) PiDP 6.98/2.64 (17) PiDPToQDPProof [SOUND, 0 ms] 6.98/2.64 (18) QDP 6.98/2.64 (19) PrologToPiTRSProof [SOUND, 0 ms] 6.98/2.64 (20) PiTRS 6.98/2.64 (21) DependencyPairsProof [EQUIVALENT, 0 ms] 6.98/2.64 (22) PiDP 6.98/2.64 (23) DependencyGraphProof [EQUIVALENT, 0 ms] 6.98/2.64 (24) AND 6.98/2.64 (25) PiDP 6.98/2.64 (26) UsableRulesProof [EQUIVALENT, 0 ms] 6.98/2.64 (27) PiDP 6.98/2.64 (28) PiDPToQDPProof [SOUND, 0 ms] 6.98/2.64 (29) QDP 6.98/2.64 (30) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.98/2.64 (31) YES 6.98/2.64 (32) PiDP 6.98/2.64 (33) UsableRulesProof [EQUIVALENT, 0 ms] 6.98/2.64 (34) PiDP 6.98/2.64 (35) PiDPToQDPProof [SOUND, 0 ms] 6.98/2.64 (36) QDP 6.98/2.64 (37) PrologToTRSTransformerProof [SOUND, 0 ms] 6.98/2.64 (38) QTRS 6.98/2.64 (39) DependencyPairsProof [EQUIVALENT, 0 ms] 6.98/2.64 (40) QDP 6.98/2.64 (41) DependencyGraphProof [EQUIVALENT, 0 ms] 6.98/2.64 (42) AND 6.98/2.64 (43) QDP 6.98/2.64 (44) UsableRulesProof [EQUIVALENT, 0 ms] 6.98/2.64 (45) QDP 6.98/2.64 (46) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.98/2.64 (47) YES 6.98/2.64 (48) QDP 6.98/2.64 (49) UsableRulesProof [EQUIVALENT, 0 ms] 6.98/2.64 (50) QDP 6.98/2.64 (51) PrologToIRSwTTransformerProof [SOUND, 0 ms] 6.98/2.64 (52) AND 6.98/2.64 (53) IRSwT 6.98/2.64 (54) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 6.98/2.64 (55) TRUE 6.98/2.64 (56) IRSwT 6.98/2.64 (57) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 6.98/2.64 (58) IRSwT 6.98/2.64 (59) IntTRSCompressionProof [EQUIVALENT, 21 ms] 6.98/2.64 (60) IRSwT 6.98/2.64 (61) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 6.98/2.64 (62) IRSwT 6.98/2.64 (63) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 6.98/2.64 (64) IRSwT 6.98/2.64 (65) FilterProof [EQUIVALENT, 0 ms] 6.98/2.64 (66) IntTRS 6.98/2.64 (67) IntTRSNonPeriodicNontermProof [COMPLETE, 0 ms] 6.98/2.64 (68) NO 6.98/2.64 (69) PrologToDTProblemTransformerProof [SOUND, 0 ms] 6.98/2.64 (70) TRIPLES 6.98/2.64 (71) TriplesToPiDPProof [SOUND, 0 ms] 6.98/2.64 (72) PiDP 6.98/2.64 (73) DependencyGraphProof [EQUIVALENT, 0 ms] 6.98/2.64 (74) AND 6.98/2.64 (75) PiDP 6.98/2.64 (76) UsableRulesProof [EQUIVALENT, 0 ms] 6.98/2.64 (77) PiDP 6.98/2.64 (78) PiDPToQDPProof [SOUND, 0 ms] 6.98/2.64 (79) QDP 6.98/2.64 (80) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.98/2.64 (81) YES 6.98/2.64 (82) PiDP 6.98/2.64 (83) UsableRulesProof [EQUIVALENT, 0 ms] 6.98/2.64 (84) PiDP 6.98/2.64 (85) PiDPToQDPProof [SOUND, 0 ms] 6.98/2.64 (86) QDP 6.98/2.64 (87) PiDP 6.98/2.64 (88) UsableRulesProof [EQUIVALENT, 0 ms] 6.98/2.64 (89) PiDP 6.98/2.64 6.98/2.64 6.98/2.64 ---------------------------------------- 6.98/2.64 6.98/2.64 (0) 6.98/2.64 Obligation: 6.98/2.64 Clauses: 6.98/2.64 6.98/2.64 append1([], Ys, Ys). 6.98/2.64 append1(.(X, Xs), Ys, .(X, Zs)) :- append1(Xs, Ys, Zs). 6.98/2.64 append2([], Ys, Ys). 6.98/2.64 append2(.(X, Xs), Ys, .(X, Zs)) :- append2(Xs, Ys, Zs). 6.98/2.64 sublist(X, Y) :- ','(append1(U, X, V), append2(V, W, Y)). 6.98/2.64 6.98/2.64 6.98/2.64 Query: sublist(g,g) 6.98/2.64 ---------------------------------------- 6.98/2.64 6.98/2.64 (1) PrologToPiTRSProof (SOUND) 6.98/2.64 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.98/2.64 6.98/2.64 sublist_in_2: (b,b) 6.98/2.64 6.98/2.64 append1_in_3: (f,b,f) 6.98/2.64 6.98/2.64 append2_in_3: (b,f,b) 6.98/2.64 6.98/2.64 Transforming Prolog into the following Term Rewriting System: 6.98/2.64 6.98/2.64 Pi-finite rewrite system: 6.98/2.64 The TRS R consists of the following rules: 6.98/2.64 6.98/2.64 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.64 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.64 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.64 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.64 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.64 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.64 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.64 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.64 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.64 6.98/2.64 The argument filtering Pi contains the following mapping: 6.98/2.64 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.64 6.98/2.64 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 6.98/2.64 6.98/2.64 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.64 6.98/2.64 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x2, x3) 6.98/2.64 6.98/2.64 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x3, x5) 6.98/2.64 6.98/2.64 .(x1, x2) = .(x2) 6.98/2.64 6.98/2.64 U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 6.98/2.64 6.98/2.64 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.64 6.98/2.64 [] = [] 6.98/2.64 6.98/2.64 append2_out_gag(x1, x2, x3) = append2_out_gag(x1, x2, x3) 6.98/2.64 6.98/2.64 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x2, x4, x5) 6.98/2.64 6.98/2.64 sublist_out_gg(x1, x2) = sublist_out_gg(x1, x2) 6.98/2.64 6.98/2.64 6.98/2.64 6.98/2.64 6.98/2.64 6.98/2.64 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 6.98/2.64 6.98/2.64 6.98/2.64 6.98/2.64 ---------------------------------------- 6.98/2.64 6.98/2.64 (2) 6.98/2.64 Obligation: 6.98/2.64 Pi-finite rewrite system: 6.98/2.64 The TRS R consists of the following rules: 6.98/2.64 6.98/2.64 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.64 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.64 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.64 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.64 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.64 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.64 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.64 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.64 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.64 6.98/2.64 The argument filtering Pi contains the following mapping: 6.98/2.64 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.64 6.98/2.64 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 6.98/2.64 6.98/2.64 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.64 6.98/2.64 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x2, x3) 6.98/2.64 6.98/2.64 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x3, x5) 6.98/2.64 6.98/2.64 .(x1, x2) = .(x2) 6.98/2.64 6.98/2.64 U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 6.98/2.64 6.98/2.64 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.64 6.98/2.64 [] = [] 6.98/2.64 6.98/2.64 append2_out_gag(x1, x2, x3) = append2_out_gag(x1, x2, x3) 6.98/2.64 6.98/2.64 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x2, x4, x5) 6.98/2.64 6.98/2.64 sublist_out_gg(x1, x2) = sublist_out_gg(x1, x2) 6.98/2.64 6.98/2.64 6.98/2.64 6.98/2.64 ---------------------------------------- 6.98/2.64 6.98/2.64 (3) DependencyPairsProof (EQUIVALENT) 6.98/2.64 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 6.98/2.64 Pi DP problem: 6.98/2.64 The TRS P consists of the following rules: 6.98/2.64 6.98/2.64 SUBLIST_IN_GG(X, Y) -> U3_GG(X, Y, append1_in_aga(U, X, V)) 6.98/2.64 SUBLIST_IN_GG(X, Y) -> APPEND1_IN_AGA(U, X, V) 6.98/2.64 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> U1_AGA(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.64 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APPEND1_IN_AGA(Xs, Ys, Zs) 6.98/2.64 U3_GG(X, Y, append1_out_aga(U, X, V)) -> U4_GG(X, Y, append2_in_gag(V, W, Y)) 6.98/2.64 U3_GG(X, Y, append1_out_aga(U, X, V)) -> APPEND2_IN_GAG(V, W, Y) 6.98/2.64 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> U2_GAG(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.64 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> APPEND2_IN_GAG(Xs, Ys, Zs) 6.98/2.64 6.98/2.64 The TRS R consists of the following rules: 6.98/2.64 6.98/2.64 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.64 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.64 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.64 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.64 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.64 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.64 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.64 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.65 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.65 6.98/2.65 The argument filtering Pi contains the following mapping: 6.98/2.65 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.65 6.98/2.65 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 6.98/2.65 6.98/2.65 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.65 6.98/2.65 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x2, x3) 6.98/2.65 6.98/2.65 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x3, x5) 6.98/2.65 6.98/2.65 .(x1, x2) = .(x2) 6.98/2.65 6.98/2.65 U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 6.98/2.65 6.98/2.65 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.65 6.98/2.65 [] = [] 6.98/2.65 6.98/2.65 append2_out_gag(x1, x2, x3) = append2_out_gag(x1, x2, x3) 6.98/2.65 6.98/2.65 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x2, x4, x5) 6.98/2.65 6.98/2.65 sublist_out_gg(x1, x2) = sublist_out_gg(x1, x2) 6.98/2.65 6.98/2.65 SUBLIST_IN_GG(x1, x2) = SUBLIST_IN_GG(x1, x2) 6.98/2.65 6.98/2.65 U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) 6.98/2.65 6.98/2.65 APPEND1_IN_AGA(x1, x2, x3) = APPEND1_IN_AGA(x2) 6.98/2.65 6.98/2.65 U1_AGA(x1, x2, x3, x4, x5) = U1_AGA(x3, x5) 6.98/2.65 6.98/2.65 U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) 6.98/2.65 6.98/2.65 APPEND2_IN_GAG(x1, x2, x3) = APPEND2_IN_GAG(x1, x3) 6.98/2.65 6.98/2.65 U2_GAG(x1, x2, x3, x4, x5) = U2_GAG(x2, x4, x5) 6.98/2.65 6.98/2.65 6.98/2.65 We have to consider all (P,R,Pi)-chains 6.98/2.65 ---------------------------------------- 6.98/2.65 6.98/2.65 (4) 6.98/2.65 Obligation: 6.98/2.65 Pi DP problem: 6.98/2.65 The TRS P consists of the following rules: 6.98/2.65 6.98/2.65 SUBLIST_IN_GG(X, Y) -> U3_GG(X, Y, append1_in_aga(U, X, V)) 6.98/2.65 SUBLIST_IN_GG(X, Y) -> APPEND1_IN_AGA(U, X, V) 6.98/2.65 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> U1_AGA(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.65 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APPEND1_IN_AGA(Xs, Ys, Zs) 6.98/2.65 U3_GG(X, Y, append1_out_aga(U, X, V)) -> U4_GG(X, Y, append2_in_gag(V, W, Y)) 6.98/2.65 U3_GG(X, Y, append1_out_aga(U, X, V)) -> APPEND2_IN_GAG(V, W, Y) 6.98/2.65 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> U2_GAG(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.65 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> APPEND2_IN_GAG(Xs, Ys, Zs) 6.98/2.65 6.98/2.65 The TRS R consists of the following rules: 6.98/2.65 6.98/2.65 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.65 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.65 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.65 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.65 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.65 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.65 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.65 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.65 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.65 6.98/2.65 The argument filtering Pi contains the following mapping: 6.98/2.65 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.65 6.98/2.65 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 6.98/2.65 6.98/2.65 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.65 6.98/2.65 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x2, x3) 6.98/2.65 6.98/2.65 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x3, x5) 6.98/2.65 6.98/2.65 .(x1, x2) = .(x2) 6.98/2.65 6.98/2.65 U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 6.98/2.65 6.98/2.65 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.65 6.98/2.65 [] = [] 6.98/2.65 6.98/2.65 append2_out_gag(x1, x2, x3) = append2_out_gag(x1, x2, x3) 6.98/2.65 6.98/2.65 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x2, x4, x5) 6.98/2.65 6.98/2.65 sublist_out_gg(x1, x2) = sublist_out_gg(x1, x2) 6.98/2.65 6.98/2.65 SUBLIST_IN_GG(x1, x2) = SUBLIST_IN_GG(x1, x2) 6.98/2.65 6.98/2.65 U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) 6.98/2.65 6.98/2.65 APPEND1_IN_AGA(x1, x2, x3) = APPEND1_IN_AGA(x2) 6.98/2.65 6.98/2.65 U1_AGA(x1, x2, x3, x4, x5) = U1_AGA(x3, x5) 6.98/2.65 6.98/2.65 U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) 6.98/2.65 6.98/2.65 APPEND2_IN_GAG(x1, x2, x3) = APPEND2_IN_GAG(x1, x3) 6.98/2.65 6.98/2.65 U2_GAG(x1, x2, x3, x4, x5) = U2_GAG(x2, x4, x5) 6.98/2.65 6.98/2.65 6.98/2.65 We have to consider all (P,R,Pi)-chains 6.98/2.65 ---------------------------------------- 6.98/2.65 6.98/2.65 (5) DependencyGraphProof (EQUIVALENT) 6.98/2.65 The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 6 less nodes. 6.98/2.65 ---------------------------------------- 6.98/2.65 6.98/2.65 (6) 6.98/2.65 Complex Obligation (AND) 6.98/2.65 6.98/2.65 ---------------------------------------- 6.98/2.65 6.98/2.65 (7) 6.98/2.65 Obligation: 6.98/2.65 Pi DP problem: 6.98/2.65 The TRS P consists of the following rules: 6.98/2.65 6.98/2.65 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> APPEND2_IN_GAG(Xs, Ys, Zs) 6.98/2.65 6.98/2.65 The TRS R consists of the following rules: 6.98/2.65 6.98/2.65 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.65 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.65 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.65 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.65 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.65 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.65 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.65 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.65 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.65 6.98/2.65 The argument filtering Pi contains the following mapping: 6.98/2.65 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.65 6.98/2.65 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 6.98/2.65 6.98/2.65 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.65 6.98/2.65 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x2, x3) 6.98/2.65 6.98/2.65 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x3, x5) 6.98/2.65 6.98/2.65 .(x1, x2) = .(x2) 6.98/2.65 6.98/2.65 U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 6.98/2.65 6.98/2.65 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.65 6.98/2.65 [] = [] 6.98/2.65 6.98/2.65 append2_out_gag(x1, x2, x3) = append2_out_gag(x1, x2, x3) 6.98/2.65 6.98/2.65 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x2, x4, x5) 6.98/2.65 6.98/2.65 sublist_out_gg(x1, x2) = sublist_out_gg(x1, x2) 6.98/2.65 6.98/2.65 APPEND2_IN_GAG(x1, x2, x3) = APPEND2_IN_GAG(x1, x3) 6.98/2.65 6.98/2.65 6.98/2.65 We have to consider all (P,R,Pi)-chains 6.98/2.65 ---------------------------------------- 6.98/2.65 6.98/2.65 (8) UsableRulesProof (EQUIVALENT) 6.98/2.65 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.98/2.65 ---------------------------------------- 6.98/2.65 6.98/2.65 (9) 6.98/2.65 Obligation: 6.98/2.65 Pi DP problem: 6.98/2.65 The TRS P consists of the following rules: 6.98/2.65 6.98/2.65 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> APPEND2_IN_GAG(Xs, Ys, Zs) 6.98/2.65 6.98/2.65 R is empty. 6.98/2.65 The argument filtering Pi contains the following mapping: 6.98/2.65 .(x1, x2) = .(x2) 6.98/2.65 6.98/2.65 APPEND2_IN_GAG(x1, x2, x3) = APPEND2_IN_GAG(x1, x3) 6.98/2.65 6.98/2.65 6.98/2.65 We have to consider all (P,R,Pi)-chains 6.98/2.65 ---------------------------------------- 6.98/2.65 6.98/2.65 (10) PiDPToQDPProof (SOUND) 6.98/2.65 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.98/2.65 ---------------------------------------- 6.98/2.65 6.98/2.65 (11) 6.98/2.65 Obligation: 6.98/2.65 Q DP problem: 6.98/2.65 The TRS P consists of the following rules: 6.98/2.65 6.98/2.65 APPEND2_IN_GAG(.(Xs), .(Zs)) -> APPEND2_IN_GAG(Xs, Zs) 6.98/2.65 6.98/2.65 R is empty. 6.98/2.65 Q is empty. 6.98/2.65 We have to consider all (P,Q,R)-chains. 6.98/2.65 ---------------------------------------- 6.98/2.65 6.98/2.65 (12) QDPSizeChangeProof (EQUIVALENT) 6.98/2.65 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. 6.98/2.65 6.98/2.65 From the DPs we obtained the following set of size-change graphs: 6.98/2.65 *APPEND2_IN_GAG(.(Xs), .(Zs)) -> APPEND2_IN_GAG(Xs, Zs) 6.98/2.65 The graph contains the following edges 1 > 1, 2 > 2 6.98/2.65 6.98/2.65 6.98/2.65 ---------------------------------------- 6.98/2.65 6.98/2.65 (13) 6.98/2.65 YES 6.98/2.65 6.98/2.65 ---------------------------------------- 6.98/2.65 6.98/2.65 (14) 6.98/2.65 Obligation: 6.98/2.65 Pi DP problem: 6.98/2.65 The TRS P consists of the following rules: 6.98/2.65 6.98/2.65 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APPEND1_IN_AGA(Xs, Ys, Zs) 6.98/2.65 6.98/2.65 The TRS R consists of the following rules: 6.98/2.65 6.98/2.65 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.65 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.65 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.65 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.65 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.65 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.65 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.65 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.65 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.65 6.98/2.65 The argument filtering Pi contains the following mapping: 6.98/2.65 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.65 6.98/2.65 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 6.98/2.65 6.98/2.65 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.65 6.98/2.65 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x2, x3) 6.98/2.65 6.98/2.65 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x3, x5) 6.98/2.65 6.98/2.65 .(x1, x2) = .(x2) 6.98/2.65 6.98/2.65 U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 6.98/2.65 6.98/2.65 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.67 6.98/2.67 [] = [] 6.98/2.67 6.98/2.67 append2_out_gag(x1, x2, x3) = append2_out_gag(x1, x2, x3) 6.98/2.67 6.98/2.67 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x2, x4, x5) 6.98/2.67 6.98/2.67 sublist_out_gg(x1, x2) = sublist_out_gg(x1, x2) 6.98/2.67 6.98/2.67 APPEND1_IN_AGA(x1, x2, x3) = APPEND1_IN_AGA(x2) 6.98/2.67 6.98/2.67 6.98/2.67 We have to consider all (P,R,Pi)-chains 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (15) UsableRulesProof (EQUIVALENT) 6.98/2.67 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (16) 6.98/2.67 Obligation: 6.98/2.67 Pi DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APPEND1_IN_AGA(Xs, Ys, Zs) 6.98/2.67 6.98/2.67 R is empty. 6.98/2.67 The argument filtering Pi contains the following mapping: 6.98/2.67 .(x1, x2) = .(x2) 6.98/2.67 6.98/2.67 APPEND1_IN_AGA(x1, x2, x3) = APPEND1_IN_AGA(x2) 6.98/2.67 6.98/2.67 6.98/2.67 We have to consider all (P,R,Pi)-chains 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (17) PiDPToQDPProof (SOUND) 6.98/2.67 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (18) 6.98/2.67 Obligation: 6.98/2.67 Q DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 APPEND1_IN_AGA(Ys) -> APPEND1_IN_AGA(Ys) 6.98/2.67 6.98/2.67 R is empty. 6.98/2.67 Q is empty. 6.98/2.67 We have to consider all (P,Q,R)-chains. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (19) PrologToPiTRSProof (SOUND) 6.98/2.67 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.98/2.67 6.98/2.67 sublist_in_2: (b,b) 6.98/2.67 6.98/2.67 append1_in_3: (f,b,f) 6.98/2.67 6.98/2.67 append2_in_3: (b,f,b) 6.98/2.67 6.98/2.67 Transforming Prolog into the following Term Rewriting System: 6.98/2.67 6.98/2.67 Pi-finite rewrite system: 6.98/2.67 The TRS R consists of the following rules: 6.98/2.67 6.98/2.67 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.67 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.67 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.67 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.67 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.67 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.67 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.67 6.98/2.67 The argument filtering Pi contains the following mapping: 6.98/2.67 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.67 6.98/2.67 U3_gg(x1, x2, x3) = U3_gg(x2, x3) 6.98/2.67 6.98/2.67 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.67 6.98/2.67 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x3) 6.98/2.67 6.98/2.67 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x5) 6.98/2.67 6.98/2.67 .(x1, x2) = .(x2) 6.98/2.67 6.98/2.67 U4_gg(x1, x2, x3) = U4_gg(x3) 6.98/2.67 6.98/2.67 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.67 6.98/2.67 [] = [] 6.98/2.67 6.98/2.67 append2_out_gag(x1, x2, x3) = append2_out_gag(x2) 6.98/2.67 6.98/2.67 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x5) 6.98/2.67 6.98/2.67 sublist_out_gg(x1, x2) = sublist_out_gg 6.98/2.67 6.98/2.67 6.98/2.67 6.98/2.67 6.98/2.67 6.98/2.67 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 6.98/2.67 6.98/2.67 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (20) 6.98/2.67 Obligation: 6.98/2.67 Pi-finite rewrite system: 6.98/2.67 The TRS R consists of the following rules: 6.98/2.67 6.98/2.67 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.67 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.67 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.67 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.67 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.67 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.67 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.67 6.98/2.67 The argument filtering Pi contains the following mapping: 6.98/2.67 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.67 6.98/2.67 U3_gg(x1, x2, x3) = U3_gg(x2, x3) 6.98/2.67 6.98/2.67 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.67 6.98/2.67 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x3) 6.98/2.67 6.98/2.67 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x5) 6.98/2.67 6.98/2.67 .(x1, x2) = .(x2) 6.98/2.67 6.98/2.67 U4_gg(x1, x2, x3) = U4_gg(x3) 6.98/2.67 6.98/2.67 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.67 6.98/2.67 [] = [] 6.98/2.67 6.98/2.67 append2_out_gag(x1, x2, x3) = append2_out_gag(x2) 6.98/2.67 6.98/2.67 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x5) 6.98/2.67 6.98/2.67 sublist_out_gg(x1, x2) = sublist_out_gg 6.98/2.67 6.98/2.67 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (21) DependencyPairsProof (EQUIVALENT) 6.98/2.67 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 6.98/2.67 Pi DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 SUBLIST_IN_GG(X, Y) -> U3_GG(X, Y, append1_in_aga(U, X, V)) 6.98/2.67 SUBLIST_IN_GG(X, Y) -> APPEND1_IN_AGA(U, X, V) 6.98/2.67 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> U1_AGA(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.67 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APPEND1_IN_AGA(Xs, Ys, Zs) 6.98/2.67 U3_GG(X, Y, append1_out_aga(U, X, V)) -> U4_GG(X, Y, append2_in_gag(V, W, Y)) 6.98/2.67 U3_GG(X, Y, append1_out_aga(U, X, V)) -> APPEND2_IN_GAG(V, W, Y) 6.98/2.67 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> U2_GAG(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.67 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> APPEND2_IN_GAG(Xs, Ys, Zs) 6.98/2.67 6.98/2.67 The TRS R consists of the following rules: 6.98/2.67 6.98/2.67 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.67 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.67 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.67 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.67 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.67 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.67 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.67 6.98/2.67 The argument filtering Pi contains the following mapping: 6.98/2.67 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.67 6.98/2.67 U3_gg(x1, x2, x3) = U3_gg(x2, x3) 6.98/2.67 6.98/2.67 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.67 6.98/2.67 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x3) 6.98/2.67 6.98/2.67 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x5) 6.98/2.67 6.98/2.67 .(x1, x2) = .(x2) 6.98/2.67 6.98/2.67 U4_gg(x1, x2, x3) = U4_gg(x3) 6.98/2.67 6.98/2.67 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.67 6.98/2.67 [] = [] 6.98/2.67 6.98/2.67 append2_out_gag(x1, x2, x3) = append2_out_gag(x2) 6.98/2.67 6.98/2.67 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x5) 6.98/2.67 6.98/2.67 sublist_out_gg(x1, x2) = sublist_out_gg 6.98/2.67 6.98/2.67 SUBLIST_IN_GG(x1, x2) = SUBLIST_IN_GG(x1, x2) 6.98/2.67 6.98/2.67 U3_GG(x1, x2, x3) = U3_GG(x2, x3) 6.98/2.67 6.98/2.67 APPEND1_IN_AGA(x1, x2, x3) = APPEND1_IN_AGA(x2) 6.98/2.67 6.98/2.67 U1_AGA(x1, x2, x3, x4, x5) = U1_AGA(x5) 6.98/2.67 6.98/2.67 U4_GG(x1, x2, x3) = U4_GG(x3) 6.98/2.67 6.98/2.67 APPEND2_IN_GAG(x1, x2, x3) = APPEND2_IN_GAG(x1, x3) 6.98/2.67 6.98/2.67 U2_GAG(x1, x2, x3, x4, x5) = U2_GAG(x5) 6.98/2.67 6.98/2.67 6.98/2.67 We have to consider all (P,R,Pi)-chains 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (22) 6.98/2.67 Obligation: 6.98/2.67 Pi DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 SUBLIST_IN_GG(X, Y) -> U3_GG(X, Y, append1_in_aga(U, X, V)) 6.98/2.67 SUBLIST_IN_GG(X, Y) -> APPEND1_IN_AGA(U, X, V) 6.98/2.67 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> U1_AGA(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.67 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APPEND1_IN_AGA(Xs, Ys, Zs) 6.98/2.67 U3_GG(X, Y, append1_out_aga(U, X, V)) -> U4_GG(X, Y, append2_in_gag(V, W, Y)) 6.98/2.67 U3_GG(X, Y, append1_out_aga(U, X, V)) -> APPEND2_IN_GAG(V, W, Y) 6.98/2.67 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> U2_GAG(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.67 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> APPEND2_IN_GAG(Xs, Ys, Zs) 6.98/2.67 6.98/2.67 The TRS R consists of the following rules: 6.98/2.67 6.98/2.67 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.67 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.67 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.67 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.67 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.67 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.67 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.67 6.98/2.67 The argument filtering Pi contains the following mapping: 6.98/2.67 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.67 6.98/2.67 U3_gg(x1, x2, x3) = U3_gg(x2, x3) 6.98/2.67 6.98/2.67 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.67 6.98/2.67 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x3) 6.98/2.67 6.98/2.67 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x5) 6.98/2.67 6.98/2.67 .(x1, x2) = .(x2) 6.98/2.67 6.98/2.67 U4_gg(x1, x2, x3) = U4_gg(x3) 6.98/2.67 6.98/2.67 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.67 6.98/2.67 [] = [] 6.98/2.67 6.98/2.67 append2_out_gag(x1, x2, x3) = append2_out_gag(x2) 6.98/2.67 6.98/2.67 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x5) 6.98/2.67 6.98/2.67 sublist_out_gg(x1, x2) = sublist_out_gg 6.98/2.67 6.98/2.67 SUBLIST_IN_GG(x1, x2) = SUBLIST_IN_GG(x1, x2) 6.98/2.67 6.98/2.67 U3_GG(x1, x2, x3) = U3_GG(x2, x3) 6.98/2.67 6.98/2.67 APPEND1_IN_AGA(x1, x2, x3) = APPEND1_IN_AGA(x2) 6.98/2.67 6.98/2.67 U1_AGA(x1, x2, x3, x4, x5) = U1_AGA(x5) 6.98/2.67 6.98/2.67 U4_GG(x1, x2, x3) = U4_GG(x3) 6.98/2.67 6.98/2.67 APPEND2_IN_GAG(x1, x2, x3) = APPEND2_IN_GAG(x1, x3) 6.98/2.67 6.98/2.67 U2_GAG(x1, x2, x3, x4, x5) = U2_GAG(x5) 6.98/2.67 6.98/2.67 6.98/2.67 We have to consider all (P,R,Pi)-chains 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (23) DependencyGraphProof (EQUIVALENT) 6.98/2.67 The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 6 less nodes. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (24) 6.98/2.67 Complex Obligation (AND) 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (25) 6.98/2.67 Obligation: 6.98/2.67 Pi DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> APPEND2_IN_GAG(Xs, Ys, Zs) 6.98/2.67 6.98/2.67 The TRS R consists of the following rules: 6.98/2.67 6.98/2.67 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.67 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.67 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.67 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.67 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.67 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.67 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.67 6.98/2.67 The argument filtering Pi contains the following mapping: 6.98/2.67 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.67 6.98/2.67 U3_gg(x1, x2, x3) = U3_gg(x2, x3) 6.98/2.67 6.98/2.67 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.67 6.98/2.67 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x3) 6.98/2.67 6.98/2.67 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x5) 6.98/2.67 6.98/2.67 .(x1, x2) = .(x2) 6.98/2.67 6.98/2.67 U4_gg(x1, x2, x3) = U4_gg(x3) 6.98/2.67 6.98/2.67 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.67 6.98/2.67 [] = [] 6.98/2.67 6.98/2.67 append2_out_gag(x1, x2, x3) = append2_out_gag(x2) 6.98/2.67 6.98/2.67 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x5) 6.98/2.67 6.98/2.67 sublist_out_gg(x1, x2) = sublist_out_gg 6.98/2.67 6.98/2.67 APPEND2_IN_GAG(x1, x2, x3) = APPEND2_IN_GAG(x1, x3) 6.98/2.67 6.98/2.67 6.98/2.67 We have to consider all (P,R,Pi)-chains 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (26) UsableRulesProof (EQUIVALENT) 6.98/2.67 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (27) 6.98/2.67 Obligation: 6.98/2.67 Pi DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 APPEND2_IN_GAG(.(X, Xs), Ys, .(X, Zs)) -> APPEND2_IN_GAG(Xs, Ys, Zs) 6.98/2.67 6.98/2.67 R is empty. 6.98/2.67 The argument filtering Pi contains the following mapping: 6.98/2.67 .(x1, x2) = .(x2) 6.98/2.67 6.98/2.67 APPEND2_IN_GAG(x1, x2, x3) = APPEND2_IN_GAG(x1, x3) 6.98/2.67 6.98/2.67 6.98/2.67 We have to consider all (P,R,Pi)-chains 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (28) PiDPToQDPProof (SOUND) 6.98/2.67 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (29) 6.98/2.67 Obligation: 6.98/2.67 Q DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 APPEND2_IN_GAG(.(Xs), .(Zs)) -> APPEND2_IN_GAG(Xs, Zs) 6.98/2.67 6.98/2.67 R is empty. 6.98/2.67 Q is empty. 6.98/2.67 We have to consider all (P,Q,R)-chains. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (30) QDPSizeChangeProof (EQUIVALENT) 6.98/2.67 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. 6.98/2.67 6.98/2.67 From the DPs we obtained the following set of size-change graphs: 6.98/2.67 *APPEND2_IN_GAG(.(Xs), .(Zs)) -> APPEND2_IN_GAG(Xs, Zs) 6.98/2.67 The graph contains the following edges 1 > 1, 2 > 2 6.98/2.67 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (31) 6.98/2.67 YES 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (32) 6.98/2.67 Obligation: 6.98/2.67 Pi DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APPEND1_IN_AGA(Xs, Ys, Zs) 6.98/2.67 6.98/2.67 The TRS R consists of the following rules: 6.98/2.67 6.98/2.67 sublist_in_gg(X, Y) -> U3_gg(X, Y, append1_in_aga(U, X, V)) 6.98/2.67 append1_in_aga([], Ys, Ys) -> append1_out_aga([], Ys, Ys) 6.98/2.67 append1_in_aga(.(X, Xs), Ys, .(X, Zs)) -> U1_aga(X, Xs, Ys, Zs, append1_in_aga(Xs, Ys, Zs)) 6.98/2.67 U1_aga(X, Xs, Ys, Zs, append1_out_aga(Xs, Ys, Zs)) -> append1_out_aga(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U3_gg(X, Y, append1_out_aga(U, X, V)) -> U4_gg(X, Y, append2_in_gag(V, W, Y)) 6.98/2.67 append2_in_gag([], Ys, Ys) -> append2_out_gag([], Ys, Ys) 6.98/2.67 append2_in_gag(.(X, Xs), Ys, .(X, Zs)) -> U2_gag(X, Xs, Ys, Zs, append2_in_gag(Xs, Ys, Zs)) 6.98/2.67 U2_gag(X, Xs, Ys, Zs, append2_out_gag(Xs, Ys, Zs)) -> append2_out_gag(.(X, Xs), Ys, .(X, Zs)) 6.98/2.67 U4_gg(X, Y, append2_out_gag(V, W, Y)) -> sublist_out_gg(X, Y) 6.98/2.67 6.98/2.67 The argument filtering Pi contains the following mapping: 6.98/2.67 sublist_in_gg(x1, x2) = sublist_in_gg(x1, x2) 6.98/2.67 6.98/2.67 U3_gg(x1, x2, x3) = U3_gg(x2, x3) 6.98/2.67 6.98/2.67 append1_in_aga(x1, x2, x3) = append1_in_aga(x2) 6.98/2.67 6.98/2.67 append1_out_aga(x1, x2, x3) = append1_out_aga(x1, x3) 6.98/2.67 6.98/2.67 U1_aga(x1, x2, x3, x4, x5) = U1_aga(x5) 6.98/2.67 6.98/2.67 .(x1, x2) = .(x2) 6.98/2.67 6.98/2.67 U4_gg(x1, x2, x3) = U4_gg(x3) 6.98/2.67 6.98/2.67 append2_in_gag(x1, x2, x3) = append2_in_gag(x1, x3) 6.98/2.67 6.98/2.67 [] = [] 6.98/2.67 6.98/2.67 append2_out_gag(x1, x2, x3) = append2_out_gag(x2) 6.98/2.67 6.98/2.67 U2_gag(x1, x2, x3, x4, x5) = U2_gag(x5) 6.98/2.67 6.98/2.67 sublist_out_gg(x1, x2) = sublist_out_gg 6.98/2.67 6.98/2.67 APPEND1_IN_AGA(x1, x2, x3) = APPEND1_IN_AGA(x2) 6.98/2.67 6.98/2.67 6.98/2.67 We have to consider all (P,R,Pi)-chains 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (33) UsableRulesProof (EQUIVALENT) 6.98/2.67 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (34) 6.98/2.67 Obligation: 6.98/2.67 Pi DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 APPEND1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) -> APPEND1_IN_AGA(Xs, Ys, Zs) 6.98/2.67 6.98/2.67 R is empty. 6.98/2.67 The argument filtering Pi contains the following mapping: 6.98/2.67 .(x1, x2) = .(x2) 6.98/2.67 6.98/2.67 APPEND1_IN_AGA(x1, x2, x3) = APPEND1_IN_AGA(x2) 6.98/2.67 6.98/2.67 6.98/2.67 We have to consider all (P,R,Pi)-chains 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (35) PiDPToQDPProof (SOUND) 6.98/2.67 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (36) 6.98/2.67 Obligation: 6.98/2.67 Q DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 APPEND1_IN_AGA(Ys) -> APPEND1_IN_AGA(Ys) 6.98/2.67 6.98/2.67 R is empty. 6.98/2.67 Q is empty. 6.98/2.67 We have to consider all (P,Q,R)-chains. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (37) PrologToTRSTransformerProof (SOUND) 6.98/2.67 Transformed Prolog program to TRS. 6.98/2.67 6.98/2.67 { 6.98/2.67 "root": 2, 6.98/2.67 "program": { 6.98/2.67 "directives": [], 6.98/2.67 "clauses": [ 6.98/2.67 [ 6.98/2.67 "(append1 ([]) Ys Ys)", 6.98/2.67 null 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(append1 (. X Xs) Ys (. X Zs))", 6.98/2.67 "(append1 Xs Ys Zs)" 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(append2 ([]) Ys Ys)", 6.98/2.67 null 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(append2 (. X Xs) Ys (. X Zs))", 6.98/2.67 "(append2 Xs Ys Zs)" 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(sublist X Y)", 6.98/2.67 "(',' (append1 U X V) (append2 V W Y))" 6.98/2.67 ] 6.98/2.67 ] 6.98/2.67 }, 6.98/2.67 "graph": { 6.98/2.67 "nodes": { 6.98/2.67 "14": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": 4, 6.98/2.67 "scope": 1, 6.98/2.67 "term": "(sublist T1 T2)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [ 6.98/2.67 "T1", 6.98/2.67 "T2" 6.98/2.67 ], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "191": { 6.98/2.67 "goal": [ 6.98/2.67 { 6.98/2.67 "clause": 0, 6.98/2.67 "scope": 2, 6.98/2.67 "term": "(append1 X13 T9 X14)" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "clause": 1, 6.98/2.67 "scope": 2, 6.98/2.67 "term": "(append1 X13 T9 X14)" 6.98/2.67 } 6.98/2.67 ], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T9"], 6.98/2.67 "free": [ 6.98/2.67 "X13", 6.98/2.67 "X14" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "192": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": 0, 6.98/2.67 "scope": 2, 6.98/2.67 "term": "(append1 X13 T9 X14)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T9"], 6.98/2.67 "free": [ 6.98/2.67 "X13", 6.98/2.67 "X14" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "193": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": 1, 6.98/2.67 "scope": 2, 6.98/2.67 "term": "(append1 X13 T9 X14)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T9"], 6.98/2.67 "free": [ 6.98/2.67 "X13", 6.98/2.67 "X14" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "type": "Nodes", 6.98/2.67 "184": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(',' (append1 X13 T9 X14) (append2 X14 X15 T10))" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [ 6.98/2.67 "T9", 6.98/2.67 "T10" 6.98/2.67 ], 6.98/2.67 "free": [ 6.98/2.67 "X13", 6.98/2.67 "X14", 6.98/2.67 "X15" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "195": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(true)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "196": { 6.98/2.67 "goal": [], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "240": { 6.98/2.67 "goal": [], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "197": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(append1 X45 T24 X46)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T24"], 6.98/2.67 "free": [ 6.98/2.67 "X45", 6.98/2.67 "X46" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "241": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(append2 T42 X76 T41)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T41"], 6.98/2.67 "free": ["X76"], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "187": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(append1 X13 T9 X14)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T9"], 6.98/2.67 "free": [ 6.98/2.67 "X13", 6.98/2.67 "X14" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "242": { 6.98/2.67 "goal": [], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "188": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(append2 T14 X15 T10)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T10"], 6.98/2.67 "free": ["X15"], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "2": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(sublist T1 T2)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [ 6.98/2.67 "T1", 6.98/2.67 "T2" 6.98/2.67 ], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "235": { 6.98/2.67 "goal": [ 6.98/2.67 { 6.98/2.67 "clause": 2, 6.98/2.67 "scope": 3, 6.98/2.67 "term": "(append2 T14 X15 T10)" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "clause": 3, 6.98/2.67 "scope": 3, 6.98/2.67 "term": "(append2 T14 X15 T10)" 6.98/2.67 } 6.98/2.67 ], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T10"], 6.98/2.67 "free": ["X15"], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "236": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": 2, 6.98/2.67 "scope": 3, 6.98/2.67 "term": "(append2 T14 X15 T10)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T10"], 6.98/2.67 "free": ["X15"], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "237": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": 3, 6.98/2.67 "scope": 3, 6.98/2.67 "term": "(append2 T14 X15 T10)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T10"], 6.98/2.67 "free": ["X15"], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "238": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(true)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "239": { 6.98/2.67 "goal": [], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "edges": [ 6.98/2.67 { 6.98/2.67 "from": 2, 6.98/2.67 "to": 14, 6.98/2.67 "label": "CASE" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 14, 6.98/2.67 "to": 184, 6.98/2.67 "label": "ONLY EVAL with clause\nsublist(X11, X12) :- ','(append1(X13, X11, X14), append2(X14, X15, X12)).\nand substitutionT1 -> T9,\nX11 -> T9,\nT2 -> T10,\nX12 -> T10" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 184, 6.98/2.67 "to": 187, 6.98/2.67 "label": "SPLIT 1" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 184, 6.98/2.67 "to": 188, 6.98/2.67 "label": "SPLIT 2\nnew knowledge:\nT9 is ground\nreplacements:X13 -> T13,\nX14 -> T14" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 187, 6.98/2.67 "to": 191, 6.98/2.67 "label": "CASE" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 188, 6.98/2.67 "to": 235, 6.98/2.67 "label": "CASE" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 191, 6.98/2.67 "to": 192, 6.98/2.67 "label": "PARALLEL" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 191, 6.98/2.67 "to": 193, 6.98/2.67 "label": "PARALLEL" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 192, 6.98/2.67 "to": 195, 6.98/2.67 "label": "ONLY EVAL with clause\nappend1([], X24, X24).\nand substitutionX13 -> [],\nT9 -> T20,\nX24 -> T20,\nX14 -> T20" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 193, 6.98/2.67 "to": 197, 6.98/2.67 "label": "ONLY EVAL with clause\nappend1(.(X40, X41), X42, .(X40, X43)) :- append1(X41, X42, X43).\nand substitutionX40 -> X44,\nX41 -> X45,\nX13 -> .(X44, X45),\nT9 -> T24,\nX42 -> T24,\nX43 -> X46,\nX14 -> .(X44, X46)" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 195, 6.98/2.67 "to": 196, 6.98/2.67 "label": "SUCCESS" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 197, 6.98/2.67 "to": 187, 6.98/2.67 "label": "INSTANCE with matching:\nX13 -> X45\nT9 -> T24\nX14 -> X46" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 235, 6.98/2.67 "to": 236, 6.98/2.67 "label": "PARALLEL" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 235, 6.98/2.67 "to": 237, 6.98/2.67 "label": "PARALLEL" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 236, 6.98/2.67 "to": 238, 6.98/2.67 "label": "EVAL with clause\nappend2([], X60, X60).\nand substitutionT14 -> [],\nX15 -> T32,\nX60 -> T32,\nT10 -> T32,\nX61 -> T32" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 236, 6.98/2.67 "to": 239, 6.98/2.67 "label": "EVAL-BACKTRACK" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 237, 6.98/2.67 "to": 241, 6.98/2.67 "label": "EVAL with clause\nappend2(.(X72, X73), X74, .(X72, X75)) :- append2(X73, X74, X75).\nand substitutionX72 -> T39,\nX73 -> T42,\nT14 -> .(T39, T42),\nX15 -> X76,\nX74 -> X76,\nX75 -> T41,\nT10 -> .(T39, T41),\nT40 -> T42" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 237, 6.98/2.67 "to": 242, 6.98/2.67 "label": "EVAL-BACKTRACK" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 238, 6.98/2.67 "to": 240, 6.98/2.67 "label": "SUCCESS" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 241, 6.98/2.67 "to": 188, 6.98/2.67 "label": "INSTANCE with matching:\nT14 -> T42\nX15 -> X76\nT10 -> T41" 6.98/2.67 } 6.98/2.67 ], 6.98/2.67 "type": "Graph" 6.98/2.67 } 6.98/2.67 } 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (38) 6.98/2.67 Obligation: 6.98/2.67 Q restricted rewrite system: 6.98/2.67 The TRS R consists of the following rules: 6.98/2.67 6.98/2.67 f2_in(T9, T10) -> U1(f184_in(T9, T10), T9, T10) 6.98/2.67 U1(f184_out1(X14, X15), T9, T10) -> f2_out1 6.98/2.67 f187_in(T20) -> f187_out1 6.98/2.67 f187_in(T24) -> U2(f187_in(T24), T24) 6.98/2.67 U2(f187_out1, T24) -> f187_out1 6.98/2.67 f188_in(T32) -> f188_out1([], T32) 6.98/2.67 f188_in(.(T39, T41)) -> U3(f188_in(T41), .(T39, T41)) 6.98/2.67 U3(f188_out1(T42, X76), .(T39, T41)) -> f188_out1(.(T39, T42), X76) 6.98/2.67 f184_in(T9, T10) -> U4(f187_in(T9), T9, T10) 6.98/2.67 U4(f187_out1, T9, T10) -> U5(f188_in(T10), T9, T10) 6.98/2.67 U5(f188_out1(T14, X15), T9, T10) -> f184_out1(T14, X15) 6.98/2.67 6.98/2.67 Q is empty. 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (39) DependencyPairsProof (EQUIVALENT) 6.98/2.67 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (40) 6.98/2.67 Obligation: 6.98/2.67 Q DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 F2_IN(T9, T10) -> U1^1(f184_in(T9, T10), T9, T10) 6.98/2.67 F2_IN(T9, T10) -> F184_IN(T9, T10) 6.98/2.67 F187_IN(T24) -> U2^1(f187_in(T24), T24) 6.98/2.67 F187_IN(T24) -> F187_IN(T24) 6.98/2.67 F188_IN(.(T39, T41)) -> U3^1(f188_in(T41), .(T39, T41)) 6.98/2.67 F188_IN(.(T39, T41)) -> F188_IN(T41) 6.98/2.67 F184_IN(T9, T10) -> U4^1(f187_in(T9), T9, T10) 6.98/2.67 F184_IN(T9, T10) -> F187_IN(T9) 6.98/2.67 U4^1(f187_out1, T9, T10) -> U5^1(f188_in(T10), T9, T10) 6.98/2.67 U4^1(f187_out1, T9, T10) -> F188_IN(T10) 6.98/2.67 6.98/2.67 The TRS R consists of the following rules: 6.98/2.67 6.98/2.67 f2_in(T9, T10) -> U1(f184_in(T9, T10), T9, T10) 6.98/2.67 U1(f184_out1(X14, X15), T9, T10) -> f2_out1 6.98/2.67 f187_in(T20) -> f187_out1 6.98/2.67 f187_in(T24) -> U2(f187_in(T24), T24) 6.98/2.67 U2(f187_out1, T24) -> f187_out1 6.98/2.67 f188_in(T32) -> f188_out1([], T32) 6.98/2.67 f188_in(.(T39, T41)) -> U3(f188_in(T41), .(T39, T41)) 6.98/2.67 U3(f188_out1(T42, X76), .(T39, T41)) -> f188_out1(.(T39, T42), X76) 6.98/2.67 f184_in(T9, T10) -> U4(f187_in(T9), T9, T10) 6.98/2.67 U4(f187_out1, T9, T10) -> U5(f188_in(T10), T9, T10) 6.98/2.67 U5(f188_out1(T14, X15), T9, T10) -> f184_out1(T14, X15) 6.98/2.67 6.98/2.67 Q is empty. 6.98/2.67 We have to consider all minimal (P,Q,R)-chains. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (41) DependencyGraphProof (EQUIVALENT) 6.98/2.67 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 8 less nodes. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (42) 6.98/2.67 Complex Obligation (AND) 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (43) 6.98/2.67 Obligation: 6.98/2.67 Q DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 F188_IN(.(T39, T41)) -> F188_IN(T41) 6.98/2.67 6.98/2.67 The TRS R consists of the following rules: 6.98/2.67 6.98/2.67 f2_in(T9, T10) -> U1(f184_in(T9, T10), T9, T10) 6.98/2.67 U1(f184_out1(X14, X15), T9, T10) -> f2_out1 6.98/2.67 f187_in(T20) -> f187_out1 6.98/2.67 f187_in(T24) -> U2(f187_in(T24), T24) 6.98/2.67 U2(f187_out1, T24) -> f187_out1 6.98/2.67 f188_in(T32) -> f188_out1([], T32) 6.98/2.67 f188_in(.(T39, T41)) -> U3(f188_in(T41), .(T39, T41)) 6.98/2.67 U3(f188_out1(T42, X76), .(T39, T41)) -> f188_out1(.(T39, T42), X76) 6.98/2.67 f184_in(T9, T10) -> U4(f187_in(T9), T9, T10) 6.98/2.67 U4(f187_out1, T9, T10) -> U5(f188_in(T10), T9, T10) 6.98/2.67 U5(f188_out1(T14, X15), T9, T10) -> f184_out1(T14, X15) 6.98/2.67 6.98/2.67 Q is empty. 6.98/2.67 We have to consider all minimal (P,Q,R)-chains. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (44) UsableRulesProof (EQUIVALENT) 6.98/2.67 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. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (45) 6.98/2.67 Obligation: 6.98/2.67 Q DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 F188_IN(.(T39, T41)) -> F188_IN(T41) 6.98/2.67 6.98/2.67 R is empty. 6.98/2.67 Q is empty. 6.98/2.67 We have to consider all minimal (P,Q,R)-chains. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (46) QDPSizeChangeProof (EQUIVALENT) 6.98/2.67 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. 6.98/2.67 6.98/2.67 From the DPs we obtained the following set of size-change graphs: 6.98/2.67 *F188_IN(.(T39, T41)) -> F188_IN(T41) 6.98/2.67 The graph contains the following edges 1 > 1 6.98/2.67 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (47) 6.98/2.67 YES 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (48) 6.98/2.67 Obligation: 6.98/2.67 Q DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 F187_IN(T24) -> F187_IN(T24) 6.98/2.67 6.98/2.67 The TRS R consists of the following rules: 6.98/2.67 6.98/2.67 f2_in(T9, T10) -> U1(f184_in(T9, T10), T9, T10) 6.98/2.67 U1(f184_out1(X14, X15), T9, T10) -> f2_out1 6.98/2.67 f187_in(T20) -> f187_out1 6.98/2.67 f187_in(T24) -> U2(f187_in(T24), T24) 6.98/2.67 U2(f187_out1, T24) -> f187_out1 6.98/2.67 f188_in(T32) -> f188_out1([], T32) 6.98/2.67 f188_in(.(T39, T41)) -> U3(f188_in(T41), .(T39, T41)) 6.98/2.67 U3(f188_out1(T42, X76), .(T39, T41)) -> f188_out1(.(T39, T42), X76) 6.98/2.67 f184_in(T9, T10) -> U4(f187_in(T9), T9, T10) 6.98/2.67 U4(f187_out1, T9, T10) -> U5(f188_in(T10), T9, T10) 6.98/2.67 U5(f188_out1(T14, X15), T9, T10) -> f184_out1(T14, X15) 6.98/2.67 6.98/2.67 Q is empty. 6.98/2.67 We have to consider all minimal (P,Q,R)-chains. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (49) UsableRulesProof (EQUIVALENT) 6.98/2.67 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. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (50) 6.98/2.67 Obligation: 6.98/2.67 Q DP problem: 6.98/2.67 The TRS P consists of the following rules: 6.98/2.67 6.98/2.67 F187_IN(T24) -> F187_IN(T24) 6.98/2.67 6.98/2.67 R is empty. 6.98/2.67 Q is empty. 6.98/2.67 We have to consider all minimal (P,Q,R)-chains. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (51) PrologToIRSwTTransformerProof (SOUND) 6.98/2.67 Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert 6.98/2.67 6.98/2.67 { 6.98/2.67 "root": 128, 6.98/2.67 "program": { 6.98/2.67 "directives": [], 6.98/2.67 "clauses": [ 6.98/2.67 [ 6.98/2.67 "(append1 ([]) Ys Ys)", 6.98/2.67 null 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(append1 (. X Xs) Ys (. X Zs))", 6.98/2.67 "(append1 Xs Ys Zs)" 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(append2 ([]) Ys Ys)", 6.98/2.67 null 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(append2 (. X Xs) Ys (. X Zs))", 6.98/2.67 "(append2 Xs Ys Zs)" 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(sublist X Y)", 6.98/2.67 "(',' (append1 U X V) (append2 V W Y))" 6.98/2.67 ] 6.98/2.67 ] 6.98/2.67 }, 6.98/2.67 "graph": { 6.98/2.67 "nodes": { 6.98/2.67 "190": { 6.98/2.67 "goal": [], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "180": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(',' (append1 X13 T9 X14) (append2 X14 X15 T10))" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [ 6.98/2.67 "T9", 6.98/2.67 "T10" 6.98/2.67 ], 6.98/2.67 "free": [ 6.98/2.67 "X13", 6.98/2.67 "X14", 6.98/2.67 "X15" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "181": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(append1 X13 T9 X14)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T9"], 6.98/2.67 "free": [ 6.98/2.67 "X13", 6.98/2.67 "X14" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "182": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(append2 T14 X15 T10)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T10"], 6.98/2.67 "free": ["X15"], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "type": "Nodes", 6.98/2.67 "183": { 6.98/2.67 "goal": [ 6.98/2.67 { 6.98/2.67 "clause": 0, 6.98/2.67 "scope": 2, 6.98/2.67 "term": "(append1 X13 T9 X14)" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "clause": 1, 6.98/2.67 "scope": 2, 6.98/2.67 "term": "(append1 X13 T9 X14)" 6.98/2.67 } 6.98/2.67 ], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T9"], 6.98/2.67 "free": [ 6.98/2.67 "X13", 6.98/2.67 "X14" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "194": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(append1 X45 T24 X46)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T24"], 6.98/2.67 "free": [ 6.98/2.67 "X45", 6.98/2.67 "X46" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "185": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": 0, 6.98/2.67 "scope": 2, 6.98/2.67 "term": "(append1 X13 T9 X14)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T9"], 6.98/2.67 "free": [ 6.98/2.67 "X13", 6.98/2.67 "X14" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "186": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": 1, 6.98/2.67 "scope": 2, 6.98/2.67 "term": "(append1 X13 T9 X14)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T9"], 6.98/2.67 "free": [ 6.98/2.67 "X13", 6.98/2.67 "X14" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "231": { 6.98/2.67 "goal": [], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "232": { 6.98/2.67 "goal": [], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "134": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": 4, 6.98/2.67 "scope": 1, 6.98/2.67 "term": "(sublist T1 T2)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [ 6.98/2.67 "T1", 6.98/2.67 "T2" 6.98/2.67 ], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "189": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(true)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "233": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(append2 T42 X76 T41)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T41"], 6.98/2.67 "free": ["X76"], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "234": { 6.98/2.67 "goal": [], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "213": { 6.98/2.67 "goal": [ 6.98/2.67 { 6.98/2.67 "clause": 2, 6.98/2.67 "scope": 3, 6.98/2.67 "term": "(append2 T14 X15 T10)" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "clause": 3, 6.98/2.67 "scope": 3, 6.98/2.67 "term": "(append2 T14 X15 T10)" 6.98/2.67 } 6.98/2.67 ], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T10"], 6.98/2.67 "free": ["X15"], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "128": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(sublist T1 T2)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [ 6.98/2.67 "T1", 6.98/2.67 "T2" 6.98/2.67 ], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "217": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": 2, 6.98/2.67 "scope": 3, 6.98/2.67 "term": "(append2 T14 X15 T10)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T10"], 6.98/2.67 "free": ["X15"], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "228": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(true)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "218": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": 3, 6.98/2.67 "scope": 3, 6.98/2.67 "term": "(append2 T14 X15 T10)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": ["T10"], 6.98/2.67 "free": ["X15"], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "edges": [ 6.98/2.67 { 6.98/2.67 "from": 128, 6.98/2.67 "to": 134, 6.98/2.67 "label": "CASE" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 134, 6.98/2.67 "to": 180, 6.98/2.67 "label": "ONLY EVAL with clause\nsublist(X11, X12) :- ','(append1(X13, X11, X14), append2(X14, X15, X12)).\nand substitutionT1 -> T9,\nX11 -> T9,\nT2 -> T10,\nX12 -> T10" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 180, 6.98/2.67 "to": 181, 6.98/2.67 "label": "SPLIT 1" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 180, 6.98/2.67 "to": 182, 6.98/2.67 "label": "SPLIT 2\nnew knowledge:\nT9 is ground\nreplacements:X13 -> T13,\nX14 -> T14" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 181, 6.98/2.67 "to": 183, 6.98/2.67 "label": "CASE" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 182, 6.98/2.67 "to": 213, 6.98/2.67 "label": "CASE" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 183, 6.98/2.67 "to": 185, 6.98/2.67 "label": "PARALLEL" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 183, 6.98/2.67 "to": 186, 6.98/2.67 "label": "PARALLEL" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 185, 6.98/2.67 "to": 189, 6.98/2.67 "label": "ONLY EVAL with clause\nappend1([], X24, X24).\nand substitutionX13 -> [],\nT9 -> T20,\nX24 -> T20,\nX14 -> T20" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 186, 6.98/2.67 "to": 194, 6.98/2.67 "label": "ONLY EVAL with clause\nappend1(.(X40, X41), X42, .(X40, X43)) :- append1(X41, X42, X43).\nand substitutionX40 -> X44,\nX41 -> X45,\nX13 -> .(X44, X45),\nT9 -> T24,\nX42 -> T24,\nX43 -> X46,\nX14 -> .(X44, X46)" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 189, 6.98/2.67 "to": 190, 6.98/2.67 "label": "SUCCESS" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 194, 6.98/2.67 "to": 181, 6.98/2.67 "label": "INSTANCE with matching:\nX13 -> X45\nT9 -> T24\nX14 -> X46" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 213, 6.98/2.67 "to": 217, 6.98/2.67 "label": "PARALLEL" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 213, 6.98/2.67 "to": 218, 6.98/2.67 "label": "PARALLEL" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 217, 6.98/2.67 "to": 228, 6.98/2.67 "label": "EVAL with clause\nappend2([], X60, X60).\nand substitutionT14 -> [],\nX15 -> T32,\nX60 -> T32,\nT10 -> T32,\nX61 -> T32" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 217, 6.98/2.67 "to": 231, 6.98/2.67 "label": "EVAL-BACKTRACK" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 218, 6.98/2.67 "to": 233, 6.98/2.67 "label": "EVAL with clause\nappend2(.(X72, X73), X74, .(X72, X75)) :- append2(X73, X74, X75).\nand substitutionX72 -> T39,\nX73 -> T42,\nT14 -> .(T39, T42),\nX15 -> X76,\nX74 -> X76,\nX75 -> T41,\nT10 -> .(T39, T41),\nT40 -> T42" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 218, 6.98/2.67 "to": 234, 6.98/2.67 "label": "EVAL-BACKTRACK" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 228, 6.98/2.67 "to": 232, 6.98/2.67 "label": "SUCCESS" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "from": 233, 6.98/2.67 "to": 182, 6.98/2.67 "label": "INSTANCE with matching:\nT14 -> T42\nX15 -> X76\nT10 -> T41" 6.98/2.67 } 6.98/2.67 ], 6.98/2.67 "type": "Graph" 6.98/2.67 } 6.98/2.67 } 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (52) 6.98/2.67 Complex Obligation (AND) 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (53) 6.98/2.67 Obligation: 6.98/2.67 Rules: 6.98/2.67 f182_in(T10) -> f213_in(T10) :|: TRUE 6.98/2.67 f213_out(x) -> f182_out(x) :|: TRUE 6.98/2.67 f233_in(T41) -> f182_in(T41) :|: TRUE 6.98/2.67 f182_out(x1) -> f233_out(x1) :|: TRUE 6.98/2.67 f213_in(x2) -> f217_in(x2) :|: TRUE 6.98/2.67 f217_out(x3) -> f213_out(x3) :|: TRUE 6.98/2.67 f213_in(x4) -> f218_in(x4) :|: TRUE 6.98/2.67 f218_out(x5) -> f213_out(x5) :|: TRUE 6.98/2.67 f234_out -> f218_out(x6) :|: TRUE 6.98/2.67 f233_out(x7) -> f218_out(.(x8, x7)) :|: TRUE 6.98/2.67 f218_in(.(x9, x10)) -> f233_in(x10) :|: TRUE 6.98/2.67 f218_in(x11) -> f234_in :|: TRUE 6.98/2.67 f134_out(T1, T2) -> f128_out(T1, T2) :|: TRUE 6.98/2.67 f128_in(x12, x13) -> f134_in(x12, x13) :|: TRUE 6.98/2.67 f134_in(x14, x15) -> f180_in(x14, x15) :|: TRUE 6.98/2.67 f180_out(x16, x17) -> f134_out(x16, x17) :|: TRUE 6.98/2.67 f182_out(x18) -> f180_out(x19, x18) :|: TRUE 6.98/2.67 f181_out(x20) -> f182_in(x21) :|: TRUE 6.98/2.67 f180_in(x22, x23) -> f181_in(x22) :|: TRUE 6.98/2.67 Start term: f128_in(T1, T2) 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (54) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 6.98/2.67 Constructed simple dependency graph. 6.98/2.67 6.98/2.67 Simplified to the following IRSwTs: 6.98/2.67 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (55) 6.98/2.67 TRUE 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (56) 6.98/2.67 Obligation: 6.98/2.67 Rules: 6.98/2.67 f186_in(T24) -> f194_in(T24) :|: TRUE 6.98/2.67 f194_out(x) -> f186_out(x) :|: TRUE 6.98/2.67 f183_in(T9) -> f185_in(T9) :|: TRUE 6.98/2.67 f186_out(x1) -> f183_out(x1) :|: TRUE 6.98/2.67 f185_out(x2) -> f183_out(x2) :|: TRUE 6.98/2.67 f183_in(x3) -> f186_in(x3) :|: TRUE 6.98/2.67 f181_out(x4) -> f194_out(x4) :|: TRUE 6.98/2.67 f194_in(x5) -> f181_in(x5) :|: TRUE 6.98/2.67 f183_out(x6) -> f181_out(x6) :|: TRUE 6.98/2.67 f181_in(x7) -> f183_in(x7) :|: TRUE 6.98/2.67 f134_out(T1, T2) -> f128_out(T1, T2) :|: TRUE 6.98/2.67 f128_in(x8, x9) -> f134_in(x8, x9) :|: TRUE 6.98/2.67 f134_in(x10, x11) -> f180_in(x10, x11) :|: TRUE 6.98/2.67 f180_out(x12, x13) -> f134_out(x12, x13) :|: TRUE 6.98/2.67 f182_out(x14) -> f180_out(x15, x14) :|: TRUE 6.98/2.67 f181_out(x16) -> f182_in(x17) :|: TRUE 6.98/2.67 f180_in(x18, x19) -> f181_in(x18) :|: TRUE 6.98/2.67 Start term: f128_in(T1, T2) 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (57) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 6.98/2.67 Constructed simple dependency graph. 6.98/2.67 6.98/2.67 Simplified to the following IRSwTs: 6.98/2.67 6.98/2.67 intTRSProblem: 6.98/2.67 f186_in(T24) -> f194_in(T24) :|: TRUE 6.98/2.67 f183_in(x3) -> f186_in(x3) :|: TRUE 6.98/2.67 f194_in(x5) -> f181_in(x5) :|: TRUE 6.98/2.67 f181_in(x7) -> f183_in(x7) :|: TRUE 6.98/2.67 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (58) 6.98/2.67 Obligation: 6.98/2.67 Rules: 6.98/2.67 f186_in(T24) -> f194_in(T24) :|: TRUE 6.98/2.67 f183_in(x3) -> f186_in(x3) :|: TRUE 6.98/2.67 f194_in(x5) -> f181_in(x5) :|: TRUE 6.98/2.67 f181_in(x7) -> f183_in(x7) :|: TRUE 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (59) IntTRSCompressionProof (EQUIVALENT) 6.98/2.67 Compressed rules. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (60) 6.98/2.67 Obligation: 6.98/2.67 Rules: 6.98/2.67 f183_in(x3:0) -> f183_in(x3:0) :|: TRUE 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (61) IRSFormatTransformerProof (EQUIVALENT) 6.98/2.67 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (62) 6.98/2.67 Obligation: 6.98/2.67 Rules: 6.98/2.67 f183_in(x3:0) -> f183_in(x3:0) :|: TRUE 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (63) IRSwTTerminationDigraphProof (EQUIVALENT) 6.98/2.67 Constructed termination digraph! 6.98/2.67 Nodes: 6.98/2.67 (1) f183_in(x3:0) -> f183_in(x3:0) :|: TRUE 6.98/2.67 6.98/2.67 Arcs: 6.98/2.67 (1) -> (1) 6.98/2.67 6.98/2.67 This digraph is fully evaluated! 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (64) 6.98/2.67 Obligation: 6.98/2.67 6.98/2.67 Termination digraph: 6.98/2.67 Nodes: 6.98/2.67 (1) f183_in(x3:0) -> f183_in(x3:0) :|: TRUE 6.98/2.67 6.98/2.67 Arcs: 6.98/2.67 (1) -> (1) 6.98/2.67 6.98/2.67 This digraph is fully evaluated! 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (65) FilterProof (EQUIVALENT) 6.98/2.67 Used the following sort dictionary for filtering: 6.98/2.67 f183_in(VARIABLE) 6.98/2.67 Replaced non-predefined constructor symbols by 0. 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (66) 6.98/2.67 Obligation: 6.98/2.67 Rules: 6.98/2.67 f183_in(x3:0) -> f183_in(x3:0) :|: TRUE 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (67) IntTRSNonPeriodicNontermProof (COMPLETE) 6.98/2.67 Normalized system to the following form: 6.98/2.67 f(pc, x3:0) -> f(1, x3:0) :|: pc = 1 && TRUE 6.98/2.67 Proved unsatisfiability of the following formula, indicating that the system is never left after entering: 6.98/2.67 (((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and T)) and !(((run2_0 * 1)) = ((1 * 1)) and T)) 6.98/2.67 Proved satisfiability of the following formula, indicating that the system is entered at least once: 6.98/2.67 ((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and T)) 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (68) 6.98/2.67 NO 6.98/2.67 6.98/2.67 ---------------------------------------- 6.98/2.67 6.98/2.67 (69) PrologToDTProblemTransformerProof (SOUND) 6.98/2.67 Built DT problem from termination graph DT10. 6.98/2.67 6.98/2.67 { 6.98/2.67 "root": 1, 6.98/2.67 "program": { 6.98/2.67 "directives": [], 6.98/2.67 "clauses": [ 6.98/2.67 [ 6.98/2.67 "(append1 ([]) Ys Ys)", 6.98/2.67 null 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(append1 (. X Xs) Ys (. X Zs))", 6.98/2.67 "(append1 Xs Ys Zs)" 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(append2 ([]) Ys Ys)", 6.98/2.67 null 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(append2 (. X Xs) Ys (. X Zs))", 6.98/2.67 "(append2 Xs Ys Zs)" 6.98/2.67 ], 6.98/2.67 [ 6.98/2.67 "(sublist X Y)", 6.98/2.67 "(',' (append1 U X V) (append2 V W Y))" 6.98/2.67 ] 6.98/2.67 ] 6.98/2.67 }, 6.98/2.67 "graph": { 6.98/2.67 "nodes": { 6.98/2.67 "25": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(',' (append1 X5 T5 X6) (append2 X6 X7 T6))" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [ 6.98/2.67 "T5", 6.98/2.67 "T6" 6.98/2.67 ], 6.98/2.67 "free": [ 6.98/2.67 "X5", 6.98/2.67 "X6", 6.98/2.67 "X7" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "26": { 6.98/2.67 "goal": [ 6.98/2.67 { 6.98/2.67 "clause": 0, 6.98/2.67 "scope": 2, 6.98/2.67 "term": "(',' (append1 X5 T5 X6) (append2 X6 X7 T6))" 6.98/2.67 }, 6.98/2.67 { 6.98/2.67 "clause": 1, 6.98/2.67 "scope": 2, 6.98/2.67 "term": "(',' (append1 X5 T5 X6) (append2 X6 X7 T6))" 6.98/2.67 } 6.98/2.67 ], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [ 6.98/2.67 "T5", 6.98/2.67 "T6" 6.98/2.67 ], 6.98/2.67 "free": [ 6.98/2.67 "X5", 6.98/2.67 "X6", 6.98/2.67 "X7" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "29": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": 0, 6.98/2.67 "scope": 2, 6.98/2.67 "term": "(',' (append1 X5 T5 X6) (append2 X6 X7 T6))" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [ 6.98/2.67 "T5", 6.98/2.67 "T6" 6.98/2.67 ], 6.98/2.67 "free": [ 6.98/2.67 "X5", 6.98/2.67 "X6", 6.98/2.67 "X7" 6.98/2.67 ], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "type": "Nodes", 6.98/2.67 "173": { 6.98/2.67 "goal": [], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "250": { 6.98/2.67 "goal": [], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.67 "intvars": {}, 6.98/2.67 "arithmetic": { 6.98/2.67 "type": "PlainIntegerRelationState", 6.98/2.67 "relations": [] 6.98/2.67 }, 6.98/2.67 "ground": [], 6.98/2.67 "free": [], 6.98/2.67 "exprvars": [] 6.98/2.67 } 6.98/2.67 }, 6.98/2.67 "251": { 6.98/2.67 "goal": [{ 6.98/2.67 "clause": -1, 6.98/2.67 "scope": -1, 6.98/2.67 "term": "(append1 X107 T50 X108)" 6.98/2.67 }], 6.98/2.67 "kb": { 6.98/2.67 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T50"], 6.98/2.68 "free": [ 6.98/2.68 "X107", 6.98/2.68 "X108" 6.98/2.68 ], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "252": { 6.98/2.68 "goal": [ 6.98/2.68 { 6.98/2.68 "clause": 2, 6.98/2.68 "scope": 5, 6.98/2.68 "term": "(append2 (. X75 T40) X7 T6)" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "clause": 3, 6.98/2.68 "scope": 5, 6.98/2.68 "term": "(append2 (. X75 T40) X7 T6)" 6.98/2.68 } 6.98/2.68 ], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T6"], 6.98/2.68 "free": [ 6.98/2.68 "X7", 6.98/2.68 "X75" 6.98/2.68 ], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "253": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": 3, 6.98/2.68 "scope": 5, 6.98/2.68 "term": "(append2 (. X75 T40) X7 T6)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T6"], 6.98/2.68 "free": [ 6.98/2.68 "X7", 6.98/2.68 "X75" 6.98/2.68 ], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "155": { 6.98/2.68 "goal": [], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [], 6.98/2.68 "free": [], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "254": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": -1, 6.98/2.68 "scope": -1, 6.98/2.68 "term": "(append2 T61 X130 T60)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T60"], 6.98/2.68 "free": ["X130"], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "255": { 6.98/2.68 "goal": [], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [], 6.98/2.68 "free": [], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "256": { 6.98/2.68 "goal": [ 6.98/2.68 { 6.98/2.68 "clause": 2, 6.98/2.68 "scope": 6, 6.98/2.68 "term": "(append2 T61 X130 T60)" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "clause": 3, 6.98/2.68 "scope": 6, 6.98/2.68 "term": "(append2 T61 X130 T60)" 6.98/2.68 } 6.98/2.68 ], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T60"], 6.98/2.68 "free": ["X130"], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "257": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": 2, 6.98/2.68 "scope": 6, 6.98/2.68 "term": "(append2 T61 X130 T60)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T60"], 6.98/2.68 "free": ["X130"], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "258": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": 3, 6.98/2.68 "scope": 6, 6.98/2.68 "term": "(append2 T61 X130 T60)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T60"], 6.98/2.68 "free": ["X130"], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "259": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": -1, 6.98/2.68 "scope": -1, 6.98/2.68 "term": "(true)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [], 6.98/2.68 "free": [], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "30": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": 1, 6.98/2.68 "scope": 2, 6.98/2.68 "term": "(',' (append1 X5 T5 X6) (append2 X6 X7 T6))" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [ 6.98/2.68 "T5", 6.98/2.68 "T6" 6.98/2.68 ], 6.98/2.68 "free": [ 6.98/2.68 "X5", 6.98/2.68 "X6", 6.98/2.68 "X7" 6.98/2.68 ], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "52": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": -1, 6.98/2.68 "scope": -1, 6.98/2.68 "term": "(append2 T15 X7 T6)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [ 6.98/2.68 "T6", 6.98/2.68 "T15" 6.98/2.68 ], 6.98/2.68 "free": ["X7"], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "260": { 6.98/2.68 "goal": [], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [], 6.98/2.68 "free": [], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "261": { 6.98/2.68 "goal": [], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [], 6.98/2.68 "free": [], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "262": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": -1, 6.98/2.68 "scope": -1, 6.98/2.68 "term": "(append2 T78 X159 T77)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T77"], 6.98/2.68 "free": ["X159"], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "120": { 6.98/2.68 "goal": [ 6.98/2.68 { 6.98/2.68 "clause": 2, 6.98/2.68 "scope": 3, 6.98/2.68 "term": "(append2 T15 X7 T6)" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "clause": 3, 6.98/2.68 "scope": 3, 6.98/2.68 "term": "(append2 T15 X7 T6)" 6.98/2.68 } 6.98/2.68 ], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [ 6.98/2.68 "T6", 6.98/2.68 "T15" 6.98/2.68 ], 6.98/2.68 "free": ["X7"], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "263": { 6.98/2.68 "goal": [], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [], 6.98/2.68 "free": [], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "121": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": 2, 6.98/2.68 "scope": 3, 6.98/2.68 "term": "(append2 T15 X7 T6)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [ 6.98/2.68 "T6", 6.98/2.68 "T15" 6.98/2.68 ], 6.98/2.68 "free": ["X7"], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "1": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": -1, 6.98/2.68 "scope": -1, 6.98/2.68 "term": "(sublist T1 T2)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [ 6.98/2.68 "T1", 6.98/2.68 "T2" 6.98/2.68 ], 6.98/2.68 "free": [], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "122": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": 3, 6.98/2.68 "scope": 3, 6.98/2.68 "term": "(append2 T15 X7 T6)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [ 6.98/2.68 "T6", 6.98/2.68 "T15" 6.98/2.68 ], 6.98/2.68 "free": ["X7"], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "243": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": -1, 6.98/2.68 "scope": -1, 6.98/2.68 "term": "(',' (append1 X76 T37 X77) (append2 (. X75 X77) X7 T6))" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [ 6.98/2.68 "T6", 6.98/2.68 "T37" 6.98/2.68 ], 6.98/2.68 "free": [ 6.98/2.68 "X7", 6.98/2.68 "X75", 6.98/2.68 "X76", 6.98/2.68 "X77" 6.98/2.68 ], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "244": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": -1, 6.98/2.68 "scope": -1, 6.98/2.68 "term": "(append1 X76 T37 X77)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T37"], 6.98/2.68 "free": [ 6.98/2.68 "X76", 6.98/2.68 "X77" 6.98/2.68 ], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "245": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": -1, 6.98/2.68 "scope": -1, 6.98/2.68 "term": "(append2 (. X75 T40) X7 T6)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T6"], 6.98/2.68 "free": [ 6.98/2.68 "X7", 6.98/2.68 "X75" 6.98/2.68 ], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "147": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": -1, 6.98/2.68 "scope": -1, 6.98/2.68 "term": "(true)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [], 6.98/2.68 "free": [], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "202": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": -1, 6.98/2.68 "scope": -1, 6.98/2.68 "term": "(append2 T30 X49 T31)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [ 6.98/2.68 "T30", 6.98/2.68 "T31" 6.98/2.68 ], 6.98/2.68 "free": ["X49"], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "246": { 6.98/2.68 "goal": [ 6.98/2.68 { 6.98/2.68 "clause": 0, 6.98/2.68 "scope": 4, 6.98/2.68 "term": "(append1 X76 T37 X77)" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "clause": 1, 6.98/2.68 "scope": 4, 6.98/2.68 "term": "(append1 X76 T37 X77)" 6.98/2.68 } 6.98/2.68 ], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T37"], 6.98/2.68 "free": [ 6.98/2.68 "X76", 6.98/2.68 "X77" 6.98/2.68 ], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "5": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": 4, 6.98/2.68 "scope": 1, 6.98/2.68 "term": "(sublist T1 T2)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [ 6.98/2.68 "T1", 6.98/2.68 "T2" 6.98/2.68 ], 6.98/2.68 "free": [], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "203": { 6.98/2.68 "goal": [], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [], 6.98/2.68 "free": [], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "247": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": 0, 6.98/2.68 "scope": 4, 6.98/2.68 "term": "(append1 X76 T37 X77)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T37"], 6.98/2.68 "free": [ 6.98/2.68 "X76", 6.98/2.68 "X77" 6.98/2.68 ], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "248": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": 1, 6.98/2.68 "scope": 4, 6.98/2.68 "term": "(append1 X76 T37 X77)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": ["T37"], 6.98/2.68 "free": [ 6.98/2.68 "X76", 6.98/2.68 "X77" 6.98/2.68 ], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "249": { 6.98/2.68 "goal": [{ 6.98/2.68 "clause": -1, 6.98/2.68 "scope": -1, 6.98/2.68 "term": "(true)" 6.98/2.68 }], 6.98/2.68 "kb": { 6.98/2.68 "nonunifying": [], 6.98/2.68 "intvars": {}, 6.98/2.68 "arithmetic": { 6.98/2.68 "type": "PlainIntegerRelationState", 6.98/2.68 "relations": [] 6.98/2.68 }, 6.98/2.68 "ground": [], 6.98/2.68 "free": [], 6.98/2.68 "exprvars": [] 6.98/2.68 } 6.98/2.68 } 6.98/2.68 }, 6.98/2.68 "edges": [ 6.98/2.68 { 6.98/2.68 "from": 1, 6.98/2.68 "to": 5, 6.98/2.68 "label": "CASE" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 5, 6.98/2.68 "to": 25, 6.98/2.68 "label": "ONLY EVAL with clause\nsublist(X3, X4) :- ','(append1(X5, X3, X6), append2(X6, X7, X4)).\nand substitutionT1 -> T5,\nX3 -> T5,\nT2 -> T6,\nX4 -> T6" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 25, 6.98/2.68 "to": 26, 6.98/2.68 "label": "CASE" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 26, 6.98/2.68 "to": 29, 6.98/2.68 "label": "PARALLEL" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 26, 6.98/2.68 "to": 30, 6.98/2.68 "label": "PARALLEL" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 29, 6.98/2.68 "to": 52, 6.98/2.68 "label": "ONLY EVAL with clause\nappend1([], X20, X20).\nand substitutionX5 -> [],\nT5 -> T15,\nX20 -> T15,\nX6 -> T15" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 30, 6.98/2.68 "to": 243, 6.98/2.68 "label": "ONLY EVAL with clause\nappend1(.(X71, X72), X73, .(X71, X74)) :- append1(X72, X73, X74).\nand substitutionX71 -> X75,\nX72 -> X76,\nX5 -> .(X75, X76),\nT5 -> T37,\nX73 -> T37,\nX74 -> X77,\nX6 -> .(X75, X77)" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 52, 6.98/2.68 "to": 120, 6.98/2.68 "label": "CASE" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 120, 6.98/2.68 "to": 121, 6.98/2.68 "label": "PARALLEL" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 120, 6.98/2.68 "to": 122, 6.98/2.68 "label": "PARALLEL" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 121, 6.98/2.68 "to": 147, 6.98/2.68 "label": "EVAL with clause\nappend2([], X33, X33).\nand substitutionT15 -> [],\nX7 -> T22,\nX33 -> T22,\nT6 -> T22,\nX34 -> T22" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 121, 6.98/2.68 "to": 155, 6.98/2.68 "label": "EVAL-BACKTRACK" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 122, 6.98/2.68 "to": 202, 6.98/2.68 "label": "EVAL with clause\nappend2(.(X45, X46), X47, .(X45, X48)) :- append2(X46, X47, X48).\nand substitutionX45 -> T29,\nX46 -> T30,\nT15 -> .(T29, T30),\nX7 -> X49,\nX47 -> X49,\nX48 -> T31,\nT6 -> .(T29, T31)" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 122, 6.98/2.68 "to": 203, 6.98/2.68 "label": "EVAL-BACKTRACK" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 147, 6.98/2.68 "to": 173, 6.98/2.68 "label": "SUCCESS" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 202, 6.98/2.68 "to": 52, 6.98/2.68 "label": "INSTANCE with matching:\nT15 -> T30\nX7 -> X49\nT6 -> T31" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 243, 6.98/2.68 "to": 244, 6.98/2.68 "label": "SPLIT 1" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 243, 6.98/2.68 "to": 245, 6.98/2.68 "label": "SPLIT 2\nnew knowledge:\nT37 is ground\nreplacements:X76 -> T39,\nX77 -> T40" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 244, 6.98/2.68 "to": 246, 6.98/2.68 "label": "CASE" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 245, 6.98/2.68 "to": 252, 6.98/2.68 "label": "CASE" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 246, 6.98/2.68 "to": 247, 6.98/2.68 "label": "PARALLEL" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 246, 6.98/2.68 "to": 248, 6.98/2.68 "label": "PARALLEL" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 247, 6.98/2.68 "to": 249, 6.98/2.68 "label": "ONLY EVAL with clause\nappend1([], X86, X86).\nand substitutionX76 -> [],\nT37 -> T46,\nX86 -> T46,\nX77 -> T46" 6.98/2.68 }, 6.98/2.68 { 6.98/2.68 "from": 248, 6.98/2.68 "to": 251, 6.98/2.68 "label": "ONLY EVAL with clause\nappend1(.(X102, X103), X104, .(X102, X105)) :- append1(X103, X104, X105).\nand substitutionX102 -> X106,\nX103 -> X107,\nX76 -> .(X106, X107),\nT37 -> T50,\nX104 -> T50,\nX105 -> X108,\nX77 -> .(X106, X108)" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 249, 7.21/2.68 "to": 250, 7.21/2.68 "label": "SUCCESS" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 251, 7.21/2.68 "to": 244, 7.21/2.68 "label": "INSTANCE with matching:\nX76 -> X107\nT37 -> T50\nX77 -> X108" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 252, 7.21/2.68 "to": 253, 7.21/2.68 "label": "BACKTRACK\nfor clause: append2([], Ys, Ys)because of non-unification" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 253, 7.21/2.68 "to": 254, 7.21/2.68 "label": "EVAL with clause\nappend2(.(X125, X126), X127, .(X125, X128)) :- append2(X126, X127, X128).\nand substitutionX75 -> T59,\nX125 -> T59,\nT40 -> T61,\nX126 -> T61,\nX7 -> X130,\nX127 -> X130,\nX129 -> T59,\nX128 -> T60,\nT6 -> .(T59, T60),\nT58 -> T61" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 253, 7.21/2.68 "to": 255, 7.21/2.68 "label": "EVAL-BACKTRACK" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 254, 7.21/2.68 "to": 256, 7.21/2.68 "label": "CASE" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 256, 7.21/2.68 "to": 257, 7.21/2.68 "label": "PARALLEL" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 256, 7.21/2.68 "to": 258, 7.21/2.68 "label": "PARALLEL" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 257, 7.21/2.68 "to": 259, 7.21/2.68 "label": "EVAL with clause\nappend2([], X143, X143).\nand substitutionT61 -> [],\nX130 -> T68,\nX143 -> T68,\nT60 -> T68,\nX144 -> T68" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 257, 7.21/2.68 "to": 260, 7.21/2.68 "label": "EVAL-BACKTRACK" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 258, 7.21/2.68 "to": 262, 7.21/2.68 "label": "EVAL with clause\nappend2(.(X155, X156), X157, .(X155, X158)) :- append2(X156, X157, X158).\nand substitutionX155 -> T75,\nX156 -> T78,\nT61 -> .(T75, T78),\nX130 -> X159,\nX157 -> X159,\nX158 -> T77,\nT60 -> .(T75, T77),\nT76 -> T78" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 258, 7.21/2.68 "to": 263, 7.21/2.68 "label": "EVAL-BACKTRACK" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 259, 7.21/2.68 "to": 261, 7.21/2.68 "label": "SUCCESS" 7.21/2.68 }, 7.21/2.68 { 7.21/2.68 "from": 262, 7.21/2.68 "to": 254, 7.21/2.68 "label": "INSTANCE with matching:\nT61 -> T78\nX130 -> X159\nT60 -> T77" 7.21/2.68 } 7.21/2.68 ], 7.21/2.68 "type": "Graph" 7.21/2.68 } 7.21/2.68 } 7.21/2.68 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (70) 7.21/2.68 Obligation: 7.21/2.68 Triples: 7.21/2.68 7.21/2.68 append2A(.(X1, X2), X3, .(X1, X4)) :- append2A(X2, X3, X4). 7.21/2.68 append1B(.(X1, X2), X3, .(X1, X4)) :- append1B(X2, X3, X4). 7.21/2.68 append2C(.(X1, X2), X3, .(X1, X4)) :- append2C(X2, X3, X4). 7.21/2.68 sublistD(X1, X2) :- append2A(X1, X3, X2). 7.21/2.68 sublistD(X1, X2) :- append1B(X3, X1, X4). 7.21/2.68 sublistD(X1, .(X2, X3)) :- ','(append1cB(X4, X1, X5), append2C(X5, X6, X3)). 7.21/2.68 7.21/2.68 Clauses: 7.21/2.68 7.21/2.68 append2cA([], X1, X1). 7.21/2.68 append2cA(.(X1, X2), X3, .(X1, X4)) :- append2cA(X2, X3, X4). 7.21/2.68 append1cB([], X1, X1). 7.21/2.68 append1cB(.(X1, X2), X3, .(X1, X4)) :- append1cB(X2, X3, X4). 7.21/2.68 append2cC([], X1, X1). 7.21/2.68 append2cC(.(X1, X2), X3, .(X1, X4)) :- append2cC(X2, X3, X4). 7.21/2.68 7.21/2.68 Afs: 7.21/2.68 7.21/2.68 sublistD(x1, x2) = sublistD(x1, x2) 7.21/2.68 7.21/2.68 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (71) TriplesToPiDPProof (SOUND) 7.21/2.68 We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: 7.21/2.68 7.21/2.68 sublistD_in_2: (b,b) 7.21/2.68 7.21/2.68 append2A_in_3: (b,f,b) 7.21/2.68 7.21/2.68 append1B_in_3: (f,b,f) 7.21/2.68 7.21/2.68 append1cB_in_3: (f,b,f) 7.21/2.68 7.21/2.68 append2C_in_3: (b,f,b) 7.21/2.68 7.21/2.68 Transforming TRIPLES into the following Term Rewriting System: 7.21/2.68 7.21/2.68 Pi DP problem: 7.21/2.68 The TRS P consists of the following rules: 7.21/2.68 7.21/2.68 SUBLISTD_IN_GG(X1, X2) -> U4_GG(X1, X2, append2A_in_gag(X1, X3, X2)) 7.21/2.68 SUBLISTD_IN_GG(X1, X2) -> APPEND2A_IN_GAG(X1, X3, X2) 7.21/2.68 APPEND2A_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> U1_GAG(X1, X2, X3, X4, append2A_in_gag(X2, X3, X4)) 7.21/2.68 APPEND2A_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPEND2A_IN_GAG(X2, X3, X4) 7.21/2.68 SUBLISTD_IN_GG(X1, X2) -> U5_GG(X1, X2, append1B_in_aga(X3, X1, X4)) 7.21/2.68 SUBLISTD_IN_GG(X1, X2) -> APPEND1B_IN_AGA(X3, X1, X4) 7.21/2.68 APPEND1B_IN_AGA(.(X1, X2), X3, .(X1, X4)) -> U2_AGA(X1, X2, X3, X4, append1B_in_aga(X2, X3, X4)) 7.21/2.68 APPEND1B_IN_AGA(.(X1, X2), X3, .(X1, X4)) -> APPEND1B_IN_AGA(X2, X3, X4) 7.21/2.68 SUBLISTD_IN_GG(X1, .(X2, X3)) -> U6_GG(X1, X2, X3, append1cB_in_aga(X4, X1, X5)) 7.21/2.68 U6_GG(X1, X2, X3, append1cB_out_aga(X4, X1, X5)) -> U7_GG(X1, X2, X3, append2C_in_gag(X5, X6, X3)) 7.21/2.68 U6_GG(X1, X2, X3, append1cB_out_aga(X4, X1, X5)) -> APPEND2C_IN_GAG(X5, X6, X3) 7.21/2.68 APPEND2C_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> U3_GAG(X1, X2, X3, X4, append2C_in_gag(X2, X3, X4)) 7.21/2.68 APPEND2C_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPEND2C_IN_GAG(X2, X3, X4) 7.21/2.68 7.21/2.68 The TRS R consists of the following rules: 7.21/2.68 7.21/2.68 append1cB_in_aga([], X1, X1) -> append1cB_out_aga([], X1, X1) 7.21/2.68 append1cB_in_aga(.(X1, X2), X3, .(X1, X4)) -> U10_aga(X1, X2, X3, X4, append1cB_in_aga(X2, X3, X4)) 7.21/2.68 U10_aga(X1, X2, X3, X4, append1cB_out_aga(X2, X3, X4)) -> append1cB_out_aga(.(X1, X2), X3, .(X1, X4)) 7.21/2.68 7.21/2.68 The argument filtering Pi contains the following mapping: 7.21/2.68 append2A_in_gag(x1, x2, x3) = append2A_in_gag(x1, x3) 7.21/2.68 7.21/2.68 .(x1, x2) = .(x2) 7.21/2.68 7.21/2.68 append1B_in_aga(x1, x2, x3) = append1B_in_aga(x2) 7.21/2.68 7.21/2.68 append1cB_in_aga(x1, x2, x3) = append1cB_in_aga(x2) 7.21/2.68 7.21/2.68 append1cB_out_aga(x1, x2, x3) = append1cB_out_aga(x1, x2, x3) 7.21/2.68 7.21/2.68 U10_aga(x1, x2, x3, x4, x5) = U10_aga(x3, x5) 7.21/2.68 7.21/2.68 append2C_in_gag(x1, x2, x3) = append2C_in_gag(x1, x3) 7.21/2.68 7.21/2.68 SUBLISTD_IN_GG(x1, x2) = SUBLISTD_IN_GG(x1, x2) 7.21/2.68 7.21/2.68 U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) 7.21/2.68 7.21/2.68 APPEND2A_IN_GAG(x1, x2, x3) = APPEND2A_IN_GAG(x1, x3) 7.21/2.68 7.21/2.68 U1_GAG(x1, x2, x3, x4, x5) = U1_GAG(x2, x4, x5) 7.21/2.68 7.21/2.68 U5_GG(x1, x2, x3) = U5_GG(x1, x2, x3) 7.21/2.68 7.21/2.68 APPEND1B_IN_AGA(x1, x2, x3) = APPEND1B_IN_AGA(x2) 7.21/2.68 7.21/2.68 U2_AGA(x1, x2, x3, x4, x5) = U2_AGA(x3, x5) 7.21/2.68 7.21/2.68 U6_GG(x1, x2, x3, x4) = U6_GG(x1, x3, x4) 7.21/2.68 7.21/2.68 U7_GG(x1, x2, x3, x4) = U7_GG(x1, x3, x4) 7.21/2.68 7.21/2.68 APPEND2C_IN_GAG(x1, x2, x3) = APPEND2C_IN_GAG(x1, x3) 7.21/2.68 7.21/2.68 U3_GAG(x1, x2, x3, x4, x5) = U3_GAG(x2, x4, x5) 7.21/2.68 7.21/2.68 7.21/2.68 We have to consider all (P,R,Pi)-chains 7.21/2.68 7.21/2.68 7.21/2.68 Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES 7.21/2.68 7.21/2.68 7.21/2.68 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (72) 7.21/2.68 Obligation: 7.21/2.68 Pi DP problem: 7.21/2.68 The TRS P consists of the following rules: 7.21/2.68 7.21/2.68 SUBLISTD_IN_GG(X1, X2) -> U4_GG(X1, X2, append2A_in_gag(X1, X3, X2)) 7.21/2.68 SUBLISTD_IN_GG(X1, X2) -> APPEND2A_IN_GAG(X1, X3, X2) 7.21/2.68 APPEND2A_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> U1_GAG(X1, X2, X3, X4, append2A_in_gag(X2, X3, X4)) 7.21/2.68 APPEND2A_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPEND2A_IN_GAG(X2, X3, X4) 7.21/2.68 SUBLISTD_IN_GG(X1, X2) -> U5_GG(X1, X2, append1B_in_aga(X3, X1, X4)) 7.21/2.68 SUBLISTD_IN_GG(X1, X2) -> APPEND1B_IN_AGA(X3, X1, X4) 7.21/2.68 APPEND1B_IN_AGA(.(X1, X2), X3, .(X1, X4)) -> U2_AGA(X1, X2, X3, X4, append1B_in_aga(X2, X3, X4)) 7.21/2.68 APPEND1B_IN_AGA(.(X1, X2), X3, .(X1, X4)) -> APPEND1B_IN_AGA(X2, X3, X4) 7.21/2.68 SUBLISTD_IN_GG(X1, .(X2, X3)) -> U6_GG(X1, X2, X3, append1cB_in_aga(X4, X1, X5)) 7.21/2.68 U6_GG(X1, X2, X3, append1cB_out_aga(X4, X1, X5)) -> U7_GG(X1, X2, X3, append2C_in_gag(X5, X6, X3)) 7.21/2.68 U6_GG(X1, X2, X3, append1cB_out_aga(X4, X1, X5)) -> APPEND2C_IN_GAG(X5, X6, X3) 7.21/2.68 APPEND2C_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> U3_GAG(X1, X2, X3, X4, append2C_in_gag(X2, X3, X4)) 7.21/2.68 APPEND2C_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPEND2C_IN_GAG(X2, X3, X4) 7.21/2.68 7.21/2.68 The TRS R consists of the following rules: 7.21/2.68 7.21/2.68 append1cB_in_aga([], X1, X1) -> append1cB_out_aga([], X1, X1) 7.21/2.68 append1cB_in_aga(.(X1, X2), X3, .(X1, X4)) -> U10_aga(X1, X2, X3, X4, append1cB_in_aga(X2, X3, X4)) 7.21/2.68 U10_aga(X1, X2, X3, X4, append1cB_out_aga(X2, X3, X4)) -> append1cB_out_aga(.(X1, X2), X3, .(X1, X4)) 7.21/2.68 7.21/2.68 The argument filtering Pi contains the following mapping: 7.21/2.68 append2A_in_gag(x1, x2, x3) = append2A_in_gag(x1, x3) 7.21/2.68 7.21/2.68 .(x1, x2) = .(x2) 7.21/2.68 7.21/2.68 append1B_in_aga(x1, x2, x3) = append1B_in_aga(x2) 7.21/2.68 7.21/2.68 append1cB_in_aga(x1, x2, x3) = append1cB_in_aga(x2) 7.21/2.68 7.21/2.68 append1cB_out_aga(x1, x2, x3) = append1cB_out_aga(x1, x2, x3) 7.21/2.68 7.21/2.68 U10_aga(x1, x2, x3, x4, x5) = U10_aga(x3, x5) 7.21/2.68 7.21/2.68 append2C_in_gag(x1, x2, x3) = append2C_in_gag(x1, x3) 7.21/2.68 7.21/2.68 SUBLISTD_IN_GG(x1, x2) = SUBLISTD_IN_GG(x1, x2) 7.21/2.68 7.21/2.68 U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) 7.21/2.68 7.21/2.68 APPEND2A_IN_GAG(x1, x2, x3) = APPEND2A_IN_GAG(x1, x3) 7.21/2.68 7.21/2.68 U1_GAG(x1, x2, x3, x4, x5) = U1_GAG(x2, x4, x5) 7.21/2.68 7.21/2.68 U5_GG(x1, x2, x3) = U5_GG(x1, x2, x3) 7.21/2.68 7.21/2.68 APPEND1B_IN_AGA(x1, x2, x3) = APPEND1B_IN_AGA(x2) 7.21/2.68 7.21/2.68 U2_AGA(x1, x2, x3, x4, x5) = U2_AGA(x3, x5) 7.21/2.68 7.21/2.68 U6_GG(x1, x2, x3, x4) = U6_GG(x1, x3, x4) 7.21/2.68 7.21/2.68 U7_GG(x1, x2, x3, x4) = U7_GG(x1, x3, x4) 7.21/2.68 7.21/2.68 APPEND2C_IN_GAG(x1, x2, x3) = APPEND2C_IN_GAG(x1, x3) 7.21/2.68 7.21/2.68 U3_GAG(x1, x2, x3, x4, x5) = U3_GAG(x2, x4, x5) 7.21/2.68 7.21/2.68 7.21/2.68 We have to consider all (P,R,Pi)-chains 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (73) DependencyGraphProof (EQUIVALENT) 7.21/2.68 The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 10 less nodes. 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (74) 7.21/2.68 Complex Obligation (AND) 7.21/2.68 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (75) 7.21/2.68 Obligation: 7.21/2.68 Pi DP problem: 7.21/2.68 The TRS P consists of the following rules: 7.21/2.68 7.21/2.68 APPEND2C_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPEND2C_IN_GAG(X2, X3, X4) 7.21/2.68 7.21/2.68 The TRS R consists of the following rules: 7.21/2.68 7.21/2.68 append1cB_in_aga([], X1, X1) -> append1cB_out_aga([], X1, X1) 7.21/2.68 append1cB_in_aga(.(X1, X2), X3, .(X1, X4)) -> U10_aga(X1, X2, X3, X4, append1cB_in_aga(X2, X3, X4)) 7.21/2.68 U10_aga(X1, X2, X3, X4, append1cB_out_aga(X2, X3, X4)) -> append1cB_out_aga(.(X1, X2), X3, .(X1, X4)) 7.21/2.68 7.21/2.68 The argument filtering Pi contains the following mapping: 7.21/2.68 .(x1, x2) = .(x2) 7.21/2.68 7.21/2.68 append1cB_in_aga(x1, x2, x3) = append1cB_in_aga(x2) 7.21/2.68 7.21/2.68 append1cB_out_aga(x1, x2, x3) = append1cB_out_aga(x1, x2, x3) 7.21/2.68 7.21/2.68 U10_aga(x1, x2, x3, x4, x5) = U10_aga(x3, x5) 7.21/2.68 7.21/2.68 APPEND2C_IN_GAG(x1, x2, x3) = APPEND2C_IN_GAG(x1, x3) 7.21/2.68 7.21/2.68 7.21/2.68 We have to consider all (P,R,Pi)-chains 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (76) UsableRulesProof (EQUIVALENT) 7.21/2.68 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (77) 7.21/2.68 Obligation: 7.21/2.68 Pi DP problem: 7.21/2.68 The TRS P consists of the following rules: 7.21/2.68 7.21/2.68 APPEND2C_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPEND2C_IN_GAG(X2, X3, X4) 7.21/2.68 7.21/2.68 R is empty. 7.21/2.68 The argument filtering Pi contains the following mapping: 7.21/2.68 .(x1, x2) = .(x2) 7.21/2.68 7.21/2.68 APPEND2C_IN_GAG(x1, x2, x3) = APPEND2C_IN_GAG(x1, x3) 7.21/2.68 7.21/2.68 7.21/2.68 We have to consider all (P,R,Pi)-chains 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (78) PiDPToQDPProof (SOUND) 7.21/2.68 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (79) 7.21/2.68 Obligation: 7.21/2.68 Q DP problem: 7.21/2.68 The TRS P consists of the following rules: 7.21/2.68 7.21/2.68 APPEND2C_IN_GAG(.(X2), .(X4)) -> APPEND2C_IN_GAG(X2, X4) 7.21/2.68 7.21/2.68 R is empty. 7.21/2.68 Q is empty. 7.21/2.68 We have to consider all (P,Q,R)-chains. 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (80) QDPSizeChangeProof (EQUIVALENT) 7.21/2.68 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. 7.21/2.68 7.21/2.68 From the DPs we obtained the following set of size-change graphs: 7.21/2.68 *APPEND2C_IN_GAG(.(X2), .(X4)) -> APPEND2C_IN_GAG(X2, X4) 7.21/2.68 The graph contains the following edges 1 > 1, 2 > 2 7.21/2.68 7.21/2.68 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (81) 7.21/2.68 YES 7.21/2.68 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (82) 7.21/2.68 Obligation: 7.21/2.68 Pi DP problem: 7.21/2.68 The TRS P consists of the following rules: 7.21/2.68 7.21/2.68 APPEND1B_IN_AGA(.(X1, X2), X3, .(X1, X4)) -> APPEND1B_IN_AGA(X2, X3, X4) 7.21/2.68 7.21/2.68 The TRS R consists of the following rules: 7.21/2.68 7.21/2.68 append1cB_in_aga([], X1, X1) -> append1cB_out_aga([], X1, X1) 7.21/2.68 append1cB_in_aga(.(X1, X2), X3, .(X1, X4)) -> U10_aga(X1, X2, X3, X4, append1cB_in_aga(X2, X3, X4)) 7.21/2.68 U10_aga(X1, X2, X3, X4, append1cB_out_aga(X2, X3, X4)) -> append1cB_out_aga(.(X1, X2), X3, .(X1, X4)) 7.21/2.68 7.21/2.68 The argument filtering Pi contains the following mapping: 7.21/2.68 .(x1, x2) = .(x2) 7.21/2.68 7.21/2.68 append1cB_in_aga(x1, x2, x3) = append1cB_in_aga(x2) 7.21/2.68 7.21/2.68 append1cB_out_aga(x1, x2, x3) = append1cB_out_aga(x1, x2, x3) 7.21/2.68 7.21/2.68 U10_aga(x1, x2, x3, x4, x5) = U10_aga(x3, x5) 7.21/2.68 7.21/2.68 APPEND1B_IN_AGA(x1, x2, x3) = APPEND1B_IN_AGA(x2) 7.21/2.68 7.21/2.68 7.21/2.68 We have to consider all (P,R,Pi)-chains 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (83) UsableRulesProof (EQUIVALENT) 7.21/2.68 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (84) 7.21/2.68 Obligation: 7.21/2.68 Pi DP problem: 7.21/2.68 The TRS P consists of the following rules: 7.21/2.68 7.21/2.68 APPEND1B_IN_AGA(.(X1, X2), X3, .(X1, X4)) -> APPEND1B_IN_AGA(X2, X3, X4) 7.21/2.68 7.21/2.68 R is empty. 7.21/2.68 The argument filtering Pi contains the following mapping: 7.21/2.68 .(x1, x2) = .(x2) 7.21/2.68 7.21/2.68 APPEND1B_IN_AGA(x1, x2, x3) = APPEND1B_IN_AGA(x2) 7.21/2.68 7.21/2.68 7.21/2.68 We have to consider all (P,R,Pi)-chains 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (85) PiDPToQDPProof (SOUND) 7.21/2.68 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (86) 7.21/2.68 Obligation: 7.21/2.68 Q DP problem: 7.21/2.68 The TRS P consists of the following rules: 7.21/2.68 7.21/2.68 APPEND1B_IN_AGA(X3) -> APPEND1B_IN_AGA(X3) 7.21/2.68 7.21/2.68 R is empty. 7.21/2.68 Q is empty. 7.21/2.68 We have to consider all (P,Q,R)-chains. 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (87) 7.21/2.68 Obligation: 7.21/2.68 Pi DP problem: 7.21/2.68 The TRS P consists of the following rules: 7.21/2.68 7.21/2.68 APPEND2A_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPEND2A_IN_GAG(X2, X3, X4) 7.21/2.68 7.21/2.68 The TRS R consists of the following rules: 7.21/2.68 7.21/2.68 append1cB_in_aga([], X1, X1) -> append1cB_out_aga([], X1, X1) 7.21/2.68 append1cB_in_aga(.(X1, X2), X3, .(X1, X4)) -> U10_aga(X1, X2, X3, X4, append1cB_in_aga(X2, X3, X4)) 7.21/2.68 U10_aga(X1, X2, X3, X4, append1cB_out_aga(X2, X3, X4)) -> append1cB_out_aga(.(X1, X2), X3, .(X1, X4)) 7.21/2.68 7.21/2.68 The argument filtering Pi contains the following mapping: 7.21/2.68 .(x1, x2) = .(x2) 7.21/2.68 7.21/2.68 append1cB_in_aga(x1, x2, x3) = append1cB_in_aga(x2) 7.21/2.68 7.21/2.68 append1cB_out_aga(x1, x2, x3) = append1cB_out_aga(x1, x2, x3) 7.21/2.68 7.21/2.68 U10_aga(x1, x2, x3, x4, x5) = U10_aga(x3, x5) 7.21/2.68 7.21/2.68 APPEND2A_IN_GAG(x1, x2, x3) = APPEND2A_IN_GAG(x1, x3) 7.21/2.68 7.21/2.68 7.21/2.68 We have to consider all (P,R,Pi)-chains 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (88) UsableRulesProof (EQUIVALENT) 7.21/2.68 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 7.21/2.68 ---------------------------------------- 7.21/2.68 7.21/2.68 (89) 7.21/2.68 Obligation: 7.21/2.68 Pi DP problem: 7.21/2.68 The TRS P consists of the following rules: 7.21/2.68 7.21/2.68 APPEND2A_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPEND2A_IN_GAG(X2, X3, X4) 7.21/2.68 7.21/2.68 R is empty. 7.21/2.68 The argument filtering Pi contains the following mapping: 7.21/2.68 .(x1, x2) = .(x2) 7.21/2.68 7.21/2.68 APPEND2A_IN_GAG(x1, x2, x3) = APPEND2A_IN_GAG(x1, x3) 7.21/2.68 7.21/2.68 7.21/2.68 We have to consider all (P,R,Pi)-chains 7.21/2.72 EOF