/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.pl /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern distance(g,g,g,g,a) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) CutEliminatorProof [SOUND, 0 ms] (2) Prolog (3) UndefinedPredicateHandlerProof [SOUND, 0 ms] (4) Prolog (5) PrologToPiTRSProof [SOUND, 3 ms] (6) PiTRS (7) DependencyPairsProof [EQUIVALENT, 25 ms] (8) PiDP (9) DependencyGraphProof [EQUIVALENT, 0 ms] (10) PiDP (11) UsableRulesProof [EQUIVALENT, 0 ms] (12) PiDP (13) PiDPToQDPProof [SOUND, 0 ms] (14) QDP (15) TransformationProof [EQUIVALENT, 0 ms] (16) QDP (17) TransformationProof [EQUIVALENT, 0 ms] (18) QDP (19) TransformationProof [EQUIVALENT, 0 ms] (20) QDP (21) TransformationProof [EQUIVALENT, 0 ms] (22) QDP (23) UsableRulesProof [EQUIVALENT, 0 ms] (24) QDP (25) QReductionProof [EQUIVALENT, 0 ms] (26) QDP (27) PrologToPiTRSProof [SOUND, 0 ms] (28) PiTRS (29) DependencyPairsProof [EQUIVALENT, 51 ms] (30) PiDP (31) DependencyGraphProof [EQUIVALENT, 0 ms] (32) PiDP (33) UsableRulesProof [EQUIVALENT, 0 ms] (34) PiDP (35) PiDPToQDPProof [SOUND, 1 ms] (36) QDP (37) TransformationProof [EQUIVALENT, 0 ms] (38) QDP (39) TransformationProof [EQUIVALENT, 0 ms] (40) QDP (41) TransformationProof [EQUIVALENT, 0 ms] (42) QDP (43) TransformationProof [EQUIVALENT, 0 ms] (44) QDP (45) UsableRulesProof [EQUIVALENT, 0 ms] (46) QDP (47) QReductionProof [EQUIVALENT, 0 ms] (48) QDP (49) IntegerArithmeticTransformerProof [SOUND, 0 ms] (50) Prolog (51) CutEliminatorProof [SOUND, 0 ms] (52) Prolog (53) UnifyTransformerProof [EQUIVALENT, 0 ms] (54) Prolog (55) PrologToPiTRSProof [SOUND, 0 ms] (56) PiTRS (57) DependencyPairsProof [EQUIVALENT, 235 ms] (58) PiDP (59) DependencyGraphProof [EQUIVALENT, 0 ms] (60) AND (61) PiDP (62) UsableRulesProof [EQUIVALENT, 0 ms] (63) PiDP (64) PiDPToQDPProof [EQUIVALENT, 0 ms] (65) QDP (66) QDPSizeChangeProof [EQUIVALENT, 0 ms] (67) YES (68) PiDP (69) UsableRulesProof [EQUIVALENT, 0 ms] (70) PiDP (71) PiDPToQDPProof [EQUIVALENT, 0 ms] (72) QDP (73) QDPSizeChangeProof [EQUIVALENT, 0 ms] (74) YES (75) PiDP (76) UsableRulesProof [EQUIVALENT, 0 ms] (77) PiDP (78) PiDPToQDPProof [EQUIVALENT, 0 ms] (79) QDP (80) QDPSizeChangeProof [EQUIVALENT, 0 ms] (81) YES (82) PiDP (83) UsableRulesProof [EQUIVALENT, 0 ms] (84) PiDP (85) PiDPToQDPProof [SOUND, 1 ms] (86) QDP (87) QDPSizeChangeProof [EQUIVALENT, 0 ms] (88) YES (89) PiDP (90) UsableRulesProof [EQUIVALENT, 1 ms] (91) PiDP (92) PiDPToQDPProof [SOUND, 0 ms] (93) QDP (94) QDPSizeChangeProof [EQUIVALENT, 0 ms] (95) YES (96) PiDP (97) UsableRulesProof [EQUIVALENT, 0 ms] (98) PiDP (99) PiDPToQDPProof [SOUND, 0 ms] (100) QDP (101) QDPSizeChangeProof [EQUIVALENT, 0 ms] (102) YES (103) PiDP (104) UsableRulesProof [EQUIVALENT, 0 ms] (105) PiDP (106) PiDPToQDPProof [SOUND, 0 ms] (107) QDP (108) QDPSizeChangeProof [EQUIVALENT, 0 ms] (109) YES (110) PiDP (111) UsableRulesProof [EQUIVALENT, 0 ms] (112) PiDP (113) PiDPToQDPProof [SOUND, 0 ms] (114) QDP (115) QDPSizeChangeProof [EQUIVALENT, 0 ms] (116) YES (117) PiDP (118) UsableRulesProof [EQUIVALENT, 0 ms] (119) PiDP (120) PiDPToQDPProof [SOUND, 11 ms] (121) QDP (122) TransformationProof [EQUIVALENT, 0 ms] (123) QDP (124) TransformationProof [EQUIVALENT, 0 ms] (125) QDP (126) TransformationProof [EQUIVALENT, 0 ms] (127) QDP (128) TransformationProof [EQUIVALENT, 0 ms] (129) QDP (130) UsableRulesProof [EQUIVALENT, 0 ms] (131) QDP (132) QReductionProof [EQUIVALENT, 0 ms] (133) QDP (134) TransformationProof [EQUIVALENT, 0 ms] (135) QDP (136) TransformationProof [EQUIVALENT, 0 ms] (137) QDP (138) TransformationProof [EQUIVALENT, 0 ms] (139) QDP (140) TransformationProof [EQUIVALENT, 0 ms] (141) QDP (142) TransformationProof [EQUIVALENT, 0 ms] (143) QDP (144) TransformationProof [EQUIVALENT, 0 ms] (145) QDP (146) TransformationProof [EQUIVALENT, 0 ms] (147) QDP (148) PrologToPiTRSProof [SOUND, 29 ms] (149) PiTRS (150) DependencyPairsProof [EQUIVALENT, 207 ms] (151) PiDP (152) DependencyGraphProof [EQUIVALENT, 0 ms] (153) AND (154) PiDP (155) UsableRulesProof [EQUIVALENT, 1 ms] (156) PiDP (157) PiDPToQDPProof [EQUIVALENT, 0 ms] (158) QDP (159) QDPSizeChangeProof [EQUIVALENT, 0 ms] (160) YES (161) PiDP (162) UsableRulesProof [EQUIVALENT, 0 ms] (163) PiDP (164) PiDPToQDPProof [EQUIVALENT, 0 ms] (165) QDP (166) QDPSizeChangeProof [EQUIVALENT, 0 ms] (167) YES (168) PiDP (169) UsableRulesProof [EQUIVALENT, 0 ms] (170) PiDP (171) PiDPToQDPProof [EQUIVALENT, 0 ms] (172) QDP (173) QDPSizeChangeProof [EQUIVALENT, 0 ms] (174) YES (175) PiDP (176) UsableRulesProof [EQUIVALENT, 0 ms] (177) PiDP (178) PiDPToQDPProof [SOUND, 0 ms] (179) QDP (180) QDPSizeChangeProof [EQUIVALENT, 0 ms] (181) YES (182) PiDP (183) UsableRulesProof [EQUIVALENT, 0 ms] (184) PiDP (185) PiDPToQDPProof [SOUND, 0 ms] (186) QDP (187) QDPSizeChangeProof [EQUIVALENT, 0 ms] (188) YES (189) PiDP (190) UsableRulesProof [EQUIVALENT, 0 ms] (191) PiDP (192) PiDPToQDPProof [SOUND, 0 ms] (193) QDP (194) QDPSizeChangeProof [EQUIVALENT, 0 ms] (195) YES (196) PiDP (197) UsableRulesProof [EQUIVALENT, 0 ms] (198) PiDP (199) PiDPToQDPProof [SOUND, 0 ms] (200) QDP (201) QDPSizeChangeProof [EQUIVALENT, 0 ms] (202) YES (203) PiDP (204) UsableRulesProof [EQUIVALENT, 0 ms] (205) PiDP (206) PiDPToQDPProof [SOUND, 0 ms] (207) QDP (208) QDPSizeChangeProof [EQUIVALENT, 0 ms] (209) YES (210) PiDP (211) UsableRulesProof [EQUIVALENT, 0 ms] (212) PiDP (213) PiDPToQDPProof [SOUND, 8 ms] (214) QDP (215) TransformationProof [EQUIVALENT, 12 ms] (216) QDP (217) TransformationProof [EQUIVALENT, 0 ms] (218) QDP (219) TransformationProof [EQUIVALENT, 0 ms] (220) QDP (221) TransformationProof [EQUIVALENT, 0 ms] (222) QDP (223) UsableRulesProof [EQUIVALENT, 0 ms] (224) QDP (225) QReductionProof [EQUIVALENT, 0 ms] (226) QDP (227) TransformationProof [EQUIVALENT, 0 ms] (228) QDP (229) TransformationProof [EQUIVALENT, 0 ms] (230) QDP (231) TransformationProof [EQUIVALENT, 0 ms] (232) QDP (233) TransformationProof [EQUIVALENT, 0 ms] (234) QDP (235) TransformationProof [EQUIVALENT, 0 ms] (236) QDP (237) TransformationProof [EQUIVALENT, 0 ms] (238) QDP (239) TransformationProof [EQUIVALENT, 0 ms] (240) QDP (241) TransformationProof [EQUIVALENT, 0 ms] (242) QDP (243) PrologToIRSwTTransformerProof [SOUND, 76 ms] (244) IRSwT (245) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (246) IRSwT (247) IntTRSCompressionProof [EQUIVALENT, 48 ms] (248) IRSwT (249) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (250) IRSwT (251) IRSwTTerminationDigraphProof [EQUIVALENT, 51 ms] (252) IRSwT (253) IntTRSCompressionProof [EQUIVALENT, 0 ms] (254) IRSwT (255) IRSwTToIntTRSProof [SOUND, 0 ms] (256) IRSwT (257) IntTRSNonPeriodicNontermProof [COMPLETE, 0 ms] (258) NO (259) PrologToDTProblemTransformerProof [SOUND, 79 ms] (260) TRIPLES (261) TriplesToPiDPProof [SOUND, 0 ms] (262) PiDP (263) DependencyGraphProof [EQUIVALENT, 0 ms] (264) PiDP (265) PiDPToQDPProof [SOUND, 0 ms] (266) QDP (267) NonTerminationLoopProof [COMPLETE, 0 ms] (268) NO ---------------------------------------- (0) Obligation: Clauses: distance(X1, X2, 1, J, D) :- ','(!, is(D, -(J, +(1, 1)))). distance(X3, M, I, M, D) :- ','(!, is(D, +(M, -(I, +(2, 1))))). distance(N, M, N, J, D) :- ','(!, is(D, +(N, -(*(2, M), -(J, +(2, 1)))))). distance(N, M, I, 1, D) :- ','(!, is(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))). distance(N, M, I, J, D) :- ','(is(N1, -(N, 2)), ','(is(M1, -(M, 2)), ','(is(I1, -(I, 1)), ','(is(J1, -(J, 1)), ','(distance(N1, M1, I1, J1, D1), is(D, +(*(2, N), +(*(2, M), -(D1, 4))))))))). Query: distance(g,g,g,g,a) ---------------------------------------- (1) CutEliminatorProof (SOUND) Eliminated all cuts by simply ignoring them[PROLOG]. ---------------------------------------- (2) Obligation: Clauses: distance(X1, X2, 1, J, D) :- is(D, -(J, +(1, 1))). distance(X3, M, I, M, D) :- is(D, +(M, -(I, +(2, 1)))). distance(N, M, N, J, D) :- is(D, +(N, -(*(2, M), -(J, +(2, 1))))). distance(N, M, I, 1, D) :- is(D, +(*(2, N), -(*(2, M), -(I, +(3, 1))))). distance(N, M, I, J, D) :- ','(is(N1, -(N, 2)), ','(is(M1, -(M, 2)), ','(is(I1, -(I, 1)), ','(is(J1, -(J, 1)), ','(distance(N1, M1, I1, J1, D1), is(D, +(*(2, N), +(*(2, M), -(D1, 4))))))))). Query: distance(g,g,g,g,a) ---------------------------------------- (3) UndefinedPredicateHandlerProof (SOUND) Added facts for all undefined predicates [PROLOG]. ---------------------------------------- (4) Obligation: Clauses: distance(X1, X2, 1, J, D) :- is(D, -(J, +(1, 1))). distance(X3, M, I, M, D) :- is(D, +(M, -(I, +(2, 1)))). distance(N, M, N, J, D) :- is(D, +(N, -(*(2, M), -(J, +(2, 1))))). distance(N, M, I, 1, D) :- is(D, +(*(2, N), -(*(2, M), -(I, +(3, 1))))). distance(N, M, I, J, D) :- ','(is(N1, -(N, 2)), ','(is(M1, -(M, 2)), ','(is(I1, -(I, 1)), ','(is(J1, -(J, 1)), ','(distance(N1, M1, I1, J1, D1), is(D, +(*(2, N), +(*(2, M), -(D1, 4))))))))). is(X0, X1). Query: distance(g,g,g,g,a) ---------------------------------------- (5) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: distance_in_5: (b,b,b,b,f) (f,f,f,f,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: distance_in_gggga(X1, X2, 1, J, D) -> U1_gggga(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U1_gggga(X1, X2, J, D, is_out_ag(D, -(J, +(1, 1)))) -> distance_out_gggga(X1, X2, 1, J, D) distance_in_gggga(X3, M, I, M, D) -> U2_gggga(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) U2_gggga(X3, M, I, D, is_out_ag(D, +(M, -(I, +(2, 1))))) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U3_gggga(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_gggga(N, M, J, D, is_out_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, 1, D) -> U4_gggga(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_gggga(N, M, I, D, is_out_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_gggga(N, M, I, 1, D) distance_in_gggga(N, M, I, J, D) -> U5_gggga(N, M, I, J, D, is_in_ag(N1, -(N, 2))) U5_gggga(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_gggga(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U6_gggga(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_gggga(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U7_gggga(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_gggga(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U8_gggga(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) distance_in_aaaaa(X1, X2, 1, J, D) -> U1_aaaaa(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U1_aaaaa(X1, X2, J, D, is_out_aa(D, -(J, +(1, 1)))) -> distance_out_aaaaa(X1, X2, 1, J, D) distance_in_aaaaa(X3, M, I, M, D) -> U2_aaaaa(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) U2_aaaaa(X3, M, I, D, is_out_aa(D, +(M, -(I, +(2, 1))))) -> distance_out_aaaaa(X3, M, I, M, D) distance_in_aaaaa(N, M, N, J, D) -> U3_aaaaa(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_aaaaa(N, M, J, D, is_out_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_aaaaa(N, M, N, J, D) distance_in_aaaaa(N, M, I, 1, D) -> U4_aaaaa(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_aaaaa(N, M, I, D, is_out_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_aaaaa(N, M, I, 1, D) distance_in_aaaaa(N, M, I, J, D) -> U5_aaaaa(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_aaaaa(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_aaaaa(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_aaaaa(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_aaaaa(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_aaaaa(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_aaaaa(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_aaaaa(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_aaaaa(N, M, I, J, D) U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_gggga(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_gggga(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) 1 = 1 U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x5) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag -(x1, x2) = -(x1, x2) +(x1, x2) = +(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) 2 = 2 U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) *(x1, x2) = *(x1, x2) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x5) 3 = 3 U5_gggga(x1, x2, x3, x4, x5, x6) = U5_gggga(x2, x3, x4, x6) U6_gggga(x1, x2, x3, x4, x5, x6, x7) = U6_gggga(x3, x4, x7) U7_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U7_gggga(x4, x8) U8_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_gggga(x9) U9_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_gggga(x10) distance_in_aaaaa(x1, x2, x3, x4, x5) = distance_in_aaaaa U1_aaaaa(x1, x2, x3, x4, x5) = U1_aaaaa(x5) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa distance_out_aaaaa(x1, x2, x3, x4, x5) = distance_out_aaaaa U2_aaaaa(x1, x2, x3, x4, x5) = U2_aaaaa(x5) U3_aaaaa(x1, x2, x3, x4, x5) = U3_aaaaa(x5) U4_aaaaa(x1, x2, x3, x4, x5) = U4_aaaaa(x5) U5_aaaaa(x1, x2, x3, x4, x5, x6) = U5_aaaaa(x6) U6_aaaaa(x1, x2, x3, x4, x5, x6, x7) = U6_aaaaa(x7) U7_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8) = U7_aaaaa(x8) U8_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_aaaaa(x9) U9_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_aaaaa(x10) U10_aaaaa(x1, x2, x3, x4, x5, x6) = U10_aaaaa(x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x6) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (6) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: distance_in_gggga(X1, X2, 1, J, D) -> U1_gggga(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U1_gggga(X1, X2, J, D, is_out_ag(D, -(J, +(1, 1)))) -> distance_out_gggga(X1, X2, 1, J, D) distance_in_gggga(X3, M, I, M, D) -> U2_gggga(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) U2_gggga(X3, M, I, D, is_out_ag(D, +(M, -(I, +(2, 1))))) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U3_gggga(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_gggga(N, M, J, D, is_out_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, 1, D) -> U4_gggga(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_gggga(N, M, I, D, is_out_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_gggga(N, M, I, 1, D) distance_in_gggga(N, M, I, J, D) -> U5_gggga(N, M, I, J, D, is_in_ag(N1, -(N, 2))) U5_gggga(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_gggga(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U6_gggga(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_gggga(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U7_gggga(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_gggga(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U8_gggga(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) distance_in_aaaaa(X1, X2, 1, J, D) -> U1_aaaaa(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U1_aaaaa(X1, X2, J, D, is_out_aa(D, -(J, +(1, 1)))) -> distance_out_aaaaa(X1, X2, 1, J, D) distance_in_aaaaa(X3, M, I, M, D) -> U2_aaaaa(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) U2_aaaaa(X3, M, I, D, is_out_aa(D, +(M, -(I, +(2, 1))))) -> distance_out_aaaaa(X3, M, I, M, D) distance_in_aaaaa(N, M, N, J, D) -> U3_aaaaa(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_aaaaa(N, M, J, D, is_out_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_aaaaa(N, M, N, J, D) distance_in_aaaaa(N, M, I, 1, D) -> U4_aaaaa(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_aaaaa(N, M, I, D, is_out_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_aaaaa(N, M, I, 1, D) distance_in_aaaaa(N, M, I, J, D) -> U5_aaaaa(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_aaaaa(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_aaaaa(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_aaaaa(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_aaaaa(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_aaaaa(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_aaaaa(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_aaaaa(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_aaaaa(N, M, I, J, D) U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_gggga(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_gggga(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) 1 = 1 U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x5) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag -(x1, x2) = -(x1, x2) +(x1, x2) = +(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) 2 = 2 U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) *(x1, x2) = *(x1, x2) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x5) 3 = 3 U5_gggga(x1, x2, x3, x4, x5, x6) = U5_gggga(x2, x3, x4, x6) U6_gggga(x1, x2, x3, x4, x5, x6, x7) = U6_gggga(x3, x4, x7) U7_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U7_gggga(x4, x8) U8_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_gggga(x9) U9_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_gggga(x10) distance_in_aaaaa(x1, x2, x3, x4, x5) = distance_in_aaaaa U1_aaaaa(x1, x2, x3, x4, x5) = U1_aaaaa(x5) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa distance_out_aaaaa(x1, x2, x3, x4, x5) = distance_out_aaaaa U2_aaaaa(x1, x2, x3, x4, x5) = U2_aaaaa(x5) U3_aaaaa(x1, x2, x3, x4, x5) = U3_aaaaa(x5) U4_aaaaa(x1, x2, x3, x4, x5) = U4_aaaaa(x5) U5_aaaaa(x1, x2, x3, x4, x5, x6) = U5_aaaaa(x6) U6_aaaaa(x1, x2, x3, x4, x5, x6, x7) = U6_aaaaa(x7) U7_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8) = U7_aaaaa(x8) U8_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_aaaaa(x9) U9_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_aaaaa(x10) U10_aaaaa(x1, x2, x3, x4, x5, x6) = U10_aaaaa(x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x6) ---------------------------------------- (7) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(X1, X2, 1, J, D) -> U1_GGGGA(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) DISTANCE_IN_GGGGA(X1, X2, 1, J, D) -> IS_IN_AG(D, -(J, +(1, 1))) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> U2_GGGGA(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> IS_IN_AG(D, +(M, -(I, +(2, 1)))) DISTANCE_IN_GGGGA(N, M, N, J, D) -> U3_GGGGA(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) DISTANCE_IN_GGGGA(N, M, N, J, D) -> IS_IN_AG(D, +(N, -(*(2, M), -(J, +(2, 1))))) DISTANCE_IN_GGGGA(N, M, I, 1, D) -> U4_GGGGA(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) DISTANCE_IN_GGGGA(N, M, I, 1, D) -> IS_IN_AG(D, +(*(2, N), -(*(2, M), -(I, +(3, 1))))) DISTANCE_IN_GGGGA(N, M, I, J, D) -> U5_GGGGA(N, M, I, J, D, is_in_ag(N1, -(N, 2))) DISTANCE_IN_GGGGA(N, M, I, J, D) -> IS_IN_AG(N1, -(N, 2)) U5_GGGGA(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_GGGGA(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U5_GGGGA(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> IS_IN_AG(M1, -(M, 2)) U6_GGGGA(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_GGGGA(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U6_GGGGA(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> IS_IN_AG(I1, -(I, 1)) U7_GGGGA(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U7_GGGGA(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> IS_IN_AG(J1, -(J, 1)) U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) DISTANCE_IN_AAAAA(X1, X2, 1, J, D) -> U1_AAAAA(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) DISTANCE_IN_AAAAA(X1, X2, 1, J, D) -> IS_IN_AA(D, -(J, +(1, 1))) DISTANCE_IN_AAAAA(X3, M, I, M, D) -> U2_AAAAA(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) DISTANCE_IN_AAAAA(X3, M, I, M, D) -> IS_IN_AA(D, +(M, -(I, +(2, 1)))) DISTANCE_IN_AAAAA(N, M, N, J, D) -> U3_AAAAA(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) DISTANCE_IN_AAAAA(N, M, N, J, D) -> IS_IN_AA(D, +(N, -(*(2, M), -(J, +(2, 1))))) DISTANCE_IN_AAAAA(N, M, I, 1, D) -> U4_AAAAA(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) DISTANCE_IN_AAAAA(N, M, I, 1, D) -> IS_IN_AA(D, +(*(2, N), -(*(2, M), -(I, +(3, 1))))) DISTANCE_IN_AAAAA(N, M, I, J, D) -> U5_AAAAA(N, M, I, J, D, is_in_aa(N1, -(N, 2))) DISTANCE_IN_AAAAA(N, M, I, J, D) -> IS_IN_AA(N1, -(N, 2)) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_AAAAA(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> IS_IN_AA(M1, -(M, 2)) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_AAAAA(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> IS_IN_AA(I1, -(I, 1)) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> IS_IN_AA(J1, -(J, 1)) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_AAAAA(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> IS_IN_AA(D, +(*(2, N), +(*(2, M), -(D1, 4)))) U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_GGGGA(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> IS_IN_AA(D, +(*(2, N), +(*(2, M), -(D1, 4)))) The TRS R consists of the following rules: distance_in_gggga(X1, X2, 1, J, D) -> U1_gggga(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U1_gggga(X1, X2, J, D, is_out_ag(D, -(J, +(1, 1)))) -> distance_out_gggga(X1, X2, 1, J, D) distance_in_gggga(X3, M, I, M, D) -> U2_gggga(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) U2_gggga(X3, M, I, D, is_out_ag(D, +(M, -(I, +(2, 1))))) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U3_gggga(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_gggga(N, M, J, D, is_out_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, 1, D) -> U4_gggga(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_gggga(N, M, I, D, is_out_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_gggga(N, M, I, 1, D) distance_in_gggga(N, M, I, J, D) -> U5_gggga(N, M, I, J, D, is_in_ag(N1, -(N, 2))) U5_gggga(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_gggga(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U6_gggga(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_gggga(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U7_gggga(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_gggga(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U8_gggga(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) distance_in_aaaaa(X1, X2, 1, J, D) -> U1_aaaaa(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U1_aaaaa(X1, X2, J, D, is_out_aa(D, -(J, +(1, 1)))) -> distance_out_aaaaa(X1, X2, 1, J, D) distance_in_aaaaa(X3, M, I, M, D) -> U2_aaaaa(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) U2_aaaaa(X3, M, I, D, is_out_aa(D, +(M, -(I, +(2, 1))))) -> distance_out_aaaaa(X3, M, I, M, D) distance_in_aaaaa(N, M, N, J, D) -> U3_aaaaa(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_aaaaa(N, M, J, D, is_out_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_aaaaa(N, M, N, J, D) distance_in_aaaaa(N, M, I, 1, D) -> U4_aaaaa(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_aaaaa(N, M, I, D, is_out_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_aaaaa(N, M, I, 1, D) distance_in_aaaaa(N, M, I, J, D) -> U5_aaaaa(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_aaaaa(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_aaaaa(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_aaaaa(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_aaaaa(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_aaaaa(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_aaaaa(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_aaaaa(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_aaaaa(N, M, I, J, D) U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_gggga(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_gggga(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) 1 = 1 U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x5) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag -(x1, x2) = -(x1, x2) +(x1, x2) = +(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) 2 = 2 U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) *(x1, x2) = *(x1, x2) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x5) 3 = 3 U5_gggga(x1, x2, x3, x4, x5, x6) = U5_gggga(x2, x3, x4, x6) U6_gggga(x1, x2, x3, x4, x5, x6, x7) = U6_gggga(x3, x4, x7) U7_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U7_gggga(x4, x8) U8_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_gggga(x9) U9_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_gggga(x10) distance_in_aaaaa(x1, x2, x3, x4, x5) = distance_in_aaaaa U1_aaaaa(x1, x2, x3, x4, x5) = U1_aaaaa(x5) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa distance_out_aaaaa(x1, x2, x3, x4, x5) = distance_out_aaaaa U2_aaaaa(x1, x2, x3, x4, x5) = U2_aaaaa(x5) U3_aaaaa(x1, x2, x3, x4, x5) = U3_aaaaa(x5) U4_aaaaa(x1, x2, x3, x4, x5) = U4_aaaaa(x5) U5_aaaaa(x1, x2, x3, x4, x5, x6) = U5_aaaaa(x6) U6_aaaaa(x1, x2, x3, x4, x5, x6, x7) = U6_aaaaa(x7) U7_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8) = U7_aaaaa(x8) U8_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_aaaaa(x9) U9_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_aaaaa(x10) U10_aaaaa(x1, x2, x3, x4, x5, x6) = U10_aaaaa(x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x6) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U1_GGGGA(x1, x2, x3, x4, x5) = U1_GGGGA(x5) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U2_GGGGA(x1, x2, x3, x4, x5) = U2_GGGGA(x5) U3_GGGGA(x1, x2, x3, x4, x5) = U3_GGGGA(x5) U4_GGGGA(x1, x2, x3, x4, x5) = U4_GGGGA(x5) U5_GGGGA(x1, x2, x3, x4, x5, x6) = U5_GGGGA(x2, x3, x4, x6) U6_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U6_GGGGA(x3, x4, x7) U7_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_GGGGA(x4, x8) U8_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_GGGGA(x9) U9_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_GGGGA(x10) DISTANCE_IN_AAAAA(x1, x2, x3, x4, x5) = DISTANCE_IN_AAAAA U1_AAAAA(x1, x2, x3, x4, x5) = U1_AAAAA(x5) IS_IN_AA(x1, x2) = IS_IN_AA U2_AAAAA(x1, x2, x3, x4, x5) = U2_AAAAA(x5) U3_AAAAA(x1, x2, x3, x4, x5) = U3_AAAAA(x5) U4_AAAAA(x1, x2, x3, x4, x5) = U4_AAAAA(x5) U5_AAAAA(x1, x2, x3, x4, x5, x6) = U5_AAAAA(x6) U6_AAAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAAA(x7) U7_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_AAAAA(x8) U8_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_AAAAA(x9) U9_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_AAAAA(x10) U10_AAAAA(x1, x2, x3, x4, x5, x6) = U10_AAAAA(x6) U10_GGGGA(x1, x2, x3, x4, x5, x6) = U10_GGGGA(x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (8) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(X1, X2, 1, J, D) -> U1_GGGGA(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) DISTANCE_IN_GGGGA(X1, X2, 1, J, D) -> IS_IN_AG(D, -(J, +(1, 1))) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> U2_GGGGA(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> IS_IN_AG(D, +(M, -(I, +(2, 1)))) DISTANCE_IN_GGGGA(N, M, N, J, D) -> U3_GGGGA(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) DISTANCE_IN_GGGGA(N, M, N, J, D) -> IS_IN_AG(D, +(N, -(*(2, M), -(J, +(2, 1))))) DISTANCE_IN_GGGGA(N, M, I, 1, D) -> U4_GGGGA(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) DISTANCE_IN_GGGGA(N, M, I, 1, D) -> IS_IN_AG(D, +(*(2, N), -(*(2, M), -(I, +(3, 1))))) DISTANCE_IN_GGGGA(N, M, I, J, D) -> U5_GGGGA(N, M, I, J, D, is_in_ag(N1, -(N, 2))) DISTANCE_IN_GGGGA(N, M, I, J, D) -> IS_IN_AG(N1, -(N, 2)) U5_GGGGA(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_GGGGA(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U5_GGGGA(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> IS_IN_AG(M1, -(M, 2)) U6_GGGGA(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_GGGGA(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U6_GGGGA(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> IS_IN_AG(I1, -(I, 1)) U7_GGGGA(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U7_GGGGA(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> IS_IN_AG(J1, -(J, 1)) U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) DISTANCE_IN_AAAAA(X1, X2, 1, J, D) -> U1_AAAAA(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) DISTANCE_IN_AAAAA(X1, X2, 1, J, D) -> IS_IN_AA(D, -(J, +(1, 1))) DISTANCE_IN_AAAAA(X3, M, I, M, D) -> U2_AAAAA(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) DISTANCE_IN_AAAAA(X3, M, I, M, D) -> IS_IN_AA(D, +(M, -(I, +(2, 1)))) DISTANCE_IN_AAAAA(N, M, N, J, D) -> U3_AAAAA(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) DISTANCE_IN_AAAAA(N, M, N, J, D) -> IS_IN_AA(D, +(N, -(*(2, M), -(J, +(2, 1))))) DISTANCE_IN_AAAAA(N, M, I, 1, D) -> U4_AAAAA(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) DISTANCE_IN_AAAAA(N, M, I, 1, D) -> IS_IN_AA(D, +(*(2, N), -(*(2, M), -(I, +(3, 1))))) DISTANCE_IN_AAAAA(N, M, I, J, D) -> U5_AAAAA(N, M, I, J, D, is_in_aa(N1, -(N, 2))) DISTANCE_IN_AAAAA(N, M, I, J, D) -> IS_IN_AA(N1, -(N, 2)) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_AAAAA(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> IS_IN_AA(M1, -(M, 2)) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_AAAAA(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> IS_IN_AA(I1, -(I, 1)) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> IS_IN_AA(J1, -(J, 1)) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_AAAAA(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> IS_IN_AA(D, +(*(2, N), +(*(2, M), -(D1, 4)))) U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_GGGGA(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> IS_IN_AA(D, +(*(2, N), +(*(2, M), -(D1, 4)))) The TRS R consists of the following rules: distance_in_gggga(X1, X2, 1, J, D) -> U1_gggga(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U1_gggga(X1, X2, J, D, is_out_ag(D, -(J, +(1, 1)))) -> distance_out_gggga(X1, X2, 1, J, D) distance_in_gggga(X3, M, I, M, D) -> U2_gggga(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) U2_gggga(X3, M, I, D, is_out_ag(D, +(M, -(I, +(2, 1))))) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U3_gggga(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_gggga(N, M, J, D, is_out_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, 1, D) -> U4_gggga(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_gggga(N, M, I, D, is_out_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_gggga(N, M, I, 1, D) distance_in_gggga(N, M, I, J, D) -> U5_gggga(N, M, I, J, D, is_in_ag(N1, -(N, 2))) U5_gggga(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_gggga(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U6_gggga(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_gggga(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U7_gggga(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_gggga(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U8_gggga(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) distance_in_aaaaa(X1, X2, 1, J, D) -> U1_aaaaa(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U1_aaaaa(X1, X2, J, D, is_out_aa(D, -(J, +(1, 1)))) -> distance_out_aaaaa(X1, X2, 1, J, D) distance_in_aaaaa(X3, M, I, M, D) -> U2_aaaaa(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) U2_aaaaa(X3, M, I, D, is_out_aa(D, +(M, -(I, +(2, 1))))) -> distance_out_aaaaa(X3, M, I, M, D) distance_in_aaaaa(N, M, N, J, D) -> U3_aaaaa(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_aaaaa(N, M, J, D, is_out_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_aaaaa(N, M, N, J, D) distance_in_aaaaa(N, M, I, 1, D) -> U4_aaaaa(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_aaaaa(N, M, I, D, is_out_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_aaaaa(N, M, I, 1, D) distance_in_aaaaa(N, M, I, J, D) -> U5_aaaaa(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_aaaaa(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_aaaaa(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_aaaaa(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_aaaaa(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_aaaaa(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_aaaaa(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_aaaaa(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_aaaaa(N, M, I, J, D) U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_gggga(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_gggga(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) 1 = 1 U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x5) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag -(x1, x2) = -(x1, x2) +(x1, x2) = +(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) 2 = 2 U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) *(x1, x2) = *(x1, x2) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x5) 3 = 3 U5_gggga(x1, x2, x3, x4, x5, x6) = U5_gggga(x2, x3, x4, x6) U6_gggga(x1, x2, x3, x4, x5, x6, x7) = U6_gggga(x3, x4, x7) U7_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U7_gggga(x4, x8) U8_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_gggga(x9) U9_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_gggga(x10) distance_in_aaaaa(x1, x2, x3, x4, x5) = distance_in_aaaaa U1_aaaaa(x1, x2, x3, x4, x5) = U1_aaaaa(x5) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa distance_out_aaaaa(x1, x2, x3, x4, x5) = distance_out_aaaaa U2_aaaaa(x1, x2, x3, x4, x5) = U2_aaaaa(x5) U3_aaaaa(x1, x2, x3, x4, x5) = U3_aaaaa(x5) U4_aaaaa(x1, x2, x3, x4, x5) = U4_aaaaa(x5) U5_aaaaa(x1, x2, x3, x4, x5, x6) = U5_aaaaa(x6) U6_aaaaa(x1, x2, x3, x4, x5, x6, x7) = U6_aaaaa(x7) U7_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8) = U7_aaaaa(x8) U8_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_aaaaa(x9) U9_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_aaaaa(x10) U10_aaaaa(x1, x2, x3, x4, x5, x6) = U10_aaaaa(x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x6) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U1_GGGGA(x1, x2, x3, x4, x5) = U1_GGGGA(x5) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U2_GGGGA(x1, x2, x3, x4, x5) = U2_GGGGA(x5) U3_GGGGA(x1, x2, x3, x4, x5) = U3_GGGGA(x5) U4_GGGGA(x1, x2, x3, x4, x5) = U4_GGGGA(x5) U5_GGGGA(x1, x2, x3, x4, x5, x6) = U5_GGGGA(x2, x3, x4, x6) U6_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U6_GGGGA(x3, x4, x7) U7_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_GGGGA(x4, x8) U8_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_GGGGA(x9) U9_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_GGGGA(x10) DISTANCE_IN_AAAAA(x1, x2, x3, x4, x5) = DISTANCE_IN_AAAAA U1_AAAAA(x1, x2, x3, x4, x5) = U1_AAAAA(x5) IS_IN_AA(x1, x2) = IS_IN_AA U2_AAAAA(x1, x2, x3, x4, x5) = U2_AAAAA(x5) U3_AAAAA(x1, x2, x3, x4, x5) = U3_AAAAA(x5) U4_AAAAA(x1, x2, x3, x4, x5) = U4_AAAAA(x5) U5_AAAAA(x1, x2, x3, x4, x5, x6) = U5_AAAAA(x6) U6_AAAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAAA(x7) U7_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_AAAAA(x8) U8_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_AAAAA(x9) U9_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_AAAAA(x10) U10_AAAAA(x1, x2, x3, x4, x5, x6) = U10_AAAAA(x6) U10_GGGGA(x1, x2, x3, x4, x5, x6) = U10_GGGGA(x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (9) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 35 less nodes. ---------------------------------------- (10) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_AAAAA(N, M, I, J, D) -> U5_AAAAA(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_AAAAA(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_AAAAA(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) The TRS R consists of the following rules: distance_in_gggga(X1, X2, 1, J, D) -> U1_gggga(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U1_gggga(X1, X2, J, D, is_out_ag(D, -(J, +(1, 1)))) -> distance_out_gggga(X1, X2, 1, J, D) distance_in_gggga(X3, M, I, M, D) -> U2_gggga(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) U2_gggga(X3, M, I, D, is_out_ag(D, +(M, -(I, +(2, 1))))) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U3_gggga(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_gggga(N, M, J, D, is_out_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, 1, D) -> U4_gggga(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_gggga(N, M, I, D, is_out_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_gggga(N, M, I, 1, D) distance_in_gggga(N, M, I, J, D) -> U5_gggga(N, M, I, J, D, is_in_ag(N1, -(N, 2))) U5_gggga(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_gggga(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U6_gggga(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_gggga(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U7_gggga(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_gggga(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U8_gggga(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) distance_in_aaaaa(X1, X2, 1, J, D) -> U1_aaaaa(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U1_aaaaa(X1, X2, J, D, is_out_aa(D, -(J, +(1, 1)))) -> distance_out_aaaaa(X1, X2, 1, J, D) distance_in_aaaaa(X3, M, I, M, D) -> U2_aaaaa(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) U2_aaaaa(X3, M, I, D, is_out_aa(D, +(M, -(I, +(2, 1))))) -> distance_out_aaaaa(X3, M, I, M, D) distance_in_aaaaa(N, M, N, J, D) -> U3_aaaaa(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_aaaaa(N, M, J, D, is_out_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_aaaaa(N, M, N, J, D) distance_in_aaaaa(N, M, I, 1, D) -> U4_aaaaa(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_aaaaa(N, M, I, D, is_out_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_aaaaa(N, M, I, 1, D) distance_in_aaaaa(N, M, I, J, D) -> U5_aaaaa(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_aaaaa(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_aaaaa(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_aaaaa(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_aaaaa(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_aaaaa(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_aaaaa(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_aaaaa(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_aaaaa(N, M, I, J, D) U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_gggga(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_gggga(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) 1 = 1 U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x5) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag -(x1, x2) = -(x1, x2) +(x1, x2) = +(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) 2 = 2 U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) *(x1, x2) = *(x1, x2) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x5) 3 = 3 U5_gggga(x1, x2, x3, x4, x5, x6) = U5_gggga(x2, x3, x4, x6) U6_gggga(x1, x2, x3, x4, x5, x6, x7) = U6_gggga(x3, x4, x7) U7_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U7_gggga(x4, x8) U8_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_gggga(x9) U9_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_gggga(x10) distance_in_aaaaa(x1, x2, x3, x4, x5) = distance_in_aaaaa U1_aaaaa(x1, x2, x3, x4, x5) = U1_aaaaa(x5) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa distance_out_aaaaa(x1, x2, x3, x4, x5) = distance_out_aaaaa U2_aaaaa(x1, x2, x3, x4, x5) = U2_aaaaa(x5) U3_aaaaa(x1, x2, x3, x4, x5) = U3_aaaaa(x5) U4_aaaaa(x1, x2, x3, x4, x5) = U4_aaaaa(x5) U5_aaaaa(x1, x2, x3, x4, x5, x6) = U5_aaaaa(x6) U6_aaaaa(x1, x2, x3, x4, x5, x6, x7) = U6_aaaaa(x7) U7_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8) = U7_aaaaa(x8) U8_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_aaaaa(x9) U9_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_aaaaa(x10) U10_aaaaa(x1, x2, x3, x4, x5, x6) = U10_aaaaa(x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x6) DISTANCE_IN_AAAAA(x1, x2, x3, x4, x5) = DISTANCE_IN_AAAAA U5_AAAAA(x1, x2, x3, x4, x5, x6) = U5_AAAAA(x6) U6_AAAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAAA(x7) U7_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_AAAAA(x8) U8_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_AAAAA(x9) We have to consider all (P,R,Pi)-chains ---------------------------------------- (11) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (12) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_AAAAA(N, M, I, J, D) -> U5_AAAAA(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_AAAAA(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_AAAAA(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) The TRS R consists of the following rules: is_in_aa(X0, X1) -> is_out_aa(X0, X1) The argument filtering Pi contains the following mapping: 1 = 1 -(x1, x2) = -(x1, x2) 2 = 2 is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa DISTANCE_IN_AAAAA(x1, x2, x3, x4, x5) = DISTANCE_IN_AAAAA U5_AAAAA(x1, x2, x3, x4, x5, x6) = U5_AAAAA(x6) U6_AAAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAAA(x7) U7_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_AAAAA(x8) U8_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_AAAAA(x9) We have to consider all (P,R,Pi)-chains ---------------------------------------- (13) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_AAAAA -> U5_AAAAA(is_in_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_in_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_in_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_in_aa) U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA The TRS R consists of the following rules: is_in_aa -> is_out_aa The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (15) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule DISTANCE_IN_AAAAA -> U5_AAAAA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa),DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa)) ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: U5_AAAAA(is_out_aa) -> U6_AAAAA(is_in_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_in_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_in_aa) U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) The TRS R consists of the following rules: is_in_aa -> is_out_aa The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (17) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U5_AAAAA(is_out_aa) -> U6_AAAAA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa),U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa)) ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AAAAA(is_out_aa) -> U7_AAAAA(is_in_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_in_aa) U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa) The TRS R consists of the following rules: is_in_aa -> is_out_aa The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (19) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U6_AAAAA(is_out_aa) -> U7_AAAAA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa),U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa)) ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: U7_AAAAA(is_out_aa) -> U8_AAAAA(is_in_aa) U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa) The TRS R consists of the following rules: is_in_aa -> is_out_aa The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (21) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U7_AAAAA(is_out_aa) -> U8_AAAAA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U7_AAAAA(is_out_aa) -> U8_AAAAA(is_out_aa),U7_AAAAA(is_out_aa) -> U8_AAAAA(is_out_aa)) ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_out_aa) The TRS R consists of the following rules: is_in_aa -> is_out_aa The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (23) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_out_aa) R is empty. The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (25) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. is_in_aa ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_out_aa) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (27) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: distance_in_5: (b,b,b,b,f) (f,f,f,f,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: distance_in_gggga(X1, X2, 1, J, D) -> U1_gggga(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U1_gggga(X1, X2, J, D, is_out_ag(D, -(J, +(1, 1)))) -> distance_out_gggga(X1, X2, 1, J, D) distance_in_gggga(X3, M, I, M, D) -> U2_gggga(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) U2_gggga(X3, M, I, D, is_out_ag(D, +(M, -(I, +(2, 1))))) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U3_gggga(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_gggga(N, M, J, D, is_out_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, 1, D) -> U4_gggga(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_gggga(N, M, I, D, is_out_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_gggga(N, M, I, 1, D) distance_in_gggga(N, M, I, J, D) -> U5_gggga(N, M, I, J, D, is_in_ag(N1, -(N, 2))) U5_gggga(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_gggga(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U6_gggga(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_gggga(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U7_gggga(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_gggga(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U8_gggga(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) distance_in_aaaaa(X1, X2, 1, J, D) -> U1_aaaaa(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U1_aaaaa(X1, X2, J, D, is_out_aa(D, -(J, +(1, 1)))) -> distance_out_aaaaa(X1, X2, 1, J, D) distance_in_aaaaa(X3, M, I, M, D) -> U2_aaaaa(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) U2_aaaaa(X3, M, I, D, is_out_aa(D, +(M, -(I, +(2, 1))))) -> distance_out_aaaaa(X3, M, I, M, D) distance_in_aaaaa(N, M, N, J, D) -> U3_aaaaa(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_aaaaa(N, M, J, D, is_out_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_aaaaa(N, M, N, J, D) distance_in_aaaaa(N, M, I, 1, D) -> U4_aaaaa(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_aaaaa(N, M, I, D, is_out_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_aaaaa(N, M, I, 1, D) distance_in_aaaaa(N, M, I, J, D) -> U5_aaaaa(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_aaaaa(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_aaaaa(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_aaaaa(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_aaaaa(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_aaaaa(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_aaaaa(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_aaaaa(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_aaaaa(N, M, I, J, D) U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_gggga(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_gggga(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) 1 = 1 U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) -(x1, x2) = -(x1, x2) +(x1, x2) = +(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) 2 = 2 U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) *(x1, x2) = *(x1, x2) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) 3 = 3 U5_gggga(x1, x2, x3, x4, x5, x6) = U5_gggga(x1, x2, x3, x4, x6) U6_gggga(x1, x2, x3, x4, x5, x6, x7) = U6_gggga(x1, x2, x3, x4, x7) U7_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U7_gggga(x1, x2, x3, x4, x8) U8_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_gggga(x1, x2, x3, x4, x9) U9_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_gggga(x1, x2, x3, x4, x10) distance_in_aaaaa(x1, x2, x3, x4, x5) = distance_in_aaaaa U1_aaaaa(x1, x2, x3, x4, x5) = U1_aaaaa(x5) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa distance_out_aaaaa(x1, x2, x3, x4, x5) = distance_out_aaaaa U2_aaaaa(x1, x2, x3, x4, x5) = U2_aaaaa(x5) U3_aaaaa(x1, x2, x3, x4, x5) = U3_aaaaa(x5) U4_aaaaa(x1, x2, x3, x4, x5) = U4_aaaaa(x5) U5_aaaaa(x1, x2, x3, x4, x5, x6) = U5_aaaaa(x6) U6_aaaaa(x1, x2, x3, x4, x5, x6, x7) = U6_aaaaa(x7) U7_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8) = U7_aaaaa(x8) U8_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_aaaaa(x9) U9_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_aaaaa(x10) U10_aaaaa(x1, x2, x3, x4, x5, x6) = U10_aaaaa(x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x4, x6) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (28) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: distance_in_gggga(X1, X2, 1, J, D) -> U1_gggga(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U1_gggga(X1, X2, J, D, is_out_ag(D, -(J, +(1, 1)))) -> distance_out_gggga(X1, X2, 1, J, D) distance_in_gggga(X3, M, I, M, D) -> U2_gggga(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) U2_gggga(X3, M, I, D, is_out_ag(D, +(M, -(I, +(2, 1))))) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U3_gggga(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_gggga(N, M, J, D, is_out_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, 1, D) -> U4_gggga(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_gggga(N, M, I, D, is_out_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_gggga(N, M, I, 1, D) distance_in_gggga(N, M, I, J, D) -> U5_gggga(N, M, I, J, D, is_in_ag(N1, -(N, 2))) U5_gggga(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_gggga(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U6_gggga(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_gggga(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U7_gggga(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_gggga(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U8_gggga(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) distance_in_aaaaa(X1, X2, 1, J, D) -> U1_aaaaa(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U1_aaaaa(X1, X2, J, D, is_out_aa(D, -(J, +(1, 1)))) -> distance_out_aaaaa(X1, X2, 1, J, D) distance_in_aaaaa(X3, M, I, M, D) -> U2_aaaaa(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) U2_aaaaa(X3, M, I, D, is_out_aa(D, +(M, -(I, +(2, 1))))) -> distance_out_aaaaa(X3, M, I, M, D) distance_in_aaaaa(N, M, N, J, D) -> U3_aaaaa(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_aaaaa(N, M, J, D, is_out_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_aaaaa(N, M, N, J, D) distance_in_aaaaa(N, M, I, 1, D) -> U4_aaaaa(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_aaaaa(N, M, I, D, is_out_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_aaaaa(N, M, I, 1, D) distance_in_aaaaa(N, M, I, J, D) -> U5_aaaaa(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_aaaaa(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_aaaaa(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_aaaaa(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_aaaaa(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_aaaaa(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_aaaaa(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_aaaaa(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_aaaaa(N, M, I, J, D) U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_gggga(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_gggga(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) 1 = 1 U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) -(x1, x2) = -(x1, x2) +(x1, x2) = +(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) 2 = 2 U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) *(x1, x2) = *(x1, x2) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) 3 = 3 U5_gggga(x1, x2, x3, x4, x5, x6) = U5_gggga(x1, x2, x3, x4, x6) U6_gggga(x1, x2, x3, x4, x5, x6, x7) = U6_gggga(x1, x2, x3, x4, x7) U7_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U7_gggga(x1, x2, x3, x4, x8) U8_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_gggga(x1, x2, x3, x4, x9) U9_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_gggga(x1, x2, x3, x4, x10) distance_in_aaaaa(x1, x2, x3, x4, x5) = distance_in_aaaaa U1_aaaaa(x1, x2, x3, x4, x5) = U1_aaaaa(x5) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa distance_out_aaaaa(x1, x2, x3, x4, x5) = distance_out_aaaaa U2_aaaaa(x1, x2, x3, x4, x5) = U2_aaaaa(x5) U3_aaaaa(x1, x2, x3, x4, x5) = U3_aaaaa(x5) U4_aaaaa(x1, x2, x3, x4, x5) = U4_aaaaa(x5) U5_aaaaa(x1, x2, x3, x4, x5, x6) = U5_aaaaa(x6) U6_aaaaa(x1, x2, x3, x4, x5, x6, x7) = U6_aaaaa(x7) U7_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8) = U7_aaaaa(x8) U8_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_aaaaa(x9) U9_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_aaaaa(x10) U10_aaaaa(x1, x2, x3, x4, x5, x6) = U10_aaaaa(x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x4, x6) ---------------------------------------- (29) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(X1, X2, 1, J, D) -> U1_GGGGA(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) DISTANCE_IN_GGGGA(X1, X2, 1, J, D) -> IS_IN_AG(D, -(J, +(1, 1))) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> U2_GGGGA(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> IS_IN_AG(D, +(M, -(I, +(2, 1)))) DISTANCE_IN_GGGGA(N, M, N, J, D) -> U3_GGGGA(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) DISTANCE_IN_GGGGA(N, M, N, J, D) -> IS_IN_AG(D, +(N, -(*(2, M), -(J, +(2, 1))))) DISTANCE_IN_GGGGA(N, M, I, 1, D) -> U4_GGGGA(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) DISTANCE_IN_GGGGA(N, M, I, 1, D) -> IS_IN_AG(D, +(*(2, N), -(*(2, M), -(I, +(3, 1))))) DISTANCE_IN_GGGGA(N, M, I, J, D) -> U5_GGGGA(N, M, I, J, D, is_in_ag(N1, -(N, 2))) DISTANCE_IN_GGGGA(N, M, I, J, D) -> IS_IN_AG(N1, -(N, 2)) U5_GGGGA(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_GGGGA(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U5_GGGGA(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> IS_IN_AG(M1, -(M, 2)) U6_GGGGA(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_GGGGA(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U6_GGGGA(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> IS_IN_AG(I1, -(I, 1)) U7_GGGGA(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U7_GGGGA(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> IS_IN_AG(J1, -(J, 1)) U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) DISTANCE_IN_AAAAA(X1, X2, 1, J, D) -> U1_AAAAA(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) DISTANCE_IN_AAAAA(X1, X2, 1, J, D) -> IS_IN_AA(D, -(J, +(1, 1))) DISTANCE_IN_AAAAA(X3, M, I, M, D) -> U2_AAAAA(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) DISTANCE_IN_AAAAA(X3, M, I, M, D) -> IS_IN_AA(D, +(M, -(I, +(2, 1)))) DISTANCE_IN_AAAAA(N, M, N, J, D) -> U3_AAAAA(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) DISTANCE_IN_AAAAA(N, M, N, J, D) -> IS_IN_AA(D, +(N, -(*(2, M), -(J, +(2, 1))))) DISTANCE_IN_AAAAA(N, M, I, 1, D) -> U4_AAAAA(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) DISTANCE_IN_AAAAA(N, M, I, 1, D) -> IS_IN_AA(D, +(*(2, N), -(*(2, M), -(I, +(3, 1))))) DISTANCE_IN_AAAAA(N, M, I, J, D) -> U5_AAAAA(N, M, I, J, D, is_in_aa(N1, -(N, 2))) DISTANCE_IN_AAAAA(N, M, I, J, D) -> IS_IN_AA(N1, -(N, 2)) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_AAAAA(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> IS_IN_AA(M1, -(M, 2)) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_AAAAA(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> IS_IN_AA(I1, -(I, 1)) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> IS_IN_AA(J1, -(J, 1)) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_AAAAA(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> IS_IN_AA(D, +(*(2, N), +(*(2, M), -(D1, 4)))) U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_GGGGA(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> IS_IN_AA(D, +(*(2, N), +(*(2, M), -(D1, 4)))) The TRS R consists of the following rules: distance_in_gggga(X1, X2, 1, J, D) -> U1_gggga(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U1_gggga(X1, X2, J, D, is_out_ag(D, -(J, +(1, 1)))) -> distance_out_gggga(X1, X2, 1, J, D) distance_in_gggga(X3, M, I, M, D) -> U2_gggga(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) U2_gggga(X3, M, I, D, is_out_ag(D, +(M, -(I, +(2, 1))))) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U3_gggga(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_gggga(N, M, J, D, is_out_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, 1, D) -> U4_gggga(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_gggga(N, M, I, D, is_out_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_gggga(N, M, I, 1, D) distance_in_gggga(N, M, I, J, D) -> U5_gggga(N, M, I, J, D, is_in_ag(N1, -(N, 2))) U5_gggga(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_gggga(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U6_gggga(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_gggga(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U7_gggga(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_gggga(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U8_gggga(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) distance_in_aaaaa(X1, X2, 1, J, D) -> U1_aaaaa(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U1_aaaaa(X1, X2, J, D, is_out_aa(D, -(J, +(1, 1)))) -> distance_out_aaaaa(X1, X2, 1, J, D) distance_in_aaaaa(X3, M, I, M, D) -> U2_aaaaa(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) U2_aaaaa(X3, M, I, D, is_out_aa(D, +(M, -(I, +(2, 1))))) -> distance_out_aaaaa(X3, M, I, M, D) distance_in_aaaaa(N, M, N, J, D) -> U3_aaaaa(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_aaaaa(N, M, J, D, is_out_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_aaaaa(N, M, N, J, D) distance_in_aaaaa(N, M, I, 1, D) -> U4_aaaaa(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_aaaaa(N, M, I, D, is_out_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_aaaaa(N, M, I, 1, D) distance_in_aaaaa(N, M, I, J, D) -> U5_aaaaa(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_aaaaa(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_aaaaa(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_aaaaa(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_aaaaa(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_aaaaa(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_aaaaa(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_aaaaa(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_aaaaa(N, M, I, J, D) U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_gggga(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_gggga(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) 1 = 1 U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) -(x1, x2) = -(x1, x2) +(x1, x2) = +(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) 2 = 2 U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) *(x1, x2) = *(x1, x2) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) 3 = 3 U5_gggga(x1, x2, x3, x4, x5, x6) = U5_gggga(x1, x2, x3, x4, x6) U6_gggga(x1, x2, x3, x4, x5, x6, x7) = U6_gggga(x1, x2, x3, x4, x7) U7_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U7_gggga(x1, x2, x3, x4, x8) U8_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_gggga(x1, x2, x3, x4, x9) U9_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_gggga(x1, x2, x3, x4, x10) distance_in_aaaaa(x1, x2, x3, x4, x5) = distance_in_aaaaa U1_aaaaa(x1, x2, x3, x4, x5) = U1_aaaaa(x5) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa distance_out_aaaaa(x1, x2, x3, x4, x5) = distance_out_aaaaa U2_aaaaa(x1, x2, x3, x4, x5) = U2_aaaaa(x5) U3_aaaaa(x1, x2, x3, x4, x5) = U3_aaaaa(x5) U4_aaaaa(x1, x2, x3, x4, x5) = U4_aaaaa(x5) U5_aaaaa(x1, x2, x3, x4, x5, x6) = U5_aaaaa(x6) U6_aaaaa(x1, x2, x3, x4, x5, x6, x7) = U6_aaaaa(x7) U7_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8) = U7_aaaaa(x8) U8_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_aaaaa(x9) U9_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_aaaaa(x10) U10_aaaaa(x1, x2, x3, x4, x5, x6) = U10_aaaaa(x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x4, x6) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U1_GGGGA(x1, x2, x3, x4, x5) = U1_GGGGA(x1, x2, x3, x5) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U2_GGGGA(x1, x2, x3, x4, x5) = U2_GGGGA(x1, x2, x3, x5) U3_GGGGA(x1, x2, x3, x4, x5) = U3_GGGGA(x1, x2, x3, x5) U4_GGGGA(x1, x2, x3, x4, x5) = U4_GGGGA(x1, x2, x3, x5) U5_GGGGA(x1, x2, x3, x4, x5, x6) = U5_GGGGA(x1, x2, x3, x4, x6) U6_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U6_GGGGA(x1, x2, x3, x4, x7) U7_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_GGGGA(x1, x2, x3, x4, x8) U8_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_GGGGA(x1, x2, x3, x4, x9) U9_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_GGGGA(x1, x2, x3, x4, x10) DISTANCE_IN_AAAAA(x1, x2, x3, x4, x5) = DISTANCE_IN_AAAAA U1_AAAAA(x1, x2, x3, x4, x5) = U1_AAAAA(x5) IS_IN_AA(x1, x2) = IS_IN_AA U2_AAAAA(x1, x2, x3, x4, x5) = U2_AAAAA(x5) U3_AAAAA(x1, x2, x3, x4, x5) = U3_AAAAA(x5) U4_AAAAA(x1, x2, x3, x4, x5) = U4_AAAAA(x5) U5_AAAAA(x1, x2, x3, x4, x5, x6) = U5_AAAAA(x6) U6_AAAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAAA(x7) U7_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_AAAAA(x8) U8_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_AAAAA(x9) U9_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_AAAAA(x10) U10_AAAAA(x1, x2, x3, x4, x5, x6) = U10_AAAAA(x6) U10_GGGGA(x1, x2, x3, x4, x5, x6) = U10_GGGGA(x1, x2, x3, x4, x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (30) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(X1, X2, 1, J, D) -> U1_GGGGA(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) DISTANCE_IN_GGGGA(X1, X2, 1, J, D) -> IS_IN_AG(D, -(J, +(1, 1))) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> U2_GGGGA(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> IS_IN_AG(D, +(M, -(I, +(2, 1)))) DISTANCE_IN_GGGGA(N, M, N, J, D) -> U3_GGGGA(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) DISTANCE_IN_GGGGA(N, M, N, J, D) -> IS_IN_AG(D, +(N, -(*(2, M), -(J, +(2, 1))))) DISTANCE_IN_GGGGA(N, M, I, 1, D) -> U4_GGGGA(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) DISTANCE_IN_GGGGA(N, M, I, 1, D) -> IS_IN_AG(D, +(*(2, N), -(*(2, M), -(I, +(3, 1))))) DISTANCE_IN_GGGGA(N, M, I, J, D) -> U5_GGGGA(N, M, I, J, D, is_in_ag(N1, -(N, 2))) DISTANCE_IN_GGGGA(N, M, I, J, D) -> IS_IN_AG(N1, -(N, 2)) U5_GGGGA(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_GGGGA(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U5_GGGGA(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> IS_IN_AG(M1, -(M, 2)) U6_GGGGA(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_GGGGA(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U6_GGGGA(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> IS_IN_AG(I1, -(I, 1)) U7_GGGGA(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U7_GGGGA(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> IS_IN_AG(J1, -(J, 1)) U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U8_GGGGA(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) DISTANCE_IN_AAAAA(X1, X2, 1, J, D) -> U1_AAAAA(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) DISTANCE_IN_AAAAA(X1, X2, 1, J, D) -> IS_IN_AA(D, -(J, +(1, 1))) DISTANCE_IN_AAAAA(X3, M, I, M, D) -> U2_AAAAA(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) DISTANCE_IN_AAAAA(X3, M, I, M, D) -> IS_IN_AA(D, +(M, -(I, +(2, 1)))) DISTANCE_IN_AAAAA(N, M, N, J, D) -> U3_AAAAA(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) DISTANCE_IN_AAAAA(N, M, N, J, D) -> IS_IN_AA(D, +(N, -(*(2, M), -(J, +(2, 1))))) DISTANCE_IN_AAAAA(N, M, I, 1, D) -> U4_AAAAA(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) DISTANCE_IN_AAAAA(N, M, I, 1, D) -> IS_IN_AA(D, +(*(2, N), -(*(2, M), -(I, +(3, 1))))) DISTANCE_IN_AAAAA(N, M, I, J, D) -> U5_AAAAA(N, M, I, J, D, is_in_aa(N1, -(N, 2))) DISTANCE_IN_AAAAA(N, M, I, J, D) -> IS_IN_AA(N1, -(N, 2)) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_AAAAA(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> IS_IN_AA(M1, -(M, 2)) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_AAAAA(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> IS_IN_AA(I1, -(I, 1)) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> IS_IN_AA(J1, -(J, 1)) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_AAAAA(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U9_AAAAA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> IS_IN_AA(D, +(*(2, N), +(*(2, M), -(D1, 4)))) U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_GGGGA(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U9_GGGGA(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> IS_IN_AA(D, +(*(2, N), +(*(2, M), -(D1, 4)))) The TRS R consists of the following rules: distance_in_gggga(X1, X2, 1, J, D) -> U1_gggga(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U1_gggga(X1, X2, J, D, is_out_ag(D, -(J, +(1, 1)))) -> distance_out_gggga(X1, X2, 1, J, D) distance_in_gggga(X3, M, I, M, D) -> U2_gggga(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) U2_gggga(X3, M, I, D, is_out_ag(D, +(M, -(I, +(2, 1))))) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U3_gggga(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_gggga(N, M, J, D, is_out_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, 1, D) -> U4_gggga(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_gggga(N, M, I, D, is_out_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_gggga(N, M, I, 1, D) distance_in_gggga(N, M, I, J, D) -> U5_gggga(N, M, I, J, D, is_in_ag(N1, -(N, 2))) U5_gggga(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_gggga(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U6_gggga(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_gggga(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U7_gggga(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_gggga(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U8_gggga(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) distance_in_aaaaa(X1, X2, 1, J, D) -> U1_aaaaa(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U1_aaaaa(X1, X2, J, D, is_out_aa(D, -(J, +(1, 1)))) -> distance_out_aaaaa(X1, X2, 1, J, D) distance_in_aaaaa(X3, M, I, M, D) -> U2_aaaaa(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) U2_aaaaa(X3, M, I, D, is_out_aa(D, +(M, -(I, +(2, 1))))) -> distance_out_aaaaa(X3, M, I, M, D) distance_in_aaaaa(N, M, N, J, D) -> U3_aaaaa(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_aaaaa(N, M, J, D, is_out_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_aaaaa(N, M, N, J, D) distance_in_aaaaa(N, M, I, 1, D) -> U4_aaaaa(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_aaaaa(N, M, I, D, is_out_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_aaaaa(N, M, I, 1, D) distance_in_aaaaa(N, M, I, J, D) -> U5_aaaaa(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_aaaaa(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_aaaaa(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_aaaaa(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_aaaaa(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_aaaaa(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_aaaaa(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_aaaaa(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_aaaaa(N, M, I, J, D) U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_gggga(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_gggga(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) 1 = 1 U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) -(x1, x2) = -(x1, x2) +(x1, x2) = +(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) 2 = 2 U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) *(x1, x2) = *(x1, x2) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) 3 = 3 U5_gggga(x1, x2, x3, x4, x5, x6) = U5_gggga(x1, x2, x3, x4, x6) U6_gggga(x1, x2, x3, x4, x5, x6, x7) = U6_gggga(x1, x2, x3, x4, x7) U7_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U7_gggga(x1, x2, x3, x4, x8) U8_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_gggga(x1, x2, x3, x4, x9) U9_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_gggga(x1, x2, x3, x4, x10) distance_in_aaaaa(x1, x2, x3, x4, x5) = distance_in_aaaaa U1_aaaaa(x1, x2, x3, x4, x5) = U1_aaaaa(x5) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa distance_out_aaaaa(x1, x2, x3, x4, x5) = distance_out_aaaaa U2_aaaaa(x1, x2, x3, x4, x5) = U2_aaaaa(x5) U3_aaaaa(x1, x2, x3, x4, x5) = U3_aaaaa(x5) U4_aaaaa(x1, x2, x3, x4, x5) = U4_aaaaa(x5) U5_aaaaa(x1, x2, x3, x4, x5, x6) = U5_aaaaa(x6) U6_aaaaa(x1, x2, x3, x4, x5, x6, x7) = U6_aaaaa(x7) U7_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8) = U7_aaaaa(x8) U8_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_aaaaa(x9) U9_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_aaaaa(x10) U10_aaaaa(x1, x2, x3, x4, x5, x6) = U10_aaaaa(x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x4, x6) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U1_GGGGA(x1, x2, x3, x4, x5) = U1_GGGGA(x1, x2, x3, x5) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U2_GGGGA(x1, x2, x3, x4, x5) = U2_GGGGA(x1, x2, x3, x5) U3_GGGGA(x1, x2, x3, x4, x5) = U3_GGGGA(x1, x2, x3, x5) U4_GGGGA(x1, x2, x3, x4, x5) = U4_GGGGA(x1, x2, x3, x5) U5_GGGGA(x1, x2, x3, x4, x5, x6) = U5_GGGGA(x1, x2, x3, x4, x6) U6_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U6_GGGGA(x1, x2, x3, x4, x7) U7_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_GGGGA(x1, x2, x3, x4, x8) U8_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_GGGGA(x1, x2, x3, x4, x9) U9_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_GGGGA(x1, x2, x3, x4, x10) DISTANCE_IN_AAAAA(x1, x2, x3, x4, x5) = DISTANCE_IN_AAAAA U1_AAAAA(x1, x2, x3, x4, x5) = U1_AAAAA(x5) IS_IN_AA(x1, x2) = IS_IN_AA U2_AAAAA(x1, x2, x3, x4, x5) = U2_AAAAA(x5) U3_AAAAA(x1, x2, x3, x4, x5) = U3_AAAAA(x5) U4_AAAAA(x1, x2, x3, x4, x5) = U4_AAAAA(x5) U5_AAAAA(x1, x2, x3, x4, x5, x6) = U5_AAAAA(x6) U6_AAAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAAA(x7) U7_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_AAAAA(x8) U8_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_AAAAA(x9) U9_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_AAAAA(x10) U10_AAAAA(x1, x2, x3, x4, x5, x6) = U10_AAAAA(x6) U10_GGGGA(x1, x2, x3, x4, x5, x6) = U10_GGGGA(x1, x2, x3, x4, x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (31) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 35 less nodes. ---------------------------------------- (32) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_AAAAA(N, M, I, J, D) -> U5_AAAAA(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_AAAAA(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_AAAAA(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) The TRS R consists of the following rules: distance_in_gggga(X1, X2, 1, J, D) -> U1_gggga(X1, X2, J, D, is_in_ag(D, -(J, +(1, 1)))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U1_gggga(X1, X2, J, D, is_out_ag(D, -(J, +(1, 1)))) -> distance_out_gggga(X1, X2, 1, J, D) distance_in_gggga(X3, M, I, M, D) -> U2_gggga(X3, M, I, D, is_in_ag(D, +(M, -(I, +(2, 1))))) U2_gggga(X3, M, I, D, is_out_ag(D, +(M, -(I, +(2, 1))))) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U3_gggga(N, M, J, D, is_in_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_gggga(N, M, J, D, is_out_ag(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, 1, D) -> U4_gggga(N, M, I, D, is_in_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_gggga(N, M, I, D, is_out_ag(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_gggga(N, M, I, 1, D) distance_in_gggga(N, M, I, J, D) -> U5_gggga(N, M, I, J, D, is_in_ag(N1, -(N, 2))) U5_gggga(N, M, I, J, D, is_out_ag(N1, -(N, 2))) -> U6_gggga(N, M, I, J, D, N1, is_in_ag(M1, -(M, 2))) U6_gggga(N, M, I, J, D, N1, is_out_ag(M1, -(M, 2))) -> U7_gggga(N, M, I, J, D, N1, M1, is_in_ag(I1, -(I, 1))) U7_gggga(N, M, I, J, D, N1, M1, is_out_ag(I1, -(I, 1))) -> U8_gggga(N, M, I, J, D, N1, M1, I1, is_in_ag(J1, -(J, 1))) U8_gggga(N, M, I, J, D, N1, M1, I1, is_out_ag(J1, -(J, 1))) -> U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) distance_in_aaaaa(X1, X2, 1, J, D) -> U1_aaaaa(X1, X2, J, D, is_in_aa(D, -(J, +(1, 1)))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U1_aaaaa(X1, X2, J, D, is_out_aa(D, -(J, +(1, 1)))) -> distance_out_aaaaa(X1, X2, 1, J, D) distance_in_aaaaa(X3, M, I, M, D) -> U2_aaaaa(X3, M, I, D, is_in_aa(D, +(M, -(I, +(2, 1))))) U2_aaaaa(X3, M, I, D, is_out_aa(D, +(M, -(I, +(2, 1))))) -> distance_out_aaaaa(X3, M, I, M, D) distance_in_aaaaa(N, M, N, J, D) -> U3_aaaaa(N, M, J, D, is_in_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) U3_aaaaa(N, M, J, D, is_out_aa(D, +(N, -(*(2, M), -(J, +(2, 1)))))) -> distance_out_aaaaa(N, M, N, J, D) distance_in_aaaaa(N, M, I, 1, D) -> U4_aaaaa(N, M, I, D, is_in_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) U4_aaaaa(N, M, I, D, is_out_aa(D, +(*(2, N), -(*(2, M), -(I, +(3, 1)))))) -> distance_out_aaaaa(N, M, I, 1, D) distance_in_aaaaa(N, M, I, J, D) -> U5_aaaaa(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_aaaaa(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_aaaaa(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_aaaaa(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_aaaaa(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_aaaaa(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_aaaaa(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_in_aaaaa(N1, M1, I1, J1, D1)) U9_aaaaa(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_aaaaa(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_aaaaa(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_aaaaa(N, M, I, J, D) U9_gggga(N, M, I, J, D, N1, M1, I1, J1, distance_out_aaaaa(N1, M1, I1, J1, D1)) -> U10_gggga(N, M, I, J, D, is_in_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) U10_gggga(N, M, I, J, D, is_out_aa(D, +(*(2, N), +(*(2, M), -(D1, 4))))) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) 1 = 1 U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) -(x1, x2) = -(x1, x2) +(x1, x2) = +(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) 2 = 2 U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) *(x1, x2) = *(x1, x2) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) 3 = 3 U5_gggga(x1, x2, x3, x4, x5, x6) = U5_gggga(x1, x2, x3, x4, x6) U6_gggga(x1, x2, x3, x4, x5, x6, x7) = U6_gggga(x1, x2, x3, x4, x7) U7_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U7_gggga(x1, x2, x3, x4, x8) U8_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_gggga(x1, x2, x3, x4, x9) U9_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_gggga(x1, x2, x3, x4, x10) distance_in_aaaaa(x1, x2, x3, x4, x5) = distance_in_aaaaa U1_aaaaa(x1, x2, x3, x4, x5) = U1_aaaaa(x5) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa distance_out_aaaaa(x1, x2, x3, x4, x5) = distance_out_aaaaa U2_aaaaa(x1, x2, x3, x4, x5) = U2_aaaaa(x5) U3_aaaaa(x1, x2, x3, x4, x5) = U3_aaaaa(x5) U4_aaaaa(x1, x2, x3, x4, x5) = U4_aaaaa(x5) U5_aaaaa(x1, x2, x3, x4, x5, x6) = U5_aaaaa(x6) U6_aaaaa(x1, x2, x3, x4, x5, x6, x7) = U6_aaaaa(x7) U7_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8) = U7_aaaaa(x8) U8_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_aaaaa(x9) U9_aaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U9_aaaaa(x10) U10_aaaaa(x1, x2, x3, x4, x5, x6) = U10_aaaaa(x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x4, x6) DISTANCE_IN_AAAAA(x1, x2, x3, x4, x5) = DISTANCE_IN_AAAAA U5_AAAAA(x1, x2, x3, x4, x5, x6) = U5_AAAAA(x6) U6_AAAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAAA(x7) U7_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_AAAAA(x8) U8_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_AAAAA(x9) We have to consider all (P,R,Pi)-chains ---------------------------------------- (33) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (34) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_AAAAA(N, M, I, J, D) -> U5_AAAAA(N, M, I, J, D, is_in_aa(N1, -(N, 2))) U5_AAAAA(N, M, I, J, D, is_out_aa(N1, -(N, 2))) -> U6_AAAAA(N, M, I, J, D, N1, is_in_aa(M1, -(M, 2))) U6_AAAAA(N, M, I, J, D, N1, is_out_aa(M1, -(M, 2))) -> U7_AAAAA(N, M, I, J, D, N1, M1, is_in_aa(I1, -(I, 1))) U7_AAAAA(N, M, I, J, D, N1, M1, is_out_aa(I1, -(I, 1))) -> U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_in_aa(J1, -(J, 1))) U8_AAAAA(N, M, I, J, D, N1, M1, I1, is_out_aa(J1, -(J, 1))) -> DISTANCE_IN_AAAAA(N1, M1, I1, J1, D1) The TRS R consists of the following rules: is_in_aa(X0, X1) -> is_out_aa(X0, X1) The argument filtering Pi contains the following mapping: 1 = 1 -(x1, x2) = -(x1, x2) 2 = 2 is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa DISTANCE_IN_AAAAA(x1, x2, x3, x4, x5) = DISTANCE_IN_AAAAA U5_AAAAA(x1, x2, x3, x4, x5, x6) = U5_AAAAA(x6) U6_AAAAA(x1, x2, x3, x4, x5, x6, x7) = U6_AAAAA(x7) U7_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8) = U7_AAAAA(x8) U8_AAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U8_AAAAA(x9) We have to consider all (P,R,Pi)-chains ---------------------------------------- (35) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_AAAAA -> U5_AAAAA(is_in_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_in_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_in_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_in_aa) U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA The TRS R consists of the following rules: is_in_aa -> is_out_aa The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (37) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule DISTANCE_IN_AAAAA -> U5_AAAAA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa),DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa)) ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: U5_AAAAA(is_out_aa) -> U6_AAAAA(is_in_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_in_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_in_aa) U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) The TRS R consists of the following rules: is_in_aa -> is_out_aa The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (39) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U5_AAAAA(is_out_aa) -> U6_AAAAA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa),U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa)) ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AAAAA(is_out_aa) -> U7_AAAAA(is_in_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_in_aa) U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa) The TRS R consists of the following rules: is_in_aa -> is_out_aa The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (41) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U6_AAAAA(is_out_aa) -> U7_AAAAA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa),U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa)) ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: U7_AAAAA(is_out_aa) -> U8_AAAAA(is_in_aa) U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa) The TRS R consists of the following rules: is_in_aa -> is_out_aa The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (43) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U7_AAAAA(is_out_aa) -> U8_AAAAA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U7_AAAAA(is_out_aa) -> U8_AAAAA(is_out_aa),U7_AAAAA(is_out_aa) -> U8_AAAAA(is_out_aa)) ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_out_aa) The TRS R consists of the following rules: is_in_aa -> is_out_aa The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (45) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_out_aa) R is empty. The set Q consists of the following terms: is_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (47) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. is_in_aa ---------------------------------------- (48) Obligation: Q DP problem: The TRS P consists of the following rules: U8_AAAAA(is_out_aa) -> DISTANCE_IN_AAAAA DISTANCE_IN_AAAAA -> U5_AAAAA(is_out_aa) U5_AAAAA(is_out_aa) -> U6_AAAAA(is_out_aa) U6_AAAAA(is_out_aa) -> U7_AAAAA(is_out_aa) U7_AAAAA(is_out_aa) -> U8_AAAAA(is_out_aa) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (49) IntegerArithmeticTransformerProof (SOUND) Added definitions of predefined predicates [PROLOG]. ---------------------------------------- (50) Obligation: Clauses: distance(X1, X2, succ(zero), J, D) :- ','(!, ','(isPlus(succ(zero), succ(zero), U), ','(isMinus(J, U, U1), =(D, U1)))). distance(X3, M, I, M, D) :- ','(!, ','(isPlus(succ(succ(zero)), succ(zero), U), ','(isMinus(I, U, U1), ','(isPlus(M, U1, U2), =(D, U2))))). distance(N, M, N, J, D) :- ','(!, ','(isTimes(succ(succ(zero)), M, U), ','(isPlus(succ(succ(zero)), succ(zero), U1), ','(isMinus(J, U1, U2), ','(isMinus(U, U2, U3), ','(isPlus(N, U3, U4), =(D, U4))))))). distance(N, M, I, succ(zero), D) :- ','(!, ','(isTimes(succ(succ(zero)), N, U), ','(isTimes(succ(succ(zero)), M, U1), ','(isPlus(succ(succ(succ(zero))), succ(zero), U2), ','(isMinus(I, U2, U3), ','(isMinus(U1, U3, U4), ','(isPlus(U, U4, U5), =(D, U5)))))))). distance(N, M, I, J, D) :- ','(isMinus(N, succ(succ(zero)), U), ','(=(N1, U), ','(isMinus(M, succ(succ(zero)), U), ','(=(M1, U), ','(isMinus(I, succ(zero), U), ','(=(I1, U), ','(isMinus(J, succ(zero), U), ','(=(J1, U), ','(distance(N1, M1, I1, J1, D1), ','(isTimes(succ(succ(zero)), N, U), ','(isTimes(succ(succ(zero)), M, U1), ','(isMinus(D1, succ(succ(succ(succ(zero)))), U2), ','(isPlus(U1, U2, U3), ','(isPlus(U, U3, U4), =(D, U4))))))))))))))). isPlus(zero, X, X). isPlus(succ(X), zero, succ(X)). isPlus(succ(X), succ(Y), succ(succ(Z))) :- isPlus(X, Y, Z). isPlus(succ(X), pred(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), zero, pred(X)). isPlus(pred(X), succ(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), pred(Y), pred(pred(Z))) :- isPlus(X, Y, Z). isMinus(X, zero, X). isMinus(zero, succ(Y), pred(Z)) :- isMinus(zero, Y, Z). isMinus(zero, pred(Y), succ(Z)) :- isMinus(zero, Y, Z). isMinus(succ(X), succ(Y), Z) :- isMinus(X, Y, Z). isMinus(succ(X), pred(Y), succ(succ(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), succ(Y), pred(pred(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), pred(Y), Z) :- isMinus(X, Y, Z). isTimes(X, zero, zero). isTimes(zero, succ(Y), zero). isTimes(zero, pred(Y), zero). isTimes(succ(X), succ(Y), Z) :- ','(isTimes(succ(X), Y, A), isPlus(A, succ(X), Z)). isTimes(succ(X), pred(Y), Z) :- ','(isTimes(succ(X), Y, A), isMinus(A, succ(X), Z)). isTimes(pred(X), succ(Y), Z) :- ','(isTimes(pred(X), Y, A), isPlus(A, pred(X), Z)). isTimes(pred(X), pred(Y), Z) :- ','(isTimes(pred(X), Y, A), isMinus(A, pred(X), Z)). isDiv(zero, succ(Y), zero). isDiv(zero, pred(Y), zero). isDiv(succ(X), succ(Y), zero) :- isMinus(succ(X), succ(Y), pred(Z)). isDiv(succ(X), succ(Y), succ(Z)) :- ','(isMinus(succ(X), succ(Y), A), isDiv(A, succ(Y), Z)). isDiv(succ(X), pred(Y), Z) :- ','(isMinus(zero, pred(Y), A), ','(isDiv(succ(X), A, B), isMinus(zero, B, Z))). isDiv(pred(X), pred(Y), zero) :- isMinus(pred(X), pred(Y), succ(Z)). isDiv(pred(X), pred(Y), succ(Z)) :- ','(isMinus(pred(X), pred(Y), A), isDiv(A, pred(Y), Z)). isDiv(pred(X), succ(Y), Z) :- ','(isMinus(zero, pred(X), A), ','(isDiv(A, succ(Y), B), isMinus(zero, B, Z))). isModulo(X, Y, Z) :- ','(isDiv(X, Y, A), ','(isTimes(A, Y, B), isMinus(X, B, Z))). Query: distance(g,g,g,g,a) ---------------------------------------- (51) CutEliminatorProof (SOUND) Eliminated all cuts by simply ignoring them[PROLOG]. ---------------------------------------- (52) Obligation: Clauses: distance(X1, X2, succ(zero), J, D) :- ','(isPlus(succ(zero), succ(zero), U), ','(isMinus(J, U, U1), =(D, U1))). distance(X3, M, I, M, D) :- ','(isPlus(succ(succ(zero)), succ(zero), U), ','(isMinus(I, U, U1), ','(isPlus(M, U1, U2), =(D, U2)))). distance(N, M, N, J, D) :- ','(isTimes(succ(succ(zero)), M, U), ','(isPlus(succ(succ(zero)), succ(zero), U1), ','(isMinus(J, U1, U2), ','(isMinus(U, U2, U3), ','(isPlus(N, U3, U4), =(D, U4)))))). distance(N, M, I, succ(zero), D) :- ','(isTimes(succ(succ(zero)), N, U), ','(isTimes(succ(succ(zero)), M, U1), ','(isPlus(succ(succ(succ(zero))), succ(zero), U2), ','(isMinus(I, U2, U3), ','(isMinus(U1, U3, U4), ','(isPlus(U, U4, U5), =(D, U5))))))). distance(N, M, I, J, D) :- ','(isMinus(N, succ(succ(zero)), U), ','(=(N1, U), ','(isMinus(M, succ(succ(zero)), U), ','(=(M1, U), ','(isMinus(I, succ(zero), U), ','(=(I1, U), ','(isMinus(J, succ(zero), U), ','(=(J1, U), ','(distance(N1, M1, I1, J1, D1), ','(isTimes(succ(succ(zero)), N, U), ','(isTimes(succ(succ(zero)), M, U1), ','(isMinus(D1, succ(succ(succ(succ(zero)))), U2), ','(isPlus(U1, U2, U3), ','(isPlus(U, U3, U4), =(D, U4))))))))))))))). isPlus(zero, X, X). isPlus(succ(X), zero, succ(X)). isPlus(succ(X), succ(Y), succ(succ(Z))) :- isPlus(X, Y, Z). isPlus(succ(X), pred(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), zero, pred(X)). isPlus(pred(X), succ(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), pred(Y), pred(pred(Z))) :- isPlus(X, Y, Z). isMinus(X, zero, X). isMinus(zero, succ(Y), pred(Z)) :- isMinus(zero, Y, Z). isMinus(zero, pred(Y), succ(Z)) :- isMinus(zero, Y, Z). isMinus(succ(X), succ(Y), Z) :- isMinus(X, Y, Z). isMinus(succ(X), pred(Y), succ(succ(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), succ(Y), pred(pred(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), pred(Y), Z) :- isMinus(X, Y, Z). isTimes(X, zero, zero). isTimes(zero, succ(Y), zero). isTimes(zero, pred(Y), zero). isTimes(succ(X), succ(Y), Z) :- ','(isTimes(succ(X), Y, A), isPlus(A, succ(X), Z)). isTimes(succ(X), pred(Y), Z) :- ','(isTimes(succ(X), Y, A), isMinus(A, succ(X), Z)). isTimes(pred(X), succ(Y), Z) :- ','(isTimes(pred(X), Y, A), isPlus(A, pred(X), Z)). isTimes(pred(X), pred(Y), Z) :- ','(isTimes(pred(X), Y, A), isMinus(A, pred(X), Z)). isDiv(zero, succ(Y), zero). isDiv(zero, pred(Y), zero). isDiv(succ(X), succ(Y), zero) :- isMinus(succ(X), succ(Y), pred(Z)). isDiv(succ(X), succ(Y), succ(Z)) :- ','(isMinus(succ(X), succ(Y), A), isDiv(A, succ(Y), Z)). isDiv(succ(X), pred(Y), Z) :- ','(isMinus(zero, pred(Y), A), ','(isDiv(succ(X), A, B), isMinus(zero, B, Z))). isDiv(pred(X), pred(Y), zero) :- isMinus(pred(X), pred(Y), succ(Z)). isDiv(pred(X), pred(Y), succ(Z)) :- ','(isMinus(pred(X), pred(Y), A), isDiv(A, pred(Y), Z)). isDiv(pred(X), succ(Y), Z) :- ','(isMinus(zero, pred(X), A), ','(isDiv(A, succ(Y), B), isMinus(zero, B, Z))). isModulo(X, Y, Z) :- ','(isDiv(X, Y, A), ','(isTimes(A, Y, B), isMinus(X, B, Z))). Query: distance(g,g,g,g,a) ---------------------------------------- (53) UnifyTransformerProof (EQUIVALENT) Added a fact for the built-in = predicate [PROLOG]. ---------------------------------------- (54) Obligation: Clauses: distance(X1, X2, succ(zero), J, D) :- ','(isPlus(succ(zero), succ(zero), U), ','(isMinus(J, U, U1), =(D, U1))). distance(X3, M, I, M, D) :- ','(isPlus(succ(succ(zero)), succ(zero), U), ','(isMinus(I, U, U1), ','(isPlus(M, U1, U2), =(D, U2)))). distance(N, M, N, J, D) :- ','(isTimes(succ(succ(zero)), M, U), ','(isPlus(succ(succ(zero)), succ(zero), U1), ','(isMinus(J, U1, U2), ','(isMinus(U, U2, U3), ','(isPlus(N, U3, U4), =(D, U4)))))). distance(N, M, I, succ(zero), D) :- ','(isTimes(succ(succ(zero)), N, U), ','(isTimes(succ(succ(zero)), M, U1), ','(isPlus(succ(succ(succ(zero))), succ(zero), U2), ','(isMinus(I, U2, U3), ','(isMinus(U1, U3, U4), ','(isPlus(U, U4, U5), =(D, U5))))))). distance(N, M, I, J, D) :- ','(isMinus(N, succ(succ(zero)), U), ','(=(N1, U), ','(isMinus(M, succ(succ(zero)), U), ','(=(M1, U), ','(isMinus(I, succ(zero), U), ','(=(I1, U), ','(isMinus(J, succ(zero), U), ','(=(J1, U), ','(distance(N1, M1, I1, J1, D1), ','(isTimes(succ(succ(zero)), N, U), ','(isTimes(succ(succ(zero)), M, U1), ','(isMinus(D1, succ(succ(succ(succ(zero)))), U2), ','(isPlus(U1, U2, U3), ','(isPlus(U, U3, U4), =(D, U4))))))))))))))). isPlus(zero, X, X). isPlus(succ(X), zero, succ(X)). isPlus(succ(X), succ(Y), succ(succ(Z))) :- isPlus(X, Y, Z). isPlus(succ(X), pred(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), zero, pred(X)). isPlus(pred(X), succ(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), pred(Y), pred(pred(Z))) :- isPlus(X, Y, Z). isMinus(X, zero, X). isMinus(zero, succ(Y), pred(Z)) :- isMinus(zero, Y, Z). isMinus(zero, pred(Y), succ(Z)) :- isMinus(zero, Y, Z). isMinus(succ(X), succ(Y), Z) :- isMinus(X, Y, Z). isMinus(succ(X), pred(Y), succ(succ(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), succ(Y), pred(pred(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), pred(Y), Z) :- isMinus(X, Y, Z). isTimes(X, zero, zero). isTimes(zero, succ(Y), zero). isTimes(zero, pred(Y), zero). isTimes(succ(X), succ(Y), Z) :- ','(isTimes(succ(X), Y, A), isPlus(A, succ(X), Z)). isTimes(succ(X), pred(Y), Z) :- ','(isTimes(succ(X), Y, A), isMinus(A, succ(X), Z)). isTimes(pred(X), succ(Y), Z) :- ','(isTimes(pred(X), Y, A), isPlus(A, pred(X), Z)). isTimes(pred(X), pred(Y), Z) :- ','(isTimes(pred(X), Y, A), isMinus(A, pred(X), Z)). isDiv(zero, succ(Y), zero). isDiv(zero, pred(Y), zero). isDiv(succ(X), succ(Y), zero) :- isMinus(succ(X), succ(Y), pred(Z)). isDiv(succ(X), succ(Y), succ(Z)) :- ','(isMinus(succ(X), succ(Y), A), isDiv(A, succ(Y), Z)). isDiv(succ(X), pred(Y), Z) :- ','(isMinus(zero, pred(Y), A), ','(isDiv(succ(X), A, B), isMinus(zero, B, Z))). isDiv(pred(X), pred(Y), zero) :- isMinus(pred(X), pred(Y), succ(Z)). isDiv(pred(X), pred(Y), succ(Z)) :- ','(isMinus(pred(X), pred(Y), A), isDiv(A, pred(Y), Z)). isDiv(pred(X), succ(Y), Z) :- ','(isMinus(zero, pred(X), A), ','(isDiv(A, succ(Y), B), isMinus(zero, B, Z))). isModulo(X, Y, Z) :- ','(isDiv(X, Y, A), ','(isTimes(A, Y, B), isMinus(X, B, Z))). =(X, X). Query: distance(g,g,g,g,a) ---------------------------------------- (55) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: distance_in_5: (b,b,b,b,f) isPlus_in_3: (b,b,f) (b,b,b) isMinus_in_3: (b,b,f) (b,b,b) isTimes_in_3: (b,b,f) (b,b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (56) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) ---------------------------------------- (57) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(X1, X2, succ(zero), J, D) -> U1_GGGGA(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) DISTANCE_IN_GGGGA(X1, X2, succ(zero), J, D) -> ISPLUS_IN_GGA(succ(zero), succ(zero), U) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U36_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> U37_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> U38_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> U39_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) U1_GGGGA(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_GGGGA(X1, X2, J, D, isMinus_in_gga(J, U, U1)) U1_GGGGA(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> ISMINUS_IN_GGA(J, U, U1) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U40_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> U41_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> U42_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> U43_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> U44_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> U45_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U2_GGGGA(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_GGGGA(X1, X2, J, D, =_in_ag(D, U1)) U2_GGGGA(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> =_IN_AG(D, U1) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> U4_GGGGA(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> ISPLUS_IN_GGA(succ(succ(zero)), succ(zero), U) U4_GGGGA(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_GGGGA(X3, M, I, D, isMinus_in_gga(I, U, U1)) U4_GGGGA(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> ISMINUS_IN_GGA(I, U, U1) U5_GGGGA(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_GGGGA(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U5_GGGGA(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> ISPLUS_IN_GGA(M, U1, U2) U6_GGGGA(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_GGGGA(X3, M, I, D, =_in_ag(D, U2)) U6_GGGGA(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> =_IN_AG(D, U2) DISTANCE_IN_GGGGA(N, M, N, J, D) -> U8_GGGGA(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) DISTANCE_IN_GGGGA(N, M, N, J, D) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U46_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> U48_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> U50_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> U52_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U52_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) U50_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U50_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGA(A, pred(X), Z) U48_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U46_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U8_GGGGA(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_GGGGA(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U8_GGGGA(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> ISPLUS_IN_GGA(succ(succ(zero)), succ(zero), U1) U9_GGGGA(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_GGGGA(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U9_GGGGA(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> ISMINUS_IN_GGA(J, U1, U2) U10_GGGGA(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_GGGGA(N, M, J, D, isMinus_in_gga(U, U2, U3)) U10_GGGGA(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> ISMINUS_IN_GGA(U, U2, U3) U11_GGGGA(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_GGGGA(N, M, J, D, isPlus_in_gga(N, U3, U4)) U11_GGGGA(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> ISPLUS_IN_GGA(N, U3, U4) U12_GGGGA(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_GGGGA(N, M, J, D, =_in_ag(D, U4)) U12_GGGGA(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> =_IN_AG(D, U4) DISTANCE_IN_GGGGA(N, M, I, succ(zero), D) -> U14_GGGGA(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) DISTANCE_IN_GGGGA(N, M, I, succ(zero), D) -> ISTIMES_IN_GGA(succ(succ(zero)), N, U) U14_GGGGA(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_GGGGA(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U14_GGGGA(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U1) U15_GGGGA(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_GGGGA(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U15_GGGGA(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> ISPLUS_IN_GGA(succ(succ(succ(zero))), succ(zero), U2) U16_GGGGA(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_GGGGA(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U16_GGGGA(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> ISMINUS_IN_GGA(I, U2, U3) U17_GGGGA(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_GGGGA(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U17_GGGGA(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> ISMINUS_IN_GGA(U1, U3, U4) U18_GGGGA(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_GGGGA(N, M, I, D, isPlus_in_gga(U, U4, U5)) U18_GGGGA(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> ISPLUS_IN_GGA(U, U4, U5) U19_GGGGA(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_GGGGA(N, M, I, D, =_in_ag(D, U5)) U19_GGGGA(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> =_IN_AG(D, U5) DISTANCE_IN_GGGGA(N, M, I, J, D) -> U21_GGGGA(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) DISTANCE_IN_GGGGA(N, M, I, J, D) -> ISMINUS_IN_GGA(N, succ(succ(zero)), U) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, D, U, =_in_ag(N1, U)) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> =_IN_AG(N1, U) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> ISMINUS_IN_GGG(M, succ(succ(zero)), U) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> U40_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> U41_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> U42_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> U43_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> U44_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> U45_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> =_IN_AG(M1, U) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> ISMINUS_IN_GGG(I, succ(zero), U) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> =_IN_AG(I1, U) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> ISMINUS_IN_GGG(J, succ(zero), U) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> =_IN_AG(J1, U) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1, D1) U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> ISTIMES_IN_GGG(succ(succ(zero)), N, U) ISTIMES_IN_GGG(succ(X), succ(Y), Z) -> U46_GGG(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGG(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) U46_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_GGG(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) U46_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGG(A, succ(X), Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> U36_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> U37_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> U38_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> U39_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISTIMES_IN_GGG(succ(X), pred(Y), Z) -> U48_GGG(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGG(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) U48_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_GGG(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U48_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGG(A, succ(X), Z) ISTIMES_IN_GGG(pred(X), succ(Y), Z) -> U50_GGG(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGG(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U50_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_GGG(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U50_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGG(A, pred(X), Z) ISTIMES_IN_GGG(pred(X), pred(Y), Z) -> U52_GGG(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGG(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U52_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_GGG(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U52_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGG(A, pred(X), Z) U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U1) U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_GGGGA(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> ISMINUS_IN_GGA(D1, succ(succ(succ(succ(zero)))), U2) U32_GGGGA(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_GGGGA(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U32_GGGGA(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> ISPLUS_IN_GGA(U1, U2, U3) U33_GGGGA(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_GGGGA(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U33_GGGGA(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> ISPLUS_IN_GGA(U, U3, U4) U34_GGGGA(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_GGGGA(N, M, I, J, D, =_in_ag(D, U4)) U34_GGGGA(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> =_IN_AG(D, U4) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U1_GGGGA(x1, x2, x3, x4, x5) = U1_GGGGA(x1, x2, x3, x5) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U36_GGA(x1, x2, x3, x4) = U36_GGA(x1, x2, x4) U37_GGA(x1, x2, x3, x4) = U37_GGA(x1, x2, x4) U38_GGA(x1, x2, x3, x4) = U38_GGA(x1, x2, x4) U39_GGA(x1, x2, x3, x4) = U39_GGA(x1, x2, x4) U2_GGGGA(x1, x2, x3, x4, x5) = U2_GGGGA(x1, x2, x3, x5) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U40_GGA(x1, x2, x3) = U40_GGA(x1, x3) U41_GGA(x1, x2, x3) = U41_GGA(x1, x3) U42_GGA(x1, x2, x3, x4) = U42_GGA(x1, x2, x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x1, x2, x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x1, x2, x4) U45_GGA(x1, x2, x3, x4) = U45_GGA(x1, x2, x4) U3_GGGGA(x1, x2, x3, x4, x5) = U3_GGGGA(x1, x2, x3, x5) =_IN_AG(x1, x2) = =_IN_AG(x2) U4_GGGGA(x1, x2, x3, x4, x5) = U4_GGGGA(x1, x2, x3, x5) U5_GGGGA(x1, x2, x3, x4, x5) = U5_GGGGA(x1, x2, x3, x5) U6_GGGGA(x1, x2, x3, x4, x5) = U6_GGGGA(x1, x2, x3, x5) U7_GGGGA(x1, x2, x3, x4, x5) = U7_GGGGA(x1, x2, x3, x5) U8_GGGGA(x1, x2, x3, x4, x5) = U8_GGGGA(x1, x2, x3, x5) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U46_GGA(x1, x2, x3, x4) = U46_GGA(x1, x2, x4) U48_GGA(x1, x2, x3, x4) = U48_GGA(x1, x2, x4) U50_GGA(x1, x2, x3, x4) = U50_GGA(x1, x2, x4) U52_GGA(x1, x2, x3, x4) = U52_GGA(x1, x2, x4) U53_GGA(x1, x2, x3, x4) = U53_GGA(x1, x2, x4) U51_GGA(x1, x2, x3, x4) = U51_GGA(x1, x2, x4) U49_GGA(x1, x2, x3, x4) = U49_GGA(x1, x2, x4) U47_GGA(x1, x2, x3, x4) = U47_GGA(x1, x2, x4) U9_GGGGA(x1, x2, x3, x4, x5, x6) = U9_GGGGA(x1, x2, x3, x5, x6) U10_GGGGA(x1, x2, x3, x4, x5, x6) = U10_GGGGA(x1, x2, x3, x5, x6) U11_GGGGA(x1, x2, x3, x4, x5) = U11_GGGGA(x1, x2, x3, x5) U12_GGGGA(x1, x2, x3, x4, x5) = U12_GGGGA(x1, x2, x3, x5) U13_GGGGA(x1, x2, x3, x4, x5) = U13_GGGGA(x1, x2, x3, x5) U14_GGGGA(x1, x2, x3, x4, x5) = U14_GGGGA(x1, x2, x3, x5) U15_GGGGA(x1, x2, x3, x4, x5, x6) = U15_GGGGA(x1, x2, x3, x5, x6) U16_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGGGA(x1, x2, x3, x5, x6, x7) U17_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U17_GGGGA(x1, x2, x3, x5, x6, x7) U18_GGGGA(x1, x2, x3, x4, x5, x6) = U18_GGGGA(x1, x2, x3, x5, x6) U19_GGGGA(x1, x2, x3, x4, x5) = U19_GGGGA(x1, x2, x3, x5) U20_GGGGA(x1, x2, x3, x4, x5) = U20_GGGGA(x1, x2, x3, x5) U21_GGGGA(x1, x2, x3, x4, x5, x6) = U21_GGGGA(x1, x2, x3, x4, x6) U22_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U22_GGGGA(x1, x2, x3, x4, x6, x7) U23_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U23_GGGGA(x1, x2, x3, x4, x6, x7, x8) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) U40_GGG(x1, x2, x3) = U40_GGG(x1, x2, x3) U41_GGG(x1, x2, x3) = U41_GGG(x1, x2, x3) U42_GGG(x1, x2, x3, x4) = U42_GGG(x1, x2, x3, x4) U43_GGG(x1, x2, x3, x4) = U43_GGG(x1, x2, x3, x4) U44_GGG(x1, x2, x3, x4) = U44_GGG(x1, x2, x3, x4) U45_GGG(x1, x2, x3, x4) = U45_GGG(x1, x2, x3, x4) U24_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U24_GGGGA(x1, x2, x3, x4, x6, x7, x8) U25_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9) U26_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9) U27_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_GGGGA(x1, x2, x3, x4, x6, x11) U30_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_GGGGA(x1, x2, x3, x4, x6, x11, x12) ISTIMES_IN_GGG(x1, x2, x3) = ISTIMES_IN_GGG(x1, x2, x3) U46_GGG(x1, x2, x3, x4) = U46_GGG(x1, x2, x3, x4) U47_GGG(x1, x2, x3, x4) = U47_GGG(x1, x2, x3, x4) ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) U36_GGG(x1, x2, x3, x4) = U36_GGG(x1, x2, x3, x4) U37_GGG(x1, x2, x3, x4) = U37_GGG(x1, x2, x3, x4) U38_GGG(x1, x2, x3, x4) = U38_GGG(x1, x2, x3, x4) U39_GGG(x1, x2, x3, x4) = U39_GGG(x1, x2, x3, x4) U48_GGG(x1, x2, x3, x4) = U48_GGG(x1, x2, x3, x4) U49_GGG(x1, x2, x3, x4) = U49_GGG(x1, x2, x3, x4) U50_GGG(x1, x2, x3, x4) = U50_GGG(x1, x2, x3, x4) U51_GGG(x1, x2, x3, x4) = U51_GGG(x1, x2, x3, x4) U52_GGG(x1, x2, x3, x4) = U52_GGG(x1, x2, x3, x4) U53_GGG(x1, x2, x3, x4) = U53_GGG(x1, x2, x3, x4) U31_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_GGGGA(x1, x2, x3, x4, x6, x11, x12) U32_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U32_GGGGA(x1, x2, x3, x4, x6, x7, x8) U33_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U33_GGGGA(x1, x2, x3, x4, x6, x7) U34_GGGGA(x1, x2, x3, x4, x5, x6) = U34_GGGGA(x1, x2, x3, x4, x6) U35_GGGGA(x1, x2, x3, x4, x5, x6) = U35_GGGGA(x1, x2, x3, x4, x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (58) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(X1, X2, succ(zero), J, D) -> U1_GGGGA(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) DISTANCE_IN_GGGGA(X1, X2, succ(zero), J, D) -> ISPLUS_IN_GGA(succ(zero), succ(zero), U) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U36_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> U37_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> U38_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> U39_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) U1_GGGGA(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_GGGGA(X1, X2, J, D, isMinus_in_gga(J, U, U1)) U1_GGGGA(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> ISMINUS_IN_GGA(J, U, U1) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U40_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> U41_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> U42_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> U43_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> U44_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> U45_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U2_GGGGA(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_GGGGA(X1, X2, J, D, =_in_ag(D, U1)) U2_GGGGA(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> =_IN_AG(D, U1) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> U4_GGGGA(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> ISPLUS_IN_GGA(succ(succ(zero)), succ(zero), U) U4_GGGGA(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_GGGGA(X3, M, I, D, isMinus_in_gga(I, U, U1)) U4_GGGGA(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> ISMINUS_IN_GGA(I, U, U1) U5_GGGGA(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_GGGGA(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U5_GGGGA(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> ISPLUS_IN_GGA(M, U1, U2) U6_GGGGA(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_GGGGA(X3, M, I, D, =_in_ag(D, U2)) U6_GGGGA(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> =_IN_AG(D, U2) DISTANCE_IN_GGGGA(N, M, N, J, D) -> U8_GGGGA(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) DISTANCE_IN_GGGGA(N, M, N, J, D) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U46_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> U48_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> U50_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> U52_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U52_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) U50_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U50_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGA(A, pred(X), Z) U48_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U46_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U8_GGGGA(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_GGGGA(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U8_GGGGA(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> ISPLUS_IN_GGA(succ(succ(zero)), succ(zero), U1) U9_GGGGA(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_GGGGA(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U9_GGGGA(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> ISMINUS_IN_GGA(J, U1, U2) U10_GGGGA(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_GGGGA(N, M, J, D, isMinus_in_gga(U, U2, U3)) U10_GGGGA(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> ISMINUS_IN_GGA(U, U2, U3) U11_GGGGA(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_GGGGA(N, M, J, D, isPlus_in_gga(N, U3, U4)) U11_GGGGA(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> ISPLUS_IN_GGA(N, U3, U4) U12_GGGGA(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_GGGGA(N, M, J, D, =_in_ag(D, U4)) U12_GGGGA(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> =_IN_AG(D, U4) DISTANCE_IN_GGGGA(N, M, I, succ(zero), D) -> U14_GGGGA(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) DISTANCE_IN_GGGGA(N, M, I, succ(zero), D) -> ISTIMES_IN_GGA(succ(succ(zero)), N, U) U14_GGGGA(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_GGGGA(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U14_GGGGA(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U1) U15_GGGGA(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_GGGGA(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U15_GGGGA(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> ISPLUS_IN_GGA(succ(succ(succ(zero))), succ(zero), U2) U16_GGGGA(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_GGGGA(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U16_GGGGA(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> ISMINUS_IN_GGA(I, U2, U3) U17_GGGGA(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_GGGGA(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U17_GGGGA(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> ISMINUS_IN_GGA(U1, U3, U4) U18_GGGGA(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_GGGGA(N, M, I, D, isPlus_in_gga(U, U4, U5)) U18_GGGGA(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> ISPLUS_IN_GGA(U, U4, U5) U19_GGGGA(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_GGGGA(N, M, I, D, =_in_ag(D, U5)) U19_GGGGA(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> =_IN_AG(D, U5) DISTANCE_IN_GGGGA(N, M, I, J, D) -> U21_GGGGA(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) DISTANCE_IN_GGGGA(N, M, I, J, D) -> ISMINUS_IN_GGA(N, succ(succ(zero)), U) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, D, U, =_in_ag(N1, U)) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> =_IN_AG(N1, U) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> ISMINUS_IN_GGG(M, succ(succ(zero)), U) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> U40_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> U41_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> U42_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> U43_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> U44_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> U45_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> =_IN_AG(M1, U) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> ISMINUS_IN_GGG(I, succ(zero), U) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> =_IN_AG(I1, U) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> ISMINUS_IN_GGG(J, succ(zero), U) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> =_IN_AG(J1, U) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1, D1) U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> ISTIMES_IN_GGG(succ(succ(zero)), N, U) ISTIMES_IN_GGG(succ(X), succ(Y), Z) -> U46_GGG(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGG(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) U46_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_GGG(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) U46_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGG(A, succ(X), Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> U36_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> U37_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> U38_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> U39_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISTIMES_IN_GGG(succ(X), pred(Y), Z) -> U48_GGG(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGG(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) U48_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_GGG(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U48_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGG(A, succ(X), Z) ISTIMES_IN_GGG(pred(X), succ(Y), Z) -> U50_GGG(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGG(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U50_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_GGG(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U50_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGG(A, pred(X), Z) ISTIMES_IN_GGG(pred(X), pred(Y), Z) -> U52_GGG(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGG(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U52_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_GGG(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U52_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGG(A, pred(X), Z) U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U1) U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_GGGGA(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> ISMINUS_IN_GGA(D1, succ(succ(succ(succ(zero)))), U2) U32_GGGGA(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_GGGGA(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U32_GGGGA(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> ISPLUS_IN_GGA(U1, U2, U3) U33_GGGGA(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_GGGGA(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U33_GGGGA(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> ISPLUS_IN_GGA(U, U3, U4) U34_GGGGA(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_GGGGA(N, M, I, J, D, =_in_ag(D, U4)) U34_GGGGA(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> =_IN_AG(D, U4) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U1_GGGGA(x1, x2, x3, x4, x5) = U1_GGGGA(x1, x2, x3, x5) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U36_GGA(x1, x2, x3, x4) = U36_GGA(x1, x2, x4) U37_GGA(x1, x2, x3, x4) = U37_GGA(x1, x2, x4) U38_GGA(x1, x2, x3, x4) = U38_GGA(x1, x2, x4) U39_GGA(x1, x2, x3, x4) = U39_GGA(x1, x2, x4) U2_GGGGA(x1, x2, x3, x4, x5) = U2_GGGGA(x1, x2, x3, x5) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U40_GGA(x1, x2, x3) = U40_GGA(x1, x3) U41_GGA(x1, x2, x3) = U41_GGA(x1, x3) U42_GGA(x1, x2, x3, x4) = U42_GGA(x1, x2, x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x1, x2, x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x1, x2, x4) U45_GGA(x1, x2, x3, x4) = U45_GGA(x1, x2, x4) U3_GGGGA(x1, x2, x3, x4, x5) = U3_GGGGA(x1, x2, x3, x5) =_IN_AG(x1, x2) = =_IN_AG(x2) U4_GGGGA(x1, x2, x3, x4, x5) = U4_GGGGA(x1, x2, x3, x5) U5_GGGGA(x1, x2, x3, x4, x5) = U5_GGGGA(x1, x2, x3, x5) U6_GGGGA(x1, x2, x3, x4, x5) = U6_GGGGA(x1, x2, x3, x5) U7_GGGGA(x1, x2, x3, x4, x5) = U7_GGGGA(x1, x2, x3, x5) U8_GGGGA(x1, x2, x3, x4, x5) = U8_GGGGA(x1, x2, x3, x5) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U46_GGA(x1, x2, x3, x4) = U46_GGA(x1, x2, x4) U48_GGA(x1, x2, x3, x4) = U48_GGA(x1, x2, x4) U50_GGA(x1, x2, x3, x4) = U50_GGA(x1, x2, x4) U52_GGA(x1, x2, x3, x4) = U52_GGA(x1, x2, x4) U53_GGA(x1, x2, x3, x4) = U53_GGA(x1, x2, x4) U51_GGA(x1, x2, x3, x4) = U51_GGA(x1, x2, x4) U49_GGA(x1, x2, x3, x4) = U49_GGA(x1, x2, x4) U47_GGA(x1, x2, x3, x4) = U47_GGA(x1, x2, x4) U9_GGGGA(x1, x2, x3, x4, x5, x6) = U9_GGGGA(x1, x2, x3, x5, x6) U10_GGGGA(x1, x2, x3, x4, x5, x6) = U10_GGGGA(x1, x2, x3, x5, x6) U11_GGGGA(x1, x2, x3, x4, x5) = U11_GGGGA(x1, x2, x3, x5) U12_GGGGA(x1, x2, x3, x4, x5) = U12_GGGGA(x1, x2, x3, x5) U13_GGGGA(x1, x2, x3, x4, x5) = U13_GGGGA(x1, x2, x3, x5) U14_GGGGA(x1, x2, x3, x4, x5) = U14_GGGGA(x1, x2, x3, x5) U15_GGGGA(x1, x2, x3, x4, x5, x6) = U15_GGGGA(x1, x2, x3, x5, x6) U16_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGGGA(x1, x2, x3, x5, x6, x7) U17_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U17_GGGGA(x1, x2, x3, x5, x6, x7) U18_GGGGA(x1, x2, x3, x4, x5, x6) = U18_GGGGA(x1, x2, x3, x5, x6) U19_GGGGA(x1, x2, x3, x4, x5) = U19_GGGGA(x1, x2, x3, x5) U20_GGGGA(x1, x2, x3, x4, x5) = U20_GGGGA(x1, x2, x3, x5) U21_GGGGA(x1, x2, x3, x4, x5, x6) = U21_GGGGA(x1, x2, x3, x4, x6) U22_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U22_GGGGA(x1, x2, x3, x4, x6, x7) U23_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U23_GGGGA(x1, x2, x3, x4, x6, x7, x8) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) U40_GGG(x1, x2, x3) = U40_GGG(x1, x2, x3) U41_GGG(x1, x2, x3) = U41_GGG(x1, x2, x3) U42_GGG(x1, x2, x3, x4) = U42_GGG(x1, x2, x3, x4) U43_GGG(x1, x2, x3, x4) = U43_GGG(x1, x2, x3, x4) U44_GGG(x1, x2, x3, x4) = U44_GGG(x1, x2, x3, x4) U45_GGG(x1, x2, x3, x4) = U45_GGG(x1, x2, x3, x4) U24_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U24_GGGGA(x1, x2, x3, x4, x6, x7, x8) U25_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9) U26_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9) U27_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_GGGGA(x1, x2, x3, x4, x6, x11) U30_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_GGGGA(x1, x2, x3, x4, x6, x11, x12) ISTIMES_IN_GGG(x1, x2, x3) = ISTIMES_IN_GGG(x1, x2, x3) U46_GGG(x1, x2, x3, x4) = U46_GGG(x1, x2, x3, x4) U47_GGG(x1, x2, x3, x4) = U47_GGG(x1, x2, x3, x4) ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) U36_GGG(x1, x2, x3, x4) = U36_GGG(x1, x2, x3, x4) U37_GGG(x1, x2, x3, x4) = U37_GGG(x1, x2, x3, x4) U38_GGG(x1, x2, x3, x4) = U38_GGG(x1, x2, x3, x4) U39_GGG(x1, x2, x3, x4) = U39_GGG(x1, x2, x3, x4) U48_GGG(x1, x2, x3, x4) = U48_GGG(x1, x2, x3, x4) U49_GGG(x1, x2, x3, x4) = U49_GGG(x1, x2, x3, x4) U50_GGG(x1, x2, x3, x4) = U50_GGG(x1, x2, x3, x4) U51_GGG(x1, x2, x3, x4) = U51_GGG(x1, x2, x3, x4) U52_GGG(x1, x2, x3, x4) = U52_GGG(x1, x2, x3, x4) U53_GGG(x1, x2, x3, x4) = U53_GGG(x1, x2, x3, x4) U31_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_GGGGA(x1, x2, x3, x4, x6, x11, x12) U32_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U32_GGGGA(x1, x2, x3, x4, x6, x7, x8) U33_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U33_GGGGA(x1, x2, x3, x4, x6, x7) U34_GGGGA(x1, x2, x3, x4, x5, x6) = U34_GGGGA(x1, x2, x3, x4, x6) U35_GGGGA(x1, x2, x3, x4, x5, x6) = U35_GGGGA(x1, x2, x3, x4, x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (59) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 9 SCCs with 109 less nodes. ---------------------------------------- (60) Complex Obligation (AND) ---------------------------------------- (61) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (62) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (63) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (64) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (65) Obligation: Q DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (66) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 *ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 ---------------------------------------- (67) YES ---------------------------------------- (68) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (69) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (70) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (71) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (73) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3 *ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3 ---------------------------------------- (74) YES ---------------------------------------- (75) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (76) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (77) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (78) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (79) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (80) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 *ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 *ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 ---------------------------------------- (81) YES ---------------------------------------- (82) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (83) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (84) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) zero = zero pred(x1) = pred(x1) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (85) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (86) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y)) -> ISMINUS_IN_GGA(zero, Y) ISMINUS_IN_GGA(zero, succ(Y)) -> ISMINUS_IN_GGA(zero, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (87) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGA(zero, pred(Y)) -> ISMINUS_IN_GGA(zero, Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISMINUS_IN_GGA(zero, succ(Y)) -> ISMINUS_IN_GGA(zero, Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (88) YES ---------------------------------------- (89) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (90) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (91) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (92) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (93) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(succ(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(pred(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(pred(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (94) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGA(succ(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(succ(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(pred(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(pred(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (95) YES ---------------------------------------- (96) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (97) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (98) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (99) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (100) Obligation: Q DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(succ(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(pred(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(pred(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (101) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISPLUS_IN_GGA(succ(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(succ(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(pred(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(pred(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (102) YES ---------------------------------------- (103) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (104) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (105) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (106) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (107) Obligation: Q DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y)) -> ISTIMES_IN_GGA(succ(X), Y) ISTIMES_IN_GGA(succ(X), succ(Y)) -> ISTIMES_IN_GGA(succ(X), Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (108) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISTIMES_IN_GGA(succ(X), pred(Y)) -> ISTIMES_IN_GGA(succ(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISTIMES_IN_GGA(succ(X), succ(Y)) -> ISTIMES_IN_GGA(succ(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (109) YES ---------------------------------------- (110) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (111) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (112) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (113) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (114) Obligation: Q DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y)) -> ISTIMES_IN_GGA(pred(X), Y) ISTIMES_IN_GGA(pred(X), succ(Y)) -> ISTIMES_IN_GGA(pred(X), Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (115) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISTIMES_IN_GGA(pred(X), pred(Y)) -> ISTIMES_IN_GGA(pred(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISTIMES_IN_GGA(pred(X), succ(Y)) -> ISTIMES_IN_GGA(pred(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (116) YES ---------------------------------------- (117) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J, D) -> U21_GGGGA(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, D, U, =_in_ag(N1, U)) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1, D1) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x1, x2, x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x1, x2, x3, x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x1, x2, x3, x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x1, x2, x3, x4, x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x1, x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x1, x2, x3, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x1, x2, x3, x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x1, x2, x3, x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x2, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x2, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x2, x3, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x2, x3, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x1, x2, x3, x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x1, x2, x3, x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x1, x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x1, x2, x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x1, x2, x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x1, x2, x3, x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x1, x2, x3, x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x1, x2, x3, x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x1, x2, x3, x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x3, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x3, x4, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x3, x4, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x1, x2, x3, x4, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg(x1, x2, x3) U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x2, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x1, x2, x3, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U36_ggg(x1, x2, x3, x4) = U36_ggg(x1, x2, x3, x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x1, x2, x3, x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x1, x2, x3, x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x1, x2, x3, x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x2, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x1, x2, x3, x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x2, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x1, x2, x3, x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x2, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x1, x2, x3, x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x1, x2, x3, x4, x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x1, x2, x3, x4, x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x1, x2, x3, x4, x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x1, x2, x3, x4, x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x1, x2, x3, x4, x6) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U21_GGGGA(x1, x2, x3, x4, x5, x6) = U21_GGGGA(x1, x2, x3, x4, x6) U22_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U22_GGGGA(x1, x2, x3, x4, x6, x7) U23_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U23_GGGGA(x1, x2, x3, x4, x6, x7, x8) U24_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U24_GGGGA(x1, x2, x3, x4, x6, x7, x8) U25_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9) U26_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9) U27_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9, x10) We have to consider all (P,R,Pi)-chains ---------------------------------------- (118) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (119) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J, D) -> U21_GGGGA(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, D, U, =_in_ag(N1, U)) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1, D1) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) =_in_ag(X, X) -> =_out_ag(X, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) zero = zero pred(x1) = pred(x1) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3) = U41_gga(x1, x3) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U40_ggg(x1, x2, x3) = U40_ggg(x1, x2, x3) U41_ggg(x1, x2, x3) = U41_ggg(x1, x2, x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x1, x2, x3, x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x1, x2, x3, x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x1, x2, x3, x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x1, x2, x3, x4) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U21_GGGGA(x1, x2, x3, x4, x5, x6) = U21_GGGGA(x1, x2, x3, x4, x6) U22_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U22_GGGGA(x1, x2, x3, x4, x6, x7) U23_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U23_GGGGA(x1, x2, x3, x4, x6, x7, x8) U24_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U24_GGGGA(x1, x2, x3, x4, x6, x7, x8) U25_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9) U26_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9) U27_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9, x10) U28_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_GGGGA(x1, x2, x3, x4, x6, x7, x8, x9, x10) We have to consider all (P,R,Pi)-chains ---------------------------------------- (120) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (121) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_in_ag(U)) U22_GGGGA(N, M, I, J, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_in_ag(U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_in_ag(U)) U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_in_ag(U)) U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) =_in_ag(X) -> =_out_ag(X, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (122) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_in_ag(U)) at position [5] we obtained the following new rules [LPAR04]: (U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)),U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U))) ---------------------------------------- (123) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_in_ag(U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_in_ag(U)) U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_in_ag(U)) U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) =_in_ag(X) -> =_out_ag(X, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (124) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_in_ag(U)) at position [6] we obtained the following new rules [LPAR04]: (U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U)),U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U))) ---------------------------------------- (125) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_in_ag(U)) U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_in_ag(U)) U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) =_in_ag(X) -> =_out_ag(X, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (126) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_in_ag(U)) at position [7] we obtained the following new rules [LPAR04]: (U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U)),U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U))) ---------------------------------------- (127) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_in_ag(U)) U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) =_in_ag(X) -> =_out_ag(X, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (128) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_in_ag(U)) at position [8] we obtained the following new rules [LPAR04]: (U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U)),U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U))) ---------------------------------------- (129) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) =_in_ag(X) -> =_out_ag(X, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (130) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (131) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (132) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. =_in_ag(x0) ---------------------------------------- (133) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (134) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U22_GGGGA(N, M, I, J, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) we obtained the following new rules [LPAR04]: (U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4, z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)),U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4, z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4))) ---------------------------------------- (135) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4, z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (136) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) we obtained the following new rules [LPAR04]: (U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4, z4)) -> U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)),U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4, z4)) -> U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4))) ---------------------------------------- (137) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4, z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4, z4)) -> U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (138) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) we obtained the following new rules [LPAR04]: (U26_GGGGA(z0, z1, z2, z3, z4, z5, z6, =_out_ag(z4, z4)) -> U27_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, isMinus_in_ggg(z3, succ(zero), z4)),U26_GGGGA(z0, z1, z2, z3, z4, z5, z6, =_out_ag(z4, z4)) -> U27_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, isMinus_in_ggg(z3, succ(zero), z4))) ---------------------------------------- (139) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4, z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4, z4)) -> U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) U26_GGGGA(z0, z1, z2, z3, z4, z5, z6, =_out_ag(z4, z4)) -> U27_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, isMinus_in_ggg(z3, succ(zero), z4)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (140) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) we obtained the following new rules [LPAR04]: (U28_GGGGA(z0, z1, z2, z3, z4, z5, z6, z7, =_out_ag(z4, z4)) -> DISTANCE_IN_GGGGA(z5, z6, z7, z4),U28_GGGGA(z0, z1, z2, z3, z4, z5, z6, z7, =_out_ag(z4, z4)) -> DISTANCE_IN_GGGGA(z5, z6, z7, z4)) ---------------------------------------- (141) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4, z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4, z4)) -> U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) U26_GGGGA(z0, z1, z2, z3, z4, z5, z6, =_out_ag(z4, z4)) -> U27_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, isMinus_in_ggg(z3, succ(zero), z4)) U28_GGGGA(z0, z1, z2, z3, z4, z5, z6, z7, =_out_ag(z4, z4)) -> DISTANCE_IN_GGGGA(z5, z6, z7, z4) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (142) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U, U)) we obtained the following new rules [LPAR04]: (U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_out_ggg(z1, succ(succ(zero)), z4)) -> U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4, z4)),U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_out_ggg(z1, succ(succ(zero)), z4)) -> U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4, z4))) ---------------------------------------- (143) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4, z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4, z4)) -> U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) U26_GGGGA(z0, z1, z2, z3, z4, z5, z6, =_out_ag(z4, z4)) -> U27_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, isMinus_in_ggg(z3, succ(zero), z4)) U28_GGGGA(z0, z1, z2, z3, z4, z5, z6, z7, =_out_ag(z4, z4)) -> DISTANCE_IN_GGGGA(z5, z6, z7, z4) U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_out_ggg(z1, succ(succ(zero)), z4)) -> U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4, z4)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (144) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U25_GGGGA(N, M, I, J, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, U, N1, M1, =_out_ag(U, U)) we obtained the following new rules [LPAR04]: (U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_out_ggg(z2, succ(zero), z4)) -> U26_GGGGA(z0, z1, z2, z3, z4, z5, z4, =_out_ag(z4, z4)),U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_out_ggg(z2, succ(zero), z4)) -> U26_GGGGA(z0, z1, z2, z3, z4, z5, z4, =_out_ag(z4, z4))) ---------------------------------------- (145) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4, z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4, z4)) -> U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) U26_GGGGA(z0, z1, z2, z3, z4, z5, z6, =_out_ag(z4, z4)) -> U27_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, isMinus_in_ggg(z3, succ(zero), z4)) U28_GGGGA(z0, z1, z2, z3, z4, z5, z6, z7, =_out_ag(z4, z4)) -> DISTANCE_IN_GGGGA(z5, z6, z7, z4) U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_out_ggg(z1, succ(succ(zero)), z4)) -> U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4, z4)) U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_out_ggg(z2, succ(zero), z4)) -> U26_GGGGA(z0, z1, z2, z3, z4, z5, z4, =_out_ag(z4, z4)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (146) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U27_GGGGA(N, M, I, J, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, U, N1, M1, I1, =_out_ag(U, U)) we obtained the following new rules [LPAR04]: (U27_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, isMinus_out_ggg(z3, succ(zero), z4)) -> U28_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, =_out_ag(z4, z4)),U27_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, isMinus_out_ggg(z3, succ(zero), z4)) -> U28_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, =_out_ag(z4, z4))) ---------------------------------------- (147) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U21_GGGGA(N, M, I, J, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U, U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4, z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4, z4)) -> U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) U26_GGGGA(z0, z1, z2, z3, z4, z5, z6, =_out_ag(z4, z4)) -> U27_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, isMinus_in_ggg(z3, succ(zero), z4)) U28_GGGGA(z0, z1, z2, z3, z4, z5, z6, z7, =_out_ag(z4, z4)) -> DISTANCE_IN_GGGGA(z5, z6, z7, z4) U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_out_ggg(z1, succ(succ(zero)), z4)) -> U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4, z4)) U25_GGGGA(z0, z1, z2, z3, z4, z5, z4, isMinus_out_ggg(z2, succ(zero), z4)) -> U26_GGGGA(z0, z1, z2, z3, z4, z5, z4, =_out_ag(z4, z4)) U27_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, isMinus_out_ggg(z3, succ(zero), z4)) -> U28_GGGGA(z0, z1, z2, z3, z4, z5, z6, z4, =_out_ag(z4, z4)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) isMinus_in_gga(zero, succ(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(X, Y, isMinus_in_gga(X, Y)) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U45_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0, x1) U42_gga(x0, x1, x2) U44_gga(x0, x1, x2) U40_ggg(x0, x1, x2) U42_ggg(x0, x1, x2, x3) U44_ggg(x0, x1, x2, x3) U41_gga(x0, x1) U43_gga(x0, x1, x2) U45_gga(x0, x1, x2) U41_ggg(x0, x1, x2) U43_ggg(x0, x1, x2, x3) U45_ggg(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (148) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: distance_in_5: (b,b,b,b,f) isPlus_in_3: (b,b,f) (b,b,b) isMinus_in_3: (b,b,f) (b,b,b) isTimes_in_3: (b,b,f) (b,b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (149) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) ---------------------------------------- (150) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(X1, X2, succ(zero), J, D) -> U1_GGGGA(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) DISTANCE_IN_GGGGA(X1, X2, succ(zero), J, D) -> ISPLUS_IN_GGA(succ(zero), succ(zero), U) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U36_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> U37_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> U38_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> U39_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) U1_GGGGA(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_GGGGA(X1, X2, J, D, isMinus_in_gga(J, U, U1)) U1_GGGGA(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> ISMINUS_IN_GGA(J, U, U1) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U40_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> U41_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> U42_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> U43_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> U44_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> U45_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U2_GGGGA(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_GGGGA(X1, X2, J, D, =_in_ag(D, U1)) U2_GGGGA(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> =_IN_AG(D, U1) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> U4_GGGGA(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> ISPLUS_IN_GGA(succ(succ(zero)), succ(zero), U) U4_GGGGA(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_GGGGA(X3, M, I, D, isMinus_in_gga(I, U, U1)) U4_GGGGA(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> ISMINUS_IN_GGA(I, U, U1) U5_GGGGA(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_GGGGA(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U5_GGGGA(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> ISPLUS_IN_GGA(M, U1, U2) U6_GGGGA(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_GGGGA(X3, M, I, D, =_in_ag(D, U2)) U6_GGGGA(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> =_IN_AG(D, U2) DISTANCE_IN_GGGGA(N, M, N, J, D) -> U8_GGGGA(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) DISTANCE_IN_GGGGA(N, M, N, J, D) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U46_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> U48_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> U50_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> U52_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U52_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) U50_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U50_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGA(A, pred(X), Z) U48_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U46_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U8_GGGGA(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_GGGGA(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U8_GGGGA(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> ISPLUS_IN_GGA(succ(succ(zero)), succ(zero), U1) U9_GGGGA(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_GGGGA(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U9_GGGGA(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> ISMINUS_IN_GGA(J, U1, U2) U10_GGGGA(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_GGGGA(N, M, J, D, isMinus_in_gga(U, U2, U3)) U10_GGGGA(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> ISMINUS_IN_GGA(U, U2, U3) U11_GGGGA(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_GGGGA(N, M, J, D, isPlus_in_gga(N, U3, U4)) U11_GGGGA(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> ISPLUS_IN_GGA(N, U3, U4) U12_GGGGA(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_GGGGA(N, M, J, D, =_in_ag(D, U4)) U12_GGGGA(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> =_IN_AG(D, U4) DISTANCE_IN_GGGGA(N, M, I, succ(zero), D) -> U14_GGGGA(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) DISTANCE_IN_GGGGA(N, M, I, succ(zero), D) -> ISTIMES_IN_GGA(succ(succ(zero)), N, U) U14_GGGGA(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_GGGGA(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U14_GGGGA(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U1) U15_GGGGA(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_GGGGA(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U15_GGGGA(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> ISPLUS_IN_GGA(succ(succ(succ(zero))), succ(zero), U2) U16_GGGGA(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_GGGGA(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U16_GGGGA(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> ISMINUS_IN_GGA(I, U2, U3) U17_GGGGA(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_GGGGA(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U17_GGGGA(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> ISMINUS_IN_GGA(U1, U3, U4) U18_GGGGA(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_GGGGA(N, M, I, D, isPlus_in_gga(U, U4, U5)) U18_GGGGA(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> ISPLUS_IN_GGA(U, U4, U5) U19_GGGGA(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_GGGGA(N, M, I, D, =_in_ag(D, U5)) U19_GGGGA(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> =_IN_AG(D, U5) DISTANCE_IN_GGGGA(N, M, I, J, D) -> U21_GGGGA(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) DISTANCE_IN_GGGGA(N, M, I, J, D) -> ISMINUS_IN_GGA(N, succ(succ(zero)), U) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, D, U, =_in_ag(N1, U)) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> =_IN_AG(N1, U) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> ISMINUS_IN_GGG(M, succ(succ(zero)), U) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> U40_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> U41_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> U42_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> U43_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> U44_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> U45_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> =_IN_AG(M1, U) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> ISMINUS_IN_GGG(I, succ(zero), U) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> =_IN_AG(I1, U) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> ISMINUS_IN_GGG(J, succ(zero), U) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> =_IN_AG(J1, U) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1, D1) U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> ISTIMES_IN_GGG(succ(succ(zero)), N, U) ISTIMES_IN_GGG(succ(X), succ(Y), Z) -> U46_GGG(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGG(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) U46_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_GGG(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) U46_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGG(A, succ(X), Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> U36_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> U37_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> U38_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> U39_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISTIMES_IN_GGG(succ(X), pred(Y), Z) -> U48_GGG(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGG(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) U48_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_GGG(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U48_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGG(A, succ(X), Z) ISTIMES_IN_GGG(pred(X), succ(Y), Z) -> U50_GGG(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGG(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U50_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_GGG(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U50_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGG(A, pred(X), Z) ISTIMES_IN_GGG(pred(X), pred(Y), Z) -> U52_GGG(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGG(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U52_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_GGG(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U52_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGG(A, pred(X), Z) U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U1) U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_GGGGA(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> ISMINUS_IN_GGA(D1, succ(succ(succ(succ(zero)))), U2) U32_GGGGA(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_GGGGA(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U32_GGGGA(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> ISPLUS_IN_GGA(U1, U2, U3) U33_GGGGA(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_GGGGA(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U33_GGGGA(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> ISPLUS_IN_GGA(U, U3, U4) U34_GGGGA(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_GGGGA(N, M, I, J, D, =_in_ag(D, U4)) U34_GGGGA(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> =_IN_AG(D, U4) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U1_GGGGA(x1, x2, x3, x4, x5) = U1_GGGGA(x3, x5) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U36_GGA(x1, x2, x3, x4) = U36_GGA(x4) U37_GGA(x1, x2, x3, x4) = U37_GGA(x4) U38_GGA(x1, x2, x3, x4) = U38_GGA(x4) U39_GGA(x1, x2, x3, x4) = U39_GGA(x4) U2_GGGGA(x1, x2, x3, x4, x5) = U2_GGGGA(x5) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U40_GGA(x1, x2, x3) = U40_GGA(x3) U41_GGA(x1, x2, x3) = U41_GGA(x3) U42_GGA(x1, x2, x3, x4) = U42_GGA(x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x4) U45_GGA(x1, x2, x3, x4) = U45_GGA(x4) U3_GGGGA(x1, x2, x3, x4, x5) = U3_GGGGA(x5) =_IN_AG(x1, x2) = =_IN_AG(x2) U4_GGGGA(x1, x2, x3, x4, x5) = U4_GGGGA(x2, x3, x5) U5_GGGGA(x1, x2, x3, x4, x5) = U5_GGGGA(x2, x5) U6_GGGGA(x1, x2, x3, x4, x5) = U6_GGGGA(x5) U7_GGGGA(x1, x2, x3, x4, x5) = U7_GGGGA(x5) U8_GGGGA(x1, x2, x3, x4, x5) = U8_GGGGA(x1, x3, x5) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U46_GGA(x1, x2, x3, x4) = U46_GGA(x1, x4) U48_GGA(x1, x2, x3, x4) = U48_GGA(x1, x4) U50_GGA(x1, x2, x3, x4) = U50_GGA(x1, x4) U52_GGA(x1, x2, x3, x4) = U52_GGA(x1, x4) U53_GGA(x1, x2, x3, x4) = U53_GGA(x4) U51_GGA(x1, x2, x3, x4) = U51_GGA(x4) U49_GGA(x1, x2, x3, x4) = U49_GGA(x4) U47_GGA(x1, x2, x3, x4) = U47_GGA(x4) U9_GGGGA(x1, x2, x3, x4, x5, x6) = U9_GGGGA(x1, x3, x5, x6) U10_GGGGA(x1, x2, x3, x4, x5, x6) = U10_GGGGA(x1, x5, x6) U11_GGGGA(x1, x2, x3, x4, x5) = U11_GGGGA(x1, x5) U12_GGGGA(x1, x2, x3, x4, x5) = U12_GGGGA(x5) U13_GGGGA(x1, x2, x3, x4, x5) = U13_GGGGA(x5) U14_GGGGA(x1, x2, x3, x4, x5) = U14_GGGGA(x2, x3, x5) U15_GGGGA(x1, x2, x3, x4, x5, x6) = U15_GGGGA(x3, x5, x6) U16_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGGGA(x3, x5, x6, x7) U17_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U17_GGGGA(x5, x6, x7) U18_GGGGA(x1, x2, x3, x4, x5, x6) = U18_GGGGA(x5, x6) U19_GGGGA(x1, x2, x3, x4, x5) = U19_GGGGA(x5) U20_GGGGA(x1, x2, x3, x4, x5) = U20_GGGGA(x5) U21_GGGGA(x1, x2, x3, x4, x5, x6) = U21_GGGGA(x1, x2, x3, x4, x6) U22_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U22_GGGGA(x1, x2, x3, x4, x6, x7) U23_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U23_GGGGA(x1, x2, x3, x4, x6, x7, x8) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) U40_GGG(x1, x2, x3) = U40_GGG(x3) U41_GGG(x1, x2, x3) = U41_GGG(x3) U42_GGG(x1, x2, x3, x4) = U42_GGG(x4) U43_GGG(x1, x2, x3, x4) = U43_GGG(x4) U44_GGG(x1, x2, x3, x4) = U44_GGG(x4) U45_GGG(x1, x2, x3, x4) = U45_GGG(x4) U24_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U24_GGGGA(x1, x2, x3, x4, x6, x7, x8) U25_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_GGGGA(x1, x2, x4, x6, x7, x8, x9) U26_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_GGGGA(x1, x2, x4, x6, x7, x8, x9) U27_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_GGGGA(x1, x2, x6, x7, x8, x9, x10) U28_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_GGGGA(x1, x2, x6, x7, x8, x9, x10) U29_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_GGGGA(x1, x2, x6, x11) U30_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_GGGGA(x2, x6, x11, x12) ISTIMES_IN_GGG(x1, x2, x3) = ISTIMES_IN_GGG(x1, x2, x3) U46_GGG(x1, x2, x3, x4) = U46_GGG(x1, x3, x4) U47_GGG(x1, x2, x3, x4) = U47_GGG(x4) ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) U36_GGG(x1, x2, x3, x4) = U36_GGG(x4) U37_GGG(x1, x2, x3, x4) = U37_GGG(x4) U38_GGG(x1, x2, x3, x4) = U38_GGG(x4) U39_GGG(x1, x2, x3, x4) = U39_GGG(x4) U48_GGG(x1, x2, x3, x4) = U48_GGG(x1, x3, x4) U49_GGG(x1, x2, x3, x4) = U49_GGG(x4) U50_GGG(x1, x2, x3, x4) = U50_GGG(x1, x3, x4) U51_GGG(x1, x2, x3, x4) = U51_GGG(x4) U52_GGG(x1, x2, x3, x4) = U52_GGG(x1, x3, x4) U53_GGG(x1, x2, x3, x4) = U53_GGG(x4) U31_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_GGGGA(x6, x11, x12) U32_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U32_GGGGA(x6, x7, x8) U33_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U33_GGGGA(x6, x7) U34_GGGGA(x1, x2, x3, x4, x5, x6) = U34_GGGGA(x6) U35_GGGGA(x1, x2, x3, x4, x5, x6) = U35_GGGGA(x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (151) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(X1, X2, succ(zero), J, D) -> U1_GGGGA(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) DISTANCE_IN_GGGGA(X1, X2, succ(zero), J, D) -> ISPLUS_IN_GGA(succ(zero), succ(zero), U) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U36_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> U37_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> U38_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> U39_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) U1_GGGGA(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_GGGGA(X1, X2, J, D, isMinus_in_gga(J, U, U1)) U1_GGGGA(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> ISMINUS_IN_GGA(J, U, U1) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U40_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> U41_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> U42_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> U43_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> U44_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> U45_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U2_GGGGA(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_GGGGA(X1, X2, J, D, =_in_ag(D, U1)) U2_GGGGA(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> =_IN_AG(D, U1) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> U4_GGGGA(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) DISTANCE_IN_GGGGA(X3, M, I, M, D) -> ISPLUS_IN_GGA(succ(succ(zero)), succ(zero), U) U4_GGGGA(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_GGGGA(X3, M, I, D, isMinus_in_gga(I, U, U1)) U4_GGGGA(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> ISMINUS_IN_GGA(I, U, U1) U5_GGGGA(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_GGGGA(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U5_GGGGA(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> ISPLUS_IN_GGA(M, U1, U2) U6_GGGGA(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_GGGGA(X3, M, I, D, =_in_ag(D, U2)) U6_GGGGA(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> =_IN_AG(D, U2) DISTANCE_IN_GGGGA(N, M, N, J, D) -> U8_GGGGA(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) DISTANCE_IN_GGGGA(N, M, N, J, D) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U46_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> U48_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> U50_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> U52_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U52_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) U50_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U50_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGA(A, pred(X), Z) U48_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U46_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U8_GGGGA(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_GGGGA(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U8_GGGGA(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> ISPLUS_IN_GGA(succ(succ(zero)), succ(zero), U1) U9_GGGGA(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_GGGGA(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U9_GGGGA(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> ISMINUS_IN_GGA(J, U1, U2) U10_GGGGA(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_GGGGA(N, M, J, D, isMinus_in_gga(U, U2, U3)) U10_GGGGA(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> ISMINUS_IN_GGA(U, U2, U3) U11_GGGGA(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_GGGGA(N, M, J, D, isPlus_in_gga(N, U3, U4)) U11_GGGGA(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> ISPLUS_IN_GGA(N, U3, U4) U12_GGGGA(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_GGGGA(N, M, J, D, =_in_ag(D, U4)) U12_GGGGA(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> =_IN_AG(D, U4) DISTANCE_IN_GGGGA(N, M, I, succ(zero), D) -> U14_GGGGA(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) DISTANCE_IN_GGGGA(N, M, I, succ(zero), D) -> ISTIMES_IN_GGA(succ(succ(zero)), N, U) U14_GGGGA(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_GGGGA(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U14_GGGGA(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U1) U15_GGGGA(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_GGGGA(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U15_GGGGA(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> ISPLUS_IN_GGA(succ(succ(succ(zero))), succ(zero), U2) U16_GGGGA(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_GGGGA(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U16_GGGGA(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> ISMINUS_IN_GGA(I, U2, U3) U17_GGGGA(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_GGGGA(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U17_GGGGA(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> ISMINUS_IN_GGA(U1, U3, U4) U18_GGGGA(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_GGGGA(N, M, I, D, isPlus_in_gga(U, U4, U5)) U18_GGGGA(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> ISPLUS_IN_GGA(U, U4, U5) U19_GGGGA(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_GGGGA(N, M, I, D, =_in_ag(D, U5)) U19_GGGGA(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> =_IN_AG(D, U5) DISTANCE_IN_GGGGA(N, M, I, J, D) -> U21_GGGGA(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) DISTANCE_IN_GGGGA(N, M, I, J, D) -> ISMINUS_IN_GGA(N, succ(succ(zero)), U) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, D, U, =_in_ag(N1, U)) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> =_IN_AG(N1, U) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> ISMINUS_IN_GGG(M, succ(succ(zero)), U) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> U40_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> U41_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> U42_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> U43_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> U44_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> U45_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> =_IN_AG(M1, U) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> ISMINUS_IN_GGG(I, succ(zero), U) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> =_IN_AG(I1, U) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> ISMINUS_IN_GGG(J, succ(zero), U) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> =_IN_AG(J1, U) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1, D1) U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) U29_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> ISTIMES_IN_GGG(succ(succ(zero)), N, U) ISTIMES_IN_GGG(succ(X), succ(Y), Z) -> U46_GGG(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGG(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) U46_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_GGG(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) U46_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGG(A, succ(X), Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> U36_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> U37_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> U38_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> U39_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISTIMES_IN_GGG(succ(X), pred(Y), Z) -> U48_GGG(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGG(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) U48_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_GGG(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U48_GGG(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGG(A, succ(X), Z) ISTIMES_IN_GGG(pred(X), succ(Y), Z) -> U50_GGG(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGG(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U50_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_GGG(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U50_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGG(A, pred(X), Z) ISTIMES_IN_GGG(pred(X), pred(Y), Z) -> U52_GGG(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGG(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U52_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_GGG(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U52_GGG(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGG(A, pred(X), Z) U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U30_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> ISTIMES_IN_GGA(succ(succ(zero)), M, U1) U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_GGGGA(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U31_GGGGA(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> ISMINUS_IN_GGA(D1, succ(succ(succ(succ(zero)))), U2) U32_GGGGA(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_GGGGA(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U32_GGGGA(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> ISPLUS_IN_GGA(U1, U2, U3) U33_GGGGA(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_GGGGA(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U33_GGGGA(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> ISPLUS_IN_GGA(U, U3, U4) U34_GGGGA(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_GGGGA(N, M, I, J, D, =_in_ag(D, U4)) U34_GGGGA(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> =_IN_AG(D, U4) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U1_GGGGA(x1, x2, x3, x4, x5) = U1_GGGGA(x3, x5) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U36_GGA(x1, x2, x3, x4) = U36_GGA(x4) U37_GGA(x1, x2, x3, x4) = U37_GGA(x4) U38_GGA(x1, x2, x3, x4) = U38_GGA(x4) U39_GGA(x1, x2, x3, x4) = U39_GGA(x4) U2_GGGGA(x1, x2, x3, x4, x5) = U2_GGGGA(x5) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U40_GGA(x1, x2, x3) = U40_GGA(x3) U41_GGA(x1, x2, x3) = U41_GGA(x3) U42_GGA(x1, x2, x3, x4) = U42_GGA(x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x4) U45_GGA(x1, x2, x3, x4) = U45_GGA(x4) U3_GGGGA(x1, x2, x3, x4, x5) = U3_GGGGA(x5) =_IN_AG(x1, x2) = =_IN_AG(x2) U4_GGGGA(x1, x2, x3, x4, x5) = U4_GGGGA(x2, x3, x5) U5_GGGGA(x1, x2, x3, x4, x5) = U5_GGGGA(x2, x5) U6_GGGGA(x1, x2, x3, x4, x5) = U6_GGGGA(x5) U7_GGGGA(x1, x2, x3, x4, x5) = U7_GGGGA(x5) U8_GGGGA(x1, x2, x3, x4, x5) = U8_GGGGA(x1, x3, x5) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U46_GGA(x1, x2, x3, x4) = U46_GGA(x1, x4) U48_GGA(x1, x2, x3, x4) = U48_GGA(x1, x4) U50_GGA(x1, x2, x3, x4) = U50_GGA(x1, x4) U52_GGA(x1, x2, x3, x4) = U52_GGA(x1, x4) U53_GGA(x1, x2, x3, x4) = U53_GGA(x4) U51_GGA(x1, x2, x3, x4) = U51_GGA(x4) U49_GGA(x1, x2, x3, x4) = U49_GGA(x4) U47_GGA(x1, x2, x3, x4) = U47_GGA(x4) U9_GGGGA(x1, x2, x3, x4, x5, x6) = U9_GGGGA(x1, x3, x5, x6) U10_GGGGA(x1, x2, x3, x4, x5, x6) = U10_GGGGA(x1, x5, x6) U11_GGGGA(x1, x2, x3, x4, x5) = U11_GGGGA(x1, x5) U12_GGGGA(x1, x2, x3, x4, x5) = U12_GGGGA(x5) U13_GGGGA(x1, x2, x3, x4, x5) = U13_GGGGA(x5) U14_GGGGA(x1, x2, x3, x4, x5) = U14_GGGGA(x2, x3, x5) U15_GGGGA(x1, x2, x3, x4, x5, x6) = U15_GGGGA(x3, x5, x6) U16_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGGGA(x3, x5, x6, x7) U17_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U17_GGGGA(x5, x6, x7) U18_GGGGA(x1, x2, x3, x4, x5, x6) = U18_GGGGA(x5, x6) U19_GGGGA(x1, x2, x3, x4, x5) = U19_GGGGA(x5) U20_GGGGA(x1, x2, x3, x4, x5) = U20_GGGGA(x5) U21_GGGGA(x1, x2, x3, x4, x5, x6) = U21_GGGGA(x1, x2, x3, x4, x6) U22_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U22_GGGGA(x1, x2, x3, x4, x6, x7) U23_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U23_GGGGA(x1, x2, x3, x4, x6, x7, x8) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) U40_GGG(x1, x2, x3) = U40_GGG(x3) U41_GGG(x1, x2, x3) = U41_GGG(x3) U42_GGG(x1, x2, x3, x4) = U42_GGG(x4) U43_GGG(x1, x2, x3, x4) = U43_GGG(x4) U44_GGG(x1, x2, x3, x4) = U44_GGG(x4) U45_GGG(x1, x2, x3, x4) = U45_GGG(x4) U24_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U24_GGGGA(x1, x2, x3, x4, x6, x7, x8) U25_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_GGGGA(x1, x2, x4, x6, x7, x8, x9) U26_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_GGGGA(x1, x2, x4, x6, x7, x8, x9) U27_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_GGGGA(x1, x2, x6, x7, x8, x9, x10) U28_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_GGGGA(x1, x2, x6, x7, x8, x9, x10) U29_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_GGGGA(x1, x2, x6, x11) U30_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_GGGGA(x2, x6, x11, x12) ISTIMES_IN_GGG(x1, x2, x3) = ISTIMES_IN_GGG(x1, x2, x3) U46_GGG(x1, x2, x3, x4) = U46_GGG(x1, x3, x4) U47_GGG(x1, x2, x3, x4) = U47_GGG(x4) ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) U36_GGG(x1, x2, x3, x4) = U36_GGG(x4) U37_GGG(x1, x2, x3, x4) = U37_GGG(x4) U38_GGG(x1, x2, x3, x4) = U38_GGG(x4) U39_GGG(x1, x2, x3, x4) = U39_GGG(x4) U48_GGG(x1, x2, x3, x4) = U48_GGG(x1, x3, x4) U49_GGG(x1, x2, x3, x4) = U49_GGG(x4) U50_GGG(x1, x2, x3, x4) = U50_GGG(x1, x3, x4) U51_GGG(x1, x2, x3, x4) = U51_GGG(x4) U52_GGG(x1, x2, x3, x4) = U52_GGG(x1, x3, x4) U53_GGG(x1, x2, x3, x4) = U53_GGG(x4) U31_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_GGGGA(x6, x11, x12) U32_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U32_GGGGA(x6, x7, x8) U33_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U33_GGGGA(x6, x7) U34_GGGGA(x1, x2, x3, x4, x5, x6) = U34_GGGGA(x6) U35_GGGGA(x1, x2, x3, x4, x5, x6) = U35_GGGGA(x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (152) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 9 SCCs with 109 less nodes. ---------------------------------------- (153) Complex Obligation (AND) ---------------------------------------- (154) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (155) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (156) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (157) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (158) Obligation: Q DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (159) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 *ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 ---------------------------------------- (160) YES ---------------------------------------- (161) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (162) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (163) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (164) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (165) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (166) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3 *ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3 ---------------------------------------- (167) YES ---------------------------------------- (168) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (169) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (170) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (171) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (172) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (173) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 *ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 *ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 ---------------------------------------- (174) YES ---------------------------------------- (175) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (176) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (177) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) zero = zero pred(x1) = pred(x1) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (178) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (179) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y)) -> ISMINUS_IN_GGA(zero, Y) ISMINUS_IN_GGA(zero, succ(Y)) -> ISMINUS_IN_GGA(zero, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (180) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGA(zero, pred(Y)) -> ISMINUS_IN_GGA(zero, Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISMINUS_IN_GGA(zero, succ(Y)) -> ISMINUS_IN_GGA(zero, Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (181) YES ---------------------------------------- (182) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (183) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (184) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (185) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (186) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(succ(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(pred(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(pred(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (187) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGA(succ(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(succ(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(pred(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(pred(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (188) YES ---------------------------------------- (189) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (190) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (191) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (192) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (193) Obligation: Q DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(succ(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(pred(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(pred(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (194) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISPLUS_IN_GGA(succ(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(succ(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(pred(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(pred(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (195) YES ---------------------------------------- (196) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (197) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (198) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (199) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (200) Obligation: Q DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y)) -> ISTIMES_IN_GGA(succ(X), Y) ISTIMES_IN_GGA(succ(X), succ(Y)) -> ISTIMES_IN_GGA(succ(X), Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (201) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISTIMES_IN_GGA(succ(X), pred(Y)) -> ISTIMES_IN_GGA(succ(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISTIMES_IN_GGA(succ(X), succ(Y)) -> ISTIMES_IN_GGA(succ(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (202) YES ---------------------------------------- (203) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (204) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (205) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (206) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (207) Obligation: Q DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y)) -> ISTIMES_IN_GGA(pred(X), Y) ISTIMES_IN_GGA(pred(X), succ(Y)) -> ISTIMES_IN_GGA(pred(X), Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (208) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISTIMES_IN_GGA(pred(X), pred(Y)) -> ISTIMES_IN_GGA(pred(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISTIMES_IN_GGA(pred(X), succ(Y)) -> ISTIMES_IN_GGA(pred(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (209) YES ---------------------------------------- (210) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J, D) -> U21_GGGGA(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, D, U, =_in_ag(N1, U)) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1, D1) The TRS R consists of the following rules: distance_in_gggga(X1, X2, succ(zero), J, D) -> U1_gggga(X1, X2, J, D, isPlus_in_gga(succ(zero), succ(zero), U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U39_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U39_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U1_gggga(X1, X2, J, D, isPlus_out_gga(succ(zero), succ(zero), U)) -> U2_gggga(X1, X2, J, D, isMinus_in_gga(J, U, U1)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U2_gggga(X1, X2, J, D, isMinus_out_gga(J, U, U1)) -> U3_gggga(X1, X2, J, D, =_in_ag(D, U1)) =_in_ag(X, X) -> =_out_ag(X, X) U3_gggga(X1, X2, J, D, =_out_ag(D, U1)) -> distance_out_gggga(X1, X2, succ(zero), J, D) distance_in_gggga(X3, M, I, M, D) -> U4_gggga(X3, M, I, D, isPlus_in_gga(succ(succ(zero)), succ(zero), U)) U4_gggga(X3, M, I, D, isPlus_out_gga(succ(succ(zero)), succ(zero), U)) -> U5_gggga(X3, M, I, D, isMinus_in_gga(I, U, U1)) U5_gggga(X3, M, I, D, isMinus_out_gga(I, U, U1)) -> U6_gggga(X3, M, I, D, isPlus_in_gga(M, U1, U2)) U6_gggga(X3, M, I, D, isPlus_out_gga(M, U1, U2)) -> U7_gggga(X3, M, I, D, =_in_ag(D, U2)) U7_gggga(X3, M, I, D, =_out_ag(D, U2)) -> distance_out_gggga(X3, M, I, M, D) distance_in_gggga(N, M, N, J, D) -> U8_gggga(N, M, J, D, isTimes_in_gga(succ(succ(zero)), M, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U46_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U48_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U50_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U52_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U53_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U50_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U48_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U46_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U8_gggga(N, M, J, D, isTimes_out_gga(succ(succ(zero)), M, U)) -> U9_gggga(N, M, J, D, U, isPlus_in_gga(succ(succ(zero)), succ(zero), U1)) U9_gggga(N, M, J, D, U, isPlus_out_gga(succ(succ(zero)), succ(zero), U1)) -> U10_gggga(N, M, J, D, U, isMinus_in_gga(J, U1, U2)) U10_gggga(N, M, J, D, U, isMinus_out_gga(J, U1, U2)) -> U11_gggga(N, M, J, D, isMinus_in_gga(U, U2, U3)) U11_gggga(N, M, J, D, isMinus_out_gga(U, U2, U3)) -> U12_gggga(N, M, J, D, isPlus_in_gga(N, U3, U4)) U12_gggga(N, M, J, D, isPlus_out_gga(N, U3, U4)) -> U13_gggga(N, M, J, D, =_in_ag(D, U4)) U13_gggga(N, M, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, N, J, D) distance_in_gggga(N, M, I, succ(zero), D) -> U14_gggga(N, M, I, D, isTimes_in_gga(succ(succ(zero)), N, U)) U14_gggga(N, M, I, D, isTimes_out_gga(succ(succ(zero)), N, U)) -> U15_gggga(N, M, I, D, U, isTimes_in_gga(succ(succ(zero)), M, U1)) U15_gggga(N, M, I, D, U, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U16_gggga(N, M, I, D, U, U1, isPlus_in_gga(succ(succ(succ(zero))), succ(zero), U2)) U16_gggga(N, M, I, D, U, U1, isPlus_out_gga(succ(succ(succ(zero))), succ(zero), U2)) -> U17_gggga(N, M, I, D, U, U1, isMinus_in_gga(I, U2, U3)) U17_gggga(N, M, I, D, U, U1, isMinus_out_gga(I, U2, U3)) -> U18_gggga(N, M, I, D, U, isMinus_in_gga(U1, U3, U4)) U18_gggga(N, M, I, D, U, isMinus_out_gga(U1, U3, U4)) -> U19_gggga(N, M, I, D, isPlus_in_gga(U, U4, U5)) U19_gggga(N, M, I, D, isPlus_out_gga(U, U4, U5)) -> U20_gggga(N, M, I, D, =_in_ag(D, U5)) U20_gggga(N, M, I, D, =_out_ag(D, U5)) -> distance_out_gggga(N, M, I, succ(zero), D) distance_in_gggga(N, M, I, J, D) -> U21_gggga(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_gggga(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_gggga(N, M, I, J, D, U, =_in_ag(N1, U)) U22_gggga(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_gggga(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U23_gggga(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_gggga(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_gggga(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_gggga(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_gggga(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_gggga(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_gggga(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_gggga(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_in_gggga(N1, M1, I1, J1, D1)) U29_gggga(N, M, I, J, D, U, N1, M1, I1, J1, distance_out_gggga(N1, M1, I1, J1, D1)) -> U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_ggg(succ(succ(zero)), N, U)) isTimes_in_ggg(X, zero, zero) -> isTimes_out_ggg(X, zero, zero) isTimes_in_ggg(zero, succ(Y), zero) -> isTimes_out_ggg(zero, succ(Y), zero) isTimes_in_ggg(zero, pred(Y), zero) -> isTimes_out_ggg(zero, pred(Y), zero) isTimes_in_ggg(succ(X), succ(Y), Z) -> U46_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U46_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U47_ggg(X, Y, Z, isPlus_in_ggg(A, succ(X), Z)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U36_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U37_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U38_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U39_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U39_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U38_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U37_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U36_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U47_ggg(X, Y, Z, isPlus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), succ(Y), Z) isTimes_in_ggg(succ(X), pred(Y), Z) -> U48_ggg(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) U48_ggg(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U49_ggg(X, Y, Z, isMinus_in_ggg(A, succ(X), Z)) U49_ggg(X, Y, Z, isMinus_out_ggg(A, succ(X), Z)) -> isTimes_out_ggg(succ(X), pred(Y), Z) isTimes_in_ggg(pred(X), succ(Y), Z) -> U50_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U50_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U51_ggg(X, Y, Z, isPlus_in_ggg(A, pred(X), Z)) U51_ggg(X, Y, Z, isPlus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), succ(Y), Z) isTimes_in_ggg(pred(X), pred(Y), Z) -> U52_ggg(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U52_ggg(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U53_ggg(X, Y, Z, isMinus_in_ggg(A, pred(X), Z)) U53_ggg(X, Y, Z, isMinus_out_ggg(A, pred(X), Z)) -> isTimes_out_ggg(pred(X), pred(Y), Z) U30_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_ggg(succ(succ(zero)), N, U)) -> U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_in_gga(succ(succ(zero)), M, U1)) U31_gggga(N, M, I, J, D, U, N1, M1, I1, J1, D1, isTimes_out_gga(succ(succ(zero)), M, U1)) -> U32_gggga(N, M, I, J, D, U, U1, isMinus_in_gga(D1, succ(succ(succ(succ(zero)))), U2)) U32_gggga(N, M, I, J, D, U, U1, isMinus_out_gga(D1, succ(succ(succ(succ(zero)))), U2)) -> U33_gggga(N, M, I, J, D, U, isPlus_in_gga(U1, U2, U3)) U33_gggga(N, M, I, J, D, U, isPlus_out_gga(U1, U2, U3)) -> U34_gggga(N, M, I, J, D, isPlus_in_gga(U, U3, U4)) U34_gggga(N, M, I, J, D, isPlus_out_gga(U, U3, U4)) -> U35_gggga(N, M, I, J, D, =_in_ag(D, U4)) U35_gggga(N, M, I, J, D, =_out_ag(D, U4)) -> distance_out_gggga(N, M, I, J, D) The argument filtering Pi contains the following mapping: distance_in_gggga(x1, x2, x3, x4, x5) = distance_in_gggga(x1, x2, x3, x4) succ(x1) = succ(x1) zero = zero U1_gggga(x1, x2, x3, x4, x5) = U1_gggga(x3, x5) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U36_gga(x1, x2, x3, x4) = U36_gga(x4) pred(x1) = pred(x1) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U39_gga(x1, x2, x3, x4) = U39_gga(x4) U2_gggga(x1, x2, x3, x4, x5) = U2_gggga(x5) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) U3_gggga(x1, x2, x3, x4, x5) = U3_gggga(x5) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) distance_out_gggga(x1, x2, x3, x4, x5) = distance_out_gggga(x5) U4_gggga(x1, x2, x3, x4, x5) = U4_gggga(x2, x3, x5) U5_gggga(x1, x2, x3, x4, x5) = U5_gggga(x2, x5) U6_gggga(x1, x2, x3, x4, x5) = U6_gggga(x5) U7_gggga(x1, x2, x3, x4, x5) = U7_gggga(x5) U8_gggga(x1, x2, x3, x4, x5) = U8_gggga(x1, x3, x5) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x4) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x4) U50_gga(x1, x2, x3, x4) = U50_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x4) U53_gga(x1, x2, x3, x4) = U53_gga(x4) U51_gga(x1, x2, x3, x4) = U51_gga(x4) U49_gga(x1, x2, x3, x4) = U49_gga(x4) U47_gga(x1, x2, x3, x4) = U47_gga(x4) U9_gggga(x1, x2, x3, x4, x5, x6) = U9_gggga(x1, x3, x5, x6) U10_gggga(x1, x2, x3, x4, x5, x6) = U10_gggga(x1, x5, x6) U11_gggga(x1, x2, x3, x4, x5) = U11_gggga(x1, x5) U12_gggga(x1, x2, x3, x4, x5) = U12_gggga(x5) U13_gggga(x1, x2, x3, x4, x5) = U13_gggga(x5) U14_gggga(x1, x2, x3, x4, x5) = U14_gggga(x2, x3, x5) U15_gggga(x1, x2, x3, x4, x5, x6) = U15_gggga(x3, x5, x6) U16_gggga(x1, x2, x3, x4, x5, x6, x7) = U16_gggga(x3, x5, x6, x7) U17_gggga(x1, x2, x3, x4, x5, x6, x7) = U17_gggga(x5, x6, x7) U18_gggga(x1, x2, x3, x4, x5, x6) = U18_gggga(x5, x6) U19_gggga(x1, x2, x3, x4, x5) = U19_gggga(x5) U20_gggga(x1, x2, x3, x4, x5) = U20_gggga(x5) U21_gggga(x1, x2, x3, x4, x5, x6) = U21_gggga(x1, x2, x3, x4, x6) U22_gggga(x1, x2, x3, x4, x5, x6, x7) = U22_gggga(x1, x2, x3, x4, x6, x7) U23_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U23_gggga(x1, x2, x3, x4, x6, x7, x8) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) U24_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U24_gggga(x1, x2, x3, x4, x6, x7, x8) U25_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_gggga(x1, x2, x4, x6, x7, x8, x9) U26_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_gggga(x1, x2, x4, x6, x7, x8, x9) U27_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_gggga(x1, x2, x6, x7, x8, x9, x10) U28_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_gggga(x1, x2, x6, x7, x8, x9, x10) U29_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) = U29_gggga(x1, x2, x6, x11) U30_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U30_gggga(x2, x6, x11, x12) isTimes_in_ggg(x1, x2, x3) = isTimes_in_ggg(x1, x2, x3) isTimes_out_ggg(x1, x2, x3) = isTimes_out_ggg U46_ggg(x1, x2, x3, x4) = U46_ggg(x1, x3, x4) U47_ggg(x1, x2, x3, x4) = U47_ggg(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U36_ggg(x1, x2, x3, x4) = U36_ggg(x4) U37_ggg(x1, x2, x3, x4) = U37_ggg(x4) U38_ggg(x1, x2, x3, x4) = U38_ggg(x4) U39_ggg(x1, x2, x3, x4) = U39_ggg(x4) U48_ggg(x1, x2, x3, x4) = U48_ggg(x1, x3, x4) U49_ggg(x1, x2, x3, x4) = U49_ggg(x4) U50_ggg(x1, x2, x3, x4) = U50_ggg(x1, x3, x4) U51_ggg(x1, x2, x3, x4) = U51_ggg(x4) U52_ggg(x1, x2, x3, x4) = U52_ggg(x1, x3, x4) U53_ggg(x1, x2, x3, x4) = U53_ggg(x4) U31_gggga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) = U31_gggga(x6, x11, x12) U32_gggga(x1, x2, x3, x4, x5, x6, x7, x8) = U32_gggga(x6, x7, x8) U33_gggga(x1, x2, x3, x4, x5, x6, x7) = U33_gggga(x6, x7) U34_gggga(x1, x2, x3, x4, x5, x6) = U34_gggga(x6) U35_gggga(x1, x2, x3, x4, x5, x6) = U35_gggga(x6) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U21_GGGGA(x1, x2, x3, x4, x5, x6) = U21_GGGGA(x1, x2, x3, x4, x6) U22_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U22_GGGGA(x1, x2, x3, x4, x6, x7) U23_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U23_GGGGA(x1, x2, x3, x4, x6, x7, x8) U24_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U24_GGGGA(x1, x2, x3, x4, x6, x7, x8) U25_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_GGGGA(x1, x2, x4, x6, x7, x8, x9) U26_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_GGGGA(x1, x2, x4, x6, x7, x8, x9) U27_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_GGGGA(x1, x2, x6, x7, x8, x9, x10) U28_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_GGGGA(x1, x2, x6, x7, x8, x9, x10) We have to consider all (P,R,Pi)-chains ---------------------------------------- (211) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (212) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J, D) -> U21_GGGGA(N, M, I, J, D, isMinus_in_gga(N, succ(succ(zero)), U)) U21_GGGGA(N, M, I, J, D, isMinus_out_gga(N, succ(succ(zero)), U)) -> U22_GGGGA(N, M, I, J, D, U, =_in_ag(N1, U)) U22_GGGGA(N, M, I, J, D, U, =_out_ag(N1, U)) -> U23_GGGGA(N, M, I, J, D, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U23_GGGGA(N, M, I, J, D, U, N1, isMinus_out_ggg(M, succ(succ(zero)), U)) -> U24_GGGGA(N, M, I, J, D, U, N1, =_in_ag(M1, U)) U24_GGGGA(N, M, I, J, D, U, N1, =_out_ag(M1, U)) -> U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_GGGGA(N, M, I, J, D, U, N1, M1, isMinus_out_ggg(I, succ(zero), U)) -> U26_GGGGA(N, M, I, J, D, U, N1, M1, =_in_ag(I1, U)) U26_GGGGA(N, M, I, J, D, U, N1, M1, =_out_ag(I1, U)) -> U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, I, J, D, U, N1, M1, I1, isMinus_out_ggg(J, succ(zero), U)) -> U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_in_ag(J1, U)) U28_GGGGA(N, M, I, J, D, U, N1, M1, I1, =_out_ag(J1, U)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1, D1) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y), pred(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) =_in_ag(X, X) -> =_out_ag(X, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U40_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U42_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U44_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U41_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U41_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U45_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U41_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U43_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U45_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) zero = zero pred(x1) = pred(x1) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3) = U41_gga(x3) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U45_gga(x1, x2, x3, x4) = U45_gga(x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U40_ggg(x1, x2, x3) = U40_ggg(x3) U41_ggg(x1, x2, x3) = U41_ggg(x3) U42_ggg(x1, x2, x3, x4) = U42_ggg(x4) U43_ggg(x1, x2, x3, x4) = U43_ggg(x4) U44_ggg(x1, x2, x3, x4) = U44_ggg(x4) U45_ggg(x1, x2, x3, x4) = U45_ggg(x4) DISTANCE_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCE_IN_GGGGA(x1, x2, x3, x4) U21_GGGGA(x1, x2, x3, x4, x5, x6) = U21_GGGGA(x1, x2, x3, x4, x6) U22_GGGGA(x1, x2, x3, x4, x5, x6, x7) = U22_GGGGA(x1, x2, x3, x4, x6, x7) U23_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U23_GGGGA(x1, x2, x3, x4, x6, x7, x8) U24_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8) = U24_GGGGA(x1, x2, x3, x4, x6, x7, x8) U25_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U25_GGGGA(x1, x2, x4, x6, x7, x8, x9) U26_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9) = U26_GGGGA(x1, x2, x4, x6, x7, x8, x9) U27_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U27_GGGGA(x1, x2, x6, x7, x8, x9, x10) U28_GGGGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) = U28_GGGGA(x1, x2, x6, x7, x8, x9, x10) We have to consider all (P,R,Pi)-chains ---------------------------------------- (213) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (214) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_in_ag(U)) U22_GGGGA(N, M, I, J, U, =_out_ag(N1)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_in_ag(U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1)) -> U25_GGGGA(N, M, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_in_ag(U)) U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(I1)) -> U27_GGGGA(N, M, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_in_ag(U)) U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(J1)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) =_in_ag(X) -> =_out_ag(X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (215) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_in_ag(U)) at position [5] we obtained the following new rules [LPAR04]: (U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)),U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U))) ---------------------------------------- (216) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_in_ag(U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1)) -> U25_GGGGA(N, M, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_in_ag(U)) U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(I1)) -> U27_GGGGA(N, M, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_in_ag(U)) U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(J1)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) =_in_ag(X) -> =_out_ag(X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (217) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_in_ag(U)) at position [6] we obtained the following new rules [LPAR04]: (U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U)),U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U))) ---------------------------------------- (218) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1)) -> U25_GGGGA(N, M, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_in_ag(U)) U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(I1)) -> U27_GGGGA(N, M, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_in_ag(U)) U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(J1)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) =_in_ag(X) -> =_out_ag(X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (219) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_in_ag(U)) at position [6] we obtained the following new rules [LPAR04]: (U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U)),U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U))) ---------------------------------------- (220) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1)) -> U25_GGGGA(N, M, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(I1)) -> U27_GGGGA(N, M, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_in_ag(U)) U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(J1)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) =_in_ag(X) -> =_out_ag(X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (221) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_in_ag(U)) at position [6] we obtained the following new rules [LPAR04]: (U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U)),U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U))) ---------------------------------------- (222) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1)) -> U25_GGGGA(N, M, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(I1)) -> U27_GGGGA(N, M, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(J1)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) =_in_ag(X) -> =_out_ag(X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (223) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (224) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1)) -> U25_GGGGA(N, M, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(I1)) -> U27_GGGGA(N, M, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(J1)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) =_in_ag(x0) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (225) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. =_in_ag(x0) ---------------------------------------- (226) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U22_GGGGA(N, M, I, J, U, =_out_ag(N1)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1)) -> U25_GGGGA(N, M, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(I1)) -> U27_GGGGA(N, M, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(J1)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (227) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U22_GGGGA(N, M, I, J, U, =_out_ag(N1)) -> U23_GGGGA(N, M, I, J, U, N1, isMinus_in_ggg(M, succ(succ(zero)), U)) we obtained the following new rules [LPAR04]: (U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)),U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4))) ---------------------------------------- (228) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1)) -> U25_GGGGA(N, M, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(I1)) -> U27_GGGGA(N, M, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(J1)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (229) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U24_GGGGA(N, M, I, J, U, N1, =_out_ag(M1)) -> U25_GGGGA(N, M, J, U, N1, M1, isMinus_in_ggg(I, succ(zero), U)) we obtained the following new rules [LPAR04]: (U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)),U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4))) ---------------------------------------- (230) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(I1)) -> U27_GGGGA(N, M, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(J1)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (231) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(I1)) -> U27_GGGGA(N, M, U, N1, M1, I1, isMinus_in_ggg(J, succ(zero), U)) we obtained the following new rules [LPAR04]: (U26_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z3)) -> U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_in_ggg(z2, succ(zero), z3)),U26_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z3)) -> U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_in_ggg(z2, succ(zero), z3))) ---------------------------------------- (232) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(J1)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) U26_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z3)) -> U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_in_ggg(z2, succ(zero), z3)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (233) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(J1)) -> DISTANCE_IN_GGGGA(N1, M1, I1, J1) we obtained the following new rules [LPAR04]: (U28_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z2)) -> DISTANCE_IN_GGGGA(z3, z4, z5, z2),U28_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z2)) -> DISTANCE_IN_GGGGA(z3, z4, z5, z2)) ---------------------------------------- (234) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) U26_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z3)) -> U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_in_ggg(z2, succ(zero), z3)) U28_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z2)) -> DISTANCE_IN_GGGGA(z3, z4, z5, z2) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (235) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U23_GGGGA(N, M, I, J, U, N1, isMinus_out_ggg) -> U24_GGGGA(N, M, I, J, U, N1, =_out_ag(U)) we obtained the following new rules [LPAR04]: (U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_out_ggg) -> U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4)),U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_out_ggg) -> U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4))) ---------------------------------------- (236) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) U26_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z3)) -> U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_in_ggg(z2, succ(zero), z3)) U28_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z2)) -> DISTANCE_IN_GGGGA(z3, z4, z5, z2) U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_out_ggg) -> U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (237) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U25_GGGGA(N, M, J, U, N1, M1, isMinus_out_ggg) -> U26_GGGGA(N, M, J, U, N1, M1, =_out_ag(U)) we obtained the following new rules [LPAR04]: (U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_out_ggg) -> U26_GGGGA(z0, z1, z3, z4, z5, z4, =_out_ag(z4)),U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_out_ggg) -> U26_GGGGA(z0, z1, z3, z4, z5, z4, =_out_ag(z4))) ---------------------------------------- (238) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) U26_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z3)) -> U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_in_ggg(z2, succ(zero), z3)) U28_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z2)) -> DISTANCE_IN_GGGGA(z3, z4, z5, z2) U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_out_ggg) -> U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4)) U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_out_ggg) -> U26_GGGGA(z0, z1, z3, z4, z5, z4, =_out_ag(z4)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (239) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U27_GGGGA(N, M, U, N1, M1, I1, isMinus_out_ggg) -> U28_GGGGA(N, M, U, N1, M1, I1, =_out_ag(U)) we obtained the following new rules [LPAR04]: (U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_out_ggg) -> U28_GGGGA(z0, z1, z3, z4, z5, z3, =_out_ag(z3)),U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_out_ggg) -> U28_GGGGA(z0, z1, z3, z4, z5, z3, =_out_ag(z3))) ---------------------------------------- (240) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) U26_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z3)) -> U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_in_ggg(z2, succ(zero), z3)) U28_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z2)) -> DISTANCE_IN_GGGGA(z3, z4, z5, z2) U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_out_ggg) -> U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4)) U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_out_ggg) -> U26_GGGGA(z0, z1, z3, z4, z5, z4, =_out_ag(z4)) U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_out_ggg) -> U28_GGGGA(z0, z1, z3, z4, z5, z3, =_out_ag(z3)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (241) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U24_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_in_ggg(z2, succ(zero), z4)) we obtained the following new rules [LPAR04]: (U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z4, z4, isMinus_in_ggg(z2, succ(zero), z4)),U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z4, z4, isMinus_in_ggg(z2, succ(zero), z4))) ---------------------------------------- (242) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCE_IN_GGGGA(N, M, I, J) -> U21_GGGGA(N, M, I, J, isMinus_in_gga(N, succ(succ(zero)))) U21_GGGGA(N, M, I, J, isMinus_out_gga(U)) -> U22_GGGGA(N, M, I, J, U, =_out_ag(U)) U22_GGGGA(z0, z1, z2, z3, z4, =_out_ag(z4)) -> U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_in_ggg(z1, succ(succ(zero)), z4)) U26_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z3)) -> U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_in_ggg(z2, succ(zero), z3)) U28_GGGGA(z0, z1, z2, z3, z4, z5, =_out_ag(z2)) -> DISTANCE_IN_GGGGA(z3, z4, z5, z2) U23_GGGGA(z0, z1, z2, z3, z4, z4, isMinus_out_ggg) -> U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4)) U25_GGGGA(z0, z1, z3, z4, z5, z4, isMinus_out_ggg) -> U26_GGGGA(z0, z1, z3, z4, z5, z4, =_out_ag(z4)) U27_GGGGA(z0, z1, z3, z4, z5, z3, isMinus_out_ggg) -> U28_GGGGA(z0, z1, z3, z4, z5, z3, =_out_ag(z3)) U24_GGGGA(z0, z1, z2, z3, z4, z4, =_out_ag(z4)) -> U25_GGGGA(z0, z1, z3, z4, z4, z4, isMinus_in_ggg(z2, succ(zero), z4)) The TRS R consists of the following rules: isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U40_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U42_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U44_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U41_ggg(isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U43_ggg(isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U45_ggg(isMinus_in_ggg(X, Y, Z)) U44_ggg(isMinus_out_ggg) -> isMinus_out_ggg U45_ggg(isMinus_out_ggg) -> isMinus_out_ggg U43_ggg(isMinus_out_ggg) -> isMinus_out_ggg U41_ggg(isMinus_out_ggg) -> isMinus_out_ggg U42_ggg(isMinus_out_ggg) -> isMinus_out_ggg U40_ggg(isMinus_out_ggg) -> isMinus_out_ggg isMinus_in_gga(zero, succ(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U44_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U41_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U45_gga(isMinus_in_gga(X, Y)) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U45_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) The set Q consists of the following terms: isMinus_in_gga(x0, x1) isMinus_in_ggg(x0, x1, x2) U40_gga(x0) U42_gga(x0) U44_gga(x0) U40_ggg(x0) U42_ggg(x0) U44_ggg(x0) U41_gga(x0) U43_gga(x0) U45_gga(x0) U41_ggg(x0) U43_ggg(x0) U45_ggg(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (243) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 5, "program": { "directives": [], "clauses": [ [ "(distance X1 X2 (1) J D)", "(',' (!) (is D (- J (+ (1) (1)))))" ], [ "(distance X3 M I M D)", "(',' (!) (is D (+ M (- I (+ (2) (1))))))" ], [ "(distance N M N J D)", "(',' (!) (is D (+ N (- (* (2) M) (- J (+ (2) (1)))))))" ], [ "(distance N M I (1) D)", "(',' (!) (is D (+ (* (2) N) (- (* (2) M) (- I (+ (3) (1)))))))" ], [ "(distance N M I J D)", "(',' (is N1 (- N (2))) (',' (is M1 (- M (2))) (',' (is I1 (- I (1))) (',' (is J1 (- J (1))) (',' (distance N1 M1 I1 J1 D1) (is D (+ (* (2) N) (+ (* (2) M) (- D1 (4))))))))))" ] ] }, "graph": { "nodes": { "22": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T19", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T16", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "1" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }] }, "ground": [ "T19", "T16" ], "free": [], "exprvars": [ "T19", "T16" ] } }, "23": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": ["T16"] } }, "24": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T19", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T16", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "1" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T19", "T16" ] } }, "46": { "goal": [ { "clause": 3, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" } ], "kb": { "nonunifying": [ [ "(distance T1 T2 T3 T4 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X36 X37 X36 X38 X39)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39" ], "exprvars": [] } }, "29": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_1) (is T32 (+ T29 (- T30 (+ (2) (1))))))" }, { "clause": 2, "scope": 1, "term": "(distance T28 T29 T30 T29 T5)" }, { "clause": 3, "scope": 1, "term": "(distance T28 T29 T30 T29 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T28 T29 T30 T29 T5)" } ], "kb": { "nonunifying": [[ "(distance T28 T29 T30 T29 T5)", "(distance X12 X13 (1) X14 X15)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T28", "T29", "T30" ], "free": [ "X12", "X13", "X14", "X15" ], "exprvars": [] } }, "type": "Nodes", "110": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "112": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (distance T79 T80 T81 T82 X76) (is T78 (+ (* (2) T73) (+ (* (2) T74) (- X76 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T73 T74 T75 T76 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X36 X37 X36 X38 X39)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X48 X49 X50 (1) X51)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T79", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T73", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T80", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T74", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T81", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T75", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T82", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T76", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T81", "T75", "T80", "T74", "T79", "T73", "T82", "T76" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39", "X48", "X49", "X50", "X51", "X72", "X73", "X74", "X75", "X76" ], "exprvars": [ "T81", "T75", "T80", "T74", "T79", "T73", "T82", "T76" ] } }, "136": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "137": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [ [ "(distance T73 T74 T75 T76 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X36 X37 X36 X38 X39)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X48 X49 X50 (1) X51)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T73", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T74", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T86", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [ "T75", "T86", "T74", "T90", "T73", "T76" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39", "X48", "X49", "X50", "X51" ], "exprvars": [ "T86", "T74", "T90", "T73" ] } }, "138": { "goal": [], "kb": { "nonunifying": [ [ "(distance T73 T74 T75 T76 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X36 X37 X36 X38 X39)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X48 X49 X50 (1) X51)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T75", "T86", "T74", "T73", "T76" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39", "X48", "X49", "X50", "X51" ], "exprvars": [ "T86", "T74", "T73" ] } }, "139": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T73", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T74", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T86", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T86", "T74", "T90", "T73" ] } }, "52": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T46 (+ T42 (- (* (2) T43) (- T44 (+ (2) (1))))))" }], "kb": { "nonunifying": [ [ "(distance T42 T43 T42 T44 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T42 T43 T42 T44 T5)", "(distance X24 X25 X26 X25 X27)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T42", "T43", "T44" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27" ], "exprvars": [] } }, "31": { "goal": [ { "clause": 2, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 3, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" } ], "kb": { "nonunifying": [ [ "(distance T1 T2 T3 T4 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X24 X25 X26 X25 X27)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27" ], "exprvars": [] } }, "10": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "54": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "33": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T32 (+ T29 (- T30 (+ (2) (1)))))" }], "kb": { "nonunifying": [[ "(distance T28 T29 T30 T29 T5)", "(distance X12 X13 (1) X14 X15)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T28", "T29", "T30" ], "free": [ "X12", "X13", "X14", "X15" ], "exprvars": [] } }, "55": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [ [ "(distance T42 T43 T42 T44 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T42 T43 T42 T44 T5)", "(distance X24 X25 X26 X25 X27)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T47", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T42", "type": "PlainIntegerVariable" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T43", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T44", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [ "T42", "T47", "T44", "T43" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27" ], "exprvars": [ "T42", "T47", "T44", "T43" ] } }, "77": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_1) (is T60 (+ (* (2) T56) (- (* (2) T57) (- T58 (+ (3) (1)))))))" }, { "clause": 4, "scope": 1, "term": "(distance T56 T57 T58 (1) T5)" } ], "kb": { "nonunifying": [ [ "(distance T56 T57 T58 (1) T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T56 T57 T58 (1) T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T56 T57 T58 (1) T5)", "(distance X36 X37 X36 X38 X39)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T56", "T57", "T58" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39" ], "exprvars": [] } }, "78": { "goal": [{ "clause": 4, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }], "kb": { "nonunifying": [ [ "(distance T1 T2 T3 T4 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X36 X37 X36 X38 X39)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X48 X49 X50 (1) X51)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39", "X48", "X49", "X50", "X51" ], "exprvars": [] } }, "35": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "57": { "goal": [], "kb": { "nonunifying": [ [ "(distance T42 T43 T42 T44 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T42 T43 T42 T44 T5)", "(distance X24 X25 X26 X25 X27)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T42", "T44", "T43" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27" ], "exprvars": [ "T42", "T44", "T43" ] } }, "36": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [[ "(distance T28 T29 T30 T29 T5)", "(distance X12 X13 (1) X14 X15)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T33", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T29", "type": "PlainIntegerVariable" }, { "arguments": [ { "name": "T30", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [ "T30", "T29", "T28", "T33" ], "free": [ "X12", "X13", "X14", "X15" ], "exprvars": [ "T30", "T29", "T33" ] } }, "59": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T47", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T42", "type": "PlainIntegerVariable" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T43", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T44", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T42", "T47", "T44", "T43" ] } }, "38": { "goal": [], "kb": { "nonunifying": [[ "(distance T28 T29 T30 T29 T5)", "(distance X12 X13 (1) X14 X15)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T30", "T29", "T28" ], "free": [ "X12", "X13", "X14", "X15" ], "exprvars": [ "T30", "T29" ] } }, "101": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X72 (- T73 (2))) (',' (is X73 (- T74 (2))) (',' (is X74 (- T75 (1))) (',' (is X75 (- T76 (1))) (',' (distance X72 X73 X74 X75 X76) (is T78 (+ (* (2) T73) (+ (* (2) T74) (- X76 (4))))))))))" }], "kb": { "nonunifying": [ [ "(distance T73 T74 T75 T76 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X36 X37 X36 X38 X39)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X48 X49 X50 (1) X51)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T73", "T74", "T75", "T76" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39", "X48", "X49", "X50", "X51", "X72", "X73", "X74", "X75", "X76" ], "exprvars": [] } }, "102": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "103": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X73 (- T74 (2))) (',' (is X74 (- T75 (1))) (',' (is X75 (- T76 (1))) (',' (distance T79 X73 X74 X75 X76) (is T78 (+ (* (2) T73) (+ (* (2) T74) (- X76 (4)))))))))" }], "kb": { "nonunifying": [ [ "(distance T73 T74 T75 T76 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X36 X37 X36 X38 X39)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X48 X49 X50 (1) X51)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T79", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T73", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }] }, "ground": [ "T75", "T74", "T79", "T73", "T76" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39", "X48", "X49", "X50", "X51", "X72", "X73", "X74", "X75", "X76" ], "exprvars": [ "T79", "T73" ] } }, "5": { "goal": [{ "clause": -1, "scope": -1, "term": "(distance T1 T2 T3 T4 T5)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [], "exprvars": [] } }, "104": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "126": { "goal": [{ "clause": -1, "scope": -1, "term": "(distance T79 T80 T81 T82 X76)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T79", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T73", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T80", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T74", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T81", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T75", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T82", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T76", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T81", "T80", "T79", "T82" ], "free": ["X76"], "exprvars": [ "T81", "T75", "T80", "T74", "T79", "T73", "T82", "T76" ] } }, "6": { "goal": [ { "clause": 0, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 1, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 2, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 3, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [], "exprvars": [] } }, "105": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X74 (- T75 (1))) (',' (is X75 (- T76 (1))) (',' (distance T79 T80 X74 X75 X76) (is T78 (+ (* (2) T73) (+ (* (2) T74) (- X76 (4))))))))" }], "kb": { "nonunifying": [ [ "(distance T73 T74 T75 T76 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X36 X37 X36 X38 X39)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X48 X49 X50 (1) X51)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T79", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T73", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T80", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T74", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T75", "T80", "T74", "T79", "T73", "T76" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39", "X48", "X49", "X50", "X51", "X72", "X73", "X74", "X75", "X76" ], "exprvars": [ "T80", "T74", "T79", "T73" ] } }, "127": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T78 (+ (* (2) T73) (+ (* (2) T74) (- T86 (4)))))" }], "kb": { "nonunifying": [ [ "(distance T73 T74 T75 T76 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X36 X37 X36 X38 X39)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X48 X49 X50 (1) X51)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T75", "T74", "T73", "T76", "T86" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39", "X48", "X49", "X50", "X51" ], "exprvars": [] } }, "7": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_1) (is T18 (- T16 (+ (1) (1)))))" }, { "clause": 1, "scope": 1, "term": "(distance T14 T15 (1) T16 T5)" }, { "clause": 2, "scope": 1, "term": "(distance T14 T15 (1) T16 T5)" }, { "clause": 3, "scope": 1, "term": "(distance T14 T15 (1) T16 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T14 T15 (1) T16 T5)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T14", "T15", "T16" ], "free": [], "exprvars": [] } }, "106": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "8": { "goal": [ { "clause": 1, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 2, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 3, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" } ], "kb": { "nonunifying": [[ "(distance T1 T2 T3 T4 T5)", "(distance X12 X13 (1) X14 X15)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [ "X12", "X13", "X14", "X15" ], "exprvars": [] } }, "9": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T18 (- T16 (+ (1) (1))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T16"], "free": [], "exprvars": [] } }, "81": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T60 (+ (* (2) T56) (- (* (2) T57) (- T58 (+ (3) (1))))))" }], "kb": { "nonunifying": [ [ "(distance T56 T57 T58 (1) T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T56 T57 T58 (1) T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T56 T57 T58 (1) T5)", "(distance X36 X37 X36 X38 X39)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T56", "T57", "T58" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39" ], "exprvars": [] } }, "108": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X75 (- T76 (1))) (',' (distance T79 T80 T81 X75 X76) (is T78 (+ (* (2) T73) (+ (* (2) T74) (- X76 (4)))))))" }], "kb": { "nonunifying": [ [ "(distance T73 T74 T75 T76 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X36 X37 X36 X38 X39)" ], [ "(distance T73 T74 T75 T76 T5)", "(distance X48 X49 X50 (1) X51)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T79", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T73", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T80", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T74", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T81", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T75", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T81", "T75", "T80", "T74", "T79", "T73", "T76" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39", "X48", "X49", "X50", "X51", "X72", "X73", "X74", "X75", "X76" ], "exprvars": [ "T81", "T75", "T80", "T74", "T79", "T73" ] } }, "82": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "83": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [ [ "(distance T56 T57 T58 (1) T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T56 T57 T58 (1) T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T56 T57 T58 (1) T5)", "(distance X36 X37 X36 X38 X39)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T56", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T57", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T58", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "3" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [ "T58", "T57", "T56", "T61" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39" ], "exprvars": [ "T58", "T57", "T56", "T61" ] } }, "40": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T33", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T29", "type": "PlainIntegerVariable" }, { "arguments": [ { "name": "T30", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T30", "T29", "T33" ] } }, "84": { "goal": [], "kb": { "nonunifying": [ [ "(distance T56 T57 T58 (1) T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T56 T57 T58 (1) T5)", "(distance X24 X25 X26 X25 X27)" ], [ "(distance T56 T57 T58 (1) T5)", "(distance X36 X37 X36 X38 X39)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T58", "T57", "T56" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27", "X36", "X37", "X38", "X39" ], "exprvars": [ "T58", "T57", "T56" ] } }, "85": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T56", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T57", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T58", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "3" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T58", "T57", "T56", "T61" ] } }, "43": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_1) (is T46 (+ T42 (- (* (2) T43) (- T44 (+ (2) (1)))))))" }, { "clause": 3, "scope": 1, "term": "(distance T42 T43 T42 T44 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T42 T43 T42 T44 T5)" } ], "kb": { "nonunifying": [ [ "(distance T42 T43 T42 T44 T5)", "(distance X12 X13 (1) X14 X15)" ], [ "(distance T42 T43 T42 T44 T5)", "(distance X24 X25 X26 X25 X27)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T42", "T43", "T44" ], "free": [ "X12", "X13", "X14", "X15", "X24", "X25", "X26", "X27" ], "exprvars": [] } } }, "edges": [ { "from": 5, "to": 6, "label": "CASE" }, { "from": 6, "to": 7, "label": "EVAL with clause\ndistance(X12, X13, 1, X14, X15) :- ','(!_1, is(X15, -(X14, +(1, 1)))).\nand substitutionT1 -> T14,\nX12 -> T14,\nT2 -> T15,\nX13 -> T15,\nT3 -> 1,\nT4 -> T16,\nX14 -> T16,\nT5 -> T18,\nX15 -> T18,\nT17 -> T18" }, { "from": 6, "to": 8, "label": "EVAL-BACKTRACK" }, { "from": 7, "to": 9, "label": "CUT" }, { "from": 8, "to": 29, "label": "EVAL with clause\ndistance(X24, X25, X26, X25, X27) :- ','(!_1, is(X27, +(X25, -(X26, +(2, 1))))).\nand substitutionT1 -> T28,\nX24 -> T28,\nT2 -> T29,\nX25 -> T29,\nT3 -> T30,\nX26 -> T30,\nT4 -> T29,\nT5 -> T32,\nX27 -> T32,\nT31 -> T32" }, { "from": 8, "to": 31, "label": "EVAL-BACKTRACK" }, { "from": 9, "to": 10, "label": "IS ERROR" }, { "from": 9, "to": 22, "label": "\nT18 -> T19" }, { "from": 9, "to": 23, "label": "IS FAIL" }, { "from": 22, "to": 24, "label": "SUCCESS" }, { "from": 29, "to": 33, "label": "CUT" }, { "from": 31, "to": 43, "label": "EVAL with clause\ndistance(X36, X37, X36, X38, X39) :- ','(!_1, is(X39, +(X36, -(*(2, X37), -(X38, +(2, 1)))))).\nand substitutionT1 -> T42,\nX36 -> T42,\nT2 -> T43,\nX37 -> T43,\nT3 -> T42,\nT4 -> T44,\nX38 -> T44,\nT5 -> T46,\nX39 -> T46,\nT45 -> T46" }, { "from": 31, "to": 46, "label": "EVAL-BACKTRACK" }, { "from": 33, "to": 35, "label": "IS ERROR" }, { "from": 33, "to": 36, "label": "\nT32 -> T33" }, { "from": 33, "to": 38, "label": "IS FAIL" }, { "from": 36, "to": 40, "label": "SUCCESS" }, { "from": 43, "to": 52, "label": "CUT" }, { "from": 46, "to": 77, "label": "EVAL with clause\ndistance(X48, X49, X50, 1, X51) :- ','(!_1, is(X51, +(*(2, X48), -(*(2, X49), -(X50, +(3, 1)))))).\nand substitutionT1 -> T56,\nX48 -> T56,\nT2 -> T57,\nX49 -> T57,\nT3 -> T58,\nX50 -> T58,\nT4 -> 1,\nT5 -> T60,\nX51 -> T60,\nT59 -> T60" }, { "from": 46, "to": 78, "label": "EVAL-BACKTRACK" }, { "from": 52, "to": 54, "label": "IS ERROR" }, { "from": 52, "to": 55, "label": "\nT46 -> T47" }, { "from": 52, "to": 57, "label": "IS FAIL" }, { "from": 55, "to": 59, "label": "SUCCESS" }, { "from": 77, "to": 81, "label": "CUT" }, { "from": 78, "to": 101, "label": "ONLY EVAL with clause\ndistance(X67, X68, X69, X70, X71) :- ','(is(X72, -(X67, 2)), ','(is(X73, -(X68, 2)), ','(is(X74, -(X69, 1)), ','(is(X75, -(X70, 1)), ','(distance(X72, X73, X74, X75, X76), is(X71, +(*(2, X67), +(*(2, X68), -(X76, 4))))))))).\nand substitutionT1 -> T73,\nX67 -> T73,\nT2 -> T74,\nX68 -> T74,\nT3 -> T75,\nX69 -> T75,\nT4 -> T76,\nX70 -> T76,\nT5 -> T78,\nX71 -> T78,\nT77 -> T78" }, { "from": 81, "to": 82, "label": "IS ERROR" }, { "from": 81, "to": 83, "label": "\nT60 -> T61" }, { "from": 81, "to": 84, "label": "IS FAIL" }, { "from": 83, "to": 85, "label": "SUCCESS" }, { "from": 101, "to": 102, "label": "IS ERROR" }, { "from": 101, "to": 103, "label": "\nX72 -> T79" }, { "from": 103, "to": 104, "label": "IS ERROR" }, { "from": 103, "to": 105, "label": "\nX73 -> T80" }, { "from": 105, "to": 106, "label": "IS ERROR" }, { "from": 105, "to": 108, "label": "\nX74 -> T81" }, { "from": 108, "to": 110, "label": "IS ERROR" }, { "from": 108, "to": 112, "label": "\nX75 -> T82" }, { "from": 112, "to": 126, "label": "SPLIT 1" }, { "from": 112, "to": 127, "label": "SPLIT 2\nnew knowledge:\nT79 is ground\nT80 is ground\nT81 is ground\nT82 is ground\nT86 is ground\nreplacements:X76 -> T86" }, { "from": 126, "to": 5, "label": "INSTANCE with matching:\nT1 -> T79\nT2 -> T80\nT3 -> T81\nT4 -> T82\nT5 -> X76" }, { "from": 127, "to": 136, "label": "IS ERROR" }, { "from": 127, "to": 137, "label": "\nT78 -> T90" }, { "from": 127, "to": 138, "label": "IS FAIL" }, { "from": 137, "to": 139, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (244) Obligation: Rules: f127_in(T73, T74, T86, T75, T76) -> f136_in :|: TRUE f127_in(x, x1, x2, x3, x4) -> f137_in(x3, x2, x1, x5, x, x4) :|: x5 = 2 * x + (2 * x1 + (x2 - 4)) f137_out(x6, x7, x8, x9, x10, x11) -> f127_out(x10, x8, x7, x6, x11) :|: TRUE f127_in(x12, x13, x14, x15, x16) -> f138_in(x15, x14, x13, x12, x16) :|: !(x17 = 2 * x12 + (2 * x13 + (x14 - 4))) f138_out(x18, x19, x20, x21, x22) -> f127_out(x21, x20, x19, x18, x22) :|: TRUE f136_out -> f127_out(x23, x24, x25, x26, x27) :|: TRUE f46_out(T1, T2, T3, T4) -> f31_out(T1, T2, T3, T4) :|: TRUE f31_in(T42, T43, T42, T44) -> f43_in(T42, T43, T44) :|: TRUE f31_in(x28, x29, x30, x31) -> f46_in(x28, x29, x30, x31) :|: TRUE f43_out(x32, x33, x34) -> f31_out(x32, x33, x32, x34) :|: TRUE f110_out -> f108_out(x35, x36, x37, x38, x39, x40, x41) :|: TRUE f112_out(x42, x43, x44, x45, x46, x47, x48, x49) -> f108_out(x49, x42, x43, x44, x46, x47, x48) :|: TRUE f108_in(x50, x51, x52, x53, x54, x55, x56) -> f110_in :|: TRUE f108_in(x57, x58, x59, x60, x61, x62, x63) -> f112_in(x58, x59, x60, x64, x61, x62, x63, x57) :|: x64 = x57 - 1 f101_out(x65, x66, x67, x68) -> f78_out(x65, x66, x67, x68) :|: TRUE f78_in(x69, x70, x71, x72) -> f101_in(x69, x70, x71, x72) :|: TRUE f103_out(x73, x74, x75, x76, x77) -> f101_out(x77, x73, x74, x75) :|: TRUE f101_in(x78, x79, x80, x81) -> f102_in :|: TRUE f101_in(x82, x83, x84, x85) -> f103_in(x83, x84, x85, x86, x82) :|: x86 = x82 - 2 f102_out -> f101_out(x87, x88, x89, x90) :|: TRUE f126_in(T79, T80, T81, T82) -> f5_in(T79, T80, T81, T82) :|: TRUE f5_out(x91, x92, x93, x94) -> f126_out(x91, x92, x93, x94) :|: TRUE f8_in(x95, x96, x97, x98) -> f31_in(x95, x96, x97, x98) :|: TRUE f8_in(T28, T29, T30, T29) -> f29_in(T29, T30, T28) :|: TRUE f31_out(x99, x100, x101, x102) -> f8_out(x99, x100, x101, x102) :|: TRUE f29_out(x103, x104, x105) -> f8_out(x105, x103, x104, x103) :|: TRUE f137_in(x106, x107, x108, x109, x110, x111) -> f137_out(x106, x107, x108, x109, x110, x111) :|: TRUE f108_out(x112, x113, x114, x115, x116, x117, x118) -> f105_out(x118, x112, x113, x114, x116, x117) :|: TRUE f105_in(x119, x120, x121, x122, x123, x124) -> f106_in :|: TRUE f106_out -> f105_out(x125, x126, x127, x128, x129, x130) :|: TRUE f105_in(x131, x132, x133, x134, x135, x136) -> f108_in(x132, x133, x134, x137, x135, x136, x131) :|: x137 = x131 - 1 f7_out(T16, T14, T15) -> f6_out(T14, T15, 1, T16) :|: TRUE f6_in(x138, x139, x140, x141) -> f8_in(x138, x139, x140, x141) :|: TRUE f8_out(x142, x143, x144, x145) -> f6_out(x142, x143, x144, x145) :|: TRUE f6_in(x146, x147, 1, x148) -> f7_in(x148, x146, x147) :|: TRUE f78_out(x149, x150, x151, x152) -> f46_out(x149, x150, x151, x152) :|: TRUE f46_in(x153, x154, x155, x156) -> f78_in(x153, x154, x155, x156) :|: TRUE f46_in(T56, T57, T58, 1) -> f77_in(T56, T57, T58) :|: TRUE f77_out(x157, x158, x159) -> f46_out(x157, x158, x159, 1) :|: TRUE f103_in(x160, x161, x162, x163, x164) -> f104_in :|: TRUE f104_out -> f103_out(x165, x166, x167, x168, x169) :|: TRUE f105_out(x170, x171, x172, x173, x174, x175) -> f103_out(x175, x170, x171, x172, x174) :|: TRUE f103_in(x176, x177, x178, x179, x180) -> f105_in(x177, x178, x179, x181, x180, x176) :|: x181 = x176 - 2 f5_in(x182, x183, x184, x185) -> f6_in(x182, x183, x184, x185) :|: TRUE f6_out(x186, x187, x188, x189) -> f5_out(x186, x187, x188, x189) :|: TRUE f126_out(x190, x191, x192, x193) -> f127_in(x194, x195, x196, x197, x198) :|: TRUE f112_in(x199, x200, x201, x202, x203, x204, x205, x206) -> f126_in(x199, x200, x201, x202) :|: TRUE f127_out(x207, x208, x209, x210, x211) -> f112_out(x212, x213, x214, x215, x207, x208, x210, x211) :|: TRUE Start term: f5_in(T1, T2, T3, T4) ---------------------------------------- (245) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f31_in(x28, x29, x30, x31) -> f46_in(x28, x29, x30, x31) :|: TRUE f108_in(x57, x58, x59, x60, x61, x62, x63) -> f112_in(x58, x59, x60, x64, x61, x62, x63, x57) :|: x64 = x57 - 1 f78_in(x69, x70, x71, x72) -> f101_in(x69, x70, x71, x72) :|: TRUE f101_in(x82, x83, x84, x85) -> f103_in(x83, x84, x85, x86, x82) :|: x86 = x82 - 2 f126_in(T79, T80, T81, T82) -> f5_in(T79, T80, T81, T82) :|: TRUE f8_in(x95, x96, x97, x98) -> f31_in(x95, x96, x97, x98) :|: TRUE f105_in(x131, x132, x133, x134, x135, x136) -> f108_in(x132, x133, x134, x137, x135, x136, x131) :|: x137 = x131 - 1 f6_in(x138, x139, x140, x141) -> f8_in(x138, x139, x140, x141) :|: TRUE f46_in(x153, x154, x155, x156) -> f78_in(x153, x154, x155, x156) :|: TRUE f103_in(x176, x177, x178, x179, x180) -> f105_in(x177, x178, x179, x181, x180, x176) :|: x181 = x176 - 2 f5_in(x182, x183, x184, x185) -> f6_in(x182, x183, x184, x185) :|: TRUE f112_in(x199, x200, x201, x202, x203, x204, x205, x206) -> f126_in(x199, x200, x201, x202) :|: TRUE ---------------------------------------- (246) Obligation: Rules: f31_in(x28, x29, x30, x31) -> f46_in(x28, x29, x30, x31) :|: TRUE f108_in(x57, x58, x59, x60, x61, x62, x63) -> f112_in(x58, x59, x60, x64, x61, x62, x63, x57) :|: x64 = x57 - 1 f78_in(x69, x70, x71, x72) -> f101_in(x69, x70, x71, x72) :|: TRUE f101_in(x82, x83, x84, x85) -> f103_in(x83, x84, x85, x86, x82) :|: x86 = x82 - 2 f126_in(T79, T80, T81, T82) -> f5_in(T79, T80, T81, T82) :|: TRUE f8_in(x95, x96, x97, x98) -> f31_in(x95, x96, x97, x98) :|: TRUE f105_in(x131, x132, x133, x134, x135, x136) -> f108_in(x132, x133, x134, x137, x135, x136, x131) :|: x137 = x131 - 1 f6_in(x138, x139, x140, x141) -> f8_in(x138, x139, x140, x141) :|: TRUE f46_in(x153, x154, x155, x156) -> f78_in(x153, x154, x155, x156) :|: TRUE f103_in(x176, x177, x178, x179, x180) -> f105_in(x177, x178, x179, x181, x180, x176) :|: x181 = x176 - 2 f5_in(x182, x183, x184, x185) -> f6_in(x182, x183, x184, x185) :|: TRUE f112_in(x199, x200, x201, x202, x203, x204, x205, x206) -> f126_in(x199, x200, x201, x202) :|: TRUE ---------------------------------------- (247) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (248) Obligation: Rules: f126_in(T79:0, T80:0, T81:0, T82:0) -> f126_in(T79:0 - 2, T80:0 - 2, T81:0 - 1, T82:0 - 1) :|: TRUE ---------------------------------------- (249) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (250) Obligation: Rules: f126_in(T79:0, T80:0, T81:0, T82:0) -> f126_in(arith, arith1, arith2, arith3) :|: TRUE && arith = T79:0 - 2 && arith1 = T80:0 - 2 && arith2 = T81:0 - 1 && arith3 = T82:0 - 1 ---------------------------------------- (251) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f126_in(T79:0, T80:0, T81:0, T82:0) -> f126_in(arith, arith1, arith2, arith3) :|: TRUE && arith = T79:0 - 2 && arith1 = T80:0 - 2 && arith2 = T81:0 - 1 && arith3 = T82:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (252) Obligation: Termination digraph: Nodes: (1) f126_in(T79:0, T80:0, T81:0, T82:0) -> f126_in(arith, arith1, arith2, arith3) :|: TRUE && arith = T79:0 - 2 && arith1 = T80:0 - 2 && arith2 = T81:0 - 1 && arith3 = T82:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (253) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (254) Obligation: Rules: f126_in(T79:0:0, T80:0:0, T81:0:0, T82:0:0) -> f126_in(T79:0:0 - 2, T80:0:0 - 2, T81:0:0 - 1, T82:0:0 - 1) :|: TRUE ---------------------------------------- (255) IRSwTToIntTRSProof (SOUND) Applied path-length measure to transform intTRS with terms to intTRS. ---------------------------------------- (256) Obligation: Rules: f126_in(x, x1, x2, x3) -> f126_in(x - 2, x1 - 2, x2 - 1, x3 - 1) :|: TRUE ---------------------------------------- (257) IntTRSNonPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x, x1, x2, x3) -> f(1, x - 2, x1 - 2, x2 - 1, x3 - 1) :|: pc = 1 && TRUE Proved unsatisfiability of the following formula, indicating that the system is never left after entering: (((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1) + (1 * -2)) and run2_2 = ((run1_2 * 1) + (1 * -2)) and run2_3 = ((run1_3 * 1) + (1 * -1)) and run2_4 = ((run1_4 * 1) + (1 * -1))) and (((run1_0 * 1)) = ((1 * 1)) and T)) and !(((run2_0 * 1)) = ((1 * 1)) and T)) Proved satisfiability of the following formula, indicating that the system is entered at least once: ((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1) + (1 * -2)) and run2_2 = ((run1_2 * 1) + (1 * -2)) and run2_3 = ((run1_3 * 1) + (1 * -1)) and run2_4 = ((run1_4 * 1) + (1 * -1))) and (((run1_0 * 1)) = ((1 * 1)) and T)) ---------------------------------------- (258) NO ---------------------------------------- (259) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 2, "program": { "directives": [], "clauses": [ [ "(distance X1 X2 (1) J D)", "(',' (!) (is D (- J (+ (1) (1)))))" ], [ "(distance X3 M I M D)", "(',' (!) (is D (+ M (- I (+ (2) (1))))))" ], [ "(distance N M N J D)", "(',' (!) (is D (+ N (- (* (2) M) (- J (+ (2) (1)))))))" ], [ "(distance N M I (1) D)", "(',' (!) (is D (+ (* (2) N) (- (* (2) M) (- I (+ (3) (1)))))))" ], [ "(distance N M I J D)", "(',' (is N1 (- N (2))) (',' (is M1 (- M (2))) (',' (is I1 (- I (1))) (',' (is J1 (- J (1))) (',' (distance N1 M1 I1 J1 D1) (is D (+ (* (2) N) (+ (* (2) M) (- D1 (4))))))))))" ] ] }, "graph": { "nodes": { "44": { "goal": [ { "clause": 3, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" } ], "kb": { "nonunifying": [ [ "(distance T1 T2 T3 T4 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X24 X25 X24 X26 X27)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27" ], "exprvars": [] } }, "88": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X47 (- T52 (2))) (',' (is X48 (- T53 (1))) (',' (is X49 (- T54 (1))) (',' (distance T57 X47 X48 X49 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4)))))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }] }, "ground": [ "T53", "T52", "T57", "T51", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X46", "X47", "X48", "X49", "X50" ], "exprvars": [ "T57", "T51" ] } }, "89": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "47": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T34 (+ T30 (- (* (2) T31) (- T32 (+ (2) (1))))))" }], "kb": { "nonunifying": [ [ "(distance T30 T31 T30 T32 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T30 T31 T30 T32 T5)", "(distance X16 X17 X18 X17 X19)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T30", "T31", "T32" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19" ], "exprvars": [] } }, "48": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "49": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [ [ "(distance T30 T31 T30 T32 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T30 T31 T30 T32 T5)", "(distance X16 X17 X18 X17 X19)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T30", "type": "PlainIntegerVariable" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T31", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T32", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [ "T31", "T30", "T35", "T32" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19" ], "exprvars": [ "T31", "T30", "T35", "T32" ] } }, "type": "Nodes", "150": { "goal": [], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T89 T90 T89 T91 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T89 T90 T89 T91 X50)", "(distance X76 X77 X78 X77 X79)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T92", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T91", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [ "T92", "T53", "T91", "T52", "T90", "T51", "T89", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X95" ], "exprvars": [ "T92", "T53", "T58", "T90", "T51", "T91", "T52", "T57", "T89", "T60", "T54", "T59" ] } }, "151": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T92", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T91", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T93", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T51", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T52", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T92", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [], "free": [], "exprvars": [ "T92", "T53", "T58", "T90", "T51", "T91", "T52", "T57", "T89", "T60", "T93", "T54", "T59" ] } }, "152": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (!_2) (is X110 (+ (* (2) T100) (- (* (2) T101) (- T102 (+ (3) (1))))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X110 (4))))))" }, { "clause": 4, "scope": 2, "term": "(',' (distance T100 T101 T102 (1) X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" } ], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X91 X92 X91 X93 X94)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T52", "T51", "T54", "T100", "T101", "T102" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X110" ], "exprvars": [ "T53", "T58", "T52", "T100", "T57", "T51", "T101", "T60", "T54", "T102", "T59" ] } }, "153": { "goal": [{ "clause": 4, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T57 T58 T59 T60 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T57 T58 T59 T60 X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T57 T58 T59 T60 X50)", "(distance X91 X92 X91 X93 X94)" ], [ "(distance T57 T58 T59 T60 X50)", "(distance X106 X107 X108 (1) X109)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X106", "X107", "X108", "X109" ], "exprvars": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ] } }, "154": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X110 (+ (* (2) T100) (- (* (2) T101) (- T102 (+ (3) (1)))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X110 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X91 X92 X91 X93 X94)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T52", "T51", "T54", "T100", "T101", "T102" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X110" ], "exprvars": [ "T53", "T58", "T52", "T100", "T57", "T51", "T101", "T60", "T54", "T102", "T59" ] } }, "155": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T56 (+ (* (2) T51) (+ (* (2) T52) (- T103 (4)))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X91 X92 X91 X93 X94)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T103", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T100", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T101", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T102", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "3" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [ "T53", "T103", "T52", "T100", "T51", "T101", "T54", "T102" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X110" ], "exprvars": [ "T53", "T58", "T103", "T52", "T100", "T57", "T51", "T101", "T60", "T54", "T102", "T59" ] } }, "156": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X91 X92 X91 X93 X94)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T103", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T100", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T101", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T102", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "3" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T104", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T51", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T52", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T103", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [ "T104", "T53", "T103", "T52", "T100", "T51", "T101", "T54", "T102" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X110" ], "exprvars": [ "T53", "T58", "T103", "T100", "T51", "T102", "T104", "T52", "T57", "T101", "T60", "T54", "T59" ] } }, "157": { "goal": [], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T100 T101 T102 (1) X50)", "(distance X91 X92 X91 X93 X94)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T103", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T100", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T101", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T102", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "3" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [ "T53", "T103", "T52", "T100", "T51", "T101", "T54", "T102" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X110" ], "exprvars": [ "T53", "T58", "T103", "T100", "T51", "T102", "T52", "T57", "T101", "T60", "T54", "T59" ] } }, "158": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T103", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T100", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T101", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T102", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "3" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T104", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T51", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T52", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T103", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [], "free": [], "exprvars": [ "T53", "T58", "T103", "T100", "T51", "T102", "T104", "T52", "T57", "T101", "T60", "T54", "T59" ] } }, "159": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (is X133 (- T113 (2))) (',' (is X134 (- T114 (2))) (',' (is X135 (- T115 (1))) (',' (is X136 (- T116 (1))) (',' (distance X133 X134 X135 X136 X137) (is X138 (+ (* (2) T113) (+ (* (2) T114) (- X137 (4)))))))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X138 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X91 X92 X91 X93 X94)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X106 X107 X108 (1) X109)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T52", "T51", "T54", "T113", "T114", "T115", "T116" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X106", "X107", "X108", "X109", "X138", "X133", "X134", "X135", "X136", "X137" ], "exprvars": [ "T115", "T53", "T58", "T114", "T52", "T57", "T116", "T51", "T60", "T54", "T113", "T59" ] } }, "90": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X48 (- T53 (1))) (',' (is X49 (- T54 (1))) (',' (distance T57 T58 X48 X49 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T58", "T52", "T57", "T51", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X46", "X47", "X48", "X49", "X50" ], "exprvars": [ "T58", "T52", "T57", "T51" ] } }, "91": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "119": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (!_2) (is X65 (- T69 (+ (1) (1))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X65 (4))))))" }, { "clause": 1, "scope": 2, "term": "(',' (distance T67 T68 (1) T69 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 2, "scope": 2, "term": "(',' (distance T67 T68 (1) T69 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 3, "scope": 2, "term": "(',' (distance T67 T68 (1) T69 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 4, "scope": 2, "term": "(',' (distance T67 T68 (1) T69 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" } ], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T52", "T51", "T54", "T67", "T68", "T69" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X65" ], "exprvars": [ "T53", "T58", "T69", "T52", "T57", "T68", "T51", "T67", "T60", "T54", "T59" ] } }, "93": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X49 (- T54 (1))) (',' (distance T57 T58 T59 X49 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4)))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T58", "T52", "T57", "T51", "T54", "T59" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X46", "X47", "X48", "X49", "X50" ], "exprvars": [ "T53", "T58", "T52", "T57", "T51", "T59" ] } }, "50": { "goal": [], "kb": { "nonunifying": [ [ "(distance T30 T31 T30 T32 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T30 T31 T30 T32 T5)", "(distance X16 X17 X18 X17 X19)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T31", "T30", "T32" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19" ], "exprvars": [ "T31", "T30", "T32" ] } }, "95": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "53": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T30", "type": "PlainIntegerVariable" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T31", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T32", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T31", "T30", "T35", "T32" ] } }, "98": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X46", "X47", "X48", "X49", "X50" ], "exprvars": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ] } }, "12": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_1) (is T14 (- T12 (+ (1) (1)))))" }, { "clause": 1, "scope": 1, "term": "(distance T10 T11 (1) T12 T5)" }, { "clause": 2, "scope": 1, "term": "(distance T10 T11 (1) T12 T5)" }, { "clause": 3, "scope": 1, "term": "(distance T10 T11 (1) T12 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T10 T11 (1) T12 T5)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T10", "T11", "T12" ], "free": [], "exprvars": [] } }, "16": { "goal": [ { "clause": 1, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 2, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 3, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" } ], "kb": { "nonunifying": [[ "(distance T1 T2 T3 T4 T5)", "(distance X8 X9 (1) X10 X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [ "X8", "X9", "X10", "X11" ], "exprvars": [] } }, "17": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T14 (- T12 (+ (1) (1))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T12"], "free": [], "exprvars": [] } }, "18": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "160": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (is X134 (- T114 (2))) (',' (is X135 (- T115 (1))) (',' (is X136 (- T116 (1))) (',' (distance T117 X134 X135 X136 X137) (is X138 (+ (* (2) T113) (+ (* (2) T114) (- X137 (4))))))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X138 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X91 X92 X91 X93 X94)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X106 X107 X108 (1) X109)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T113", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T115", "T53", "T114", "T52", "T116", "T51", "T117", "T54", "T113" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X106", "X107", "X108", "X109", "X138", "X133", "X134", "X135", "X136", "X137" ], "exprvars": [ "T53", "T58", "T114", "T116", "T51", "T113", "T115", "T52", "T57", "T117", "T60", "T54", "T59" ] } }, "161": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (is X135 (- T115 (1))) (',' (is X136 (- T116 (1))) (',' (distance T117 T118 X135 X136 X137) (is X138 (+ (* (2) T113) (+ (* (2) T114) (- X137 (4)))))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X138 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X91 X92 X91 X93 X94)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X106 X107 X108 (1) X109)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T113", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T118", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T114", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T115", "T53", "T114", "T52", "T116", "T51", "T117", "T54", "T113", "T118" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X106", "X107", "X108", "X109", "X138", "X133", "X134", "X135", "X136", "X137" ], "exprvars": [ "T53", "T58", "T114", "T116", "T51", "T113", "T118", "T115", "T52", "T57", "T117", "T60", "T54", "T59" ] } }, "162": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (is X136 (- T116 (1))) (',' (distance T117 T118 T119 X136 X137) (is X138 (+ (* (2) T113) (+ (* (2) T114) (- X137 (4))))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X138 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X91 X92 X91 X93 X94)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X106 X107 X108 (1) X109)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T113", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T118", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T114", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T119", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T115", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T115", "T53", "T114", "T52", "T116", "T51", "T117", "T119", "T54", "T113", "T118" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X106", "X107", "X108", "X109", "X138", "X133", "X134", "X135", "X136", "X137" ], "exprvars": [ "T53", "T58", "T114", "T116", "T51", "T113", "T118", "T115", "T52", "T57", "T117", "T119", "T60", "T54", "T59" ] } }, "163": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (distance T117 T118 T119 T120 X137) (is X138 (+ (* (2) T113) (+ (* (2) T114) (- X137 (4)))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X138 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X91 X92 X91 X93 X94)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X106 X107 X108 (1) X109)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T113", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T118", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T114", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T119", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T115", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T120", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T116", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T115", "T53", "T120", "T114", "T52", "T116", "T51", "T117", "T119", "T54", "T113", "T118" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X106", "X107", "X108", "X109", "X138", "X133", "X134", "X135", "X136", "X137" ], "exprvars": [ "T53", "T58", "T120", "T114", "T116", "T51", "T113", "T118", "T115", "T52", "T57", "T117", "T119", "T60", "T54", "T59" ] } }, "120": { "goal": [ { "clause": 1, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 2, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 3, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 4, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" } ], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T57 T58 T59 T60 X50)", "(distance X61 X62 (1) X63 X64)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64" ], "exprvars": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ] } }, "164": { "goal": [{ "clause": -1, "scope": -1, "term": "(distance T117 T118 T119 T120 X137)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T113", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T118", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T114", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T119", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T115", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T120", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T116", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T120", "T117", "T119", "T118" ], "free": ["X137"], "exprvars": [ "T53", "T58", "T120", "T114", "T116", "T51", "T113", "T118", "T115", "T52", "T57", "T117", "T119", "T60", "T54", "T59" ] } }, "121": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X65 (- T69 (+ (1) (1)))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X65 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T52", "T51", "T54", "T69" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X65" ], "exprvars": [ "T53", "T58", "T69", "T52", "T57", "T68", "T51", "T67", "T60", "T54", "T59" ] } }, "165": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X138 (+ (* (2) T113) (+ (* (2) T114) (- T124 (4))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X138 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X91 X92 X91 X93 X94)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X106 X107 X108 (1) X109)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T115", "T53", "T114", "T52", "T116", "T51", "T54", "T113", "T124" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X106", "X107", "X108", "X109", "X138" ], "exprvars": [] } }, "122": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T56 (+ (* (2) T51) (+ (* (2) T52) (- T70 (4)))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T69", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "1" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T70", "T53", "T69", "T52", "T51", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X65" ], "exprvars": [ "T70", "T53", "T58", "T69", "T52", "T57", "T68", "T51", "T67", "T60", "T54", "T59" ] } }, "166": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(distance T1 T2 T3 T4 T5)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [], "exprvars": [] } }, "123": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T69", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "1" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T51", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T52", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T70", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [ "T70", "T53", "T69", "T52", "T51", "T71", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X65" ], "exprvars": [ "T70", "T53", "T58", "T69", "T51", "T52", "T57", "T68", "T67", "T60", "T71", "T54", "T59" ] } }, "167": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T56 (+ (* (2) T51) (+ (* (2) T52) (- T128 (4)))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X91 X92 X91 X93 X94)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X106 X107 X108 (1) X109)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T128", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T113", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T114", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T124", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [ "T115", "T53", "T114", "T52", "T116", "T51", "T128", "T54", "T113", "T124" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X106", "X107", "X108", "X109", "X138" ], "exprvars": [ "T114", "T128", "T113", "T124" ] } }, "3": { "goal": [ { "clause": 0, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 1, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 2, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 3, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [], "exprvars": [] } }, "124": { "goal": [], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T69", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "1" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T70", "T53", "T69", "T52", "T51", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X65" ], "exprvars": [ "T70", "T53", "T58", "T69", "T51", "T52", "T57", "T68", "T67", "T60", "T54", "T59" ] } }, "168": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "125": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T69", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "1" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T51", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T52", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T70", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [], "free": [], "exprvars": [ "T70", "T53", "T58", "T69", "T51", "T52", "T57", "T68", "T67", "T60", "T71", "T54", "T59" ] } }, "169": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X91 X92 X91 X93 X94)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X106 X107 X108 (1) X109)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T128", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T113", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T114", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T124", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T129", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T51", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T52", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T128", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [ "T115", "T53", "T114", "T52", "T116", "T51", "T128", "T54", "T113", "T124", "T129" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X106", "X107", "X108", "X109", "X138" ], "exprvars": [ "T114", "T52", "T51", "T128", "T113", "T124", "T129" ] } }, "128": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (!_2) (is X80 (+ T79 (- T80 (+ (2) (1)))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X80 (4))))))" }, { "clause": 2, "scope": 2, "term": "(',' (distance T78 T79 T80 T79 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 3, "scope": 2, "term": "(',' (distance T78 T79 T80 T79 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 4, "scope": 2, "term": "(',' (distance T78 T79 T80 T79 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" } ], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T78 T79 T80 T79 X50)", "(distance X61 X62 (1) X63 X64)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T52", "T51", "T54", "T78", "T79", "T80" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X80" ], "exprvars": [ "T53", "T58", "T80", "T52", "T57", "T79", "T51", "T78", "T60", "T54", "T59" ] } }, "129": { "goal": [ { "clause": 2, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 3, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 4, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" } ], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T57 T58 T59 T60 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T57 T58 T59 T60 X50)", "(distance X76 X77 X78 X77 X79)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79" ], "exprvars": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ] } }, "63": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_1) (is T44 (+ (* (2) T40) (- (* (2) T41) (- T42 (+ (3) (1)))))))" }, { "clause": 4, "scope": 1, "term": "(distance T40 T41 T42 (1) T5)" } ], "kb": { "nonunifying": [ [ "(distance T40 T41 T42 (1) T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T40 T41 T42 (1) T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T40 T41 T42 (1) T5)", "(distance X24 X25 X24 X26 X27)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T40", "T41", "T42" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27" ], "exprvars": [] } }, "20": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T12", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "1" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }] }, "ground": [ "T12", "T15" ], "free": [], "exprvars": [ "T12", "T15" ] } }, "65": { "goal": [{ "clause": 4, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }], "kb": { "nonunifying": [ [ "(distance T1 T2 T3 T4 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35" ], "exprvars": [] } }, "68": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T44 (+ (* (2) T40) (- (* (2) T41) (- T42 (+ (3) (1))))))" }], "kb": { "nonunifying": [ [ "(distance T40 T41 T42 (1) T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T40 T41 T42 (1) T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T40 T41 T42 (1) T5)", "(distance X24 X25 X24 X26 X27)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T40", "T41", "T42" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27" ], "exprvars": [] } }, "26": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T12"], "free": [], "exprvars": ["T12"] } }, "27": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T12", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "1" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T12", "T15" ] } }, "28": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_1) (is T24 (+ T21 (- T22 (+ (2) (1))))))" }, { "clause": 2, "scope": 1, "term": "(distance T20 T21 T22 T21 T5)" }, { "clause": 3, "scope": 1, "term": "(distance T20 T21 T22 T21 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T20 T21 T22 T21 T5)" } ], "kb": { "nonunifying": [[ "(distance T20 T21 T22 T21 T5)", "(distance X8 X9 (1) X10 X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T20", "T21", "T22" ], "free": [ "X8", "X9", "X10", "X11" ], "exprvars": [] } }, "170": { "goal": [], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X91 X92 X91 X93 X94)" ], [ "(distance T113 T114 T115 T116 X50)", "(distance X106 X107 X108 (1) X109)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T128", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T113", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T114", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T124", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [ "T115", "T53", "T114", "T52", "T116", "T51", "T128", "T54", "T113", "T124" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94", "X106", "X107", "X108", "X109", "X138" ], "exprvars": [ "T114", "T52", "T51", "T128", "T113", "T124" ] } }, "171": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T128", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T113", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T114", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T124", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T129", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T51", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T52", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T128", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [], "free": [], "exprvars": [ "T114", "T52", "T51", "T128", "T113", "T124", "T129" ] } }, "130": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X80 (+ T79 (- T80 (+ (2) (1))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X80 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T78 T79 T80 T79 X50)", "(distance X61 X62 (1) X63 X64)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T52", "T51", "T54", "T78", "T79", "T80" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X80" ], "exprvars": [ "T53", "T58", "T80", "T52", "T57", "T79", "T51", "T78", "T60", "T54", "T59" ] } }, "131": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T56 (+ (* (2) T51) (+ (* (2) T52) (- T81 (4)))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T78 T79 T80 T79 X50)", "(distance X61 X62 (1) X63 X64)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T81", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T79", "type": "PlainIntegerVariable" }, { "arguments": [ { "name": "T80", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [ "T81", "T53", "T80", "T52", "T79", "T51", "T78", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X80" ], "exprvars": [ "T81", "T53", "T58", "T80", "T52", "T57", "T79", "T51", "T78", "T60", "T54", "T59" ] } }, "132": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T78 T79 T80 T79 X50)", "(distance X61 X62 (1) X63 X64)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T81", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T79", "type": "PlainIntegerVariable" }, { "arguments": [ { "name": "T80", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T82", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T51", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T52", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T81", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [ "T81", "T53", "T80", "T52", "T79", "T51", "T78", "T82", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X80" ], "exprvars": [ "T81", "T53", "T58", "T51", "T80", "T52", "T57", "T79", "T78", "T60", "T82", "T54", "T59" ] } }, "133": { "goal": [], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T78 T79 T80 T79 X50)", "(distance X61 X62 (1) X63 X64)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T81", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T79", "type": "PlainIntegerVariable" }, { "arguments": [ { "name": "T80", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [ "T81", "T53", "T80", "T52", "T79", "T51", "T78", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X80" ], "exprvars": [ "T81", "T53", "T58", "T51", "T80", "T52", "T57", "T79", "T78", "T60", "T54", "T59" ] } }, "134": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T81", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T79", "type": "PlainIntegerVariable" }, { "arguments": [ { "name": "T80", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T82", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T51", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T52", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T81", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [], "free": [], "exprvars": [ "T81", "T53", "T58", "T51", "T80", "T52", "T57", "T79", "T78", "T60", "T82", "T54", "T59" ] } }, "70": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "73": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [ [ "(distance T40 T41 T42 (1) T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T40 T41 T42 (1) T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T40 T41 T42 (1) T5)", "(distance X24 X25 X24 X26 X27)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T45", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T40", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T41", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T42", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "3" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [ "T42", "T41", "T40", "T45" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27" ], "exprvars": [ "T42", "T41", "T40", "T45" ] } }, "30": { "goal": [ { "clause": 2, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 3, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T1 T2 T3 T4 T5)" } ], "kb": { "nonunifying": [ [ "(distance T1 T2 T3 T4 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T1 T2 T3 T4 T5)", "(distance X16 X17 X18 X17 X19)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T4", "T1", "T2", "T3" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19" ], "exprvars": [] } }, "74": { "goal": [], "kb": { "nonunifying": [ [ "(distance T40 T41 T42 (1) T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T40 T41 T42 (1) T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T40 T41 T42 (1) T5)", "(distance X24 X25 X24 X26 X27)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T42", "T41", "T40" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27" ], "exprvars": [ "T42", "T41", "T40" ] } }, "32": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T24 (+ T21 (- T22 (+ (2) (1)))))" }], "kb": { "nonunifying": [[ "(distance T20 T21 T22 T21 T5)", "(distance X8 X9 (1) X10 X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T20", "T21", "T22" ], "free": [ "X8", "X9", "X10", "X11" ], "exprvars": [] } }, "76": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T45", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T40", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T41", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T42", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "3" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T42", "T41", "T40", "T45" ] } }, "34": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "37": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [[ "(distance T20 T21 T22 T21 T5)", "(distance X8 X9 (1) X10 X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T21", "type": "PlainIntegerVariable" }, { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [ "T20", "T25", "T22", "T21" ], "free": [ "X8", "X9", "X10", "X11" ], "exprvars": [ "T25", "T22", "T21" ] } }, "39": { "goal": [], "kb": { "nonunifying": [[ "(distance T20 T21 T22 T21 T5)", "(distance X8 X9 (1) X10 X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T20", "T22", "T21" ], "free": [ "X8", "X9", "X10", "X11" ], "exprvars": [ "T22", "T21" ] } }, "100": { "goal": [ { "clause": 0, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 1, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 2, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 3, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 4, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" } ], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50" ], "exprvars": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ] } }, "145": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (!_2) (is X95 (+ T89 (- (* (2) T90) (- T91 (+ (2) (1))))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X95 (4))))))" }, { "clause": 3, "scope": 2, "term": "(',' (distance T89 T90 T89 T91 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 4, "scope": 2, "term": "(',' (distance T89 T90 T89 T91 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" } ], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T89 T90 T89 T91 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T89 T90 T89 T91 X50)", "(distance X76 X77 X78 X77 X79)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T52", "T51", "T54", "T89", "T90", "T91" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X95" ], "exprvars": [ "T53", "T58", "T91", "T52", "T57", "T90", "T51", "T89", "T60", "T54", "T59" ] } }, "146": { "goal": [ { "clause": 3, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" }, { "clause": 4, "scope": 2, "term": "(',' (distance T57 T58 T59 T60 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))" } ], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T57 T58 T59 T60 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T57 T58 T59 T60 X50)", "(distance X76 X77 X78 X77 X79)" ], [ "(distance T57 T58 T59 T60 X50)", "(distance X91 X92 X91 X93 X94)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X91", "X92", "X93", "X94" ], "exprvars": [ "T53", "T58", "T52", "T57", "T51", "T60", "T54", "T59" ] } }, "147": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X95 (+ T89 (- (* (2) T90) (- T91 (+ (2) (1)))))) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X95 (4))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T89 T90 T89 T91 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T89 T90 T89 T91 X50)", "(distance X76 X77 X78 X77 X79)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" } ] }, "ground": [ "T53", "T52", "T51", "T54", "T89", "T90", "T91" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X95" ], "exprvars": [ "T53", "T58", "T91", "T52", "T57", "T90", "T51", "T89", "T60", "T54", "T59" ] } }, "148": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T56 (+ (* (2) T51) (+ (* (2) T52) (- T92 (4)))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T89 T90 T89 T91 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T89 T90 T89 T91 X50)", "(distance X76 X77 X78 X77 X79)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T92", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T91", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [ "T92", "T53", "T91", "T52", "T90", "T51", "T89", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X95" ], "exprvars": [ "T92", "T53", "T58", "T91", "T52", "T57", "T90", "T51", "T89", "T60", "T54", "T59" ] } }, "149": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ], [ "(distance T89 T90 T89 T91 X50)", "(distance X61 X62 (1) X63 X64)" ], [ "(distance T89 T90 T89 T91 X50)", "(distance X76 X77 X78 X77 X79)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T58", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T59", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T60", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T51", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T52", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "2" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T53", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T54", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T92", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T91", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T93", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T51", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T52", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, { "arguments": [ { "name": "T92", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "4" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" } ] }, "ground": [ "T92", "T53", "T91", "T52", "T90", "T51", "T89", "T93", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X50", "X61", "X62", "X63", "X64", "X76", "X77", "X78", "X79", "X95" ], "exprvars": [ "T92", "T53", "T58", "T90", "T51", "T91", "T52", "T57", "T89", "T60", "T93", "T54", "T59" ] } }, "80": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X46 (- T51 (2))) (',' (is X47 (- T52 (2))) (',' (is X48 (- T53 (1))) (',' (is X49 (- T54 (1))) (',' (distance X46 X47 X48 X49 X50) (is T56 (+ (* (2) T51) (+ (* (2) T52) (- X50 (4))))))))))" }], "kb": { "nonunifying": [ [ "(distance T51 T52 T53 T54 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X16 X17 X18 X17 X19)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X24 X25 X24 X26 X27)" ], [ "(distance T51 T52 T53 T54 T5)", "(distance X32 X33 X34 (1) X35)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T51", "T52", "T53", "T54" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19", "X24", "X25", "X26", "X27", "X32", "X33", "X34", "X35", "X46", "X47", "X48", "X49", "X50" ], "exprvars": [] } }, "41": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T21", "type": "PlainIntegerVariable" }, { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" } ], "type": "PlainIntegerOperation", "operation": "-" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T25", "T22", "T21" ] } }, "42": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_1) (is T34 (+ T30 (- (* (2) T31) (- T32 (+ (2) (1)))))))" }, { "clause": 3, "scope": 1, "term": "(distance T30 T31 T30 T32 T5)" }, { "clause": 4, "scope": 1, "term": "(distance T30 T31 T30 T32 T5)" } ], "kb": { "nonunifying": [ [ "(distance T30 T31 T30 T32 T5)", "(distance X8 X9 (1) X10 X11)" ], [ "(distance T30 T31 T30 T32 T5)", "(distance X16 X17 X18 X17 X19)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T30", "T31", "T32" ], "free": [ "X8", "X9", "X10", "X11", "X16", "X17", "X18", "X19" ], "exprvars": [] } }, "86": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 2, "to": 3, "label": "CASE" }, { "from": 3, "to": 12, "label": "EVAL with clause\ndistance(X8, X9, 1, X10, X11) :- ','(!_1, is(X11, -(X10, +(1, 1)))).\nand substitutionT1 -> T10,\nX8 -> T10,\nT2 -> T11,\nX9 -> T11,\nT3 -> 1,\nT4 -> T12,\nX10 -> T12,\nT5 -> T14,\nX11 -> T14,\nT13 -> T14" }, { "from": 3, "to": 16, "label": "EVAL-BACKTRACK" }, { "from": 12, "to": 17, "label": "CUT" }, { "from": 16, "to": 28, "label": "EVAL with clause\ndistance(X16, X17, X18, X17, X19) :- ','(!_1, is(X19, +(X17, -(X18, +(2, 1))))).\nand substitutionT1 -> T20,\nX16 -> T20,\nT2 -> T21,\nX17 -> T21,\nT3 -> T22,\nX18 -> T22,\nT4 -> T21,\nT5 -> T24,\nX19 -> T24,\nT23 -> T24" }, { "from": 16, "to": 30, "label": "EVAL-BACKTRACK" }, { "from": 17, "to": 18, "label": "IS ERROR" }, { "from": 17, "to": 20, "label": "\nT14 -> T15" }, { "from": 17, "to": 26, "label": "IS FAIL" }, { "from": 20, "to": 27, "label": "SUCCESS" }, { "from": 28, "to": 32, "label": "CUT" }, { "from": 30, "to": 42, "label": "EVAL with clause\ndistance(X24, X25, X24, X26, X27) :- ','(!_1, is(X27, +(X24, -(*(2, X25), -(X26, +(2, 1)))))).\nand substitutionT1 -> T30,\nX24 -> T30,\nT2 -> T31,\nX25 -> T31,\nT3 -> T30,\nT4 -> T32,\nX26 -> T32,\nT5 -> T34,\nX27 -> T34,\nT33 -> T34" }, { "from": 30, "to": 44, "label": "EVAL-BACKTRACK" }, { "from": 32, "to": 34, "label": "IS ERROR" }, { "from": 32, "to": 37, "label": "\nT24 -> T25" }, { "from": 32, "to": 39, "label": "IS FAIL" }, { "from": 37, "to": 41, "label": "SUCCESS" }, { "from": 42, "to": 47, "label": "CUT" }, { "from": 44, "to": 63, "label": "EVAL with clause\ndistance(X32, X33, X34, 1, X35) :- ','(!_1, is(X35, +(*(2, X32), -(*(2, X33), -(X34, +(3, 1)))))).\nand substitutionT1 -> T40,\nX32 -> T40,\nT2 -> T41,\nX33 -> T41,\nT3 -> T42,\nX34 -> T42,\nT4 -> 1,\nT5 -> T44,\nX35 -> T44,\nT43 -> T44" }, { "from": 44, "to": 65, "label": "EVAL-BACKTRACK" }, { "from": 47, "to": 48, "label": "IS ERROR" }, { "from": 47, "to": 49, "label": "\nT34 -> T35" }, { "from": 47, "to": 50, "label": "IS FAIL" }, { "from": 49, "to": 53, "label": "SUCCESS" }, { "from": 63, "to": 68, "label": "CUT" }, { "from": 65, "to": 80, "label": "ONLY EVAL with clause\ndistance(X41, X42, X43, X44, X45) :- ','(is(X46, -(X41, 2)), ','(is(X47, -(X42, 2)), ','(is(X48, -(X43, 1)), ','(is(X49, -(X44, 1)), ','(distance(X46, X47, X48, X49, X50), is(X45, +(*(2, X41), +(*(2, X42), -(X50, 4))))))))).\nand substitutionT1 -> T51,\nX41 -> T51,\nT2 -> T52,\nX42 -> T52,\nT3 -> T53,\nX43 -> T53,\nT4 -> T54,\nX44 -> T54,\nT5 -> T56,\nX45 -> T56,\nT55 -> T56" }, { "from": 68, "to": 70, "label": "IS ERROR" }, { "from": 68, "to": 73, "label": "\nT44 -> T45" }, { "from": 68, "to": 74, "label": "IS FAIL" }, { "from": 73, "to": 76, "label": "SUCCESS" }, { "from": 80, "to": 86, "label": "IS ERROR" }, { "from": 80, "to": 88, "label": "\nX46 -> T57" }, { "from": 88, "to": 89, "label": "IS ERROR" }, { "from": 88, "to": 90, "label": "\nX47 -> T58" }, { "from": 90, "to": 91, "label": "IS ERROR" }, { "from": 90, "to": 93, "label": "\nX48 -> T59" }, { "from": 93, "to": 95, "label": "IS ERROR" }, { "from": 93, "to": 98, "label": "\nX49 -> T60" }, { "from": 98, "to": 100, "label": "CASE" }, { "from": 100, "to": 119, "label": "EVAL with clause\ndistance(X61, X62, 1, X63, X64) :- ','(!_2, is(X64, -(X63, +(1, 1)))).\nand substitutionT57 -> T67,\nX61 -> T67,\nT58 -> T68,\nX62 -> T68,\nT59 -> 1,\nT60 -> T69,\nX63 -> T69,\nX50 -> X65,\nX64 -> X65" }, { "from": 100, "to": 120, "label": "EVAL-BACKTRACK" }, { "from": 119, "to": 121, "label": "CUT" }, { "from": 120, "to": 128, "label": "EVAL with clause\ndistance(X76, X77, X78, X77, X79) :- ','(!_2, is(X79, +(X77, -(X78, +(2, 1))))).\nand substitutionT57 -> T78,\nX76 -> T78,\nT58 -> T79,\nX77 -> T79,\nT59 -> T80,\nX78 -> T80,\nT60 -> T79,\nX50 -> X80,\nX79 -> X80" }, { "from": 120, "to": 129, "label": "EVAL-BACKTRACK" }, { "from": 121, "to": 122, "label": "\nX65 -> T70" }, { "from": 122, "to": 123, "label": "\nT56 -> T71" }, { "from": 122, "to": 124, "label": "IS FAIL" }, { "from": 123, "to": 125, "label": "SUCCESS" }, { "from": 128, "to": 130, "label": "CUT" }, { "from": 129, "to": 145, "label": "EVAL with clause\ndistance(X91, X92, X91, X93, X94) :- ','(!_2, is(X94, +(X91, -(*(2, X92), -(X93, +(2, 1)))))).\nand substitutionT57 -> T89,\nX91 -> T89,\nT58 -> T90,\nX92 -> T90,\nT59 -> T89,\nT60 -> T91,\nX93 -> T91,\nX50 -> X95,\nX94 -> X95" }, { "from": 129, "to": 146, "label": "EVAL-BACKTRACK" }, { "from": 130, "to": 131, "label": "\nX80 -> T81" }, { "from": 131, "to": 132, "label": "\nT56 -> T82" }, { "from": 131, "to": 133, "label": "IS FAIL" }, { "from": 132, "to": 134, "label": "SUCCESS" }, { "from": 145, "to": 147, "label": "CUT" }, { "from": 146, "to": 152, "label": "EVAL with clause\ndistance(X106, X107, X108, 1, X109) :- ','(!_2, is(X109, +(*(2, X106), -(*(2, X107), -(X108, +(3, 1)))))).\nand substitutionT57 -> T100,\nX106 -> T100,\nT58 -> T101,\nX107 -> T101,\nT59 -> T102,\nX108 -> T102,\nT60 -> 1,\nX50 -> X110,\nX109 -> X110" }, { "from": 146, "to": 153, "label": "EVAL-BACKTRACK" }, { "from": 147, "to": 148, "label": "\nX95 -> T92" }, { "from": 148, "to": 149, "label": "\nT56 -> T93" }, { "from": 148, "to": 150, "label": "IS FAIL" }, { "from": 149, "to": 151, "label": "SUCCESS" }, { "from": 152, "to": 154, "label": "CUT" }, { "from": 153, "to": 159, "label": "ONLY EVAL with clause\ndistance(X128, X129, X130, X131, X132) :- ','(is(X133, -(X128, 2)), ','(is(X134, -(X129, 2)), ','(is(X135, -(X130, 1)), ','(is(X136, -(X131, 1)), ','(distance(X133, X134, X135, X136, X137), is(X132, +(*(2, X128), +(*(2, X129), -(X137, 4))))))))).\nand substitutionT57 -> T113,\nX128 -> T113,\nT58 -> T114,\nX129 -> T114,\nT59 -> T115,\nX130 -> T115,\nT60 -> T116,\nX131 -> T116,\nX50 -> X138,\nX132 -> X138" }, { "from": 154, "to": 155, "label": "\nX110 -> T103" }, { "from": 155, "to": 156, "label": "\nT56 -> T104" }, { "from": 155, "to": 157, "label": "IS FAIL" }, { "from": 156, "to": 158, "label": "SUCCESS" }, { "from": 159, "to": 160, "label": "\nX133 -> T117" }, { "from": 160, "to": 161, "label": "\nX134 -> T118" }, { "from": 161, "to": 162, "label": "\nX135 -> T119" }, { "from": 162, "to": 163, "label": "\nX136 -> T120" }, { "from": 163, "to": 164, "label": "SPLIT 1" }, { "from": 163, "to": 165, "label": "SPLIT 2\nnew knowledge:\nT117 is ground\nT118 is ground\nT119 is ground\nT120 is ground\nT124 is ground\nreplacements:X137 -> T124" }, { "from": 164, "to": 2, "label": "INSTANCE with matching:\nT1 -> T117\nT2 -> T118\nT3 -> T119\nT4 -> T120\nT5 -> X137" }, { "from": 165, "to": 166, "label": "IS ERROR" }, { "from": 165, "to": 167, "label": "\nX138 -> T128" }, { "from": 167, "to": 168, "label": "IS ERROR" }, { "from": 167, "to": 169, "label": "\nT56 -> T129" }, { "from": 167, "to": 170, "label": "IS FAIL" }, { "from": 169, "to": 171, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (260) Obligation: Triples: distanceA(X1, X2, X3, X4, X5) :- distanceA(X6, X7, X8, X9, X10). Clauses: distancecA(X1, X2, 1, X3, X4). distancecA(X1, X2, X3, X2, X4). distancecA(X1, X2, X1, X3, X4). distancecA(X1, X2, X3, 1, X4). distancecA(X1, X2, X3, X4, X5). distancecA(X1, X2, X3, X4, X5). distancecA(X1, X2, X3, X4, X5). distancecA(X1, X2, X3, X4, X5). distancecA(X1, X2, X3, X4, X5) :- distancecA(X6, X7, X8, X9, X10). Afs: distanceA(x1, x2, x3, x4, x5) = distanceA(x1, x2, x3, x4) ---------------------------------------- (261) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: distanceA_in_5: (b,b,b,b,f) (f,f,f,f,f) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: DISTANCEA_IN_GGGGA(X1, X2, X3, X4, X5) -> U1_GGGGA(X1, X2, X3, X4, X5, distanceA_in_aaaaa(X6, X7, X8, X9, X10)) DISTANCEA_IN_GGGGA(X1, X2, X3, X4, X5) -> DISTANCEA_IN_AAAAA(X6, X7, X8, X9, X10) DISTANCEA_IN_AAAAA(X1, X2, X3, X4, X5) -> U1_AAAAA(X1, X2, X3, X4, X5, distanceA_in_aaaaa(X6, X7, X8, X9, X10)) DISTANCEA_IN_AAAAA(X1, X2, X3, X4, X5) -> DISTANCEA_IN_AAAAA(X6, X7, X8, X9, X10) R is empty. The argument filtering Pi contains the following mapping: distanceA_in_aaaaa(x1, x2, x3, x4, x5) = distanceA_in_aaaaa DISTANCEA_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCEA_IN_GGGGA(x1, x2, x3, x4) U1_GGGGA(x1, x2, x3, x4, x5, x6) = U1_GGGGA(x1, x2, x3, x4, x6) DISTANCEA_IN_AAAAA(x1, x2, x3, x4, x5) = DISTANCEA_IN_AAAAA U1_AAAAA(x1, x2, x3, x4, x5, x6) = U1_AAAAA(x6) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (262) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCEA_IN_GGGGA(X1, X2, X3, X4, X5) -> U1_GGGGA(X1, X2, X3, X4, X5, distanceA_in_aaaaa(X6, X7, X8, X9, X10)) DISTANCEA_IN_GGGGA(X1, X2, X3, X4, X5) -> DISTANCEA_IN_AAAAA(X6, X7, X8, X9, X10) DISTANCEA_IN_AAAAA(X1, X2, X3, X4, X5) -> U1_AAAAA(X1, X2, X3, X4, X5, distanceA_in_aaaaa(X6, X7, X8, X9, X10)) DISTANCEA_IN_AAAAA(X1, X2, X3, X4, X5) -> DISTANCEA_IN_AAAAA(X6, X7, X8, X9, X10) R is empty. The argument filtering Pi contains the following mapping: distanceA_in_aaaaa(x1, x2, x3, x4, x5) = distanceA_in_aaaaa DISTANCEA_IN_GGGGA(x1, x2, x3, x4, x5) = DISTANCEA_IN_GGGGA(x1, x2, x3, x4) U1_GGGGA(x1, x2, x3, x4, x5, x6) = U1_GGGGA(x1, x2, x3, x4, x6) DISTANCEA_IN_AAAAA(x1, x2, x3, x4, x5) = DISTANCEA_IN_AAAAA U1_AAAAA(x1, x2, x3, x4, x5, x6) = U1_AAAAA(x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (263) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. ---------------------------------------- (264) Obligation: Pi DP problem: The TRS P consists of the following rules: DISTANCEA_IN_AAAAA(X1, X2, X3, X4, X5) -> DISTANCEA_IN_AAAAA(X6, X7, X8, X9, X10) R is empty. The argument filtering Pi contains the following mapping: DISTANCEA_IN_AAAAA(x1, x2, x3, x4, x5) = DISTANCEA_IN_AAAAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (265) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (266) Obligation: Q DP problem: The TRS P consists of the following rules: DISTANCEA_IN_AAAAA -> DISTANCEA_IN_AAAAA R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (267) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = DISTANCEA_IN_AAAAA evaluates to t =DISTANCEA_IN_AAAAA Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from DISTANCEA_IN_AAAAA to DISTANCEA_IN_AAAAA. ---------------------------------------- (268) NO