6.64/2.55 MAYBE 6.67/2.57 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 6.67/2.57 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.67/2.57 6.67/2.57 6.67/2.57 Left Termination of the query pattern 6.67/2.57 6.67/2.57 reverse(a,g) 6.67/2.57 6.67/2.57 w.r.t. the given Prolog program could not be shown: 6.67/2.57 6.67/2.57 (0) Prolog 6.67/2.57 (1) PrologToPiTRSProof [SOUND, 0 ms] 6.67/2.57 (2) PiTRS 6.67/2.57 (3) DependencyPairsProof [EQUIVALENT, 0 ms] 6.67/2.57 (4) PiDP 6.67/2.57 (5) DependencyGraphProof [EQUIVALENT, 2 ms] 6.67/2.57 (6) AND 6.67/2.57 (7) PiDP 6.67/2.57 (8) UsableRulesProof [EQUIVALENT, 0 ms] 6.67/2.57 (9) PiDP 6.67/2.57 (10) PiDPToQDPProof [SOUND, 0 ms] 6.67/2.57 (11) QDP 6.67/2.57 (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.67/2.57 (13) YES 6.67/2.57 (14) PiDP 6.67/2.57 (15) UsableRulesProof [EQUIVALENT, 0 ms] 6.67/2.57 (16) PiDP 6.67/2.57 (17) PiDPToQDPProof [SOUND, 0 ms] 6.67/2.57 (18) QDP 6.67/2.57 (19) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.67/2.57 (20) YES 6.67/2.57 (21) PiDP 6.67/2.57 (22) UsableRulesProof [EQUIVALENT, 0 ms] 6.67/2.57 (23) PiDP 6.67/2.57 (24) PiDPToQDPProof [SOUND, 0 ms] 6.67/2.57 (25) QDP 6.67/2.57 (26) PrologToPiTRSProof [SOUND, 0 ms] 6.67/2.57 (27) PiTRS 6.67/2.57 (28) DependencyPairsProof [EQUIVALENT, 0 ms] 6.67/2.57 (29) PiDP 6.67/2.57 (30) DependencyGraphProof [EQUIVALENT, 7 ms] 6.67/2.57 (31) AND 6.67/2.57 (32) PiDP 6.67/2.57 (33) UsableRulesProof [EQUIVALENT, 0 ms] 6.67/2.57 (34) PiDP 6.67/2.57 (35) PiDPToQDPProof [SOUND, 0 ms] 6.67/2.57 (36) QDP 6.67/2.57 (37) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.67/2.57 (38) YES 6.67/2.57 (39) PiDP 6.67/2.57 (40) UsableRulesProof [EQUIVALENT, 0 ms] 6.67/2.57 (41) PiDP 6.67/2.57 (42) PiDPToQDPProof [SOUND, 0 ms] 6.67/2.57 (43) QDP 6.67/2.57 (44) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.67/2.57 (45) YES 6.67/2.57 (46) PiDP 6.67/2.57 (47) UsableRulesProof [EQUIVALENT, 0 ms] 6.67/2.57 (48) PiDP 6.67/2.57 (49) PiDPToQDPProof [SOUND, 0 ms] 6.67/2.57 (50) QDP 6.67/2.57 (51) PrologToDTProblemTransformerProof [SOUND, 54 ms] 6.67/2.57 (52) TRIPLES 6.67/2.57 (53) TriplesToPiDPProof [SOUND, 0 ms] 6.67/2.57 (54) PiDP 6.67/2.57 (55) DependencyGraphProof [EQUIVALENT, 0 ms] 6.67/2.57 (56) AND 6.67/2.57 (57) PiDP 6.67/2.57 (58) UsableRulesProof [EQUIVALENT, 0 ms] 6.67/2.57 (59) PiDP 6.67/2.57 (60) PiDPToQDPProof [SOUND, 0 ms] 6.67/2.57 (61) QDP 6.67/2.57 (62) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.67/2.57 (63) YES 6.67/2.57 (64) PiDP 6.67/2.57 (65) UsableRulesProof [EQUIVALENT, 0 ms] 6.67/2.57 (66) PiDP 6.67/2.57 (67) PiDPToQDPProof [SOUND, 0 ms] 6.67/2.57 (68) QDP 6.67/2.57 (69) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.67/2.57 (70) YES 6.67/2.57 (71) PiDP 6.67/2.57 (72) UsableRulesProof [EQUIVALENT, 0 ms] 6.67/2.57 (73) PiDP 6.67/2.57 (74) PiDPToQDPProof [SOUND, 0 ms] 6.67/2.57 (75) QDP 6.67/2.57 (76) PrologToIRSwTTransformerProof [SOUND, 35 ms] 6.67/2.57 (77) AND 6.67/2.57 (78) IRSwT 6.67/2.57 (79) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 6.67/2.57 (80) TRUE 6.67/2.57 (81) IRSwT 6.67/2.57 (82) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 6.67/2.57 (83) TRUE 6.67/2.57 (84) IRSwT 6.67/2.57 (85) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 6.67/2.57 (86) IRSwT 6.67/2.57 (87) IntTRSCompressionProof [EQUIVALENT, 20 ms] 6.67/2.57 (88) IRSwT 6.67/2.57 (89) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 6.67/2.57 (90) IRSwT 6.67/2.57 (91) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 6.67/2.57 (92) IRSwT 6.67/2.57 (93) FilterProof [EQUIVALENT, 0 ms] 6.67/2.57 (94) IntTRS 6.67/2.57 (95) IntTRSPeriodicNontermProof [COMPLETE, 7 ms] 6.67/2.57 (96) NO 6.67/2.57 (97) PrologToTRSTransformerProof [SOUND, 19 ms] 6.67/2.57 (98) QTRS 6.67/2.57 (99) QTRSRRRProof [EQUIVALENT, 113 ms] 6.67/2.57 (100) QTRS 6.67/2.57 (101) QTRSRRRProof [EQUIVALENT, 0 ms] 6.67/2.57 (102) QTRS 6.67/2.57 (103) QTRSRRRProof [EQUIVALENT, 11 ms] 6.67/2.57 (104) QTRS 6.67/2.57 (105) QTRSRRRProof [EQUIVALENT, 5 ms] 6.67/2.57 (106) QTRS 6.67/2.57 6.67/2.57 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (0) 6.67/2.57 Obligation: 6.67/2.57 Clauses: 6.67/2.57 6.67/2.57 app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs). 6.67/2.57 app([], Ys, Ys). 6.67/2.57 reverse(.(X, Xs), Ys) :- ','(reverse(Xs, Zs), app(Zs, .(X, []), Ys)). 6.67/2.57 reverse([], []). 6.67/2.57 6.67/2.57 6.67/2.57 Query: reverse(a,g) 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (1) PrologToPiTRSProof (SOUND) 6.67/2.57 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.67/2.57 6.67/2.57 reverse_in_2: (f,b) (f,f) 6.67/2.57 6.67/2.57 app_in_3: (b,b,f) (b,b,b) 6.67/2.57 6.67/2.57 Transforming Prolog into the following Term Rewriting System: 6.67/2.57 6.67/2.57 Pi-finite rewrite system: 6.67/2.57 The TRS R consists of the following rules: 6.67/2.57 6.67/2.57 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.57 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.57 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.57 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.57 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.57 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.57 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.57 6.67/2.57 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.57 6.67/2.57 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.57 6.67/2.57 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.57 6.67/2.57 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.57 6.67/2.57 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.57 6.67/2.57 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.57 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x5) 6.67/2.57 6.67/2.57 [] = [] 6.67/2.57 6.67/2.57 app_out_gga(x1, x2, x3) = app_out_gga(x3) 6.67/2.57 6.67/2.57 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x4) 6.67/2.57 6.67/2.57 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x5) 6.67/2.57 6.67/2.57 app_out_ggg(x1, x2, x3) = app_out_ggg 6.67/2.57 6.67/2.57 reverse_out_ag(x1, x2) = reverse_out_ag(x1) 6.67/2.57 6.67/2.57 6.67/2.57 6.67/2.57 6.67/2.57 6.67/2.57 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 6.67/2.57 6.67/2.57 6.67/2.57 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (2) 6.67/2.57 Obligation: 6.67/2.57 Pi-finite rewrite system: 6.67/2.57 The TRS R consists of the following rules: 6.67/2.57 6.67/2.57 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.57 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.57 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.57 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.57 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.57 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.57 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.57 6.67/2.57 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.57 6.67/2.57 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.57 6.67/2.57 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.57 6.67/2.57 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.57 6.67/2.57 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.57 6.67/2.57 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.57 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x5) 6.67/2.57 6.67/2.57 [] = [] 6.67/2.57 6.67/2.57 app_out_gga(x1, x2, x3) = app_out_gga(x3) 6.67/2.57 6.67/2.57 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x4) 6.67/2.57 6.67/2.57 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x5) 6.67/2.57 6.67/2.57 app_out_ggg(x1, x2, x3) = app_out_ggg 6.67/2.57 6.67/2.57 reverse_out_ag(x1, x2) = reverse_out_ag(x1) 6.67/2.57 6.67/2.57 6.67/2.57 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (3) DependencyPairsProof (EQUIVALENT) 6.67/2.57 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 6.67/2.57 Pi DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 REVERSE_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 REVERSE_IN_AG(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.57 REVERSE_IN_AA(.(X, Xs), Ys) -> U2_AA(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 REVERSE_IN_AA(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.57 U2_AA(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_AA(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 U2_AA(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> APP_IN_GGA(Zs, .(X, []), Ys) 6.67/2.57 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> U1_GGA(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) 6.67/2.57 U2_AG(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_AG(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 U2_AG(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> APP_IN_GGG(Zs, .(X, []), Ys) 6.67/2.57 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> U1_GGG(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.57 6.67/2.57 The TRS R consists of the following rules: 6.67/2.57 6.67/2.57 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.57 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.57 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.57 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.57 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.57 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.57 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.57 6.67/2.57 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.57 6.67/2.57 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.57 6.67/2.57 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.57 6.67/2.57 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.57 6.67/2.57 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.57 6.67/2.57 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.57 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x5) 6.67/2.57 6.67/2.57 [] = [] 6.67/2.57 6.67/2.57 app_out_gga(x1, x2, x3) = app_out_gga(x3) 6.67/2.57 6.67/2.57 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x4) 6.67/2.57 6.67/2.57 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x5) 6.67/2.57 6.67/2.57 app_out_ggg(x1, x2, x3) = app_out_ggg 6.67/2.57 6.67/2.57 reverse_out_ag(x1, x2) = reverse_out_ag(x1) 6.67/2.57 6.67/2.57 REVERSE_IN_AG(x1, x2) = REVERSE_IN_AG(x2) 6.67/2.57 6.67/2.57 U2_AG(x1, x2, x3, x4) = U2_AG(x3, x4) 6.67/2.57 6.67/2.57 REVERSE_IN_AA(x1, x2) = REVERSE_IN_AA 6.67/2.57 6.67/2.57 U2_AA(x1, x2, x3, x4) = U2_AA(x4) 6.67/2.57 6.67/2.57 U3_AA(x1, x2, x3, x4) = U3_AA(x2, x4) 6.67/2.57 6.67/2.57 APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) 6.67/2.57 6.67/2.57 U1_GGA(x1, x2, x3, x4, x5) = U1_GGA(x5) 6.67/2.57 6.67/2.57 U3_AG(x1, x2, x3, x4) = U3_AG(x2, x4) 6.67/2.57 6.67/2.57 APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_GGG(x1, x2, x3, x4, x5) = U1_GGG(x5) 6.67/2.57 6.67/2.57 6.67/2.57 We have to consider all (P,R,Pi)-chains 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (4) 6.67/2.57 Obligation: 6.67/2.57 Pi DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 REVERSE_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 REVERSE_IN_AG(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.57 REVERSE_IN_AA(.(X, Xs), Ys) -> U2_AA(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 REVERSE_IN_AA(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.57 U2_AA(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_AA(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 U2_AA(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> APP_IN_GGA(Zs, .(X, []), Ys) 6.67/2.57 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> U1_GGA(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) 6.67/2.57 U2_AG(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_AG(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 U2_AG(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> APP_IN_GGG(Zs, .(X, []), Ys) 6.67/2.57 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> U1_GGG(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.57 6.67/2.57 The TRS R consists of the following rules: 6.67/2.57 6.67/2.57 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.57 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.57 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.57 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.57 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.57 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.57 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.57 6.67/2.57 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.57 6.67/2.57 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.57 6.67/2.57 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.57 6.67/2.57 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.57 6.67/2.57 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.57 6.67/2.57 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.57 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x5) 6.67/2.57 6.67/2.57 [] = [] 6.67/2.57 6.67/2.57 app_out_gga(x1, x2, x3) = app_out_gga(x3) 6.67/2.57 6.67/2.57 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x4) 6.67/2.57 6.67/2.57 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x5) 6.67/2.57 6.67/2.57 app_out_ggg(x1, x2, x3) = app_out_ggg 6.67/2.57 6.67/2.57 reverse_out_ag(x1, x2) = reverse_out_ag(x1) 6.67/2.57 6.67/2.57 REVERSE_IN_AG(x1, x2) = REVERSE_IN_AG(x2) 6.67/2.57 6.67/2.57 U2_AG(x1, x2, x3, x4) = U2_AG(x3, x4) 6.67/2.57 6.67/2.57 REVERSE_IN_AA(x1, x2) = REVERSE_IN_AA 6.67/2.57 6.67/2.57 U2_AA(x1, x2, x3, x4) = U2_AA(x4) 6.67/2.57 6.67/2.57 U3_AA(x1, x2, x3, x4) = U3_AA(x2, x4) 6.67/2.57 6.67/2.57 APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) 6.67/2.57 6.67/2.57 U1_GGA(x1, x2, x3, x4, x5) = U1_GGA(x5) 6.67/2.57 6.67/2.57 U3_AG(x1, x2, x3, x4) = U3_AG(x2, x4) 6.67/2.57 6.67/2.57 APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_GGG(x1, x2, x3, x4, x5) = U1_GGG(x5) 6.67/2.57 6.67/2.57 6.67/2.57 We have to consider all (P,R,Pi)-chains 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (5) DependencyGraphProof (EQUIVALENT) 6.67/2.57 The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 9 less nodes. 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (6) 6.67/2.57 Complex Obligation (AND) 6.67/2.57 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (7) 6.67/2.57 Obligation: 6.67/2.57 Pi DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.57 6.67/2.57 The TRS R consists of the following rules: 6.67/2.57 6.67/2.57 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.57 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.57 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.57 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.57 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.57 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.57 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.57 6.67/2.57 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.57 6.67/2.57 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.57 6.67/2.57 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.57 6.67/2.57 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.57 6.67/2.57 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.57 6.67/2.57 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.57 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x5) 6.67/2.57 6.67/2.57 [] = [] 6.67/2.57 6.67/2.57 app_out_gga(x1, x2, x3) = app_out_gga(x3) 6.67/2.57 6.67/2.57 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x4) 6.67/2.57 6.67/2.57 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x5) 6.67/2.57 6.67/2.57 app_out_ggg(x1, x2, x3) = app_out_ggg 6.67/2.57 6.67/2.57 reverse_out_ag(x1, x2) = reverse_out_ag(x1) 6.67/2.57 6.67/2.57 APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) 6.67/2.57 6.67/2.57 6.67/2.57 We have to consider all (P,R,Pi)-chains 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (8) UsableRulesProof (EQUIVALENT) 6.67/2.57 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (9) 6.67/2.57 Obligation: 6.67/2.57 Pi DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.57 6.67/2.57 R is empty. 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) 6.67/2.57 6.67/2.57 6.67/2.57 We have to consider all (P,R,Pi)-chains 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (10) PiDPToQDPProof (SOUND) 6.67/2.57 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (11) 6.67/2.57 Obligation: 6.67/2.57 Q DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 APP_IN_GGG(.(Xs), Ys, .(Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.57 6.67/2.57 R is empty. 6.67/2.57 Q is empty. 6.67/2.57 We have to consider all (P,Q,R)-chains. 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (12) QDPSizeChangeProof (EQUIVALENT) 6.67/2.57 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.67/2.57 6.67/2.57 From the DPs we obtained the following set of size-change graphs: 6.67/2.57 *APP_IN_GGG(.(Xs), Ys, .(Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.57 The graph contains the following edges 1 > 1, 2 >= 2, 3 > 3 6.67/2.57 6.67/2.57 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (13) 6.67/2.57 YES 6.67/2.57 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (14) 6.67/2.57 Obligation: 6.67/2.57 Pi DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) 6.67/2.57 6.67/2.57 The TRS R consists of the following rules: 6.67/2.57 6.67/2.57 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.57 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.57 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.57 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.57 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.57 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.57 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.57 6.67/2.57 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.57 6.67/2.57 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.57 6.67/2.57 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.57 6.67/2.57 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.57 6.67/2.57 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.57 6.67/2.57 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.57 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x5) 6.67/2.57 6.67/2.57 [] = [] 6.67/2.57 6.67/2.57 app_out_gga(x1, x2, x3) = app_out_gga(x3) 6.67/2.57 6.67/2.57 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x4) 6.67/2.57 6.67/2.57 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x5) 6.67/2.57 6.67/2.57 app_out_ggg(x1, x2, x3) = app_out_ggg 6.67/2.57 6.67/2.57 reverse_out_ag(x1, x2) = reverse_out_ag(x1) 6.67/2.57 6.67/2.57 APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) 6.67/2.57 6.67/2.57 6.67/2.57 We have to consider all (P,R,Pi)-chains 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (15) UsableRulesProof (EQUIVALENT) 6.67/2.57 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (16) 6.67/2.57 Obligation: 6.67/2.57 Pi DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) 6.67/2.57 6.67/2.57 R is empty. 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) 6.67/2.57 6.67/2.57 6.67/2.57 We have to consider all (P,R,Pi)-chains 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (17) PiDPToQDPProof (SOUND) 6.67/2.57 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (18) 6.67/2.57 Obligation: 6.67/2.57 Q DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 APP_IN_GGA(.(Xs), Ys) -> APP_IN_GGA(Xs, Ys) 6.67/2.57 6.67/2.57 R is empty. 6.67/2.57 Q is empty. 6.67/2.57 We have to consider all (P,Q,R)-chains. 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (19) QDPSizeChangeProof (EQUIVALENT) 6.67/2.57 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.67/2.57 6.67/2.57 From the DPs we obtained the following set of size-change graphs: 6.67/2.57 *APP_IN_GGA(.(Xs), Ys) -> APP_IN_GGA(Xs, Ys) 6.67/2.57 The graph contains the following edges 1 > 1, 2 >= 2 6.67/2.57 6.67/2.57 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (20) 6.67/2.57 YES 6.67/2.57 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (21) 6.67/2.57 Obligation: 6.67/2.57 Pi DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 REVERSE_IN_AA(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.57 6.67/2.57 The TRS R consists of the following rules: 6.67/2.57 6.67/2.57 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.57 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.57 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.57 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.57 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.57 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.57 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.57 6.67/2.57 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.57 6.67/2.57 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.57 6.67/2.57 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.57 6.67/2.57 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.57 6.67/2.57 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.57 6.67/2.57 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.57 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x5) 6.67/2.57 6.67/2.57 [] = [] 6.67/2.57 6.67/2.57 app_out_gga(x1, x2, x3) = app_out_gga(x3) 6.67/2.57 6.67/2.57 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x4) 6.67/2.57 6.67/2.57 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x5) 6.67/2.57 6.67/2.57 app_out_ggg(x1, x2, x3) = app_out_ggg 6.67/2.57 6.67/2.57 reverse_out_ag(x1, x2) = reverse_out_ag(x1) 6.67/2.57 6.67/2.57 REVERSE_IN_AA(x1, x2) = REVERSE_IN_AA 6.67/2.57 6.67/2.57 6.67/2.57 We have to consider all (P,R,Pi)-chains 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (22) UsableRulesProof (EQUIVALENT) 6.67/2.57 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (23) 6.67/2.57 Obligation: 6.67/2.57 Pi DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 REVERSE_IN_AA(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.57 6.67/2.57 R is empty. 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 REVERSE_IN_AA(x1, x2) = REVERSE_IN_AA 6.67/2.57 6.67/2.57 6.67/2.57 We have to consider all (P,R,Pi)-chains 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (24) PiDPToQDPProof (SOUND) 6.67/2.57 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (25) 6.67/2.57 Obligation: 6.67/2.57 Q DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 REVERSE_IN_AA -> REVERSE_IN_AA 6.67/2.57 6.67/2.57 R is empty. 6.67/2.57 Q is empty. 6.67/2.57 We have to consider all (P,Q,R)-chains. 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (26) PrologToPiTRSProof (SOUND) 6.67/2.57 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.67/2.57 6.67/2.57 reverse_in_2: (f,b) (f,f) 6.67/2.57 6.67/2.57 app_in_3: (b,b,f) (b,b,b) 6.67/2.57 6.67/2.57 Transforming Prolog into the following Term Rewriting System: 6.67/2.57 6.67/2.57 Pi-finite rewrite system: 6.67/2.57 The TRS R consists of the following rules: 6.67/2.57 6.67/2.57 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.57 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.57 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.57 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.57 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.57 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.57 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.57 6.67/2.57 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.57 6.67/2.57 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.57 6.67/2.57 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.57 6.67/2.57 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.57 6.67/2.57 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.57 6.67/2.57 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.57 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x2, x3, x5) 6.67/2.57 6.67/2.57 [] = [] 6.67/2.57 6.67/2.57 app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) 6.67/2.57 6.67/2.57 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 6.67/2.57 6.67/2.57 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x2, x3, x4, x5) 6.67/2.57 6.67/2.57 app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) 6.67/2.57 6.67/2.57 6.67/2.57 6.67/2.57 6.67/2.57 6.67/2.57 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 6.67/2.57 6.67/2.57 6.67/2.57 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (27) 6.67/2.57 Obligation: 6.67/2.57 Pi-finite rewrite system: 6.67/2.57 The TRS R consists of the following rules: 6.67/2.57 6.67/2.57 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.57 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.57 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.57 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.57 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.57 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.57 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.57 6.67/2.57 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.57 6.67/2.57 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.57 6.67/2.57 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.57 6.67/2.57 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.57 6.67/2.57 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.57 6.67/2.57 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.57 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x2, x3, x5) 6.67/2.57 6.67/2.57 [] = [] 6.67/2.57 6.67/2.57 app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) 6.67/2.57 6.67/2.57 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 6.67/2.57 6.67/2.57 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x2, x3, x4, x5) 6.67/2.57 6.67/2.57 app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) 6.67/2.57 6.67/2.57 6.67/2.57 6.67/2.57 ---------------------------------------- 6.67/2.57 6.67/2.57 (28) DependencyPairsProof (EQUIVALENT) 6.67/2.57 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 6.67/2.57 Pi DP problem: 6.67/2.57 The TRS P consists of the following rules: 6.67/2.57 6.67/2.57 REVERSE_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 REVERSE_IN_AG(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.57 REVERSE_IN_AA(.(X, Xs), Ys) -> U2_AA(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 REVERSE_IN_AA(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.57 U2_AA(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_AA(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 U2_AA(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> APP_IN_GGA(Zs, .(X, []), Ys) 6.67/2.57 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> U1_GGA(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) 6.67/2.57 U2_AG(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_AG(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 U2_AG(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> APP_IN_GGG(Zs, .(X, []), Ys) 6.67/2.57 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> U1_GGG(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.57 6.67/2.57 The TRS R consists of the following rules: 6.67/2.57 6.67/2.57 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.57 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.57 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.57 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.57 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.57 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.57 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.57 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.57 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.57 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.57 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.57 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.57 6.67/2.57 The argument filtering Pi contains the following mapping: 6.67/2.57 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.57 6.67/2.57 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.57 6.67/2.57 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.57 6.67/2.57 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.57 6.67/2.57 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.57 6.67/2.57 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.57 6.67/2.57 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.57 6.67/2.57 .(x1, x2) = .(x2) 6.67/2.57 6.67/2.57 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x2, x3, x5) 6.67/2.57 6.67/2.57 [] = [] 6.67/2.57 6.67/2.57 app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) 6.67/2.57 6.67/2.57 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 6.67/2.57 6.67/2.57 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x2, x3, x4, x5) 6.67/2.57 6.67/2.57 app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) 6.67/2.57 6.67/2.57 reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) 6.67/2.57 6.67/2.57 REVERSE_IN_AG(x1, x2) = REVERSE_IN_AG(x2) 6.67/2.57 6.67/2.57 U2_AG(x1, x2, x3, x4) = U2_AG(x3, x4) 6.67/2.57 6.67/2.57 REVERSE_IN_AA(x1, x2) = REVERSE_IN_AA 6.67/2.57 6.67/2.57 U2_AA(x1, x2, x3, x4) = U2_AA(x4) 6.67/2.57 6.67/2.57 U3_AA(x1, x2, x3, x4) = U3_AA(x2, x4) 6.67/2.57 6.67/2.57 APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) 6.67/2.57 6.67/2.57 U1_GGA(x1, x2, x3, x4, x5) = U1_GGA(x2, x3, x5) 6.67/2.57 6.67/2.57 U3_AG(x1, x2, x3, x4) = U3_AG(x2, x3, x4) 6.67/2.57 6.67/2.57 APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) 6.67/2.57 6.67/2.57 U1_GGG(x1, x2, x3, x4, x5) = U1_GGG(x2, x3, x4, x5) 6.67/2.59 6.67/2.59 6.67/2.59 We have to consider all (P,R,Pi)-chains 6.67/2.59 ---------------------------------------- 6.67/2.59 6.67/2.59 (29) 6.67/2.59 Obligation: 6.67/2.59 Pi DP problem: 6.67/2.59 The TRS P consists of the following rules: 6.67/2.59 6.67/2.59 REVERSE_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.59 REVERSE_IN_AG(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.59 REVERSE_IN_AA(.(X, Xs), Ys) -> U2_AA(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.59 REVERSE_IN_AA(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.59 U2_AA(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_AA(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.59 U2_AA(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> APP_IN_GGA(Zs, .(X, []), Ys) 6.67/2.59 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> U1_GGA(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.59 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) 6.67/2.59 U2_AG(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_AG(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.59 U2_AG(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> APP_IN_GGG(Zs, .(X, []), Ys) 6.67/2.59 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> U1_GGG(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.59 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.60 6.67/2.60 The TRS R consists of the following rules: 6.67/2.60 6.67/2.60 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.60 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.60 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.60 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.60 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.60 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.60 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.60 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.60 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.60 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.60 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.60 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.60 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.60 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.60 6.67/2.60 The argument filtering Pi contains the following mapping: 6.67/2.60 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.60 6.67/2.60 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.60 6.67/2.60 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.60 6.67/2.60 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.60 6.67/2.60 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.60 6.67/2.60 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.60 6.67/2.60 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.60 6.67/2.60 .(x1, x2) = .(x2) 6.67/2.60 6.67/2.60 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x2, x3, x5) 6.67/2.60 6.67/2.60 [] = [] 6.67/2.60 6.67/2.60 app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) 6.67/2.60 6.67/2.60 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 6.67/2.60 6.67/2.60 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.60 6.67/2.60 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x2, x3, x4, x5) 6.67/2.60 6.67/2.60 app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) 6.67/2.60 6.67/2.60 reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) 6.67/2.60 6.67/2.60 REVERSE_IN_AG(x1, x2) = REVERSE_IN_AG(x2) 6.67/2.60 6.67/2.60 U2_AG(x1, x2, x3, x4) = U2_AG(x3, x4) 6.67/2.60 6.67/2.60 REVERSE_IN_AA(x1, x2) = REVERSE_IN_AA 6.67/2.60 6.67/2.60 U2_AA(x1, x2, x3, x4) = U2_AA(x4) 6.67/2.60 6.67/2.60 U3_AA(x1, x2, x3, x4) = U3_AA(x2, x4) 6.67/2.60 6.67/2.60 APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) 6.67/2.60 6.67/2.60 U1_GGA(x1, x2, x3, x4, x5) = U1_GGA(x2, x3, x5) 6.67/2.60 6.67/2.60 U3_AG(x1, x2, x3, x4) = U3_AG(x2, x3, x4) 6.67/2.60 6.67/2.60 APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) 6.67/2.60 6.67/2.60 U1_GGG(x1, x2, x3, x4, x5) = U1_GGG(x2, x3, x4, x5) 6.67/2.60 6.67/2.60 6.67/2.60 We have to consider all (P,R,Pi)-chains 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (30) DependencyGraphProof (EQUIVALENT) 6.67/2.60 The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 9 less nodes. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (31) 6.67/2.60 Complex Obligation (AND) 6.67/2.60 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (32) 6.67/2.60 Obligation: 6.67/2.60 Pi DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.60 6.67/2.60 The TRS R consists of the following rules: 6.67/2.60 6.67/2.60 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.60 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.60 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.60 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.60 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.60 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.60 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.60 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.60 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.60 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.60 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.60 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.60 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.60 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.60 6.67/2.60 The argument filtering Pi contains the following mapping: 6.67/2.60 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.60 6.67/2.60 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.60 6.67/2.60 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.60 6.67/2.60 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.60 6.67/2.60 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.60 6.67/2.60 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.60 6.67/2.60 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.60 6.67/2.60 .(x1, x2) = .(x2) 6.67/2.60 6.67/2.60 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x2, x3, x5) 6.67/2.60 6.67/2.60 [] = [] 6.67/2.60 6.67/2.60 app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) 6.67/2.60 6.67/2.60 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 6.67/2.60 6.67/2.60 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.60 6.67/2.60 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x2, x3, x4, x5) 6.67/2.60 6.67/2.60 app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) 6.67/2.60 6.67/2.60 reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) 6.67/2.60 6.67/2.60 APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) 6.67/2.60 6.67/2.60 6.67/2.60 We have to consider all (P,R,Pi)-chains 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (33) UsableRulesProof (EQUIVALENT) 6.67/2.60 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (34) 6.67/2.60 Obligation: 6.67/2.60 Pi DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 APP_IN_GGG(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.60 6.67/2.60 R is empty. 6.67/2.60 The argument filtering Pi contains the following mapping: 6.67/2.60 .(x1, x2) = .(x2) 6.67/2.60 6.67/2.60 APP_IN_GGG(x1, x2, x3) = APP_IN_GGG(x1, x2, x3) 6.67/2.60 6.67/2.60 6.67/2.60 We have to consider all (P,R,Pi)-chains 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (35) PiDPToQDPProof (SOUND) 6.67/2.60 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (36) 6.67/2.60 Obligation: 6.67/2.60 Q DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 APP_IN_GGG(.(Xs), Ys, .(Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.60 6.67/2.60 R is empty. 6.67/2.60 Q is empty. 6.67/2.60 We have to consider all (P,Q,R)-chains. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (37) QDPSizeChangeProof (EQUIVALENT) 6.67/2.60 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.67/2.60 6.67/2.60 From the DPs we obtained the following set of size-change graphs: 6.67/2.60 *APP_IN_GGG(.(Xs), Ys, .(Zs)) -> APP_IN_GGG(Xs, Ys, Zs) 6.67/2.60 The graph contains the following edges 1 > 1, 2 >= 2, 3 > 3 6.67/2.60 6.67/2.60 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (38) 6.67/2.60 YES 6.67/2.60 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (39) 6.67/2.60 Obligation: 6.67/2.60 Pi DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) 6.67/2.60 6.67/2.60 The TRS R consists of the following rules: 6.67/2.60 6.67/2.60 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.60 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.60 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.60 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.60 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.60 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.60 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.60 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.60 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.60 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.60 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.60 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.60 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.60 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.60 6.67/2.60 The argument filtering Pi contains the following mapping: 6.67/2.60 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.60 6.67/2.60 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.60 6.67/2.60 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.60 6.67/2.60 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.60 6.67/2.60 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.60 6.67/2.60 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.60 6.67/2.60 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.60 6.67/2.60 .(x1, x2) = .(x2) 6.67/2.60 6.67/2.60 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x2, x3, x5) 6.67/2.60 6.67/2.60 [] = [] 6.67/2.60 6.67/2.60 app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) 6.67/2.60 6.67/2.60 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 6.67/2.60 6.67/2.60 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.60 6.67/2.60 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x2, x3, x4, x5) 6.67/2.60 6.67/2.60 app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) 6.67/2.60 6.67/2.60 reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) 6.67/2.60 6.67/2.60 APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) 6.67/2.60 6.67/2.60 6.67/2.60 We have to consider all (P,R,Pi)-chains 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (40) UsableRulesProof (EQUIVALENT) 6.67/2.60 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (41) 6.67/2.60 Obligation: 6.67/2.60 Pi DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 APP_IN_GGA(.(X, Xs), Ys, .(X, Zs)) -> APP_IN_GGA(Xs, Ys, Zs) 6.67/2.60 6.67/2.60 R is empty. 6.67/2.60 The argument filtering Pi contains the following mapping: 6.67/2.60 .(x1, x2) = .(x2) 6.67/2.60 6.67/2.60 APP_IN_GGA(x1, x2, x3) = APP_IN_GGA(x1, x2) 6.67/2.60 6.67/2.60 6.67/2.60 We have to consider all (P,R,Pi)-chains 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (42) PiDPToQDPProof (SOUND) 6.67/2.60 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (43) 6.67/2.60 Obligation: 6.67/2.60 Q DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 APP_IN_GGA(.(Xs), Ys) -> APP_IN_GGA(Xs, Ys) 6.67/2.60 6.67/2.60 R is empty. 6.67/2.60 Q is empty. 6.67/2.60 We have to consider all (P,Q,R)-chains. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (44) QDPSizeChangeProof (EQUIVALENT) 6.67/2.60 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.67/2.60 6.67/2.60 From the DPs we obtained the following set of size-change graphs: 6.67/2.60 *APP_IN_GGA(.(Xs), Ys) -> APP_IN_GGA(Xs, Ys) 6.67/2.60 The graph contains the following edges 1 > 1, 2 >= 2 6.67/2.60 6.67/2.60 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (45) 6.67/2.60 YES 6.67/2.60 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (46) 6.67/2.60 Obligation: 6.67/2.60 Pi DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 REVERSE_IN_AA(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.60 6.67/2.60 The TRS R consists of the following rules: 6.67/2.60 6.67/2.60 reverse_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.60 reverse_in_aa(.(X, Xs), Ys) -> U2_aa(X, Xs, Ys, reverse_in_aa(Xs, Zs)) 6.67/2.60 reverse_in_aa([], []) -> reverse_out_aa([], []) 6.67/2.60 U2_aa(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_aa(X, Xs, Ys, app_in_gga(Zs, .(X, []), Ys)) 6.67/2.60 app_in_gga(.(X, Xs), Ys, .(X, Zs)) -> U1_gga(X, Xs, Ys, Zs, app_in_gga(Xs, Ys, Zs)) 6.67/2.60 app_in_gga([], Ys, Ys) -> app_out_gga([], Ys, Ys) 6.67/2.60 U1_gga(X, Xs, Ys, Zs, app_out_gga(Xs, Ys, Zs)) -> app_out_gga(.(X, Xs), Ys, .(X, Zs)) 6.67/2.60 U3_aa(X, Xs, Ys, app_out_gga(Zs, .(X, []), Ys)) -> reverse_out_aa(.(X, Xs), Ys) 6.67/2.60 U2_ag(X, Xs, Ys, reverse_out_aa(Xs, Zs)) -> U3_ag(X, Xs, Ys, app_in_ggg(Zs, .(X, []), Ys)) 6.67/2.60 app_in_ggg(.(X, Xs), Ys, .(X, Zs)) -> U1_ggg(X, Xs, Ys, Zs, app_in_ggg(Xs, Ys, Zs)) 6.67/2.60 app_in_ggg([], Ys, Ys) -> app_out_ggg([], Ys, Ys) 6.67/2.60 U1_ggg(X, Xs, Ys, Zs, app_out_ggg(Xs, Ys, Zs)) -> app_out_ggg(.(X, Xs), Ys, .(X, Zs)) 6.67/2.60 U3_ag(X, Xs, Ys, app_out_ggg(Zs, .(X, []), Ys)) -> reverse_out_ag(.(X, Xs), Ys) 6.67/2.60 reverse_in_ag([], []) -> reverse_out_ag([], []) 6.67/2.60 6.67/2.60 The argument filtering Pi contains the following mapping: 6.67/2.60 reverse_in_ag(x1, x2) = reverse_in_ag(x2) 6.67/2.60 6.67/2.60 U2_ag(x1, x2, x3, x4) = U2_ag(x3, x4) 6.67/2.60 6.67/2.60 reverse_in_aa(x1, x2) = reverse_in_aa 6.67/2.60 6.67/2.60 U2_aa(x1, x2, x3, x4) = U2_aa(x4) 6.67/2.60 6.67/2.60 reverse_out_aa(x1, x2) = reverse_out_aa(x1, x2) 6.67/2.60 6.67/2.60 U3_aa(x1, x2, x3, x4) = U3_aa(x2, x4) 6.67/2.60 6.67/2.60 app_in_gga(x1, x2, x3) = app_in_gga(x1, x2) 6.67/2.60 6.67/2.60 .(x1, x2) = .(x2) 6.67/2.60 6.67/2.60 U1_gga(x1, x2, x3, x4, x5) = U1_gga(x2, x3, x5) 6.67/2.60 6.67/2.60 [] = [] 6.67/2.60 6.67/2.60 app_out_gga(x1, x2, x3) = app_out_gga(x1, x2, x3) 6.67/2.60 6.67/2.60 U3_ag(x1, x2, x3, x4) = U3_ag(x2, x3, x4) 6.67/2.60 6.67/2.60 app_in_ggg(x1, x2, x3) = app_in_ggg(x1, x2, x3) 6.67/2.60 6.67/2.60 U1_ggg(x1, x2, x3, x4, x5) = U1_ggg(x2, x3, x4, x5) 6.67/2.60 6.67/2.60 app_out_ggg(x1, x2, x3) = app_out_ggg(x1, x2, x3) 6.67/2.60 6.67/2.60 reverse_out_ag(x1, x2) = reverse_out_ag(x1, x2) 6.67/2.60 6.67/2.60 REVERSE_IN_AA(x1, x2) = REVERSE_IN_AA 6.67/2.60 6.67/2.60 6.67/2.60 We have to consider all (P,R,Pi)-chains 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (47) UsableRulesProof (EQUIVALENT) 6.67/2.60 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (48) 6.67/2.60 Obligation: 6.67/2.60 Pi DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 REVERSE_IN_AA(.(X, Xs), Ys) -> REVERSE_IN_AA(Xs, Zs) 6.67/2.60 6.67/2.60 R is empty. 6.67/2.60 The argument filtering Pi contains the following mapping: 6.67/2.60 .(x1, x2) = .(x2) 6.67/2.60 6.67/2.60 REVERSE_IN_AA(x1, x2) = REVERSE_IN_AA 6.67/2.60 6.67/2.60 6.67/2.60 We have to consider all (P,R,Pi)-chains 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (49) PiDPToQDPProof (SOUND) 6.67/2.60 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (50) 6.67/2.60 Obligation: 6.67/2.60 Q DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 REVERSE_IN_AA -> REVERSE_IN_AA 6.67/2.60 6.67/2.60 R is empty. 6.67/2.60 Q is empty. 6.67/2.60 We have to consider all (P,Q,R)-chains. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (51) PrologToDTProblemTransformerProof (SOUND) 6.67/2.60 Built DT problem from termination graph DT10. 6.67/2.60 6.67/2.60 { 6.67/2.60 "root": 6, 6.67/2.60 "program": { 6.67/2.60 "directives": [], 6.67/2.60 "clauses": [ 6.67/2.60 [ 6.67/2.60 "(app (. X Xs) Ys (. X Zs))", 6.67/2.60 "(app Xs Ys Zs)" 6.67/2.60 ], 6.67/2.60 [ 6.67/2.60 "(app ([]) Ys Ys)", 6.67/2.60 null 6.67/2.60 ], 6.67/2.60 [ 6.67/2.60 "(reverse (. X Xs) Ys)", 6.67/2.60 "(',' (reverse Xs Zs) (app Zs (. X ([])) Ys))" 6.67/2.60 ], 6.67/2.60 [ 6.67/2.60 "(reverse ([]) ([]))", 6.67/2.60 null 6.67/2.60 ] 6.67/2.60 ] 6.67/2.60 }, 6.67/2.60 "graph": { 6.67/2.60 "nodes": { 6.67/2.60 "190": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": 2, 6.67/2.60 "scope": 3, 6.67/2.60 "term": "(reverse T21 X29)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": ["X29"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "191": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 3, 6.67/2.60 "term": "(reverse T21 X29)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": ["X29"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "type": "Nodes", 6.67/2.60 "194": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(',' (reverse T41 X62) (app X62 (. T42 ([])) X63))" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [ 6.67/2.60 "X63", 6.67/2.60 "X62" 6.67/2.60 ], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "196": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "274": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(true)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "110": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": 2, 6.67/2.60 "scope": 2, 6.67/2.60 "term": "(',' (reverse T9 X7) (app X7 (. T10 ([])) T8))" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": ["X7"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "275": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "111": { 6.67/2.60 "goal": [ 6.67/2.60 { 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 2, 6.67/2.60 "term": "(',' (reverse T9 X7) (app X7 (. T10 ([])) T8))" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "clause": -1, 6.67/2.60 "scope": 2, 6.67/2.60 "term": null 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 1, 6.67/2.60 "term": "(reverse T1 T8)" 6.67/2.60 } 6.67/2.60 ], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": ["X7"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "199": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(reverse T41 X62)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": ["X62"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "276": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "112": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(',' (',' (reverse T21 X29) (app X29 (. T22 ([])) X30)) (app X30 (. T23 ([])) T8))" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": [ 6.67/2.60 "X30", 6.67/2.60 "X29" 6.67/2.60 ], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "277": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(true)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "113": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "278": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "279": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "11": { 6.67/2.60 "goal": [ 6.67/2.60 { 6.67/2.60 "clause": 2, 6.67/2.60 "scope": 1, 6.67/2.60 "term": "(reverse T1 T2)" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 1, 6.67/2.60 "term": "(reverse T1 T2)" 6.67/2.60 } 6.67/2.60 ], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T2"], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "280": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(app T26 (. T27 ([])) X30)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": ["X30"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "281": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(app T78 (. T79 ([])) T8)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "282": { 6.67/2.60 "goal": [ 6.67/2.60 { 6.67/2.60 "clause": 0, 6.67/2.60 "scope": 5, 6.67/2.60 "term": "(app T78 (. T79 ([])) T8)" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "clause": 1, 6.67/2.60 "scope": 5, 6.67/2.60 "term": "(app T78 (. T79 ([])) T8)" 6.67/2.60 } 6.67/2.60 ], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "162": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(reverse T21 X29)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": ["X29"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "283": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": 0, 6.67/2.60 "scope": 5, 6.67/2.60 "term": "(app T78 (. T79 ([])) T8)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "284": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": 1, 6.67/2.60 "scope": 5, 6.67/2.60 "term": "(app T78 (. T79 ([])) T8)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "285": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(app T107 (. T108 ([])) T106)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T106"], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "286": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "287": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(true)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "167": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(',' (app T26 (. T27 ([])) X30) (app X30 (. T28 ([])) T8))" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": ["X30"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "288": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "201": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(app T45 (. T46 ([])) X63)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": ["X63"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "289": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "6": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(reverse T1 T2)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T2"], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "290": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 2, 6.67/2.60 "term": "(',' (reverse T9 X7) (app X7 (. T10 ([])) T8))" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": ["X7"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "291": { 6.67/2.60 "goal": [ 6.67/2.60 { 6.67/2.60 "clause": -1, 6.67/2.60 "scope": 2, 6.67/2.60 "term": null 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 1, 6.67/2.60 "term": "(reverse T1 T8)" 6.67/2.60 } 6.67/2.60 ], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "292": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(app ([]) (. T116 ([])) T8)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "293": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "294": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 1, 6.67/2.60 "term": "(reverse T1 T8)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "295": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(true)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "296": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "297": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "298": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(true)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "299": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "257": { 6.67/2.60 "goal": [ 6.67/2.60 { 6.67/2.60 "clause": 0, 6.67/2.60 "scope": 4, 6.67/2.60 "term": "(app T45 (. T46 ([])) X63)" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "clause": 1, 6.67/2.60 "scope": 4, 6.67/2.60 "term": "(app T45 (. T46 ([])) X63)" 6.67/2.60 } 6.67/2.60 ], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": ["X63"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "258": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": 0, 6.67/2.60 "scope": 4, 6.67/2.60 "term": "(app T45 (. T46 ([])) X63)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": ["X63"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "259": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": 1, 6.67/2.60 "scope": 4, 6.67/2.60 "term": "(app T45 (. T46 ([])) X63)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": ["X63"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "181": { 6.67/2.60 "goal": [ 6.67/2.60 { 6.67/2.60 "clause": 2, 6.67/2.60 "scope": 3, 6.67/2.60 "term": "(reverse T21 X29)" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 3, 6.67/2.60 "term": "(reverse T21 X29)" 6.67/2.60 } 6.67/2.60 ], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": ["X29"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "260": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(app T67 (. T68 ([])) X103)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": ["X103"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "261": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "300": { 6.67/2.60 "goal": [], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": [], 6.67/2.60 "free": [], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "107": { 6.67/2.60 "goal": [ 6.67/2.60 { 6.67/2.60 "clause": -1, 6.67/2.60 "scope": -1, 6.67/2.60 "term": "(',' (reverse T9 X7) (app X7 (. T10 ([])) T8))" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 1, 6.67/2.60 "term": "(reverse T1 T8)" 6.67/2.60 } 6.67/2.60 ], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": ["X7"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "108": { 6.67/2.60 "goal": [{ 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 1, 6.67/2.60 "term": "(reverse T1 T2)" 6.67/2.60 }], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [[ 6.67/2.60 "(reverse T1 T2)", 6.67/2.60 "(reverse (. X4 X5) X6)" 6.67/2.60 ]], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T2"], 6.67/2.60 "free": [ 6.67/2.60 "X4", 6.67/2.60 "X5", 6.67/2.60 "X6" 6.67/2.60 ], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "109": { 6.67/2.60 "goal": [ 6.67/2.60 { 6.67/2.60 "clause": 2, 6.67/2.60 "scope": 2, 6.67/2.60 "term": "(',' (reverse T9 X7) (app X7 (. T10 ([])) T8))" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 2, 6.67/2.60 "term": "(',' (reverse T9 X7) (app X7 (. T10 ([])) T8))" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "clause": -1, 6.67/2.60 "scope": 2, 6.67/2.60 "term": null 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "clause": 3, 6.67/2.60 "scope": 1, 6.67/2.60 "term": "(reverse T1 T8)" 6.67/2.60 } 6.67/2.60 ], 6.67/2.60 "kb": { 6.67/2.60 "nonunifying": [], 6.67/2.60 "intvars": {}, 6.67/2.60 "arithmetic": { 6.67/2.60 "type": "PlainIntegerRelationState", 6.67/2.60 "relations": [] 6.67/2.60 }, 6.67/2.60 "ground": ["T8"], 6.67/2.60 "free": ["X7"], 6.67/2.60 "exprvars": [] 6.67/2.60 } 6.67/2.60 } 6.67/2.60 }, 6.67/2.60 "edges": [ 6.67/2.60 { 6.67/2.60 "from": 6, 6.67/2.60 "to": 11, 6.67/2.60 "label": "CASE" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 11, 6.67/2.60 "to": 107, 6.67/2.60 "label": "EVAL with clause\nreverse(.(X4, X5), X6) :- ','(reverse(X5, X7), app(X7, .(X4, []), X6)).\nand substitutionX4 -> T10,\nX5 -> T9,\nT1 -> .(T10, T9),\nT2 -> T8,\nX6 -> T8,\nT7 -> T9,\nT6 -> T10" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 11, 6.67/2.60 "to": 108, 6.67/2.60 "label": "EVAL-BACKTRACK" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 107, 6.67/2.60 "to": 109, 6.67/2.60 "label": "CASE" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 108, 6.67/2.60 "to": 298, 6.67/2.60 "label": "EVAL with clause\nreverse([], []).\nand substitutionT1 -> [],\nT2 -> []" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 108, 6.67/2.60 "to": 299, 6.67/2.60 "label": "EVAL-BACKTRACK" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 109, 6.67/2.60 "to": 110, 6.67/2.60 "label": "PARALLEL" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 109, 6.67/2.60 "to": 111, 6.67/2.60 "label": "PARALLEL" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 110, 6.67/2.60 "to": 112, 6.67/2.60 "label": "EVAL with clause\nreverse(.(X26, X27), X28) :- ','(reverse(X27, X29), app(X29, .(X26, []), X28)).\nand substitutionX26 -> T22,\nX27 -> T21,\nT9 -> .(T22, T21),\nX7 -> X30,\nX28 -> X30,\nT20 -> T21,\nT19 -> T22,\nT10 -> T23" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 110, 6.67/2.60 "to": 113, 6.67/2.60 "label": "EVAL-BACKTRACK" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 111, 6.67/2.60 "to": 290, 6.67/2.60 "label": "PARALLEL" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 111, 6.67/2.60 "to": 291, 6.67/2.60 "label": "PARALLEL" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 112, 6.67/2.60 "to": 162, 6.67/2.60 "label": "SPLIT 1" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 112, 6.67/2.60 "to": 167, 6.67/2.60 "label": "SPLIT 2\nreplacements:X29 -> T26,\nT22 -> T27,\nT23 -> T28" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 162, 6.67/2.60 "to": 181, 6.67/2.60 "label": "CASE" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 167, 6.67/2.60 "to": 280, 6.67/2.60 "label": "SPLIT 1" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 167, 6.67/2.60 "to": 281, 6.67/2.60 "label": "SPLIT 2\nreplacements:X30 -> T78,\nT28 -> T79" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 181, 6.67/2.60 "to": 190, 6.67/2.60 "label": "PARALLEL" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 181, 6.67/2.60 "to": 191, 6.67/2.60 "label": "PARALLEL" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 190, 6.67/2.60 "to": 194, 6.67/2.60 "label": "EVAL with clause\nreverse(.(X59, X60), X61) :- ','(reverse(X60, X62), app(X62, .(X59, []), X61)).\nand substitutionX59 -> T42,\nX60 -> T41,\nT21 -> .(T42, T41),\nX29 -> X63,\nX61 -> X63,\nT40 -> T41,\nT39 -> T42" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 190, 6.67/2.60 "to": 196, 6.67/2.60 "label": "EVAL-BACKTRACK" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 191, 6.67/2.60 "to": 277, 6.67/2.60 "label": "EVAL with clause\nreverse([], []).\nand substitutionT21 -> [],\nX29 -> []" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 191, 6.67/2.60 "to": 278, 6.67/2.60 "label": "EVAL-BACKTRACK" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 194, 6.67/2.60 "to": 199, 6.67/2.60 "label": "SPLIT 1" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 194, 6.67/2.60 "to": 201, 6.67/2.60 "label": "SPLIT 2\nreplacements:X62 -> T45,\nT42 -> T46" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 199, 6.67/2.60 "to": 162, 6.67/2.60 "label": "INSTANCE with matching:\nT21 -> T41\nX29 -> X62" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 201, 6.67/2.60 "to": 257, 6.67/2.60 "label": "CASE" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 257, 6.67/2.60 "to": 258, 6.67/2.60 "label": "PARALLEL" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 257, 6.67/2.60 "to": 259, 6.67/2.60 "label": "PARALLEL" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 258, 6.67/2.60 "to": 260, 6.67/2.60 "label": "EVAL with clause\napp(.(X99, X100), X101, .(X99, X102)) :- app(X100, X101, X102).\nand substitutionX99 -> T64,\nX100 -> T67,\nT45 -> .(T64, T67),\nT46 -> T68,\nX101 -> .(T68, []),\nX102 -> X103,\nX63 -> .(T64, X103),\nT65 -> T67,\nT66 -> T68" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 258, 6.67/2.60 "to": 261, 6.67/2.60 "label": "EVAL-BACKTRACK" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 259, 6.67/2.60 "to": 274, 6.67/2.60 "label": "EVAL with clause\napp([], X111, X111).\nand substitutionT45 -> [],\nT46 -> T74,\nX111 -> .(T74, []),\nX63 -> .(T74, [])" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 259, 6.67/2.60 "to": 275, 6.67/2.60 "label": "EVAL-BACKTRACK" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 260, 6.67/2.60 "to": 201, 6.67/2.60 "label": "INSTANCE with matching:\nT45 -> T67\nT46 -> T68\nX63 -> X103" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 274, 6.67/2.60 "to": 276, 6.67/2.60 "label": "SUCCESS" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 277, 6.67/2.60 "to": 279, 6.67/2.60 "label": "SUCCESS" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 280, 6.67/2.60 "to": 201, 6.67/2.60 "label": "INSTANCE with matching:\nT45 -> T26\nT46 -> T27\nX63 -> X30" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 281, 6.67/2.60 "to": 282, 6.67/2.60 "label": "CASE" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 282, 6.67/2.60 "to": 283, 6.67/2.60 "label": "PARALLEL" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 282, 6.67/2.60 "to": 284, 6.67/2.60 "label": "PARALLEL" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 283, 6.67/2.60 "to": 285, 6.67/2.60 "label": "EVAL with clause\napp(.(X142, X143), X144, .(X142, X145)) :- app(X143, X144, X145).\nand substitutionX142 -> T103,\nX143 -> T107,\nT78 -> .(T103, T107),\nT79 -> T108,\nX144 -> .(T108, []),\nX145 -> T106,\nT8 -> .(T103, T106),\nT104 -> T107,\nT105 -> T108" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 283, 6.67/2.60 "to": 286, 6.67/2.60 "label": "EVAL-BACKTRACK" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 284, 6.67/2.60 "to": 287, 6.67/2.60 "label": "EVAL with clause\napp([], X152, X152).\nand substitutionT78 -> [],\nT79 -> T115,\nX152 -> .(T115, []),\nT8 -> .(T115, [])" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 284, 6.67/2.60 "to": 288, 6.67/2.60 "label": "EVAL-BACKTRACK" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 285, 6.67/2.60 "to": 281, 6.67/2.60 "label": "INSTANCE with matching:\nT78 -> T107\nT79 -> T108\nT8 -> T106" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 287, 6.67/2.60 "to": 289, 6.67/2.60 "label": "SUCCESS" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 290, 6.67/2.60 "to": 292, 6.67/2.60 "label": "EVAL with clause\nreverse([], []).\nand substitutionT9 -> [],\nX7 -> [],\nT10 -> T116" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 290, 6.67/2.60 "to": 293, 6.67/2.60 "label": "EVAL-BACKTRACK" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 291, 6.67/2.60 "to": 294, 6.67/2.60 "label": "FAILURE" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 292, 6.67/2.60 "to": 281, 6.67/2.60 "label": "INSTANCE with matching:\nT78 -> []\nT79 -> T116" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 294, 6.67/2.60 "to": 295, 6.67/2.60 "label": "EVAL with clause\nreverse([], []).\nand substitutionT1 -> [],\nT8 -> []" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 294, 6.67/2.60 "to": 296, 6.67/2.60 "label": "EVAL-BACKTRACK" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 295, 6.67/2.60 "to": 297, 6.67/2.60 "label": "SUCCESS" 6.67/2.60 }, 6.67/2.60 { 6.67/2.60 "from": 298, 6.67/2.60 "to": 300, 6.67/2.60 "label": "SUCCESS" 6.67/2.60 } 6.67/2.60 ], 6.67/2.60 "type": "Graph" 6.67/2.60 } 6.67/2.60 } 6.67/2.60 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (52) 6.67/2.60 Obligation: 6.67/2.60 Triples: 6.67/2.60 6.67/2.60 reverseA(.(X1, X2), X3) :- reverseA(X2, X4). 6.67/2.60 reverseA(.(X1, X2), X3) :- ','(reversecA(X2, X4), appB(X4, X1, X3)). 6.67/2.60 appB(.(X1, X2), X3, .(X1, X4)) :- appB(X2, X3, X4). 6.67/2.60 appC(.(X1, X2), X3, .(X1, X4)) :- appC(X2, X3, X4). 6.67/2.60 reverseD(.(X1, .(X2, X3)), X4) :- reverseA(X3, X5). 6.67/2.60 reverseD(.(X1, .(X2, X3)), X4) :- ','(reversecA(X3, X5), appB(X5, X2, X6)). 6.67/2.60 reverseD(.(X1, .(X2, X3)), X4) :- ','(reversecA(X3, X5), ','(appcB(X5, X2, X6), appC(X6, X1, X4))). 6.67/2.60 reverseD(.(X1, []), X2) :- appC([], X1, X2). 6.67/2.60 6.67/2.60 Clauses: 6.67/2.60 6.67/2.60 reversecA(.(X1, X2), X3) :- ','(reversecA(X2, X4), appcB(X4, X1, X3)). 6.67/2.60 reversecA([], []). 6.67/2.60 appcB(.(X1, X2), X3, .(X1, X4)) :- appcB(X2, X3, X4). 6.67/2.60 appcB([], X1, .(X1, [])). 6.67/2.60 appcC(.(X1, X2), X3, .(X1, X4)) :- appcC(X2, X3, X4). 6.67/2.60 appcC([], X1, .(X1, [])). 6.67/2.60 6.67/2.60 Afs: 6.67/2.60 6.67/2.60 reverseD(x1, x2) = reverseD(x2) 6.67/2.60 6.67/2.60 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (53) TriplesToPiDPProof (SOUND) 6.67/2.60 We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.67/2.60 6.67/2.60 reverseD_in_2: (f,b) 6.67/2.60 6.67/2.60 reverseA_in_2: (f,f) 6.67/2.60 6.67/2.60 reversecA_in_2: (f,f) 6.67/2.60 6.67/2.60 appcB_in_3: (b,f,f) 6.67/2.60 6.67/2.60 appB_in_3: (b,f,f) 6.67/2.60 6.67/2.60 appC_in_3: (b,f,b) 6.67/2.60 6.67/2.60 Transforming TRIPLES into the following Term Rewriting System: 6.67/2.60 6.67/2.60 Pi DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 REVERSED_IN_AG(.(X1, .(X2, X3)), X4) -> U6_AG(X1, X2, X3, X4, reverseA_in_aa(X3, X5)) 6.67/2.60 REVERSED_IN_AG(.(X1, .(X2, X3)), X4) -> REVERSEA_IN_AA(X3, X5) 6.67/2.60 REVERSEA_IN_AA(.(X1, X2), X3) -> U1_AA(X1, X2, X3, reverseA_in_aa(X2, X4)) 6.67/2.60 REVERSEA_IN_AA(.(X1, X2), X3) -> REVERSEA_IN_AA(X2, X4) 6.67/2.60 REVERSEA_IN_AA(.(X1, X2), X3) -> U2_AA(X1, X2, X3, reversecA_in_aa(X2, X4)) 6.67/2.60 U2_AA(X1, X2, X3, reversecA_out_aa(X2, X4)) -> U3_AA(X1, X2, X3, appB_in_gaa(X4, X1, X3)) 6.67/2.60 U2_AA(X1, X2, X3, reversecA_out_aa(X2, X4)) -> APPB_IN_GAA(X4, X1, X3) 6.67/2.60 APPB_IN_GAA(.(X1, X2), X3, .(X1, X4)) -> U4_GAA(X1, X2, X3, X4, appB_in_gaa(X2, X3, X4)) 6.67/2.60 APPB_IN_GAA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_GAA(X2, X3, X4) 6.67/2.60 REVERSED_IN_AG(.(X1, .(X2, X3)), X4) -> U7_AG(X1, X2, X3, X4, reversecA_in_aa(X3, X5)) 6.67/2.60 U7_AG(X1, X2, X3, X4, reversecA_out_aa(X3, X5)) -> U8_AG(X1, X2, X3, X4, appB_in_gaa(X5, X2, X6)) 6.67/2.60 U7_AG(X1, X2, X3, X4, reversecA_out_aa(X3, X5)) -> APPB_IN_GAA(X5, X2, X6) 6.67/2.60 U7_AG(X1, X2, X3, X4, reversecA_out_aa(X3, X5)) -> U9_AG(X1, X2, X3, X4, appcB_in_gaa(X5, X2, X6)) 6.67/2.60 U9_AG(X1, X2, X3, X4, appcB_out_gaa(X5, X2, X6)) -> U10_AG(X1, X2, X3, X4, appC_in_gag(X6, X1, X4)) 6.67/2.60 U9_AG(X1, X2, X3, X4, appcB_out_gaa(X5, X2, X6)) -> APPC_IN_GAG(X6, X1, X4) 6.67/2.60 APPC_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> U5_GAG(X1, X2, X3, X4, appC_in_gag(X2, X3, X4)) 6.67/2.60 APPC_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPC_IN_GAG(X2, X3, X4) 6.67/2.60 REVERSED_IN_AG(.(X1, []), X2) -> U11_AG(X1, X2, appC_in_gag([], X1, X2)) 6.67/2.60 REVERSED_IN_AG(.(X1, []), X2) -> APPC_IN_GAG([], X1, X2) 6.67/2.60 6.67/2.60 The TRS R consists of the following rules: 6.67/2.60 6.67/2.60 reversecA_in_aa(.(X1, X2), X3) -> U13_aa(X1, X2, X3, reversecA_in_aa(X2, X4)) 6.67/2.60 reversecA_in_aa([], []) -> reversecA_out_aa([], []) 6.67/2.60 U13_aa(X1, X2, X3, reversecA_out_aa(X2, X4)) -> U14_aa(X1, X2, X3, appcB_in_gaa(X4, X1, X3)) 6.67/2.60 appcB_in_gaa(.(X1, X2), X3, .(X1, X4)) -> U15_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) 6.67/2.60 appcB_in_gaa([], X1, .(X1, [])) -> appcB_out_gaa([], X1, .(X1, [])) 6.67/2.60 U15_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, .(X1, X4)) 6.67/2.60 U14_aa(X1, X2, X3, appcB_out_gaa(X4, X1, X3)) -> reversecA_out_aa(.(X1, X2), X3) 6.67/2.60 6.67/2.60 The argument filtering Pi contains the following mapping: 6.67/2.60 reverseA_in_aa(x1, x2) = reverseA_in_aa 6.67/2.60 6.67/2.60 reversecA_in_aa(x1, x2) = reversecA_in_aa 6.67/2.60 6.67/2.60 U13_aa(x1, x2, x3, x4) = U13_aa(x4) 6.67/2.60 6.67/2.60 reversecA_out_aa(x1, x2) = reversecA_out_aa(x1, x2) 6.67/2.60 6.67/2.60 U14_aa(x1, x2, x3, x4) = U14_aa(x2, x4) 6.67/2.60 6.67/2.60 appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) 6.67/2.60 6.67/2.60 .(x1, x2) = .(x2) 6.67/2.60 6.67/2.60 U15_gaa(x1, x2, x3, x4, x5) = U15_gaa(x2, x5) 6.67/2.60 6.67/2.60 [] = [] 6.67/2.60 6.67/2.60 appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1, x3) 6.67/2.60 6.67/2.60 appB_in_gaa(x1, x2, x3) = appB_in_gaa(x1) 6.67/2.60 6.67/2.60 appC_in_gag(x1, x2, x3) = appC_in_gag(x1, x3) 6.67/2.60 6.67/2.60 REVERSED_IN_AG(x1, x2) = REVERSED_IN_AG(x2) 6.67/2.60 6.67/2.60 U6_AG(x1, x2, x3, x4, x5) = U6_AG(x4, x5) 6.67/2.60 6.67/2.60 REVERSEA_IN_AA(x1, x2) = REVERSEA_IN_AA 6.67/2.60 6.67/2.60 U1_AA(x1, x2, x3, x4) = U1_AA(x4) 6.67/2.60 6.67/2.60 U2_AA(x1, x2, x3, x4) = U2_AA(x4) 6.67/2.60 6.67/2.60 U3_AA(x1, x2, x3, x4) = U3_AA(x2, x4) 6.67/2.60 6.67/2.60 APPB_IN_GAA(x1, x2, x3) = APPB_IN_GAA(x1) 6.67/2.60 6.67/2.60 U4_GAA(x1, x2, x3, x4, x5) = U4_GAA(x2, x5) 6.67/2.60 6.67/2.60 U7_AG(x1, x2, x3, x4, x5) = U7_AG(x4, x5) 6.67/2.60 6.67/2.60 U8_AG(x1, x2, x3, x4, x5) = U8_AG(x3, x4, x5) 6.67/2.60 6.67/2.60 U9_AG(x1, x2, x3, x4, x5) = U9_AG(x3, x4, x5) 6.67/2.60 6.67/2.60 U10_AG(x1, x2, x3, x4, x5) = U10_AG(x3, x4, x5) 6.67/2.60 6.67/2.60 APPC_IN_GAG(x1, x2, x3) = APPC_IN_GAG(x1, x3) 6.67/2.60 6.67/2.60 U5_GAG(x1, x2, x3, x4, x5) = U5_GAG(x2, x4, x5) 6.67/2.60 6.67/2.60 U11_AG(x1, x2, x3) = U11_AG(x2, x3) 6.67/2.60 6.67/2.60 6.67/2.60 We have to consider all (P,R,Pi)-chains 6.67/2.60 6.67/2.60 6.67/2.60 Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES 6.67/2.60 6.67/2.60 6.67/2.60 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (54) 6.67/2.60 Obligation: 6.67/2.60 Pi DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 REVERSED_IN_AG(.(X1, .(X2, X3)), X4) -> U6_AG(X1, X2, X3, X4, reverseA_in_aa(X3, X5)) 6.67/2.60 REVERSED_IN_AG(.(X1, .(X2, X3)), X4) -> REVERSEA_IN_AA(X3, X5) 6.67/2.60 REVERSEA_IN_AA(.(X1, X2), X3) -> U1_AA(X1, X2, X3, reverseA_in_aa(X2, X4)) 6.67/2.60 REVERSEA_IN_AA(.(X1, X2), X3) -> REVERSEA_IN_AA(X2, X4) 6.67/2.60 REVERSEA_IN_AA(.(X1, X2), X3) -> U2_AA(X1, X2, X3, reversecA_in_aa(X2, X4)) 6.67/2.60 U2_AA(X1, X2, X3, reversecA_out_aa(X2, X4)) -> U3_AA(X1, X2, X3, appB_in_gaa(X4, X1, X3)) 6.67/2.60 U2_AA(X1, X2, X3, reversecA_out_aa(X2, X4)) -> APPB_IN_GAA(X4, X1, X3) 6.67/2.60 APPB_IN_GAA(.(X1, X2), X3, .(X1, X4)) -> U4_GAA(X1, X2, X3, X4, appB_in_gaa(X2, X3, X4)) 6.67/2.60 APPB_IN_GAA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_GAA(X2, X3, X4) 6.67/2.60 REVERSED_IN_AG(.(X1, .(X2, X3)), X4) -> U7_AG(X1, X2, X3, X4, reversecA_in_aa(X3, X5)) 6.67/2.60 U7_AG(X1, X2, X3, X4, reversecA_out_aa(X3, X5)) -> U8_AG(X1, X2, X3, X4, appB_in_gaa(X5, X2, X6)) 6.67/2.60 U7_AG(X1, X2, X3, X4, reversecA_out_aa(X3, X5)) -> APPB_IN_GAA(X5, X2, X6) 6.67/2.60 U7_AG(X1, X2, X3, X4, reversecA_out_aa(X3, X5)) -> U9_AG(X1, X2, X3, X4, appcB_in_gaa(X5, X2, X6)) 6.67/2.60 U9_AG(X1, X2, X3, X4, appcB_out_gaa(X5, X2, X6)) -> U10_AG(X1, X2, X3, X4, appC_in_gag(X6, X1, X4)) 6.67/2.60 U9_AG(X1, X2, X3, X4, appcB_out_gaa(X5, X2, X6)) -> APPC_IN_GAG(X6, X1, X4) 6.67/2.60 APPC_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> U5_GAG(X1, X2, X3, X4, appC_in_gag(X2, X3, X4)) 6.67/2.60 APPC_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPC_IN_GAG(X2, X3, X4) 6.67/2.60 REVERSED_IN_AG(.(X1, []), X2) -> U11_AG(X1, X2, appC_in_gag([], X1, X2)) 6.67/2.60 REVERSED_IN_AG(.(X1, []), X2) -> APPC_IN_GAG([], X1, X2) 6.67/2.60 6.67/2.60 The TRS R consists of the following rules: 6.67/2.60 6.67/2.60 reversecA_in_aa(.(X1, X2), X3) -> U13_aa(X1, X2, X3, reversecA_in_aa(X2, X4)) 6.67/2.60 reversecA_in_aa([], []) -> reversecA_out_aa([], []) 6.67/2.60 U13_aa(X1, X2, X3, reversecA_out_aa(X2, X4)) -> U14_aa(X1, X2, X3, appcB_in_gaa(X4, X1, X3)) 6.67/2.60 appcB_in_gaa(.(X1, X2), X3, .(X1, X4)) -> U15_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) 6.67/2.60 appcB_in_gaa([], X1, .(X1, [])) -> appcB_out_gaa([], X1, .(X1, [])) 6.67/2.60 U15_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, .(X1, X4)) 6.67/2.60 U14_aa(X1, X2, X3, appcB_out_gaa(X4, X1, X3)) -> reversecA_out_aa(.(X1, X2), X3) 6.67/2.60 6.67/2.60 The argument filtering Pi contains the following mapping: 6.67/2.60 reverseA_in_aa(x1, x2) = reverseA_in_aa 6.67/2.60 6.67/2.60 reversecA_in_aa(x1, x2) = reversecA_in_aa 6.67/2.60 6.67/2.60 U13_aa(x1, x2, x3, x4) = U13_aa(x4) 6.67/2.60 6.67/2.60 reversecA_out_aa(x1, x2) = reversecA_out_aa(x1, x2) 6.67/2.60 6.67/2.60 U14_aa(x1, x2, x3, x4) = U14_aa(x2, x4) 6.67/2.60 6.67/2.60 appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) 6.67/2.60 6.67/2.60 .(x1, x2) = .(x2) 6.67/2.60 6.67/2.60 U15_gaa(x1, x2, x3, x4, x5) = U15_gaa(x2, x5) 6.67/2.60 6.67/2.60 [] = [] 6.67/2.60 6.67/2.60 appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1, x3) 6.67/2.60 6.67/2.60 appB_in_gaa(x1, x2, x3) = appB_in_gaa(x1) 6.67/2.60 6.67/2.60 appC_in_gag(x1, x2, x3) = appC_in_gag(x1, x3) 6.67/2.60 6.67/2.60 REVERSED_IN_AG(x1, x2) = REVERSED_IN_AG(x2) 6.67/2.60 6.67/2.60 U6_AG(x1, x2, x3, x4, x5) = U6_AG(x4, x5) 6.67/2.60 6.67/2.60 REVERSEA_IN_AA(x1, x2) = REVERSEA_IN_AA 6.67/2.60 6.67/2.60 U1_AA(x1, x2, x3, x4) = U1_AA(x4) 6.67/2.60 6.67/2.60 U2_AA(x1, x2, x3, x4) = U2_AA(x4) 6.67/2.60 6.67/2.60 U3_AA(x1, x2, x3, x4) = U3_AA(x2, x4) 6.67/2.60 6.67/2.60 APPB_IN_GAA(x1, x2, x3) = APPB_IN_GAA(x1) 6.67/2.60 6.67/2.60 U4_GAA(x1, x2, x3, x4, x5) = U4_GAA(x2, x5) 6.67/2.60 6.67/2.60 U7_AG(x1, x2, x3, x4, x5) = U7_AG(x4, x5) 6.67/2.60 6.67/2.60 U8_AG(x1, x2, x3, x4, x5) = U8_AG(x3, x4, x5) 6.67/2.60 6.67/2.60 U9_AG(x1, x2, x3, x4, x5) = U9_AG(x3, x4, x5) 6.67/2.60 6.67/2.60 U10_AG(x1, x2, x3, x4, x5) = U10_AG(x3, x4, x5) 6.67/2.60 6.67/2.60 APPC_IN_GAG(x1, x2, x3) = APPC_IN_GAG(x1, x3) 6.67/2.60 6.67/2.60 U5_GAG(x1, x2, x3, x4, x5) = U5_GAG(x2, x4, x5) 6.67/2.60 6.67/2.60 U11_AG(x1, x2, x3) = U11_AG(x2, x3) 6.67/2.60 6.67/2.60 6.67/2.60 We have to consider all (P,R,Pi)-chains 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (55) DependencyGraphProof (EQUIVALENT) 6.67/2.60 The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 16 less nodes. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (56) 6.67/2.60 Complex Obligation (AND) 6.67/2.60 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (57) 6.67/2.60 Obligation: 6.67/2.60 Pi DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 APPC_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPC_IN_GAG(X2, X3, X4) 6.67/2.60 6.67/2.60 The TRS R consists of the following rules: 6.67/2.60 6.67/2.60 reversecA_in_aa(.(X1, X2), X3) -> U13_aa(X1, X2, X3, reversecA_in_aa(X2, X4)) 6.67/2.60 reversecA_in_aa([], []) -> reversecA_out_aa([], []) 6.67/2.60 U13_aa(X1, X2, X3, reversecA_out_aa(X2, X4)) -> U14_aa(X1, X2, X3, appcB_in_gaa(X4, X1, X3)) 6.67/2.60 appcB_in_gaa(.(X1, X2), X3, .(X1, X4)) -> U15_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) 6.67/2.60 appcB_in_gaa([], X1, .(X1, [])) -> appcB_out_gaa([], X1, .(X1, [])) 6.67/2.60 U15_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, .(X1, X4)) 6.67/2.60 U14_aa(X1, X2, X3, appcB_out_gaa(X4, X1, X3)) -> reversecA_out_aa(.(X1, X2), X3) 6.67/2.60 6.67/2.60 The argument filtering Pi contains the following mapping: 6.67/2.60 reversecA_in_aa(x1, x2) = reversecA_in_aa 6.67/2.60 6.67/2.60 U13_aa(x1, x2, x3, x4) = U13_aa(x4) 6.67/2.60 6.67/2.60 reversecA_out_aa(x1, x2) = reversecA_out_aa(x1, x2) 6.67/2.60 6.67/2.60 U14_aa(x1, x2, x3, x4) = U14_aa(x2, x4) 6.67/2.60 6.67/2.60 appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) 6.67/2.60 6.67/2.60 .(x1, x2) = .(x2) 6.67/2.60 6.67/2.60 U15_gaa(x1, x2, x3, x4, x5) = U15_gaa(x2, x5) 6.67/2.60 6.67/2.60 [] = [] 6.67/2.60 6.67/2.60 appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1, x3) 6.67/2.60 6.67/2.60 APPC_IN_GAG(x1, x2, x3) = APPC_IN_GAG(x1, x3) 6.67/2.60 6.67/2.60 6.67/2.60 We have to consider all (P,R,Pi)-chains 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (58) UsableRulesProof (EQUIVALENT) 6.67/2.60 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (59) 6.67/2.60 Obligation: 6.67/2.60 Pi DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 APPC_IN_GAG(.(X1, X2), X3, .(X1, X4)) -> APPC_IN_GAG(X2, X3, X4) 6.67/2.60 6.67/2.60 R is empty. 6.67/2.60 The argument filtering Pi contains the following mapping: 6.67/2.60 .(x1, x2) = .(x2) 6.67/2.60 6.67/2.60 APPC_IN_GAG(x1, x2, x3) = APPC_IN_GAG(x1, x3) 6.67/2.60 6.67/2.60 6.67/2.60 We have to consider all (P,R,Pi)-chains 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (60) PiDPToQDPProof (SOUND) 6.67/2.60 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (61) 6.67/2.60 Obligation: 6.67/2.60 Q DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.60 6.67/2.60 APPC_IN_GAG(.(X2), .(X4)) -> APPC_IN_GAG(X2, X4) 6.67/2.60 6.67/2.60 R is empty. 6.67/2.60 Q is empty. 6.67/2.60 We have to consider all (P,Q,R)-chains. 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (62) QDPSizeChangeProof (EQUIVALENT) 6.67/2.60 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.67/2.60 6.67/2.60 From the DPs we obtained the following set of size-change graphs: 6.67/2.60 *APPC_IN_GAG(.(X2), .(X4)) -> APPC_IN_GAG(X2, X4) 6.67/2.60 The graph contains the following edges 1 > 1, 2 > 2 6.67/2.60 6.67/2.60 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (63) 6.67/2.60 YES 6.67/2.60 6.67/2.60 ---------------------------------------- 6.67/2.60 6.67/2.60 (64) 6.67/2.60 Obligation: 6.67/2.60 Pi DP problem: 6.67/2.60 The TRS P consists of the following rules: 6.67/2.61 6.67/2.61 APPB_IN_GAA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_GAA(X2, X3, X4) 6.67/2.61 6.67/2.61 The TRS R consists of the following rules: 6.67/2.61 6.67/2.61 reversecA_in_aa(.(X1, X2), X3) -> U13_aa(X1, X2, X3, reversecA_in_aa(X2, X4)) 6.67/2.61 reversecA_in_aa([], []) -> reversecA_out_aa([], []) 6.67/2.61 U13_aa(X1, X2, X3, reversecA_out_aa(X2, X4)) -> U14_aa(X1, X2, X3, appcB_in_gaa(X4, X1, X3)) 6.67/2.61 appcB_in_gaa(.(X1, X2), X3, .(X1, X4)) -> U15_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) 6.67/2.61 appcB_in_gaa([], X1, .(X1, [])) -> appcB_out_gaa([], X1, .(X1, [])) 6.67/2.61 U15_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, .(X1, X4)) 6.67/2.61 U14_aa(X1, X2, X3, appcB_out_gaa(X4, X1, X3)) -> reversecA_out_aa(.(X1, X2), X3) 6.67/2.61 6.67/2.61 The argument filtering Pi contains the following mapping: 6.67/2.61 reversecA_in_aa(x1, x2) = reversecA_in_aa 6.67/2.61 6.67/2.61 U13_aa(x1, x2, x3, x4) = U13_aa(x4) 6.67/2.61 6.67/2.61 reversecA_out_aa(x1, x2) = reversecA_out_aa(x1, x2) 6.67/2.61 6.67/2.61 U14_aa(x1, x2, x3, x4) = U14_aa(x2, x4) 6.67/2.61 6.67/2.61 appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) 6.67/2.61 6.67/2.61 .(x1, x2) = .(x2) 6.67/2.61 6.67/2.61 U15_gaa(x1, x2, x3, x4, x5) = U15_gaa(x2, x5) 6.67/2.61 6.67/2.61 [] = [] 6.67/2.61 6.67/2.61 appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1, x3) 6.67/2.61 6.67/2.61 APPB_IN_GAA(x1, x2, x3) = APPB_IN_GAA(x1) 6.67/2.61 6.67/2.61 6.67/2.61 We have to consider all (P,R,Pi)-chains 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (65) UsableRulesProof (EQUIVALENT) 6.67/2.61 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (66) 6.67/2.61 Obligation: 6.67/2.61 Pi DP problem: 6.67/2.61 The TRS P consists of the following rules: 6.67/2.61 6.67/2.61 APPB_IN_GAA(.(X1, X2), X3, .(X1, X4)) -> APPB_IN_GAA(X2, X3, X4) 6.67/2.61 6.67/2.61 R is empty. 6.67/2.61 The argument filtering Pi contains the following mapping: 6.67/2.61 .(x1, x2) = .(x2) 6.67/2.61 6.67/2.61 APPB_IN_GAA(x1, x2, x3) = APPB_IN_GAA(x1) 6.67/2.61 6.67/2.61 6.67/2.61 We have to consider all (P,R,Pi)-chains 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (67) PiDPToQDPProof (SOUND) 6.67/2.61 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (68) 6.67/2.61 Obligation: 6.67/2.61 Q DP problem: 6.67/2.61 The TRS P consists of the following rules: 6.67/2.61 6.67/2.61 APPB_IN_GAA(.(X2)) -> APPB_IN_GAA(X2) 6.67/2.61 6.67/2.61 R is empty. 6.67/2.61 Q is empty. 6.67/2.61 We have to consider all (P,Q,R)-chains. 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (69) QDPSizeChangeProof (EQUIVALENT) 6.67/2.61 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.67/2.61 6.67/2.61 From the DPs we obtained the following set of size-change graphs: 6.67/2.61 *APPB_IN_GAA(.(X2)) -> APPB_IN_GAA(X2) 6.67/2.61 The graph contains the following edges 1 > 1 6.67/2.61 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (70) 6.67/2.61 YES 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (71) 6.67/2.61 Obligation: 6.67/2.61 Pi DP problem: 6.67/2.61 The TRS P consists of the following rules: 6.67/2.61 6.67/2.61 REVERSEA_IN_AA(.(X1, X2), X3) -> REVERSEA_IN_AA(X2, X4) 6.67/2.61 6.67/2.61 The TRS R consists of the following rules: 6.67/2.61 6.67/2.61 reversecA_in_aa(.(X1, X2), X3) -> U13_aa(X1, X2, X3, reversecA_in_aa(X2, X4)) 6.67/2.61 reversecA_in_aa([], []) -> reversecA_out_aa([], []) 6.67/2.61 U13_aa(X1, X2, X3, reversecA_out_aa(X2, X4)) -> U14_aa(X1, X2, X3, appcB_in_gaa(X4, X1, X3)) 6.67/2.61 appcB_in_gaa(.(X1, X2), X3, .(X1, X4)) -> U15_gaa(X1, X2, X3, X4, appcB_in_gaa(X2, X3, X4)) 6.67/2.61 appcB_in_gaa([], X1, .(X1, [])) -> appcB_out_gaa([], X1, .(X1, [])) 6.67/2.61 U15_gaa(X1, X2, X3, X4, appcB_out_gaa(X2, X3, X4)) -> appcB_out_gaa(.(X1, X2), X3, .(X1, X4)) 6.67/2.61 U14_aa(X1, X2, X3, appcB_out_gaa(X4, X1, X3)) -> reversecA_out_aa(.(X1, X2), X3) 6.67/2.61 6.67/2.61 The argument filtering Pi contains the following mapping: 6.67/2.61 reversecA_in_aa(x1, x2) = reversecA_in_aa 6.67/2.61 6.67/2.61 U13_aa(x1, x2, x3, x4) = U13_aa(x4) 6.67/2.61 6.67/2.61 reversecA_out_aa(x1, x2) = reversecA_out_aa(x1, x2) 6.67/2.61 6.67/2.61 U14_aa(x1, x2, x3, x4) = U14_aa(x2, x4) 6.67/2.61 6.67/2.61 appcB_in_gaa(x1, x2, x3) = appcB_in_gaa(x1) 6.67/2.61 6.67/2.61 .(x1, x2) = .(x2) 6.67/2.61 6.67/2.61 U15_gaa(x1, x2, x3, x4, x5) = U15_gaa(x2, x5) 6.67/2.61 6.67/2.61 [] = [] 6.67/2.61 6.67/2.61 appcB_out_gaa(x1, x2, x3) = appcB_out_gaa(x1, x3) 6.67/2.61 6.67/2.61 REVERSEA_IN_AA(x1, x2) = REVERSEA_IN_AA 6.67/2.61 6.67/2.61 6.67/2.61 We have to consider all (P,R,Pi)-chains 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (72) UsableRulesProof (EQUIVALENT) 6.67/2.61 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (73) 6.67/2.61 Obligation: 6.67/2.61 Pi DP problem: 6.67/2.61 The TRS P consists of the following rules: 6.67/2.61 6.67/2.61 REVERSEA_IN_AA(.(X1, X2), X3) -> REVERSEA_IN_AA(X2, X4) 6.67/2.61 6.67/2.61 R is empty. 6.67/2.61 The argument filtering Pi contains the following mapping: 6.67/2.61 .(x1, x2) = .(x2) 6.67/2.61 6.67/2.61 REVERSEA_IN_AA(x1, x2) = REVERSEA_IN_AA 6.67/2.61 6.67/2.61 6.67/2.61 We have to consider all (P,R,Pi)-chains 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (74) PiDPToQDPProof (SOUND) 6.67/2.61 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (75) 6.67/2.61 Obligation: 6.67/2.61 Q DP problem: 6.67/2.61 The TRS P consists of the following rules: 6.67/2.61 6.67/2.61 REVERSEA_IN_AA -> REVERSEA_IN_AA 6.67/2.61 6.67/2.61 R is empty. 6.67/2.61 Q is empty. 6.67/2.61 We have to consider all (P,Q,R)-chains. 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (76) PrologToIRSwTTransformerProof (SOUND) 6.67/2.61 Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert 6.67/2.61 6.67/2.61 { 6.67/2.61 "root": 98, 6.67/2.61 "program": { 6.67/2.61 "directives": [], 6.67/2.61 "clauses": [ 6.67/2.61 [ 6.67/2.61 "(app (. X Xs) Ys (. X Zs))", 6.67/2.61 "(app Xs Ys Zs)" 6.67/2.61 ], 6.67/2.61 [ 6.67/2.61 "(app ([]) Ys Ys)", 6.67/2.61 null 6.67/2.61 ], 6.67/2.61 [ 6.67/2.61 "(reverse (. X Xs) Ys)", 6.67/2.61 "(',' (reverse Xs Zs) (app Zs (. X ([])) Ys))" 6.67/2.61 ], 6.67/2.61 [ 6.67/2.61 "(reverse ([]) ([]))", 6.67/2.61 null 6.67/2.61 ] 6.67/2.61 ] 6.67/2.61 }, 6.67/2.61 "graph": { 6.67/2.61 "nodes": { 6.67/2.61 "type": "Nodes", 6.67/2.61 "250": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "251": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(true)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "230": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "252": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "253": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "210": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(app T40 (. T41 ([])) X51)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X51"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "254": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(true)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "255": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "256": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "114": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(',' (reverse T18 X18) (app X18 (. T19 ([])) T17))" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T17"], 6.67/2.61 "free": ["X18"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "115": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "98": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(reverse T1 T2)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T2"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "240": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(true)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "241": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "242": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "243": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(true)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "101": { 6.67/2.61 "goal": [ 6.67/2.61 { 6.67/2.61 "clause": 2, 6.67/2.61 "scope": 1, 6.67/2.61 "term": "(reverse T1 T2)" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "clause": 3, 6.67/2.61 "scope": 1, 6.67/2.61 "term": "(reverse T1 T2)" 6.67/2.61 } 6.67/2.61 ], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T2"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "244": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "245": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "202": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(reverse T18 X18)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X18"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "246": { 6.67/2.61 "goal": [ 6.67/2.61 { 6.67/2.61 "clause": 0, 6.67/2.61 "scope": 4, 6.67/2.61 "term": "(app T22 (. T23 ([])) T17)" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "clause": 1, 6.67/2.61 "scope": 4, 6.67/2.61 "term": "(app T22 (. T23 ([])) T17)" 6.67/2.61 } 6.67/2.61 ], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T17"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "203": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(app T22 (. T23 ([])) T17)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T17"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "247": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 0, 6.67/2.61 "scope": 4, 6.67/2.61 "term": "(app T22 (. T23 ([])) T17)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T17"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "105": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 2, 6.67/2.61 "scope": 1, 6.67/2.61 "term": "(reverse T1 T2)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T2"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "204": { 6.67/2.61 "goal": [ 6.67/2.61 { 6.67/2.61 "clause": 2, 6.67/2.61 "scope": 2, 6.67/2.61 "term": "(reverse T18 X18)" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "clause": 3, 6.67/2.61 "scope": 2, 6.67/2.61 "term": "(reverse T18 X18)" 6.67/2.61 } 6.67/2.61 ], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X18"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "226": { 6.67/2.61 "goal": [ 6.67/2.61 { 6.67/2.61 "clause": 0, 6.67/2.61 "scope": 3, 6.67/2.61 "term": "(app T40 (. T41 ([])) X51)" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "clause": 1, 6.67/2.61 "scope": 3, 6.67/2.61 "term": "(app T40 (. T41 ([])) X51)" 6.67/2.61 } 6.67/2.61 ], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X51"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "248": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 1, 6.67/2.61 "scope": 4, 6.67/2.61 "term": "(app T22 (. T23 ([])) T17)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T17"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "106": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 3, 6.67/2.61 "scope": 1, 6.67/2.61 "term": "(reverse T1 T2)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T2"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "205": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 2, 6.67/2.61 "scope": 2, 6.67/2.61 "term": "(reverse T18 X18)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X18"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "227": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 0, 6.67/2.61 "scope": 3, 6.67/2.61 "term": "(app T40 (. T41 ([])) X51)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X51"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "249": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(app T94 (. T95 ([])) T93)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T93"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "206": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 3, 6.67/2.61 "scope": 2, 6.67/2.61 "term": "(reverse T18 X18)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X18"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "228": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 1, 6.67/2.61 "scope": 3, 6.67/2.61 "term": "(app T40 (. T41 ([])) X51)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X51"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "207": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(',' (reverse T36 X50) (app X50 (. T37 ([])) X51))" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [ 6.67/2.61 "X51", 6.67/2.61 "X50" 6.67/2.61 ], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "229": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(app T62 (. T63 ([])) X91)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X91"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "208": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "209": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(reverse T36 X50)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X50"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "edges": [ 6.67/2.61 { 6.67/2.61 "from": 98, 6.67/2.61 "to": 101, 6.67/2.61 "label": "CASE" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 101, 6.67/2.61 "to": 105, 6.67/2.61 "label": "PARALLEL" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 101, 6.67/2.61 "to": 106, 6.67/2.61 "label": "PARALLEL" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 105, 6.67/2.61 "to": 114, 6.67/2.61 "label": "EVAL with clause\nreverse(.(X15, X16), X17) :- ','(reverse(X16, X18), app(X18, .(X15, []), X17)).\nand substitutionX15 -> T19,\nX16 -> T18,\nT1 -> .(T19, T18),\nT2 -> T17,\nX17 -> T17,\nT16 -> T18,\nT15 -> T19" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 105, 6.67/2.61 "to": 115, 6.67/2.61 "label": "EVAL-BACKTRACK" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 106, 6.67/2.61 "to": 254, 6.67/2.61 "label": "EVAL with clause\nreverse([], []).\nand substitutionT1 -> [],\nT2 -> []" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 106, 6.67/2.61 "to": 255, 6.67/2.61 "label": "EVAL-BACKTRACK" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 114, 6.67/2.61 "to": 202, 6.67/2.61 "label": "SPLIT 1" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 114, 6.67/2.61 "to": 203, 6.67/2.61 "label": "SPLIT 2\nreplacements:X18 -> T22,\nT19 -> T23" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 202, 6.67/2.61 "to": 204, 6.67/2.61 "label": "CASE" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 203, 6.67/2.61 "to": 246, 6.67/2.61 "label": "CASE" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 204, 6.67/2.61 "to": 205, 6.67/2.61 "label": "PARALLEL" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 204, 6.67/2.61 "to": 206, 6.67/2.61 "label": "PARALLEL" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 205, 6.67/2.61 "to": 207, 6.67/2.61 "label": "EVAL with clause\nreverse(.(X47, X48), X49) :- ','(reverse(X48, X50), app(X50, .(X47, []), X49)).\nand substitutionX47 -> T37,\nX48 -> T36,\nT18 -> .(T37, T36),\nX18 -> X51,\nX49 -> X51,\nT35 -> T36,\nT34 -> T37" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 205, 6.67/2.61 "to": 208, 6.67/2.61 "label": "EVAL-BACKTRACK" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 206, 6.67/2.61 "to": 243, 6.67/2.61 "label": "EVAL with clause\nreverse([], []).\nand substitutionT18 -> [],\nX18 -> []" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 206, 6.67/2.61 "to": 244, 6.67/2.61 "label": "EVAL-BACKTRACK" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 207, 6.67/2.61 "to": 209, 6.67/2.61 "label": "SPLIT 1" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 207, 6.67/2.61 "to": 210, 6.67/2.61 "label": "SPLIT 2\nreplacements:X50 -> T40,\nT37 -> T41" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 209, 6.67/2.61 "to": 202, 6.67/2.61 "label": "INSTANCE with matching:\nT18 -> T36\nX18 -> X50" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 210, 6.67/2.61 "to": 226, 6.67/2.61 "label": "CASE" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 226, 6.67/2.61 "to": 227, 6.67/2.61 "label": "PARALLEL" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 226, 6.67/2.61 "to": 228, 6.67/2.61 "label": "PARALLEL" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 227, 6.67/2.61 "to": 229, 6.67/2.61 "label": "EVAL with clause\napp(.(X87, X88), X89, .(X87, X90)) :- app(X88, X89, X90).\nand substitutionX87 -> T59,\nX88 -> T62,\nT40 -> .(T59, T62),\nT41 -> T63,\nX89 -> .(T63, []),\nX90 -> X91,\nX51 -> .(T59, X91),\nT60 -> T62,\nT61 -> T63" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 227, 6.67/2.61 "to": 230, 6.67/2.61 "label": "EVAL-BACKTRACK" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 228, 6.67/2.61 "to": 240, 6.67/2.61 "label": "EVAL with clause\napp([], X99, X99).\nand substitutionT40 -> [],\nT41 -> T69,\nX99 -> .(T69, []),\nX51 -> .(T69, [])" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 228, 6.67/2.61 "to": 241, 6.67/2.61 "label": "EVAL-BACKTRACK" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 229, 6.67/2.61 "to": 210, 6.67/2.61 "label": "INSTANCE with matching:\nT40 -> T62\nT41 -> T63\nX51 -> X91" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 240, 6.67/2.61 "to": 242, 6.67/2.61 "label": "SUCCESS" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 243, 6.67/2.61 "to": 245, 6.67/2.61 "label": "SUCCESS" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 246, 6.67/2.61 "to": 247, 6.67/2.61 "label": "PARALLEL" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 246, 6.67/2.61 "to": 248, 6.67/2.61 "label": "PARALLEL" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 247, 6.67/2.61 "to": 249, 6.67/2.61 "label": "EVAL with clause\napp(.(X120, X121), X122, .(X120, X123)) :- app(X121, X122, X123).\nand substitutionX120 -> T90,\nX121 -> T94,\nT22 -> .(T90, T94),\nT23 -> T95,\nX122 -> .(T95, []),\nX123 -> T93,\nT17 -> .(T90, T93),\nT91 -> T94,\nT92 -> T95" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 247, 6.67/2.61 "to": 250, 6.67/2.61 "label": "EVAL-BACKTRACK" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 248, 6.67/2.61 "to": 251, 6.67/2.61 "label": "EVAL with clause\napp([], X130, X130).\nand substitutionT22 -> [],\nT23 -> T102,\nX130 -> .(T102, []),\nT17 -> .(T102, [])" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 248, 6.67/2.61 "to": 252, 6.67/2.61 "label": "EVAL-BACKTRACK" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 249, 6.67/2.61 "to": 203, 6.67/2.61 "label": "INSTANCE with matching:\nT22 -> T94\nT23 -> T95\nT17 -> T93" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 251, 6.67/2.61 "to": 253, 6.67/2.61 "label": "SUCCESS" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "from": 254, 6.67/2.61 "to": 256, 6.67/2.61 "label": "SUCCESS" 6.67/2.61 } 6.67/2.61 ], 6.67/2.61 "type": "Graph" 6.67/2.61 } 6.67/2.61 } 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (77) 6.67/2.61 Complex Obligation (AND) 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (78) 6.67/2.61 Obligation: 6.67/2.61 Rules: 6.67/2.61 f227_out -> f226_out :|: TRUE 6.67/2.61 f228_out -> f226_out :|: TRUE 6.67/2.61 f226_in -> f228_in :|: TRUE 6.67/2.61 f226_in -> f227_in :|: TRUE 6.67/2.61 f226_out -> f210_out :|: TRUE 6.67/2.61 f210_in -> f226_in :|: TRUE 6.67/2.61 f227_in -> f230_in :|: TRUE 6.67/2.61 f230_out -> f227_out :|: TRUE 6.67/2.61 f227_in -> f229_in :|: TRUE 6.67/2.61 f229_out -> f227_out :|: TRUE 6.67/2.61 f229_in -> f210_in :|: TRUE 6.67/2.61 f210_out -> f229_out :|: TRUE 6.67/2.61 f101_out(T2) -> f98_out(T2) :|: TRUE 6.67/2.61 f98_in(x) -> f101_in(x) :|: TRUE 6.67/2.61 f105_out(x1) -> f101_out(x1) :|: TRUE 6.67/2.61 f101_in(x2) -> f106_in(x2) :|: TRUE 6.67/2.61 f101_in(x3) -> f105_in(x3) :|: TRUE 6.67/2.61 f106_out(x4) -> f101_out(x4) :|: TRUE 6.67/2.61 f114_out(T17) -> f105_out(T17) :|: TRUE 6.67/2.61 f115_out -> f105_out(x5) :|: TRUE 6.67/2.61 f105_in(x6) -> f114_in(x6) :|: TRUE 6.67/2.61 f105_in(x7) -> f115_in :|: TRUE 6.67/2.61 f202_out -> f203_in(x8) :|: TRUE 6.67/2.61 f114_in(x9) -> f202_in :|: TRUE 6.67/2.61 f203_out(x10) -> f114_out(x10) :|: TRUE 6.67/2.61 f204_out -> f202_out :|: TRUE 6.67/2.61 f202_in -> f204_in :|: TRUE 6.67/2.61 f204_in -> f205_in :|: TRUE 6.67/2.61 f204_in -> f206_in :|: TRUE 6.67/2.61 f205_out -> f204_out :|: TRUE 6.67/2.61 f206_out -> f204_out :|: TRUE 6.67/2.61 f205_in -> f207_in :|: TRUE 6.67/2.61 f208_out -> f205_out :|: TRUE 6.67/2.61 f207_out -> f205_out :|: TRUE 6.67/2.61 f205_in -> f208_in :|: TRUE 6.67/2.61 f207_in -> f209_in :|: TRUE 6.67/2.61 f210_out -> f207_out :|: TRUE 6.67/2.61 f209_out -> f210_in :|: TRUE 6.67/2.61 Start term: f98_in(T2) 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (79) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 6.67/2.61 Constructed simple dependency graph. 6.67/2.61 6.67/2.61 Simplified to the following IRSwTs: 6.67/2.61 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (80) 6.67/2.61 TRUE 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (81) 6.67/2.61 Obligation: 6.67/2.61 Rules: 6.67/2.61 f246_in(T17) -> f247_in(T17) :|: TRUE 6.67/2.61 f246_in(x) -> f248_in(x) :|: TRUE 6.67/2.61 f247_out(x1) -> f246_out(x1) :|: TRUE 6.67/2.61 f248_out(x2) -> f246_out(x2) :|: TRUE 6.67/2.61 f203_in(x3) -> f246_in(x3) :|: TRUE 6.67/2.61 f246_out(x4) -> f203_out(x4) :|: TRUE 6.67/2.61 f203_out(T93) -> f249_out(T93) :|: TRUE 6.67/2.61 f249_in(x5) -> f203_in(x5) :|: TRUE 6.67/2.61 f249_out(x6) -> f247_out(.(x7, x6)) :|: TRUE 6.67/2.61 f247_in(.(x8, x9)) -> f249_in(x9) :|: TRUE 6.67/2.61 f250_out -> f247_out(x10) :|: TRUE 6.67/2.61 f247_in(x11) -> f250_in :|: TRUE 6.67/2.61 f101_out(T2) -> f98_out(T2) :|: TRUE 6.67/2.61 f98_in(x12) -> f101_in(x12) :|: TRUE 6.67/2.61 f105_out(x13) -> f101_out(x13) :|: TRUE 6.67/2.61 f101_in(x14) -> f106_in(x14) :|: TRUE 6.67/2.61 f101_in(x15) -> f105_in(x15) :|: TRUE 6.67/2.61 f106_out(x16) -> f101_out(x16) :|: TRUE 6.67/2.61 f114_out(x17) -> f105_out(x17) :|: TRUE 6.67/2.61 f115_out -> f105_out(x18) :|: TRUE 6.67/2.61 f105_in(x19) -> f114_in(x19) :|: TRUE 6.67/2.61 f105_in(x20) -> f115_in :|: TRUE 6.67/2.61 f202_out -> f203_in(x21) :|: TRUE 6.67/2.61 f114_in(x22) -> f202_in :|: TRUE 6.67/2.61 f203_out(x23) -> f114_out(x23) :|: TRUE 6.67/2.61 Start term: f98_in(T2) 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (82) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 6.67/2.61 Constructed simple dependency graph. 6.67/2.61 6.67/2.61 Simplified to the following IRSwTs: 6.67/2.61 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (83) 6.67/2.61 TRUE 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (84) 6.67/2.61 Obligation: 6.67/2.61 Rules: 6.67/2.61 f226_out -> f210_out :|: TRUE 6.67/2.61 f210_in -> f226_in :|: TRUE 6.67/2.61 f229_in -> f210_in :|: TRUE 6.67/2.61 f210_out -> f229_out :|: TRUE 6.67/2.61 f240_in -> f240_out :|: TRUE 6.67/2.61 f202_out -> f209_out :|: TRUE 6.67/2.61 f209_in -> f202_in :|: TRUE 6.67/2.61 f227_out -> f226_out :|: TRUE 6.67/2.61 f228_out -> f226_out :|: TRUE 6.67/2.61 f226_in -> f228_in :|: TRUE 6.67/2.61 f226_in -> f227_in :|: TRUE 6.67/2.61 f207_in -> f209_in :|: TRUE 6.67/2.61 f210_out -> f207_out :|: TRUE 6.67/2.61 f209_out -> f210_in :|: TRUE 6.67/2.61 f205_in -> f207_in :|: TRUE 6.67/2.61 f208_out -> f205_out :|: TRUE 6.67/2.61 f207_out -> f205_out :|: TRUE 6.67/2.61 f205_in -> f208_in :|: TRUE 6.67/2.61 f204_out -> f202_out :|: TRUE 6.67/2.61 f202_in -> f204_in :|: TRUE 6.67/2.61 f227_in -> f230_in :|: TRUE 6.67/2.61 f230_out -> f227_out :|: TRUE 6.67/2.61 f227_in -> f229_in :|: TRUE 6.67/2.61 f229_out -> f227_out :|: TRUE 6.67/2.61 f204_in -> f205_in :|: TRUE 6.67/2.61 f204_in -> f206_in :|: TRUE 6.67/2.61 f205_out -> f204_out :|: TRUE 6.67/2.61 f206_out -> f204_out :|: TRUE 6.67/2.61 f240_out -> f228_out :|: TRUE 6.67/2.61 f241_out -> f228_out :|: TRUE 6.67/2.61 f228_in -> f241_in :|: TRUE 6.67/2.61 f228_in -> f240_in :|: TRUE 6.67/2.61 f101_out(T2) -> f98_out(T2) :|: TRUE 6.67/2.61 f98_in(x) -> f101_in(x) :|: TRUE 6.67/2.61 f105_out(x1) -> f101_out(x1) :|: TRUE 6.67/2.61 f101_in(x2) -> f106_in(x2) :|: TRUE 6.67/2.61 f101_in(x3) -> f105_in(x3) :|: TRUE 6.67/2.61 f106_out(x4) -> f101_out(x4) :|: TRUE 6.67/2.61 f114_out(T17) -> f105_out(T17) :|: TRUE 6.67/2.61 f115_out -> f105_out(x5) :|: TRUE 6.67/2.61 f105_in(x6) -> f114_in(x6) :|: TRUE 6.67/2.61 f105_in(x7) -> f115_in :|: TRUE 6.67/2.61 f202_out -> f203_in(x8) :|: TRUE 6.67/2.61 f114_in(x9) -> f202_in :|: TRUE 6.67/2.61 f203_out(x10) -> f114_out(x10) :|: TRUE 6.67/2.61 Start term: f98_in(T2) 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (85) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 6.67/2.61 Constructed simple dependency graph. 6.67/2.61 6.67/2.61 Simplified to the following IRSwTs: 6.67/2.61 6.67/2.61 intTRSProblem: 6.67/2.61 f209_in -> f202_in :|: TRUE 6.67/2.61 f207_in -> f209_in :|: TRUE 6.67/2.61 f205_in -> f207_in :|: TRUE 6.67/2.61 f202_in -> f204_in :|: TRUE 6.67/2.61 f204_in -> f205_in :|: TRUE 6.67/2.61 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (86) 6.67/2.61 Obligation: 6.67/2.61 Rules: 6.67/2.61 f209_in -> f202_in :|: TRUE 6.67/2.61 f207_in -> f209_in :|: TRUE 6.67/2.61 f205_in -> f207_in :|: TRUE 6.67/2.61 f202_in -> f204_in :|: TRUE 6.67/2.61 f204_in -> f205_in :|: TRUE 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (87) IntTRSCompressionProof (EQUIVALENT) 6.67/2.61 Compressed rules. 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (88) 6.67/2.61 Obligation: 6.67/2.61 Rules: 6.67/2.61 f205_in -> f205_in :|: TRUE 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (89) IRSFormatTransformerProof (EQUIVALENT) 6.67/2.61 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (90) 6.67/2.61 Obligation: 6.67/2.61 Rules: 6.67/2.61 f205_in -> f205_in :|: TRUE 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (91) IRSwTTerminationDigraphProof (EQUIVALENT) 6.67/2.61 Constructed termination digraph! 6.67/2.61 Nodes: 6.67/2.61 (1) f205_in -> f205_in :|: TRUE 6.67/2.61 6.67/2.61 Arcs: 6.67/2.61 (1) -> (1) 6.67/2.61 6.67/2.61 This digraph is fully evaluated! 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (92) 6.67/2.61 Obligation: 6.67/2.61 6.67/2.61 Termination digraph: 6.67/2.61 Nodes: 6.67/2.61 (1) f205_in -> f205_in :|: TRUE 6.67/2.61 6.67/2.61 Arcs: 6.67/2.61 (1) -> (1) 6.67/2.61 6.67/2.61 This digraph is fully evaluated! 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (93) FilterProof (EQUIVALENT) 6.67/2.61 Used the following sort dictionary for filtering: 6.67/2.61 f205_in() 6.67/2.61 Replaced non-predefined constructor symbols by 0. 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (94) 6.67/2.61 Obligation: 6.67/2.61 Rules: 6.67/2.61 f205_in -> f205_in :|: TRUE 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (95) IntTRSPeriodicNontermProof (COMPLETE) 6.67/2.61 Normalized system to the following form: 6.67/2.61 f(pc) -> f(1) :|: pc = 1 && TRUE 6.67/2.61 Witness term starting non-terminating reduction: f(1) 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (96) 6.67/2.61 NO 6.67/2.61 6.67/2.61 ---------------------------------------- 6.67/2.61 6.67/2.61 (97) PrologToTRSTransformerProof (SOUND) 6.67/2.61 Transformed Prolog program to TRS. 6.67/2.61 6.67/2.61 { 6.67/2.61 "root": 12, 6.67/2.61 "program": { 6.67/2.61 "directives": [], 6.67/2.61 "clauses": [ 6.67/2.61 [ 6.67/2.61 "(app (. X Xs) Ys (. X Zs))", 6.67/2.61 "(app Xs Ys Zs)" 6.67/2.61 ], 6.67/2.61 [ 6.67/2.61 "(app ([]) Ys Ys)", 6.67/2.61 null 6.67/2.61 ], 6.67/2.61 [ 6.67/2.61 "(reverse (. X Xs) Ys)", 6.67/2.61 "(',' (reverse Xs Zs) (app Zs (. X ([])) Ys))" 6.67/2.61 ], 6.67/2.61 [ 6.67/2.61 "(reverse ([]) ([]))", 6.67/2.61 null 6.67/2.61 ] 6.67/2.61 ] 6.67/2.61 }, 6.67/2.61 "graph": { 6.67/2.61 "nodes": { 6.67/2.61 "192": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 2, 6.67/2.61 "scope": 2, 6.67/2.61 "term": "(reverse T18 X18)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X18"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "193": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 3, 6.67/2.61 "scope": 2, 6.67/2.61 "term": "(reverse T18 X18)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X18"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "type": "Nodes", 6.67/2.61 "195": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(',' (reverse T36 X50) (app X50 (. T37 ([])) X51))" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [ 6.67/2.61 "X51", 6.67/2.61 "X50" 6.67/2.61 ], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "197": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "176": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(reverse T18 X18)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X18"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "198": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(reverse T36 X50)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X50"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "231": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(app T62 (. T63 ([])) X91)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X91"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "177": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(app T22 (. T23 ([])) T17)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T17"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "232": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "211": { 6.67/2.61 "goal": [ 6.67/2.61 { 6.67/2.61 "clause": 0, 6.67/2.61 "scope": 3, 6.67/2.61 "term": "(app T40 (. T41 ([])) X51)" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "clause": 1, 6.67/2.61 "scope": 3, 6.67/2.61 "term": "(app T40 (. T41 ([])) X51)" 6.67/2.61 } 6.67/2.61 ], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X51"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "233": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(true)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "310": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "135": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(',' (reverse T18 X18) (app X18 (. T19 ([])) T17))" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T17"], 6.67/2.61 "free": ["X18"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "212": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 0, 6.67/2.61 "scope": 3, 6.67/2.61 "term": "(app T40 (. T41 ([])) X51)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X51"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "234": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "213": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 1, 6.67/2.61 "scope": 3, 6.67/2.61 "term": "(app T40 (. T41 ([])) X51)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X51"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "235": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "236": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(true)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "237": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "238": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "239": { 6.67/2.61 "goal": [ 6.67/2.61 { 6.67/2.61 "clause": 0, 6.67/2.61 "scope": 4, 6.67/2.61 "term": "(app T22 (. T23 ([])) T17)" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "clause": 1, 6.67/2.61 "scope": 4, 6.67/2.61 "term": "(app T22 (. T23 ([])) T17)" 6.67/2.61 } 6.67/2.61 ], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T17"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "70": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 2, 6.67/2.61 "scope": 1, 6.67/2.61 "term": "(reverse T1 T2)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T2"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "71": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 3, 6.67/2.61 "scope": 1, 6.67/2.61 "term": "(reverse T1 T2)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T2"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "12": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(reverse T1 T2)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T2"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "13": { 6.67/2.61 "goal": [ 6.67/2.61 { 6.67/2.61 "clause": 2, 6.67/2.61 "scope": 1, 6.67/2.61 "term": "(reverse T1 T2)" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "clause": 3, 6.67/2.61 "scope": 1, 6.67/2.61 "term": "(reverse T1 T2)" 6.67/2.61 } 6.67/2.61 ], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T2"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "184": { 6.67/2.61 "goal": [ 6.67/2.61 { 6.67/2.61 "clause": 2, 6.67/2.61 "scope": 2, 6.67/2.61 "term": "(reverse T18 X18)" 6.67/2.61 }, 6.67/2.61 { 6.67/2.61 "clause": 3, 6.67/2.61 "scope": 2, 6.67/2.61 "term": "(reverse T18 X18)" 6.67/2.61 } 6.67/2.61 ], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X18"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "141": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "200": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(app T40 (. T41 ([])) X51)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": ["X51"], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "301": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 0, 6.67/2.61 "scope": 4, 6.67/2.61 "term": "(app T22 (. T23 ([])) T17)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T17"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "302": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": 1, 6.67/2.61 "scope": 4, 6.67/2.61 "term": "(app T22 (. T23 ([])) T17)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T17"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "303": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(app T94 (. T95 ([])) T93)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": ["T93"], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "304": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "305": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(true)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "306": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "307": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "308": { 6.67/2.61 "goal": [{ 6.67/2.61 "clause": -1, 6.67/2.61 "scope": -1, 6.67/2.61 "term": "(true)" 6.67/2.61 }], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.61 "exprvars": [] 6.67/2.61 } 6.67/2.61 }, 6.67/2.61 "309": { 6.67/2.61 "goal": [], 6.67/2.61 "kb": { 6.67/2.61 "nonunifying": [], 6.67/2.61 "intvars": {}, 6.67/2.61 "arithmetic": { 6.67/2.61 "type": "PlainIntegerRelationState", 6.67/2.61 "relations": [] 6.67/2.61 }, 6.67/2.61 "ground": [], 6.67/2.61 "free": [], 6.67/2.62 "exprvars": [] 6.67/2.62 } 6.67/2.62 } 6.67/2.62 }, 6.67/2.62 "edges": [ 6.67/2.62 { 6.67/2.62 "from": 12, 6.67/2.62 "to": 13, 6.67/2.62 "label": "CASE" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 13, 6.67/2.62 "to": 70, 6.67/2.62 "label": "PARALLEL" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 13, 6.67/2.62 "to": 71, 6.67/2.62 "label": "PARALLEL" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 70, 6.67/2.62 "to": 135, 6.67/2.62 "label": "EVAL with clause\nreverse(.(X15, X16), X17) :- ','(reverse(X16, X18), app(X18, .(X15, []), X17)).\nand substitutionX15 -> T19,\nX16 -> T18,\nT1 -> .(T19, T18),\nT2 -> T17,\nX17 -> T17,\nT16 -> T18,\nT15 -> T19" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 70, 6.67/2.62 "to": 141, 6.67/2.62 "label": "EVAL-BACKTRACK" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 71, 6.67/2.62 "to": 308, 6.67/2.62 "label": "EVAL with clause\nreverse([], []).\nand substitutionT1 -> [],\nT2 -> []" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 71, 6.67/2.62 "to": 309, 6.67/2.62 "label": "EVAL-BACKTRACK" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 135, 6.67/2.62 "to": 176, 6.67/2.62 "label": "SPLIT 1" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 135, 6.67/2.62 "to": 177, 6.67/2.62 "label": "SPLIT 2\nreplacements:X18 -> T22,\nT19 -> T23" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 176, 6.67/2.62 "to": 184, 6.67/2.62 "label": "CASE" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 177, 6.67/2.62 "to": 239, 6.67/2.62 "label": "CASE" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 184, 6.67/2.62 "to": 192, 6.67/2.62 "label": "PARALLEL" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 184, 6.67/2.62 "to": 193, 6.67/2.62 "label": "PARALLEL" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 192, 6.67/2.62 "to": 195, 6.67/2.62 "label": "EVAL with clause\nreverse(.(X47, X48), X49) :- ','(reverse(X48, X50), app(X50, .(X47, []), X49)).\nand substitutionX47 -> T37,\nX48 -> T36,\nT18 -> .(T37, T36),\nX18 -> X51,\nX49 -> X51,\nT35 -> T36,\nT34 -> T37" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 192, 6.67/2.62 "to": 197, 6.67/2.62 "label": "EVAL-BACKTRACK" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 193, 6.67/2.62 "to": 236, 6.67/2.62 "label": "EVAL with clause\nreverse([], []).\nand substitutionT18 -> [],\nX18 -> []" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 193, 6.67/2.62 "to": 237, 6.67/2.62 "label": "EVAL-BACKTRACK" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 195, 6.67/2.62 "to": 198, 6.67/2.62 "label": "SPLIT 1" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 195, 6.67/2.62 "to": 200, 6.67/2.62 "label": "SPLIT 2\nreplacements:X50 -> T40,\nT37 -> T41" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 198, 6.67/2.62 "to": 176, 6.67/2.62 "label": "INSTANCE with matching:\nT18 -> T36\nX18 -> X50" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 200, 6.67/2.62 "to": 211, 6.67/2.62 "label": "CASE" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 211, 6.67/2.62 "to": 212, 6.67/2.62 "label": "PARALLEL" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 211, 6.67/2.62 "to": 213, 6.67/2.62 "label": "PARALLEL" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 212, 6.67/2.62 "to": 231, 6.67/2.62 "label": "EVAL with clause\napp(.(X87, X88), X89, .(X87, X90)) :- app(X88, X89, X90).\nand substitutionX87 -> T59,\nX88 -> T62,\nT40 -> .(T59, T62),\nT41 -> T63,\nX89 -> .(T63, []),\nX90 -> X91,\nX51 -> .(T59, X91),\nT60 -> T62,\nT61 -> T63" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 212, 6.67/2.62 "to": 232, 6.67/2.62 "label": "EVAL-BACKTRACK" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 213, 6.67/2.62 "to": 233, 6.67/2.62 "label": "EVAL with clause\napp([], X99, X99).\nand substitutionT40 -> [],\nT41 -> T69,\nX99 -> .(T69, []),\nX51 -> .(T69, [])" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 213, 6.67/2.62 "to": 234, 6.67/2.62 "label": "EVAL-BACKTRACK" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 231, 6.67/2.62 "to": 200, 6.67/2.62 "label": "INSTANCE with matching:\nT40 -> T62\nT41 -> T63\nX51 -> X91" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 233, 6.67/2.62 "to": 235, 6.67/2.62 "label": "SUCCESS" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 236, 6.67/2.62 "to": 238, 6.67/2.62 "label": "SUCCESS" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 239, 6.67/2.62 "to": 301, 6.67/2.62 "label": "PARALLEL" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 239, 6.67/2.62 "to": 302, 6.67/2.62 "label": "PARALLEL" 6.67/2.62 }, 6.67/2.62 { 6.67/2.62 "from": 301, 6.67/2.62 "to": 303, 6.67/2.62 "label": "EVAL with clause\napp(.(X120, X121), X122, .(X120, X123)) :- app(X121, X122, X123).\nand substitutionX120 -> T90,\nX121 -> T94,\nT22 -> .(T90, T94),\nT23 -> T95,\nX122 -> .(T95, []),\nX123 -> T93,\nT17 -> .(T90, T93),\nT91 -> T94,\nT92 -> T95" 6.87/2.62 }, 6.87/2.62 { 6.87/2.62 "from": 301, 6.87/2.62 "to": 304, 6.87/2.62 "label": "EVAL-BACKTRACK" 6.87/2.62 }, 6.87/2.62 { 6.87/2.62 "from": 302, 6.87/2.62 "to": 305, 6.87/2.62 "label": "EVAL with clause\napp([], X130, X130).\nand substitutionT22 -> [],\nT23 -> T102,\nX130 -> .(T102, []),\nT17 -> .(T102, [])" 6.87/2.62 }, 6.87/2.62 { 6.87/2.62 "from": 302, 6.87/2.62 "to": 306, 6.87/2.62 "label": "EVAL-BACKTRACK" 6.87/2.62 }, 6.87/2.62 { 6.87/2.62 "from": 303, 6.87/2.62 "to": 177, 6.87/2.62 "label": "INSTANCE with matching:\nT22 -> T94\nT23 -> T95\nT17 -> T93" 6.87/2.62 }, 6.87/2.62 { 6.87/2.62 "from": 305, 6.87/2.62 "to": 307, 6.87/2.62 "label": "SUCCESS" 6.87/2.62 }, 6.87/2.62 { 6.87/2.62 "from": 308, 6.87/2.62 "to": 310, 6.87/2.62 "label": "SUCCESS" 6.87/2.62 } 6.87/2.62 ], 6.87/2.62 "type": "Graph" 6.87/2.62 } 6.87/2.62 } 6.87/2.62 6.87/2.62 ---------------------------------------- 6.87/2.62 6.87/2.62 (98) 6.87/2.62 Obligation: 6.87/2.62 Q restricted rewrite system: 6.87/2.62 The TRS R consists of the following rules: 6.87/2.62 6.87/2.62 f12_in(T17) -> U1(f135_in(T17), T17) 6.87/2.62 U1(f135_out1(X18, T19), T17) -> f12_out1 6.87/2.62 f12_in([]) -> f12_out1 6.87/2.62 f176_in -> U2(f195_in) 6.87/2.62 U2(f195_out1) -> f176_out1 6.87/2.62 f176_in -> f176_out1 6.87/2.62 f200_in -> U3(f200_in) 6.87/2.62 U3(f200_out1) -> f200_out1 6.87/2.62 f200_in -> f200_out1 6.87/2.62 f177_in(.(T90, T93)) -> U4(f177_in(T93), .(T90, T93)) 6.87/2.62 U4(f177_out1(T94, T95), .(T90, T93)) -> f177_out1(.(T90, T94), T95) 6.87/2.62 f177_in(.(T102, [])) -> f177_out1([], T102) 6.87/2.62 f135_in(T17) -> U5(f176_in, T17) 6.87/2.62 U5(f176_out1, T17) -> U6(f177_in(T17), T17) 6.87/2.62 U6(f177_out1(T22, T23), T17) -> f135_out1(T22, T23) 6.87/2.62 f195_in -> U7(f176_in) 6.87/2.62 U7(f176_out1) -> U8(f200_in) 6.87/2.62 U8(f200_out1) -> f195_out1 6.87/2.62 6.87/2.62 Q is empty. 6.87/2.62 6.87/2.62 ---------------------------------------- 6.87/2.62 6.87/2.62 (99) QTRSRRRProof (EQUIVALENT) 6.87/2.62 Used ordering: 6.87/2.62 f12_in/1(YES) 6.87/2.62 U1/2(YES,YES) 6.87/2.62 f135_in/1(YES) 6.87/2.62 f135_out1/2(YES,YES) 6.87/2.62 f12_out1/0) 6.87/2.62 []/0) 6.87/2.62 f176_in/0) 6.87/2.62 U2/1)YES( 6.87/2.62 f195_in/0) 6.87/2.62 f195_out1/0) 6.87/2.62 f176_out1/0) 6.87/2.62 f200_in/0) 6.87/2.62 U3/1)YES( 6.87/2.62 f200_out1/0) 6.87/2.62 f177_in/1(YES) 6.87/2.62 ./2(YES,YES) 6.87/2.62 U4/2(YES,YES) 6.87/2.62 f177_out1/2(YES,YES) 6.87/2.62 U5/2(YES,YES) 6.87/2.62 U6/2(YES,YES) 6.87/2.62 U7/1)YES( 6.87/2.62 U8/1)YES( 6.87/2.62 6.87/2.62 Quasi precedence: 6.87/2.62 f12_in_1 > U1_2 > f12_out1 > f177_out1_2 6.87/2.62 f12_in_1 > [f135_in_1, f176_in, f195_in, f195_out1, f176_out1, f200_in, f200_out1] > U5_2 > [f135_out1_2, U6_2] > f177_out1_2 6.87/2.62 f12_in_1 > [f135_in_1, f176_in, f195_in, f195_out1, f176_out1, f200_in, f200_out1] > U5_2 > f177_in_1 > [[], ._2, U4_2] > f12_out1 > f177_out1_2 6.87/2.62 6.87/2.62 6.87/2.62 Status: 6.87/2.62 f12_in_1: multiset status 6.87/2.62 U1_2: multiset status 6.87/2.62 f135_in_1: [1] 6.87/2.62 f135_out1_2: multiset status 6.87/2.62 f12_out1: multiset status 6.87/2.62 []: multiset status 6.87/2.62 f176_in: multiset status 6.87/2.62 f195_in: multiset status 6.87/2.62 f195_out1: multiset status 6.87/2.62 f176_out1: multiset status 6.87/2.62 f200_in: multiset status 6.87/2.62 f200_out1: multiset status 6.87/2.62 f177_in_1: multiset status 6.87/2.62 ._2: [1,2] 6.87/2.62 U4_2: [2,1] 6.87/2.62 f177_out1_2: multiset status 6.87/2.62 U5_2: multiset status 6.87/2.62 U6_2: multiset status 6.87/2.62 6.87/2.62 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 6.87/2.62 6.87/2.62 f12_in(T17) -> U1(f135_in(T17), T17) 6.87/2.62 U1(f135_out1(X18, T19), T17) -> f12_out1 6.87/2.62 f12_in([]) -> f12_out1 6.87/2.62 f177_in(.(T90, T93)) -> U4(f177_in(T93), .(T90, T93)) 6.87/2.62 U4(f177_out1(T94, T95), .(T90, T93)) -> f177_out1(.(T90, T94), T95) 6.87/2.62 f177_in(.(T102, [])) -> f177_out1([], T102) 6.87/2.62 f135_in(T17) -> U5(f176_in, T17) 6.87/2.62 U5(f176_out1, T17) -> U6(f177_in(T17), T17) 6.87/2.62 U6(f177_out1(T22, T23), T17) -> f135_out1(T22, T23) 6.87/2.62 6.87/2.62 6.87/2.62 6.87/2.62 6.87/2.62 ---------------------------------------- 6.87/2.62 6.87/2.62 (100) 6.87/2.62 Obligation: 6.87/2.62 Q restricted rewrite system: 6.87/2.62 The TRS R consists of the following rules: 6.87/2.62 6.87/2.62 f176_in -> U2(f195_in) 6.87/2.62 U2(f195_out1) -> f176_out1 6.87/2.62 f176_in -> f176_out1 6.87/2.62 f200_in -> U3(f200_in) 6.87/2.62 U3(f200_out1) -> f200_out1 6.87/2.62 f200_in -> f200_out1 6.87/2.62 f195_in -> U7(f176_in) 6.87/2.62 U7(f176_out1) -> U8(f200_in) 6.87/2.62 U8(f200_out1) -> f195_out1 6.87/2.62 6.87/2.62 Q is empty. 6.87/2.62 6.87/2.62 ---------------------------------------- 6.87/2.62 6.87/2.62 (101) QTRSRRRProof (EQUIVALENT) 6.87/2.62 Used ordering: 6.87/2.62 f176_in/0) 6.87/2.62 U2/1)YES( 6.87/2.62 f195_in/0) 6.87/2.62 f195_out1/0) 6.87/2.62 f176_out1/0) 6.87/2.62 f200_in/0) 6.87/2.62 U3/1)YES( 6.87/2.62 f200_out1/0) 6.87/2.62 U7/1)YES( 6.87/2.62 U8/1)YES( 6.87/2.62 6.87/2.62 Quasi precedence: 6.87/2.62 [f176_in, f195_in] > [f195_out1, f176_out1, f200_in, f200_out1] 6.87/2.62 6.87/2.62 6.87/2.62 Status: 6.87/2.62 f176_in: multiset status 6.87/2.62 f195_in: multiset status 6.87/2.62 f195_out1: multiset status 6.87/2.62 f176_out1: multiset status 6.87/2.62 f200_in: multiset status 6.87/2.62 f200_out1: multiset status 6.87/2.62 6.87/2.62 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 6.87/2.62 6.87/2.62 f176_in -> f176_out1 6.87/2.62 6.87/2.62 6.87/2.62 6.87/2.62 6.87/2.62 ---------------------------------------- 6.87/2.62 6.87/2.62 (102) 6.87/2.62 Obligation: 6.87/2.62 Q restricted rewrite system: 6.87/2.62 The TRS R consists of the following rules: 6.87/2.62 6.87/2.62 f176_in -> U2(f195_in) 6.87/2.62 U2(f195_out1) -> f176_out1 6.87/2.62 f200_in -> U3(f200_in) 6.87/2.62 U3(f200_out1) -> f200_out1 6.87/2.62 f200_in -> f200_out1 6.87/2.62 f195_in -> U7(f176_in) 6.87/2.62 U7(f176_out1) -> U8(f200_in) 6.87/2.62 U8(f200_out1) -> f195_out1 6.87/2.62 6.87/2.62 Q is empty. 6.87/2.62 6.87/2.62 ---------------------------------------- 6.87/2.62 6.87/2.62 (103) QTRSRRRProof (EQUIVALENT) 6.87/2.62 Used ordering: 6.87/2.62 Polynomial interpretation [POLO]: 6.87/2.62 6.87/2.62 POL(U2(x_1)) = 2*x_1 6.87/2.62 POL(U3(x_1)) = x_1 6.87/2.62 POL(U7(x_1)) = 2*x_1 6.87/2.62 POL(U8(x_1)) = 2 + x_1 6.87/2.62 POL(f176_in) = 0 6.87/2.62 POL(f176_out1) = 2 6.87/2.62 POL(f195_in) = 0 6.87/2.62 POL(f195_out1) = 1 6.87/2.62 POL(f200_in) = 1 6.87/2.62 POL(f200_out1) = 0 6.87/2.62 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 6.87/2.62 6.87/2.62 f200_in -> f200_out1 6.87/2.62 U7(f176_out1) -> U8(f200_in) 6.87/2.62 U8(f200_out1) -> f195_out1 6.87/2.62 6.87/2.62 6.87/2.62 6.87/2.62 6.87/2.62 ---------------------------------------- 6.87/2.62 6.87/2.62 (104) 6.87/2.62 Obligation: 6.87/2.62 Q restricted rewrite system: 6.87/2.62 The TRS R consists of the following rules: 6.87/2.62 6.87/2.62 f176_in -> U2(f195_in) 6.87/2.62 U2(f195_out1) -> f176_out1 6.87/2.62 f200_in -> U3(f200_in) 6.87/2.62 U3(f200_out1) -> f200_out1 6.87/2.62 f195_in -> U7(f176_in) 6.87/2.62 6.87/2.62 Q is empty. 6.87/2.62 6.87/2.62 ---------------------------------------- 6.87/2.62 6.87/2.62 (105) QTRSRRRProof (EQUIVALENT) 6.87/2.62 Used ordering: 6.87/2.62 Polynomial interpretation [POLO]: 6.87/2.62 6.87/2.62 POL(U2(x_1)) = x_1 6.87/2.62 POL(U3(x_1)) = 2*x_1 6.87/2.62 POL(U7(x_1)) = 2*x_1 6.87/2.62 POL(f176_in) = 0 6.87/2.62 POL(f176_out1) = 0 6.87/2.62 POL(f195_in) = 0 6.87/2.62 POL(f195_out1) = 1 6.87/2.62 POL(f200_in) = 0 6.87/2.62 POL(f200_out1) = 0 6.87/2.62 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 6.87/2.62 6.87/2.62 U2(f195_out1) -> f176_out1 6.87/2.62 6.87/2.62 6.87/2.62 6.87/2.62 6.87/2.62 ---------------------------------------- 6.87/2.62 6.87/2.62 (106) 6.87/2.62 Obligation: 6.87/2.62 Q restricted rewrite system: 6.87/2.62 The TRS R consists of the following rules: 6.87/2.62 6.87/2.62 f176_in -> U2(f195_in) 6.87/2.62 f200_in -> U3(f200_in) 6.87/2.62 U3(f200_out1) -> f200_out1 6.87/2.62 f195_in -> U7(f176_in) 6.87/2.62 6.87/2.62 Q is empty. 6.87/2.65 EOF